ERROR: trouble solving algebraic loop - cant solve it

15 views (last 30 days)
I would be very grateful if you could help me with an issue, which after performing several tests, still don't know how to solve. :-(
I am developing a Simulink model; but, while running it, an error window pops up -always at the same simulation step- with the following text: "trouble solving algebraic loop containing my_subsystem_name. There may be a singularity in the solution. If the model is correct, try reducing the step size".
The block where the error comes about is an enabled subsystem. This subsystem consists, among others, of a max running reseteable block and, the reset input for this one, enables also the following piece of calculations at the same level (inside the same subsystem, my_subsystem_name).
Apparently the program is unable to calculate the maximum at some extent of decimals; but when isolating the subsystem and setting the input values with the same values as the ones taken at the simulation step where the issue occurs, the model works.
I have also isolated the subsystem from the smallest piece to the largest and tested, concluding that it just fails when sticked to the rest of the model.
Have also thought of the multiple enable ports inside the subsystem; nevertheless the model seems to work for the first simulations steps...
Any clue to solve this? It will be pretty much appreciated.
Many thanks

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 23 Aug 2011
There is no definite way to resolve an algebraic loop problem. If you are sure your model is right, you can click menu Simulation->Configuration Parameters->Diagnostics, and change the setting for Algebraic loop from "error" to "warning" or "none".
But usually, it indicates that your model has problem. You can try to add a Unit Delay block at the place where the error occurred. Searching for "Algebraic loop" in document will lead you to the explanation of it.
  4 Comments
Susmita
Susmita on 14 Dec 2011
Thanks Jiang....Your answer solved my problem also...
Heema
Heema on 23 Apr 2014
I am unable to solve the same error Jiang.After adding a unit delay,another error popped up i.e. in another Multiport switch same error persisted. Is there any solution to it?

Sign in to comment.

More Answers (1)

mado
mado on 3 Oct 2012
Edited: mado on 3 Oct 2012
I put unit delay of order zero but the output was square wave at constant level and it shouldn't be

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!