Negative gain and phase margin, yet a stable and robust system... can somebody explain?
16 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
Teja Muppirala
on 24 Apr 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.
0 Comments
More Answers (0)
See Also
Categories
Find more on Stability Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!