Breaking an algebraic loop

조회 수: 8 (최근 30일)
Mathis Sterling Allen
Mathis Sterling Allen 2020년 12월 9일
편집: Jon 2020년 12월 9일
My model has an seemingly unsolvable algebraic loop in it. It is continous-time, so I put in a quick filter in the loop to try to break it. All that did was make it run for less than a microsecond simulation time with many small steps ( < 1 ns). The total simulation time I trying to do is 0.25 s. Below is a picture of my model. The places in red are the places where I have tried to put the filters in and the blue is just to highlight where they are now. The S-function block seems to work as a lookup table. My controllers have worked when the plant I was working on was just a set of EOM's.
  댓글 수: 4
Walter Roberson
Walter Roberson 2020년 12월 9일
I notice that the signal [iq] also goes into the block F Calculator, but that you did not attempt a filter there whereas you put a filter btween the signal [iq] and the input iq to Fq SMC . I wonder if that is a problem?
Can you ask MATLAB to highlight the algebraic loop, and post an image of the highlighted version ?
Mathis Sterling Allen
Mathis Sterling Allen 2020년 12월 9일
With the filters removed, the loop is highlighted below.

댓글을 달려면 로그인하십시오.

답변 (1개)

Jon
Jon 2020년 12월 9일
I usually put in a delay block with a relatively small value set for the one sample delay to break algebraic loops. If you use a filter, of course you should be sure that the numerator polynomial is lower order than the denominator so that there is no direct feedthrough.
  댓글 수: 2
Mathis Sterling Allen
Mathis Sterling Allen 2020년 12월 9일
Delay blocks do not seem to help. The transfer function circled in blue is the formula I am using for all the filters. I have tried 1e-6, 1e-3, and 1 for time constants and all have had small time steps then throw an error before a microsecond has passed in a 0.25 s simulation time run.
Jon
Jon 2020년 12월 9일
편집: Jon 2020년 12월 9일
Your model is too complicated for me to see what the specific problem is just by looking at a screen shot. So I can only give you generic suggestions as follows. Algebraic loops come from a cyclic sequence of blocks that all have direct feedthrough. Direct feedthrough implies that the bandwidth of the element is also infinite. There will be no high frequency rolloff. Any actual system will eventually roll off, so you can look to see if your elements are overly idealized/simplified resulting in direct feeedthrough. Also are the SMC blocks sliding mode controllers? I have never tried simulating them, but from my understanding sliding mode controllers are based upon chattering phenomena, so you have to be very careful that your plant has enough low pass characteristics to not have the chattering frequency get infinititely high.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Classical Control Design에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by