So far, I understand that to solve common algebraic loop problems, it´s enough to decouple the input/output direct feedthrough of every direct feedthrough block by adding a state variable between the input and the output. And, as far as I understand, this can be easily done with an IC block. Inserting this block is also equivalent to equip the direct feedthrough block with a state x that evolves like x(k+1)=x(k) (or \dot x=0), and to consider a switch of the output so that we have y=x at t=t0 and y=f(u) for t>t0, where x,u and y represent the state, the input and the output respectively). This is equivalent to force the output at the value of the IC block at t=t0, and the algebraic loop would be solved, isn’t it? But at this point, I would argue that it is possible to use any block for which you can set a initial condition/output (e.g. rate transition blocks for example), isn’t it? So, to solve an algebraic loop is enough to break it in just one point, right? Or there is more?
MATLAB: Is this the way to solve algebraic loops
algebraic loopssimulink
Related Question
- Example of non direct feed through using matlab function block
- How to resolve the algebraic loop error in the model with Stateflow charts and Simscape blocks
- How may algebraic loops influence simulation results
- What are algebraic loops in Simulink and how to solve them
- How to avoid an algebraic loop error message in Simulink 6.3 (R14SP3) when using an Integer Delay block in a feedback loop
Best Answer