Electronics Guide

Bode and Nyquist Plots

Whether a feedback loop settles or oscillates depends on what its loop gain does near the frequencies where that gain falls to 1. Bode and Nyquist plots are the two standard pictures of the loop gain. A Bode plot draws magnitude in decibels and phase in degrees against a logarithmic frequency axis. A Nyquist plot draws the same complex numbers as a single curve in the complex plane. Both come from Bell Telephone Laboratories. Harry Nyquist published his stability criterion in "Regeneration Theory" in the Bell System Technical Journal in January 1932. Hendrik Bode set out the relations between gain and phase in the same journal in July 1940 and in his 1945 book Network Analysis and Feedback Amplifier Design.

The two plots do different jobs. A Bode plot can be sketched from straight lines, shaped by adding compensator curves, and measured on a working circuit. The Nyquist criterion decides closed-loop stability rigorously for any linear time-invariant loop, including loops that simple Bode readings misjudge. This article builds and reads both, measures a loop on the bench, and works two examples: an op-amp driving a capacitive load and a voltage-mode buck converter.

The loop is treated as linear and time-invariant, as a real loop is for small signals about its operating point, and every frequency response is a sinusoidal steady state. Laplace Transform covers transfer functions, poles, and zeros. Stability Analysis and Compensation defines phase and gain margin and designs the compensators that set them, and Time-Domain Response of Control Systems translates phase margin into overshoot and settling time.

Frequency Response of Linear Time-Invariant Systems

Drive a stable linear time-invariant system with A cos ωt, wait for the transient to die away, and the output is

y(t) = A|G(jω)| cos(ωt + φ)

where G(jω) is the transfer function G(s) evaluated at s = jω and φ is the angle of that complex number. At each frequency the system does exactly two things to a sinusoid: it scales the amplitude by |G(jω)| and shifts the phase by φ. Taken over all frequencies, the pair is the frequency response. The steady state exists only if the system is stable, so an unstable plant cannot be measured open loop, although its G(jω) remains well defined for calculation.

In factored form, G(s) = K(s − z1)(s − z2) ... / [(s − p1)(s − p2) ...], the magnitude at s = jω is the product of the factors' magnitudes, and the phase is the sum of the zeros' angles minus the sum of the poles' angles. In decibels the product also becomes a sum, so a complicated response is a sum of simple curves, one per pole or zero.

A feedback loop is analyzed through its loop gain L(s), the product of every transfer function around the loop: the controller, the plant, the sensor, and the feedback network. For an amplifier with forward gain A(s) and feedback factor β, L(s) = A(s)β. With unity feedback the closed-loop response is

T(s) = L(s) / [1 + L(s)]

and the closed-loop poles are the roots of 1 + L(s) = 0. Here L(s) excludes the sign inversion at the summing junction, so the loop is on the edge of oscillation where L(jω) = −1: a magnitude of 1 at a phase of −180°. The loop gain is the quantity to plot, because it is a product of known blocks, it can be measured with the loop closed, and stability depends on how near it comes to −1.

Decibels and Logarithmic Frequency Axes

The magnitude of a voltage ratio, a current ratio, or a dimensionless loop gain is expressed in decibels as

|G| in dB = 20 log10|G|

Power ratios use 10 log10. Gains multiply along a signal path, so their decibel values add.

Amplitude ratios in decibels
Ratio dB Ratio dB
1.1221.001/√2 = 0.707−3.01
√2 = 1.4143.010.5−6.02
26.020.1−20.00
√10 = 3.16210.0010040.00
1020.00100,000100.00

The frequency axis is logarithmic. A decade is a factor of 10 in frequency and an octave a factor of 2. On these axes a response proportional to ωn is a straight line with a slope of 20n dB per decade, so a single pole's roll-off of −20 dB per decade is also −6.02 dB per octave. Corner frequencies may be given in radians per second or in hertz, with ω = 2πf; mixing the units misplaces a corner by a factor of 6.28.

The phase axis is linear in degrees. Instruments and many programs wrap phase into a range of 360°, such as −180° to +180°, so a curve that appears to jump by 360° has only wrapped. Unwrap it, following the curve continuously from low frequency, before reading any crossover.

Building a Bode Plot from Asymptotes

Construction starts by writing the transfer function in standard form, with every factor normalized to 1 at low frequency:

G(s) = K sn × [(1 + s/ωz1) ...] / [(1 + s/ωp1) ...] × 1/(1 + 2ζs/ωn + s2n2) × e−sT

Here n is positive for zeros at the origin and negative for poles there, which are integrators; ωz and ωp are real corner frequencies; the quadratic stands for any complex pair; and T is a time delay.

