Is this the way to solve algebraic loops?
Mostrar comentarios más antiguos
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?
Respuesta aceptada
Más respuestas (1)
K E
el 4 de Abr. de 2012
1 voto
This note suggests an initial condition may not be sufficient to break algebraic loops. Instead you may need to directly introduce a time delay. If sample time is discrete, use the Unit Delay block. If sampling is continuous, use the Memory block. Introducing these delays can change your system's dynamics. This blog entry discusses reconsidering unphysical algebraic loops in your model.
Categorías
Más información sobre Discontinuities en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!