MATLAB: ‘Warning: closed loop system is unstable ‘ when getting Gain and Phase Margin using ‘[Gm,Pm] = margin(sys)’

closed loopControl System ToolboxmarginMATLABnyquistopen loopunstable loop

I get the following warning when using the margin function:
Warning: The closed-loop system is unstable.
my gain margin is returned as infinite and my phase margin is around 90. I also plotted the nyquist, bode and Root locus and even did step response of closed loop. It does not look unstable to me so why do I receive this warning? Here is the Open loop transfer function:
0.4743 s^2 + 47.43 s
--------------------------------------
0.0003819 s^3 + 0.0007576 s^2 + 1667 s
Continuous-time transfer function.

Best Answer

The only thing I can think of is that your have a pole-zero cancellation at the origin. See if using the minreal function first helps.