Asymptotic contributions of the standard factors
Factor Magnitude asymptote Phase
K > 0Flat at 20 log10K
K < 0Flat at 20 log10|K|±180°
snSlope of 20n dB/decade, through 0 dB at ω = 1 rad/s90n° at every frequency
1/(1 + s/ωp), real pole0 dB up to ωp, then −20 dB/decade0° to −90°, passing −45° at ωp
1 + s/ωz, real zero0 dB up to ωz, then +20 dB/decade0° to +90°, passing +45° at ωz
Complex pole pair0 dB up to ωn, then −40 dB/decade0° to −180°, passing −90° at ωn
Complex zero pair0 dB up to ωn, then +40 dB/decade0° to +180°, passing +90° at ωn
e−sT, time delay0 dB at every frequency−ωT radians, or −360fT degrees

Integrators and Real Corners

The constant and the power of s set the low-frequency asymptote. With m integrators it falls at 20m dB per decade and passes through 20 log10K at ω = 1 rad/s, so a single integrator K/s crosses 0 dB at ω = K. The usual straight-line approximation of a real pole's phase holds 0° up to a tenth of the corner, falls at 45° per decade for two decades, and holds −90° from ten times the corner. A left-half-plane zero mirrors the pole.

Complex Pairs

A pair of complex poles is written 1/(1 + 2ζs/ωn + s2n2), with natural frequency ωn, damping ratio ζ between 0 and 1, and quality factor Q = 1/(2ζ). The damping sets how abruptly its phase falls through −90° at ωn. The phase reaches −45° and −135° at

ω/ωn = √(1 + ζ2) − ζ and ω/ωn = √(1 + ζ2) + ζ

so at ζ = 1 the middle half of the transition spans 0.41ωn to 2.41ωn, while at ζ = 0.1 it spans only 0.905ωn to 1.105ωn. A pair with ζ of 1 or more factors into two real poles and is better drawn that way.

Time Delay

A pure delay T multiplies the transfer function by e−sT, whose magnitude at s = jω is exactly 1, so a delay leaves the magnitude plot unchanged while its phase lag grows in proportion to frequency. A delay of one-tenth of the period at the crossover frequency costs 36° of phase there. Delays come from sampling and computation in digital controllers, transport lag in process plants, and long cables. Simulators often substitute the first-order Padé approximation (1 − sT/2)/(1 + sT/2), which also has unit magnitude; its phase, −2 arctan(ωT/2), is within 0.6° of the true delay up to ωT = 0.5 but 4.2° short at ωT = 1.

Construction Procedure

  1. Factor the numerator and denominator into the standard form above, and list the corner frequencies in increasing order, all in the same units.
  2. Draw the low-frequency asymptote from K and the power of s.
  3. Move up in frequency, changing the slope at each corner by the amount in the table.
  4. Correct the magnitude near each corner, using the errors tabulated in the next section.
  5. Add the phase contributions at a few frequencies per decade, including −90° for each integrator and the phase of any delay.
  6. Check the high-frequency end. The final slope must be −20 dB per decade times the excess of poles over zeros, and for a minimum-phase function with positive K and no delay the final phase must be −90° times that excess.

Asymptotic Versus Exact Response

The exact curve bends away from the straight lines near every corner, and the size of each error shows when a sketch is good enough.

Real Corners

A real pole, 1/(1 + s/ωc), against its straight-line approximations (error = exact value minus approximation)
ω/ωc Exact magnitude (dB) Error of asymptote (dB) Exact phase (degrees) Straight-line phase (degrees) Phase error (degrees)
0.1−0.04−0.04−5.70−5.7
0.25−0.26−0.26−14.0−17.9+3.9
0.5−0.97−0.97−26.6−31.5+4.9
1−3.01−3.01−45.0−45.00
2−6.99−0.97−63.4−58.5−4.9
4−12.30−0.26−76.0−72.1−3.9
10−20.04−0.04−84.3−90.0+5.7

The magnitude error is largest at the corner, where the exact curve lies 3.01 dB below the asymptote, and falls away symmetrically on either side. The straight-line phase never errs by more than 5.7°, the value at the two ends of its two-decade ramp; inside the ramp the error peaks again at 5.3°, near 0.39 and 2.5 times the corner. A real zero has the same errors with the signs reversed. Corners closer than about a decade add their errors; in the buck converter example below, two zeros and a resonance put the exact curve 13 dB above the asymptote.

Complex Pairs

For a complex pole pair the error depends on the damping and can be large. At ω = ωn the exact magnitude is 1/(2ζ), which equals Q, and the phase is exactly −90°. When ζ < 1/√2, the magnitude peaks slightly below ωn, at

ωr = ωn√(1 − 2ζ2), with peak value Mr = 1 / [2ζ√(1 − ζ2)]

When ζ ≥ 1/√2 there is no peak, and the magnitude falls steadily with frequency.

