MATLAB Answers

AC90
0

Open loop stability: Bode - Pole zero plot mismatch

Asked by AC90
on 22 Apr 2018
Latest activity Commented on by AC90
on 27 Aug 2018
I'm analyzing open loop stability of an amplifier. Plotting the bode diagram I can see a negative phase margin (PM) indicating the system is not stable. When I plot the pole/zero plot however all the poles still remain on the left half plane. See attached figure. Note that instability results due to the 3rd zero crossing where the PM is negative. I do not understand why the complex poles have not shifted to right half plane (RHP). Using SPICE however I can observe these poles locating to RHP. How come this cannot be observed in matlab? While this is very likely because the model in Matlab is just a simplification, I do not understand how the bode plot can show a negative PM while the poles reside within LHP. Any thoughts?

  3 Comments

Hard to say based on the plot alone. Could you attache a model?
If you are referring to the ~-45 degree in the phase plot, it is not the phase margin. It is just the phase of the system. Phase margin is how much phase change is necessary for the magnitude 1 to become (-1 + 0i), which is equivalent to having a phase of 180. So if the systems phase is -45 degrees with magnitude of 1, it means the phase margin is 135 degrees.
Use the Matlab command "margin()" to calculate the margins.
That is incorrect. Your definition of the phase margin is wrong. It's not where the phase is 180 degrees, rather where the total phase shift is 180 degrees. So, for an inverting system, for instance, a phase of 0 degrees at 0db means the total phase shift is 180. If it's a noninverting system, the total phase shift would be 0.
In this specific case here, it's an inverting system (the low frequencies are not shown in the plot, at dc the phase is 180 degrees). The phase margin at the 3rd 0db crossing is beyond 180 degrees.

Sign in to comment.

1 Answer

Answer by Arkadiy Turevskiy on 17 Aug 2018
Edited by Arkadiy Turevskiy on 17 Aug 2018
 Accepted Answer

You did not post your system, so it is a bit hard to figure out what is going on, especially when you say that you see poles moving to RHP in Spice.
Going purely on the plots you provided (poe zero map primarily) I tried to construct a model that would create similar plots.
sys=zpk([2.4*10^9*j -2.4*10^9*j], [-0.0000001 -11.5*10^7+1.2*10^9*j -11.5*10^7-1.2*10^9*j],-100000000);
subplot(121);bode(sys);grid;
subplot(122);pzmap(sys);
xlim([-1.5e+8 2e+7]);
The first subplot shows full bode plot. If you focus on the region you are looking at, you will see similar plot to what you show:
subplot(121); bode(sys, {1e+9*0.1034 1e+9*2.8278}); grid;
Now if you zoom in bode plot magnitude that looks similar to your plot.
If you do
allmargin(sys)
you will see phase margins at first two crossovers are negative and phase margin at 3rd crossover is positive.
If you do
isstable(sys)
you will see the system is stable because all poles are in the left half plane, even though one of them is essentially at the origin.
Bottom line: even though you see negative phase margins, this system is stable, as all poles lie in the LHP. Hope this helps.

  1 Comment

Arkadiy, thank you for your effort. To correct one thing, let me retract my previous comment on RHP poles in SPICE. I took a look at it again and there were no RHP poles. The system is in fact unstable when connected in a feedback configuration due to the negative phase margin. But the bode plot is of the open loop case hence in that mode the system is in fact stable.

Sign in to comment.