How to solve an algebraic loop without adding a delay?

5 views (last 30 days)
Yidan Gao
Yidan Gao on 19 Dec 2021
Answered: Sivani Pentapati on 4 Jan 2022
I have built a feedforward control system in Simulink like below. There exist a algebraic loop in the circled part where the two inputs have buffers with size 5 and the output is a buffer with size 1 convering the 1x5 vector to scalar. This error could be solved by adding a memory but the time delay caused by the memory mixes up the final result.
Is there any method I could use to solve this algebraic loop error without adding a time delay?

Answers (1)

Sivani Pentapati
Sivani Pentapati on 4 Jan 2022
Hi Yidan,
Based on my understanding you want to eliminate algebraic loops in your model without using delay block. This can be done by solving algebraic loops manually, where you would specify an initial guess for an algebraic state or an algebraic state variable.
You can also try enabling "Minimize algebraic loop occurrences" option where simulink tries to eliminate artificial algebraic loops. Please refer to this answer for more information on addressing algebraic loops.

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by