A complex pole pair against its asymptotes, which read 0 dB at ωn and −12.04 dB at 2ωn
ζ Q Exact magnitude at ωn (dB) Peak Mr (dB) ωrn Exact magnitude at 2ωn (dB)
0.051020.0020.010.997−9.56
0.1513.9814.020.990−9.62
0.22.57.968.140.959−9.84
0.31.674.444.850.906−10.19
0.510.001.250.707−11.14
0.7070.707−3.01No peakNone−12.30
10.5−6.02No peakNone−13.98

The error at ωn is therefore 20 log10Q. For ζ of 0.2 or less the peak exceeds that value by less than 0.2 dB, so adding 20 log10Q at the corner is the standard correction. A complex zero pair produces a notch, dipping to 20 log10(2ζ) at ωn.

When the Errors Matter

Asymptotes mislead most in two places: a crossover within an octave of a corner, where 1 to 3 dB of error moves the crossover and the phase read there, and a lightly damped pair, whose true magnitude can rise above 0 dB while the asymptote lies well below it. There, compute exact values, as simulators, MATLAB, GNU Octave, and SciPy do; asymptotes remain the way to understand those curves and to catch errors.

Minimum-Phase and Non-Minimum-Phase Systems

Definition

In this article a rational transfer function is minimum phase when none of its poles or zeros lies in the right half-plane, and a right-half-plane pole or zero, or a time delay, makes a system non-minimum phase. Definitions vary: some control texts consider only right-half-plane zeros and delays, and signal-processing texts also exclude poles and zeros on the imaginary axis, so that both the system and its inverse are stable.

Moving a left-half-plane zero at s = −a to its mirror image at s = +a leaves the magnitude unchanged, because 1 + jω/a and 1 − jω/a have equal magnitudes, but changes the zero's phase from +arctan(ω/a) to −arctan(ω/a). The move amounts to multiplying by the all-pass factor (1 − s/a)/(1 + s/a), which has unit magnitude and a phase of −2 arctan(ω/a). Hence the name: among stable transfer functions with the same magnitude response, the minimum-phase one has the least phase lag.

Bode's Gain-Phase Relation

For a stable minimum-phase transfer function with positive gain, the magnitude curve fixes the phase. Bode's 1940 paper, "Relations between Attenuation and Phase in Feedback Amplifier Design," gives the phase at any frequency ω0 as

φ(ω0) = (1/π) ∫−∞ (dM/du) ln coth(|u|/2) du

where M = ln|G(jω)|, u = ln(ω/ω0), and φ is in radians. The slope dM/du is the magnitude slope measured in units of 20 dB per decade. The weighting function integrates to π2/2 and is sharply concentrated around ω0: 58 percent of its area lies within an octave on either side, 74 percent within half a decade, and 92 percent within a decade. A constant slope of −20 dB per decade therefore gives exactly −90°, and in practice

phase in degrees ≈ 90 × (magnitude slope in units of 20 dB per decade), averaged over about a decade on either side

A minimum-phase loop that crosses 0 dB at −20 dB per decade, holding that slope for a decade on each side, has a phase near −90° at crossover; at −40 dB per decade the phase nears −180°, leaving little or no margin. That is the basis of the rate-of-closure rule in Negative Feedback Theory.

Right-Half-Plane Zeros, Poles, and Delays

Boost and buck-boost converters in continuous conduction have a right-half-plane zero in their control-to-output response; for an ideal boost converter it lies at ω = (1 − D)2R/L, with duty cycle D, load resistance R, and inductance L. A Miller-compensated amplifier has one from the feedforward path through its compensation capacitor, and a digital controller adds delay. Each adds lag that no compensator can cancel, so the crossover must stay well below the zero, or well below the reciprocal of the delay. Right-half-plane poles belong to plants that are unstable on their own, such as a magnetic levitation system; for them the simple margin rules of the next section fail, and the Nyquist criterion is needed.

Reading Gain and Phase Crossover

Two frequencies organize a loop-gain Bode plot. The gain crossover frequency ωc is where |L(jω)| falls through 1, or 0 dB. The phase crossover frequency ω180 is where the phase of L(jω) reaches −180°. Stability Analysis and Compensation defines the phase margin as 180° plus the phase at ωc and the gain margin as 1/|L(jω180)|, and it discusses target values.

The familiar Bode test is a special case of the Nyquist criterion. If L(s) has no poles in the right half-plane and its magnitude falls through 0 dB exactly once, the closed loop is stable exactly when the phase margin is positive, with the phase followed continuously up from low frequency. Loops with right-half-plane poles, or with several 0 dB crossings near a resonance, need a Nyquist plot. When the phase crosses −180° more than once, read the magnitude at every crossing; a crossing below ωc sets how much gain reduction the loop tolerates.

Consider the position loop L(s) = 50/[s(1 + s/50)(1 + s/500)], the servo of Time-Domain Response of Control Systems with an added lag at 500 rad/s from, for example, a sensor filter.

