Negative gain and phase margin, yet a stable and robust system... can somebody explain?

18 visualizaciones (últimos 30 días)
Hello all,
I am a question for you control experts out there.
I have a slow first order system for which I designed a PI controller.
P(s)= 1.429e-07*1/(s + 0.02857);
C(s)= (5.5e05*s + 17500)/s
When analyzing the loop gain and its margin I see that the system as both a negative GM (- infinite) and a negative PM:
allmargin(PC):
GainMargin: [0 Inf]
GMFrequency: [0 Inf]
PhaseMargin: -0.6556
PMFrequency: 0.2805
DelayMargin: 22.3599
DMFrequency: 0.2805
Stable: 0
According to "allmargin" the system is supposedly unstable but the step response is actually stable with good performance. Despite a small negative PM of -0.6556, the time delay margin is actually huge. Matlab should calculate the time delay margin as follow:
Time Delay Margin=PM/GMFreq*pi/180
but it this case it seems that the PM value they used is 360-0.6556;
Which leads to Time Delay Margin = 359.3444/0.2805*pi/180=22.35 s which correspond to the result found in allmargin.
Does this mean that in this case a small negative PM is actually a phase margin of almost 360 degrees??? I tested my system by adding time delay and a gain uncertainty and it is actually really robust and can handle large time delays of +25 seconds and both large and small multiplicative uncertainty gains.
Also I looked at the Nyquist and there is no encirclement of the critical point.
Can someone help me understand how this system under a robust controller can have a negative phase margin? I am tempted to use this controller for my application but I would like to justify its robustness, and a negative phase margin just looks bad.
Thanks a lot,
Tim

Respuesta aceptada

Teja Muppirala
Teja Muppirala el 24 de Abr. de 2013
When I try that, I get something completely different. How are you defining your P and C?
s = tf('s');
P= 1.429e-07*1/(s + 0.02857);
C= (5.5e05*s + 17500)/s;
PC = P*C;
allmargin(P*C)
ans =
GainMargin: [1x0 double]
GMFrequency: [1x0 double]
PhaseMargin: 87.9574
PMFrequency: 0.0797
DelayMargin: 19.2701
DMFrequency: 0.0797
Stable: 1
These values seem reasonable to me.

Más respuestas (0)

Categorías

Más información sobre Stability Analysis en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by