Skip to content
RFrftools.io
Power ElectronicsMarch 1, 20265 min read

SMPS Buck Converter Stability: Monte Carlo Tuning

A 12 V to 5 V buck through the SMPS Control Loop Stability Analyzer: phase margin, Monte Carlo yield, and why a ceramic output capacitor breaks a stable loop.

Contents

The Problem With "Good Enough" Component Values

You've done the steady-state math. Your 12 V → 5 V, 2 A buck converter produces the right output voltage, the inductor ripple is within spec, and the output capacitor keeps ripple voltage low. On paper it looks clean.

Voltage-mode control with a Type III compensator has seven tunable parameters, and steady-state analysis says nothing about loop stability. Before you spin boards you need the phase margin and gain margin — and you need to know how the loop behaves when the parts arrive 20 % off nominal, or when somebody changes the output capacitor in a cost-down a year later.

That's what the SMPS Control Loop Stability Analyzer is for.

Setting Up the Nominal Design

The design is an IoT gateway rail: 12 V in, 5 V out, 2 A. These are the tool's default values:

ParameterValue
TopologyBuck
Control modeVoltage mode
V_in / V_out / I_out12 V / 5 V / 2 A
L47 µH
C220 µF
ESR50 mΩ
F_sw100 kHz
V_ramp1.0 V
CompensatorType III, K = 2000
f_z1 / f_z2500 Hz / 1500 Hz
f_p1 / f_p220 kHz / 50 kHz
The analyzer builds the plant from the state-space-averaged model of the buck — including the ESR zero and the load's damping of the LC resonance — and reports:
ResultValue
Crossover frequency13.66 kHz
Phase margin77.3°
Gain margin∞ (the phase never reaches −180°)
Comfortably inside the usual targets of 45° phase margin and 10 dB gain margin. Crossover sits at 13.7 % of FswF_{sw}, well below Fsw/2F_{sw}/2 — the tool only reports margins when the crossover is below Fsw/2F_{sw}/2, because above it neither the averaged model nor the real converter behaves like a linear loop.

The LC Double Pole and the ESR Zero

The output filter puts a double pole at

fLC=12πLC=12π47 μH⋅220 μF=1.57 kHzf_{LC} = \frac{1}{2\pi\sqrt{LC}} = \frac{1}{2\pi\sqrt{47\,\mu\text{H} \cdot 220\,\mu\text{F}}} = 1.57\ \text{kHz}

where the plant phase heads toward −180°. The Type III compensator's two zeros at 500 Hz and 1500 Hz bracket it and recover phase before crossover; the two poles at 20 kHz and 50 kHz roll the gain off again above it.

The capacitor's ESR adds a zero of its own:

fESR=12π⋅ESR⋅C=12π⋅0.05 Ω⋅220 μF=14.5 kHzf_{ESR} = \frac{1}{2\pi \cdot ESR \cdot C} = \frac{1}{2\pi \cdot 0.05\ \Omega \cdot 220\,\mu\text{F}} = 14.5\ \text{kHz}

That is almost exactly at the crossover. At crossover it contributes about 43° of phase boost — atan(13.66/14.47) — and this design depends on it.

Running the Monte Carlo

Configure the tolerances:

ParameterValue
MC trials200,000
Inductor tolerance±20 %
Capacitor tolerance±20 %
ESR tolerance±50 %
Load tolerance±30 %
DistributionGaussian (3σ = tolerance)
Yield is the share of trials with phase margin ≥ 45° and gain margin ≥ 10 dB. Result:
StatisticValue
Yield100.0 %
Phase margin, mean ± σ76.6° ± 4.8°
Worst trial47.7°
The design is robust. The one-at-a-time sensitivity ranks the parameters by how much each spreads the phase margin on its own: ESR 4.3°, capacitance 2.1°, inductance 0.5°, load 0.1°. ESR matters most, because the loop relies on the ESR zero.

Where It Actually Breaks: The Ceramic Cost-Down