Loop gain of 50/[s(1 + s/50)(1 + s/500)]
ω (rad/s) Asymptote (dB) Exact magnitude (dB) Exact phase (degrees)
520.0019.96−96.3
1013.9813.81−102.5
207.967.31−114.1
39.22.110.01−132.6
500.00−3.05−140.7
100−12.04−13.18−164.7
158.1−20.00−20.83−180.0
500−40.00−43.05−219.3
  1. Sketch. The asymptote falls at 20 dB per decade to 0 dB at the 50 rad/s corner, suggesting a crossover there. The straight-line phase at 50 rad/s is −90° − 45° − 0° = −135°, suggesting a phase margin of 45°.
  2. Correct. The crossover sits on a corner, where the exact curve lies 3.05 dB below the asymptote, so the exact crossover falls to 39.2 rad/s and the phase margin is 47.4°.
  3. Find the phase crossover. The phase reaches −180° where arctan(ω/50) + arctan(ω/500) = 90°, which requires ω2 = 50 × 500, so ω180 = 158.1 rad/s, where the gain margin is 20.8 dB against the asymptote's 20.0 dB.
  4. Attribute the lag. Without the 500 rad/s pole the phase margin would be 51.8°, the value for the second-order prototype with ζ = 0.5. The extra pole, more than a decade above crossover, still costs 4.4°.

Constructing a Nyquist Plot

A Nyquist plot takes the numbers of a Bode plot and places each as a point in the complex plane, at distance |L(jω)| from the origin and at an angle equal to its phase. As ω rises the points trace a curve. For a transfer function with real coefficients, L(−jω) is the complex conjugate of L(jω), so the curve for negative frequencies is the mirror image of the positive-frequency curve in the real axis.

The complete plot is the image of the Nyquist contour, a closed path in the s-plane that encloses the whole right half-plane. The contour runs up the imaginary axis from −j∞ to +j∞ and returns clockwise along a semicircle of infinite radius. For a proper L(s) the large semicircle maps to a single point, the origin when L(s) has more poles than zeros. A pole on the imaginary axis, such as an integrator, would sit on the contour, so the contour detours to its right on a small semicircle, leaving the pole outside; m poles at the origin map that detour into an arc of infinite radius sweeping m × 180° clockwise.

  1. Tabulate magnitude and phase across the frequency range, and convert each pair to a real part |L| cos φ and an imaginary part |L| sin φ.
  2. Find the low-frequency end. A loop without integrators starts on the real axis at L(0); a loop with m integrators starts infinitely far out, at an angle of −90° times m.
  3. Find the high-frequency end. A loop with more poles than zeros ends at the origin, and a minimum-phase loop arrives at an angle of −90° times the excess of poles over zeros.
  4. Mark the crossings of the negative real axis and of the unit circle, the points that set the margins.
  5. Add the mirror image for negative frequencies, close the curve with any infinite arcs, and mark the direction of increasing ω.
Points on the Nyquist plot of L(s) = 4/(1 + s)3
ω (rad/s) |L| Phase (degrees) Real part Imaginary part
04.00004.0000
0.253.652−42.12.710−2.449
0.52.862−79.70.512−2.816
11.414−135.0−1.000−1.000
1.2331.000−152.9−0.890−0.456
√3 = 1.7320.500−180.0−0.5000
30.126−214.7−0.1040.072
100.0039−252.9−0.00120.0038

The curve starts at +4, swings clockwise through the fourth and third quadrants, and crosses the negative real axis where 3 arctan ω = 180°, at ω = √3 rad/s, with |L| = 4/8. It then curls through the second quadrant into the origin. The crossing at −0.5 gives a gain margin of 2, or 6.0 dB, and the unit-circle crossing at 1.233 rad/s gives a phase margin of 27.1°.

The Nyquist Stability Criterion

Why Encirclements Count

The closed-loop poles are the zeros of F(s) = 1 + L(s), whose poles are those of L(s). By Cauchy's argument principle, as s travels once clockwise around a closed contour, the net number of clockwise encirclements of the origin by F(s) equals the number of its zeros inside the contour minus the number of its poles inside. Encircling the origin with 1 + L(s) is encircling −1 with L(s), and the Nyquist contour encloses the right half-plane, so the count is a stability test.

Statement

Z = N + P

  • P is the number of poles of L(s) in the right half-plane, the open-loop unstable poles, counted with multiplicity. The detours exclude poles on the imaginary axis.
  • N is the net number of clockwise encirclements of −1 by the Nyquist plot of L(s), traced as s moves clockwise around the contour. Counterclockwise encirclements count as negative.
  • Z is the number of closed-loop poles in the right half-plane.

The closed loop is stable exactly when Z = 0, that is, when N = −P. A loop that is stable open loop must not encircle −1 at all, and a loop with P unstable open-loop poles must encircle −1 counterclockwise P times. A plot through −1 places closed-loop poles on the imaginary axis. The criterion assumes that L(s) is proper and that no unstable pole of one block is canceled by a zero of another, which would hide it from L(s). Some texts count counterclockwise encirclements as positive and write Z = P − N.

