1、当你的模型中出现一个环路,形成一个闭环的时候,这个环路上必须要有状态值,这样才避免形成代数环; 如果这个闭环上么有任何状态值,那么输入和输出是直接相通的,这个时候就形成了代数环;
简单地说,代数环其实就是一个输入信号包含输出信号,同时输出信号也包含输入信号的特殊反馈回路。在simulink中,这是由于直通模块(无延时的模块)的原因造成的,simulink中大部分的模块都是直通模块,因此很容易形成代数环。在整个回路中,只包含直通模块就会形成代数环,反馈回路有延时模块就会消除代数环
2、一般加一个Memory或者Unit Delay模块可以解决,那么具体加在什么位置呢?
c.1 不处理可能会报错(仿真到某一断点)
c.2 也可能不报错,但是得不到正确的运行结果,如下图,具体什么原因呢?(又因为in1未输入前,out初始化值为0,所以会出现0 = 1X0;结果永远为0,这样虽然没报错,但计算结果是错误的。