A year after release, someone replaces the 220 µF electrolytic with 220 µF of MLCCs — smaller, cheaper, lower ripple. Model it by setting ESR to 5 mΩ and leaving the compensator alone:

ResultElectrolytic, 50 mΩCeramic, 5 mΩ
Crossover13.66 kHz11.01 kHz
Phase margin77.3°44.4°
Gain margin∞19.5 dB
MC yield100 %44.9 %
Worst trial47.7°31.8°
The ESR zero moved from 14.5 kHz to 145 kHz, far above crossover, and took about 33° of phase margin with it. Nominally the loop is still stable, but fewer than half the boards meet 45°, and the worst ones ring hard after a load step. Nothing about the "better" capacitor looks dangerous on a BOM review.

The Fix: Re-tune the Compensator, Not the Parts

With the ESR zero gone, the compensator has to supply that phase itself. Move the zeros closer to the LC pole and the first pole out of the way:

CompensatorCeramic, originalCeramic, re-tuned
f_z1 / f_z2500 / 1500 Hz800 / 1200 Hz
f_p1 / f_p220 / 50 kHz40 / 50 kHz
K20002000
Crossover11.01 kHz9.66 kHz
Phase margin44.4°59.4°
MC yield44.9 %100.0 %
Worst trial31.8°51.3°
Crossover drops a little, from 11 to 9.7 kHz, and every trial clears 45°. The spread also tightens (σ = 1.3° against 4.8° for the electrolytic design) because the loop no longer hinges on a component parameter as loose as ESR.

What to Watch on the Bode Plot

The ESR zero's position. If it sits near crossover, the design depends on it. Document the capacitor type and ESR range in the BOM notes so a cost-down cannot swap it silently. The RHP zero. A buck converter in voltage mode has none. Switch the topology to boost or buck-boost and the analyzer adds the right-half-plane zero at D′2R/(DL)D'^2R/(DL), which caps the crossover you can achieve and moves down as load current rises. Gain margin and the Fsw/2F_{sw}/2 limit. Push K up far enough and the loop gain is still above 0 dB at half the switching frequency. The analyzer then reports no margins at all, and says why, instead of quoting numbers from a model that no longer applies.

Summary

The default buck design is robust: 77.3° of phase margin and 100 % Monte Carlo yield with ±20 % capacitors. The risk is not the tolerance of the part you chose — it is the part somebody chooses later. A ceramic output capacitor cuts the yield to 44.9 % with the same compensator. A two-minute re-tune restores 59° and 100 % yield.

Run the Monte Carlo on every capacitor option you might ever build with, not just the one on today's BOM.

Updated 2026-09-19. An earlier version of this article quoted an 8 kHz crossover, 52° phase margin and a 71 % Monte Carlo yield for the default design; the analyzer does not produce those figures. The numbers above come from the current tool. SMPS Control Loop Stability Analyzer

Frequently Asked Questions

The usual targets are a phase margin above 45° and a gain margin above 10 dB. The analyzer's default 12 V to 5 V buck reaches 77.3° at a 13.66 kHz crossover with infinite gain margin.
f_LC = 1/(2π√(LC)). For 47 µH and 220 µF this is 1.57 kHz, where the power-stage phase heads toward −180°. The output capacitor's ESR adds a zero at 1/(2π·ESR·C) — 14.5 kHz for 50 mΩ and 220 µF.
The electrolytic's ESR puts a zero near crossover that supplies phase margin. A ceramic capacitor's ESR is ten times lower, which moves that zero a decade higher, out of the loop's bandwidth. In the analyzer's default design, phase margin falls from 77.3° to 44.4° and Monte Carlo yield from 100 % to 44.9 % unless the compensator is re-tuned.
Bracket the LC double pole so the phase boost peaks near crossover. For the default design (f_LC = 1.57 kHz) zeros at 500 Hz and 1500 Hz work with an electrolytic capacitor; with a ceramic capacitor, zeros at 800 Hz and 1200 Hz and the first pole moved to 40 kHz give 59.4° of phase margin.

Related Articles