Counting Encirclements

Draw a ray from −1 out to infinity in any direction, and count every crossing of it by the complete plot, including the mirror image and any infinite arcs: +1 for a crossing that moves clockwise around −1 and −1 for one that moves counterclockwise. The sum is N. With the ray drawn to the left along the negative real axis, a crossing from below the axis to above it counts +1, and a crossing from above to below counts −1.

Applying Z = N + P
Loop gain P What the plot does N Z Closed loop
4/(1 + s)30Crosses the negative real axis at −0.5, leaving −1 outside00Stable
12/(1 + s)30Crosses at −1.5; each half crosses the ray from below to above22Unstable, with poles at 0.145 ± j1.983
2/(s − 1)1Traces a circle from −2 to 0 counterclockwise around −1−10Stable, with its pole at −1
0.5/(s − 1)1Traces a circle from −0.5 to 0, leaving −1 outside01Unstable, with its pole at +0.5
K/[s(1 + s)], K > 00Phase stays above −180°, and the detour arc sweeps through the right half-plane00Stable for every K

The third-order loop's closed-loop poles reach the imaginary axis at ±j√3 when K = 8, which puts its crossing exactly at −1. The loop 2/(s − 1) shows why the Bode test cannot judge an open-loop unstable plant: its plot must encircle −1 for the closed loop to be stable.

Margins and Distance on the Nyquist Plot

On a Nyquist plot the margins are geometry. The gain margin is the reciprocal of the distance from the origin to the negative-real-axis crossing, and the phase margin is the angle between the negative real axis and the point where the plot crosses the unit circle. Each measures the approach to −1 along one path. The shortest distance from the plot to −1, whose reciprocal is the peak sensitivity, measures every path at once; Time-Domain Response of Control Systems shows how it bounds both margins.

Conditionally Stable Systems

A loop is conditionally stable when it is stable over a band of loop gain but becomes unstable if the gain rises above the band or falls below it. Its phase dips below −180° at frequencies where the magnitude still exceeds 0 dB, so its Nyquist plot crosses the negative real axis on both sides of −1, and at the nominal gain the resulting encirclements cancel.

Consider L(s) = K(1 + s)2/[s3(1 + s/30)2]. Three integrators give −270° at low frequency, the double zero at 1 rad/s adds up to 180° of lead, and the double pole at 30 rad/s takes it back. The phase rises to a maximum of −131.4° at ω = √30 = 5.48 rad/s, and it lies above −180° only between the roots of ω2 − 29ω + 30 = 0, which are 1.074 and 27.93 rad/s. With K = √30, the crossover falls at the phase peak, the phase margin is 48.6°, and the plot crosses the negative real axis at −9.50 and at −0.105.

Encirclements of −1 by K(1 + s)2/[s3(1 + s/30)2]
Gain Crossings of the ray to the left of −1 N Z Closed loop
K < 0.576Two from the arc that closes the plot around the triple integrator, both from below to above22Unstable
0.576 < K < 52.1The arc's two, plus one from above to below at 1.074 rad/s on each half of the plot00Stable
K > 52.1All of the above, plus one from below to above at 27.93 rad/s on each half22Unstable

The nominal gain has 19.6 dB of margin in each direction: raising K to 52.1 moves the crossing at 27.93 rad/s out to −1, and lowering K to 0.576 moves the crossing at 1.074 rad/s in to −1. A Bode plot read only at crossover shows a healthy 48.6° and hides the lower limit, so read the magnitude wherever the phase passes −180°.

The lower limit matters because a saturating stage lowers the effective gain: in describing-function terms, a clipped sinusoid carries less fundamental than the unclipped drive. During start-up or after a large disturbance, a conditionally stable loop can be pushed into its unstable range, where saturation can sustain a large oscillation. High-order delta-sigma modulators, servo loops with several integrators, and voltage-mode converters whose filter resonance drags the phase below −180° can all be conditionally stable. Remedies include clamping or resetting integrators, limiting how fast a reference may change, and compensation that keeps the phase above −180° wherever the gain exceeds 0 dB.

The Nichols Chart

The Nichols chart plots loop-gain magnitude in decibels against phase in degrees as a single curve, with frequency marked along it. Nathaniel B. Nichols developed it for servomechanism design, and it was published in 1947 in Theory of Servomechanisms, volume 25 of the MIT Radiation Laboratory Series. The chart has three useful properties:

  • A change in loop gain slides the curve vertically without changing its shape, and a compensator adds its decibels and degrees point by point.
  • The critical point −1 becomes the point at 0 dB and −180°. The phase margin is the horizontal distance from the curve's 0 dB crossing to −180°, and the gain margin is the vertical distance below 0 dB where the curve crosses −180°.
  • With unity feedback the closed-loop response L/(1 + L) depends on L alone, so the chart carries contours of constant closed-loop magnitude and phase; the highest magnitude contour the curve touches gives the closed-loop peak. With a constant feedback factor β, the contours give the response relative to its ideal value 1/β.

