Algebraic Loop Problem - Avoiding Algebraic Analysis
1 view (last 30 days)
Show older comments
Hello,
I am trying to simulate a set of interconnected DT-LTI systems each modeled by discrete-time difference equations. I'm not exactly sure why Simulink is having an issue with this. It generates this error when I try to simulate:
Cannot solve algebraic loop involving 'test1/SingleLayer1/TLL/Product3' because it consists of blocks that cannot be assigned algebraic variables, such as blocks with discrete-valued outputs, blocks with non-double or complex outputs, Stateflow blocks, or nonvirtual subsystems. Consider breaking the algebraic loop. For example, add a delay or a memory block to the loop.
Since I am trying to model a set of discrete-time difference equations I cannot simply "add a delay" or "add a filter" or even break the loop, that defeats the whole purpose of the model. All I want is a numerical solution for the output of my simulation given an input and a set of constants that I know beforehand, and it only needs to be done all in discrete time. Is there a way to get Simulink to do this without solving things algebraically, or will I need to use other software?
0 Comments
Answers (1)
Fangjun Jiang
on 24 May 2017
If the contents inside the two subsystem blocks are all simple arithmetic math, then most likely the model does have algebraic loops since there are outputs crossing two subsystems and feeding back to inputs.
Search "algebraic loop" in MATLAB document to understand it. In the Simulink model, go to menu "Simulation" -> "Model Configuration Parameters" -> "Diagnostics", play with the "Algebraic loop" and "Minimize algebraic loop" settings to see if you can make the simulation.
2 Comments
Fangjun Jiang
on 25 May 2017
Can you reduce the complexity of your model yet keep the error, make them in one subsystem and post the snapshot?
See Also
Categories
Find more on Block and Blockset Authoring 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!