Simulink algebraic loop warning?
4 views (last 30 days)
Show older comments
Randy Chen
on 2 Oct 2021
Commented: Walter Roberson
on 2 Oct 2021
Can someone please explain what this warning means?
0 Comments
Accepted Answer
Walter Roberson
on 2 Oct 2021
Generally speaking, algebraic loops occur when you have a feedback cycle that is missing any delay.
For example, you might have coded an addition of 1 to a value, and then routed the output back to the input, with the intention of saying that you are adding 1 each round. But most blocks in Simulink happen "instantly", so what you might have accidentally coded is that the value of the signal is a value such that the value of the signal and the value of the signal plus 1 are the same thing. The only values such that the value and the value plus 1 are the same, are -infinity, +infinity, and nan.
The challenge here is that (most) blocks are timeless so Simulink has to figure out how to make all the update combination consistent. That often involves solving algebraic or differential equations.
Typically when you encounter such an algebraic loop, you need to figure out a point in the system that logically should be "after" the other parts, and insert some kind of delay blocks between. Those can include Zero Order Hold systems, or can include Memory blocks, or can include using transfer functions (because transfer functions imply delays.)
1 Comment
Walter Roberson
on 2 Oct 2021
More Answers (0)
See Also
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!