The 0 dB closed-loop contour, where |L| = |1 + L|, is the vertical line through −1/2 on a Nyquist plot, and on the Nichols chart it passes through −6.02 dB at −180°. One exact relation ties margin to peaking. At crossover |L| = 1 and the phase is −180° plus the phase margin PM, so |1 + L| = 2 sin(PM/2), and the closed-loop magnitude at that frequency is

|T(jωc)| = 1 / [2 sin(PM/2)]

Closed-loop magnitude at the gain crossover frequency with unity feedback
Phase margin (degrees) |T(jωc)| dB
301.935.72
451.312.32
601.000.00
900.707−3.01

The closed-loop peak can be no lower than this value, so a loop with a 45° margin peaks by at least 2.3 dB. For the position loop above, with its 47.4° margin, the formula gives 1.90 dB, and the computed closed-loop peak is also 1.90 dB, at 38.4 rad/s. The chart does not show encirclements, so a loop with right-half-plane poles still needs the Nyquist count.

Measuring a Loop Response

No model contains every parasitic, so a loop that matters should be measured. Opening a high-gain loop would upset its operating point and saturate it, so instead a small sinusoid is injected at one point with the loop closed, and the loop gain is computed from the voltages on either side of that point.

Voltage Injection

A small resistor is inserted in series with the loop, and an analyzer's source drives a voltage across it through a wideband injection transformer, which isolates the source from the circuit's DC operating point. Call vx the voltage on the side that feeds the rest of the loop and vy the voltage on the side that the loop drives. Because the loop inverts once by design, the loop gain is

T ≈ −vy/vx

An analyzer that displays vy/vx shows −T, whose phase exceeds that of T by 180°, so the displayed phase at crossover equals the phase margin. OMICRON Lab's application note "DC/DC Converter Stability Measurement" (Bode 100, version 3.3, 2018) makes the same point: in this measurement the phase margin is read from the 0° line, not from −180°.

The measured value, Tv = −vy/vx, equals the loop gain only approximately. R. D. Middlebrook analyzed the method in "Measurement of Loop Gain in Feedback Systems," published in the International Journal of Electronics in 1975. Model the stage that drives the injection point by its output impedance Z1 and the stage it feeds by its input impedance Z2. Tv then relates to the true loop gain T, which includes the loading of Z2 on Z1, by

Tv = T(1 + Z1/Z2) + Z1/Z2

Two conditions make Tv close to T: |Z1| much less than |Z2|, and |T| much greater than |Z1/Z2|. The second matters above crossover, where |T| is small and Z1/Z2 sets a floor on what can be measured. OMICRON Lab's information note "Loop Gain Measurement" (version 1.1, 2017) states both conditions and derives them following Erickson and Maksimović's Fundamentals of Power Electronics. A current-injection measurement at the same point, defined with the same sign convention, gives Ti = T(1 + Z2/Z1) + Z2/Z1, and combining the two removes the approximation, because T = (TvTi − 1)/(Tv + Ti + 2) exactly.

Choosing the Injection Point

Choose a point where the loop has a single path, so that no signal bypasses the injection, and where a low source impedance drives a high input impedance. In a regulator that point usually lies between the output node and the top of the feedback divider, where, in OMICRON Lab's DC/DC note, milliohms of output impedance face kilohms in the divider and compensator; its information note adds that high-impedance inputs, such as op-amp inputs, are generally suitable. Check |Z1/Z2| at the highest frequency of interest, as the op-amp example below shows.

Setting Up the Measurement

  • Injection resistor: Keep it small against Z2 so that it does not change the circuit. OMICRON Lab uses 10 Ω and describes that value as generally suitable for voltage regulators and DC/DC converters.
  • Injection level: Keep every stage linear. Where |T| is large, almost the whole injected voltage appears at the output node, and vx becomes tiny and noisy. In OMICRON Lab's DC/DC note, −20 dBm left the result noisy below about 1 kHz, where the loop gain was 60 dB, so the authors raised the level to 0 dBm at the low end of the sweep only; at an 80 mA load, −18 dBm gave erroneous large-signal results. A valid result does not change when the level is lowered.
  • Receiver bandwidth: A narrow bandwidth rejects switching ripple and noise at the cost of sweep time; the same note sweeps from 100 Hz to 200 kHz with a 30 Hz bandwidth.
  • Probes: Use matched probes with short ground leads; with both on the same node, the ratio should read 0 dB and 0°.
  • Load and operating point: Use a resistive load, since the note warns that an electronic load's own control loop can interfere, and measure across the full range of line and load. On an LT1976 buck converter demonstration board, OMICRON Lab measured 83.1° of phase margin with a 12 V input but 37.7° with 5 V, both at 1 A.

