Showing results for 
Search instead for 
Did you mean: 

Algebraic loop is causing strange result


When I am testing some algebraic loops
I found some strange thing

here is that example






first, modeling using above information

then, result is normal




but, adding some simple algebraic loops like this
(my original algorithm is more complicated,
but simplify for this example)





then, sine signal is crushed





Why this thing is happening?
Why that algebraic loops influence other component??


Re: Algebraic loop is causing strange result

Siemens Genius Siemens Genius
Siemens Genius

Hi @Kuro


Using the option "minimal discontinuity handling" in the run parameters is always a bit dangerous.

Using this option LMS Imagine.Lab Amesim will try to ignore discontinuities which have no direct influence on the state variables.


Then the second thing is when you put an algebraic loop, the LMS Imagine.Lab Amesim solver will be completely different as when you have no implicit state variables in the system.

In the first case you even have no state variables in the system, so in this case the solver will take a time step no bigger than 0.1 s. It allows to not miss discontinuities which should be normally missed (because you use the option minimal discontinuity handling).

In the second case you have an implicit state variables and the discontinuity occuring has no influence on the only state variable, so the solver misses some of them.


Generally speaking you should always try to avoid "minimal discontinuty handling" in the run parameters, because you cannot really know at which point discontinuities will be ignored (or you really need to be sure of what you are doing).


If you have discontinuity issues it is better to understand why and act locally where these issues occur.

You will find more information on it in the following link.


Kind regards

Re: Algebraic loop is causing strange result

Siemens Experimenter Siemens Experimenter
Siemens Experimenter



As already said using Minimal Disc. Handling might lead to bad event detection and thus innacurate results.

In your case the system is so simple that the solver will take big steps, and this coupled to minimal disc. handling will trigger events on times that are not corresponding to the times these events appeared.


Of course you can simply get more accurate results by limiting the step size and then recover original results you got without alg. loop (cf attached file when limiting time step to 0.01s).



Concerning your original question, introducing an algebraic loop lead to the use of different solving method and thus different time stepping schemes : the time stepping used in the latest case is not the same that one would use in the case where no algebraic loop occurs. That explains why in the 2nd case, results are more sensitive to the run parameters (like disc. handling) than in 1st case. It doesn't mean that 2nd time stepping scheme is leading to less accurate results, but it might be more sensitive to other run parameters.


Anyway, as already answered, using min. disc hanling is generally not a good idea if you want to get accurate results.