什么是代数环?
发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递
的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依
赖现在时刻的输入值来计算的。当这种情况出现时 simulink 会在每一次迭代言算完成时,
去决定它是否会有解。代数回路会减缓方真执行的速度并可能会没有解。
当方程两边都出现同一个变量时,即产生了代数环。如:3y+4=y
当 Simulink 中存在非模型延迟时,通常会产生代数环。比如,传感器将输出信号反馈到输
入端。
解决代数环
连续模型,在构成代数环的反馈环节加入 memory 模块;
离散模型就加入单位延迟 1/Z,不过加入 memory 后仿真会慢些,但用了加速后,这个
牺牲还是值得的。另还有拆解法等,具体见下面第 9 行论文内容。
Simulink 提 供 了 一 些 专 门 手 段 来 拆 解 代 数 环 , 例 如 代 数 约 束 模 块 (Algebraic
Constraint),积分模块(以及离散积分模块)的状态输出端等。这些手段可以解决一些特定的
代数环问题。下面举一个利用积分模块的状态输出端的例子。
! !从积分模块的输人端口到输出端口是非直通的,但从积分模块的初始值输人端口到输出
端口,以及从复位输人端口到输出端口却都是直通的。因此,如果从积分模块的输出端口
引出的信号再经过一些直通模块后又反馈到积分模块的初始值输人端口或者复位输人端口
则构成一个代数环。
! !为了解决这个问题,Simulink 专门为积分模块设计了一个状态端口(state port),其输出与
输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输
人端口还是从复位输人端口到状态端口都是非直通的。因此,当出现上述的代数环问题时
可 以从积分模块的状态端口引出信号。这样,代数环就被拆解了
代数环的基本概念
1 代数环的基本概念
代数环的一个最简单的例子如图 1 所示。图 1 中实现的是一个减法器模块,其输出反馈回来
作为一个输入。这个看似简单的例子却反映了一个复杂的问题:在进行仿真时,按正常的计
算顺序,应该先计算模块的输入,然后再计算由输入驱动的输出,而在图 1 所示的情况下,因为
评论1