Frequency response analyzers, also called gain-phase analyzers, and low-frequency vector network analyzers make these measurements, as Power Analysis Platforms describes. A circuit simulator uses an ideal AC source in series with the loop, under the same impedance conditions.

Worked Example: An Op-Amp Loop

A model op-amp has the open-loop gain

A(s) = 100,000 / [(1 + s/ωp1)(1 + s/ωp2)]

with poles at 10 Hz and 2 MHz, so its gain-bandwidth product is 1 MHz, and an open-loop output resistance Ro of 100 Ω. It drives a load capacitance CL, and a feedback network with an impedance much larger than Ro returns a fraction β of the output. The load adds a pole inside the loop:

L(s) = A(s)β / (1 + sRoCL)

Real op-amps have more complicated output impedances, so the numbers illustrate the method rather than any part.

  1. Draw the open-loop gain. The asymptote is flat at 100 dB to 10 Hz, falls at 20 dB per decade through 0 dB at 1 MHz, and steepens to 40 dB per decade above 2 MHz.
  2. Subtract the noise gain. In decibels the loop gain is the open-loop gain minus the noise gain 1/β, so the crossover lies where the open-loop curve meets the horizontal 1/β line: 0 dB for a follower and 20 dB for a noninverting gain of 10. Without a load, the follower crosses over at 910 kHz with 65.5° of phase margin, and the gain-of-10 amplifier at 99.9 kHz with 87.1°.
  3. Add the load. A 10 nF load puts a pole at 1/(2πRoCL) = 159 kHz. Above it the follower's asymptote falls at 40 dB per decade, as (1 MHz/f)(159 kHz/f), and crosses 0 dB at √(1 MHz × 159 kHz) = 399 kHz, where the phase leaves a margin of about 10°.
  4. Read the exact curve. The crossover is at 380 kHz and the phase margin 12.0°. Because the 10 Hz pole already contributes almost −90°, the phase reaches −180° where arctan(f/2 MHz) + arctan(f/159 kHz) = 90°, at f = √(2 MHz × 159 kHz) = 564 kHz; the magnitude there gives a gain margin of 6.7 dB.
Loop gain of the follower with a 10 nF load
Frequency Asymptote (dB) Exact magnitude (dB) Exact phase (degrees)
1 kHz60.0060.00−89.8
10 kHz40.0039.98−93.8
100 kHz20.0018.54−125.0
159 kHz15.9612.93−139.5
380 kHz0.860.00−168.0
564 kHz−6.02−6.69−180.0
1 MHz−15.96−17.04−197.5
Margins of the model op-amp loop, with the closed-loop peak measured relative to the ideal gain 1/β
Configuration Crossover Phase margin Gain margin Closed-loop peak
Follower, no load910 kHz65.5°Phase never reaches −180°None
Follower, 1 nF822 kHz40.4°11.1 dB3.4 dB
Follower, 10 nF380 kHz12.0°6.7 dB13.7 dB
Gain of 10, 10 nF87.5 kHz58.7°26.7 dB0.4 dB
Follower, 10 nF, 50 Ω isolation resistor403 kHz55.1°Phase never reaches −180°1.8 dB at the op-amp output; 0.1 dB at CL

Raising the noise gain moves the crossover below the load pole, which is why an amplifier that rings as a follower can be well behaved at a gain of 10. An isolation resistor Riso between the output and the capacitor, with feedback taken from the op-amp side, makes the load factor (1 + sRisoCL)/[1 + s(Riso + Ro)CL]: with 50 Ω the pole drops to 106 kHz, but a zero at 318 kHz restores the phase near crossover. The price is a capacitor voltage that lags outside the loop and, with any DC load current, a drop across Riso.

The loop also shows an injection point that fails. Between the op-amp output and the load, Z1 is the 100 Ω output resistance and Z2 the capacitor, 159 Ω at 100 kHz and 42 Ω at crossover. By Middlebrook's relation, the measured phase at 100 kHz would read −93.0° instead of −125.0°, and the magnitude at 380 kHz would read −5.9 dB instead of 0 dB. At the inverting input the output node drives the op-amp's input capacitance instead; taking that as 5 pF, |Z1/Z2| at 380 kHz is below 0.001.

Worked Example: A Buck Converter Voltage Loop

A voltage-mode buck converter makes 3.3 V from 12 V, switching at 500 kHz. Its output filter has L = 4.7 µH and C = 47 µF, the effective value of ceramic capacitors under DC bias, with 3 mΩ of ESR and 20 mΩ of series resistance r in the inductor and switches. The load R is 1.1 Ω (3 A) or 33 Ω (0.1 A), and the PWM ramp VM is 1 V peak to peak. Well below the switching frequency, the averaged control-to-output transfer function is

Gvc(s) ≈ G0(1 + s/ωesr) / [1 + s/(Qω0) + s202]

