simulink中代数环的问题!! simulink代数环问题

Simulink代数环

我有次碰到一个问题,Simulink报告“Cannot solve algebraic loops...”

Simulink可以求解代数环,但是这常常会降低仿真速度。所以,algebraicloop diagnostic可以设置为Error、Warning或者是None。在这里,设置为Warning,所以模型就会报告错误,不进行仿真计算。

什么是代数环?

当方程两边都出现同一个变量时,即产生了代数环。如:

当Simulink中存在非模型延迟时,通常会产生代数环。比如,传感器将输出信号反馈到输入端。

读取错误消息

调试错误的第一步就是阅读和理解错误信息。代数环的产生源于不同情况,要弄清楚错误产生原因则应该理解错误信息。

Cannot solve algebraic loop involving 'model/.../Sensor System'because it consists of blocks that cannot be assigned algebraicvariables, i.e., blocks with discrete-valued outputs, blocks withnon-double or complex outputs, Stateflow blocks, or non virtualsubsystems.

【不能求解存在于'model/.../SensorSystem'的代数环,因为它包含了不能指定代数变量的模块,比如,有离散输出的模块、有非double或复数输出的模块、Stateflow模块、无效子系统。】

分析这段话,我们可以知道Simulink不能求解代数环,除非它可以给代数变量赋值。不能指定代数变量的模块将会在错误信息中列出。

Ø 离散值输出,比如logic模块[0 或 1]

Ø 有non-double输出的模块

Ø 输出复数(3+2i)的模块

Ø Stateflow 模块

Ø 无效子系统

分析错误信息与模型的练习

首先,可以看到所有的信号类型为uint8。它们属于non-double类型,所以这是原因之一。另外注意子系统的阴影,则表示它是一个atomic子系统。atomic子系统是无效子系统,它也是引起问题的模块之一

可能的解决办法

因为存在atomic 子系统,所以建议将优化项Minimizealgebraic loop occurrences 勾选上。

子系统可以看成为输入变量和状态变量的函数

在一些系统中,输出信号的计算并不直接利用输入信号。这时,就可以将系统方程分为两步:

simulink中代数环的问题!! simulink代数环问题

这个选项也可以在configuration parameters ->modelreference blocks

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

消除代数环的方法可参照:《数字计算机仿真中消除代数环问题的研究》,邱杰,原巍兰。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/275786.html

更多阅读

中岛美雪中岛みゆき ,永远的传奇! 中岛美雪和中岛美嘉

中岛美雪(中岛みゆき)血型:A身高:160cm体重:40kg生日:1952年2月23日学历:滕女子高等学校籍贯:北海道札幌事实上,中岛美雪有一个今天在我们看来很是热门的出身——她是日本早先的超级女声:1975年,刚刚大学毕业的她参加了音乐比赛"Pop Con",过关

海贼王中一些人物的原型!!!!OnePiece 海贼王onepiece

1。 爱撒谎的孩子鼻子会变成,匹诺曹的经典形象和台词深深烙印在每个人的心中,和同样爱说大话的骗人布“大船长”相比。实在是很合适的特征呢,尤其是那个鼻子。2。大大咧咧的性格,精神百倍的飞机头,夏威夷沙滩衬衫,变态的表情和语言。无不

声明:《simulink中代数环的问题!! simulink代数环问题》为网友童心未泯分享!如侵犯到您的合法权益请联系我们删除