代数环_代数环 -基本概念
在数字计算机仿真中,当输入信号直接取决于输出信号,同时输出信号也直接取决于输入信号时,由于数字计算的时序性,而出现的由于没有输入无法计算输出,没有输出也无法得到输入的“ 死锁环” ,称之为代数环。
输出中的一部分反馈到输入,或者说,输入直接决定于输出,这是反馈回路的共同特点。代数环是一种特殊的反馈回路,它的特殊之处就在于除了输入直接决定于输出外,输出还直接决定于输入,在这里, “直接”二字很重要,它体现了代数环的实质,仿真计算中的“死锁”就是由此产生的。
代数环_代数环 -产生条件
如前所述,代数环是一种反馈回路,但并非所有的反馈回路都是代数环。代数环存在的充分必要条件是:存在一个闭合路径,该闭合路径中的每一个模块都是直通模块。所谓直通,指的是模块输入中的一部分直接到达输出。SimuLink的模块库中提供的很多模块都是直通模块。
代数环_代数环 -消除方法
代数环对应于一定的数学模型的形式(即隐函数的形式) ,如果能够将原始的数学模型进行等价变换,得到显函数形式,则按显函数实现仿真模型,就可以消除代数环。
简单的解决方式是在代数环回路中增加一个memory模块(加memory模块的目的,相当于离散系统中加一个delay模块的功能是一样的是为了避免具有代数环的模块,都在同一时刻有输出,产生错误,让各模块输出的时间有一个延时,有前后顺序,达到遵循仿真原理的要求,进而能输出结果),或者增加一个微量延迟环(如1/(0.0001s+1)),最好放在输出回传时这个位置,这样,由于时间的差异,会使仿真顺利进行。
Simulink提供了一些专门手段来拆解代数环,例如代数约束模块(Algebraic Constraint),积分模块(以及离散积分模块)的状态输出端等。这些手段可以解决一些特定的代数环问题。下面举一个利用积分模块的状态输出端的例子。
从积分模块的输人端口到输出端口是非直通的,但从积分模块的初始值输人端口到输出端口,以及从复位输人端口到输出端口却都是直通的。因此,如果从积分模块的输出端口引出的信号再经过一些直通模块后又反馈到积分模块的初始值输人端口或者复位输人端口,则构成一个代数环。为了解决这个问题,Simulink专门为积分模块设计了一个状态端口(state port),其输出与输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输人端口还是从复位输人端口到状态端口都是非直通的。因此,当出现上述的代数环问题时,可以从积分模块的状态端口引出信号。这样,代数环就被拆解了。