Open loop stability: Bode - Pole zero plot mismatch

17 views (last 30 days)
AC90 on 22 Apr 2018
Commented: 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?
AC90 on 16 Aug 2018
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.

Arkadiy Turevskiy on 17 Aug 2018
Edited: Arkadiy Turevskiy on 17 Aug 2018
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.
AC90 on 27 Aug 2018
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.