with G0 = VinR/[VM(R + r)] = 11.8 (21.4 dB) at full load and Q ≈ 1/[ω0(L/R + (r + RESR)C)], which is 2.8 at full load and 12 at light load. The resonance f0 is 10.8 kHz at full load, close to 1/(2π√(LC)) = 10.7 kHz. The ESR zero, at 1.13 MHz, lies beyond the range of interest.

A type III compensator, including the feedback divider, has

Gc(s) = (ωI/s)(1 + s/ωz1)(1 + s/ωz2) / (1 + s/ωp)2

with zeros at 5.4 kHz and 10.8 kHz, a double pole at 250 kHz, half the switching frequency, and ωI = 12,900 s−1, which sets the crossover at 50 kHz, a tenth of the switching frequency. The error amplifier supplies the loop's inversion. Switching Converter Control covers how such placements are chosen; the task here is to draw and read the loop gain T(s) = Gc(s)Gvc(s).

  1. Low frequencies. The integrator and G0 give |T| ≈ ωIG0/ω = 152,000/ω, which is 47.7 dB at 100 Hz and falls at 20 dB per decade.
  2. First zero. At 5.4 kHz the asymptote levels off at 152,000/(2π × 5,400) = 4.48, or 13.0 dB.
  3. Second zero and resonance. At 10.8 kHz the zero adds +20 dB per decade and the LC pair −40, so the asymptote falls at 20 dB per decade and reaches 0 dB at 10.8 kHz × 4.48 = 48.4 kHz.
  4. Double pole. Above 250 kHz the slope steepens to −60 dB per decade.
  5. Correct at the resonance. At 10.8 kHz, add 20 log102.8 = 8.9 dB for the pair, 3.0 dB for the zero at its corner, and 1.0 dB for the zero an octave below, 12.9 dB in all.
  6. Sum the phase. The integrator contributes −90°, the zeros add up to 180° of lead, the LC pair removes 180° around 10.8 kHz, and the double pole takes phase away from about 25 kHz upward.
Loop gain of the voltage-mode buck converter; the asymptote uses the full-load values
Frequency Asymptote (dB) Full load (dB) Full load (degrees) Light load (dB) Light load (degrees)
100 Hz47.747.7−88.647.8−88.5
1 kHz27.727.9−76.528.1−75.1
5.4 kHz13.019.3−34.019.7−23.8
10.8 kHz13.025.9−76.238.6−87.3
20 kHz7.711.7−126.412.0−138.1
50 kHz−0.30.0−123.80.0−127.4
100 kHz−6.3−7.4−135.6−7.4−137.3
250 kHz−14.3−20.1−170.3−20.0−171.0

At full load the loop crosses over at 50.0 kHz with a phase margin of 56.2°, and at light load at 50.2 kHz with 52.6°. Above the resonance the power stage's gain approaches G0ω022, independent of load, so the crossover barely moves; the load changes the resonance instead. At light load the phase falls to −146° at 13.5 kHz, where the loop gain is still 22 dB. The phase reaches −180° only near 315 kHz, above half the switching frequency, where the averaged model fails, so a gain margin must come from measurement. At a 6 V input G0 halves, and the crossover falls to about 29.5 kHz, with margins of 56.1° at full load and 49.6° at light load.

Moving both zeros up an octave, to 10.8 kHz and 21.6 kHz, and retuning ωI for the same crossover shows how a resonance creates conditional stability. The phase margin drops to 39.0° at full load and 35.5° at light load. At light load the phase also crosses −180° at 12.3 kHz and 15.1 kHz, where the loop gain is 31.9 dB and 22.0 dB. The loop is stable, because both crossings of the negative real axis lie beyond −1 and cancel, but losing between 22 and 32 dB of loop gain would make it unstable.

On the bench, inject through a 10 Ω resistor between the output node and the top of the divider, where the output capacitor's 68 mΩ at 50 kHz faces kilohms, and sweep from about 100 Hz to just below 250 kHz. An analyzer that displays vy/vx should read a phase of about 56° at the 50 kHz crossover at full load.

Summary

A Bode plot shows loop gain as magnitude and phase against logarithmic frequency. Its asymptotes add factor by factor and err by 3 dB at a real corner and by 20 log10Q at a complex pair, while a time delay adds phase lag without changing the magnitude. For a minimum-phase loop the magnitude slope implies the phase, which is why a crossover at −20 dB per decade is well damped; right-half-plane poles and zeros and delays break that link.

A Nyquist plot shows the same data as a curve around −1, and Z = N + P turns its encirclements into a count of unstable closed-loop poles. It handles what simple Bode readings miss: open-loop unstable plants, multiple crossovers, and conditionally stable loops. The Nichols chart reads closed-loop peaking directly. On the bench, voltage injection measures the loop while it stays closed, provided the injection point has a low source impedance and a high load impedance and the injected level keeps the loop linear.

Related Topics