13
\$\begingroup\$

I am trying to understand switch-mode power supply fundamentals through a simulation in LTSpice.

I wanted to build an excruciatingly simple boost converter circuit following a teaching model often given in textbooks, but I can't get this thing to behave at all as I expect it to, probably because things are very different in practice :)

Here is the schematic diagram exported from LTSpice (note that it uses ISO symbols; the component on the right is a resistor):

enter image description here

The supply voltage is 5V and I am seeking to increase it to 12V with a load current of 1A, or an output power of 12W. I selected a switching frequency of 20kHz. By my math, I need a duty cycle of 0.583 to do this, so the on time should be 29.15 µs. Assuming an efficiency of 0.90, the input power will be 13.34W and the input current 2.67A.

Assumptions that may be getting me into trouble:

  • Perhaps the efficiency is totally unrealistic for a design this simple and my input current is much higher than I expect.
  • Initially I didn't care much about ripple so I just picked the inductor and capacitor randomly.
  • Maybe the switching frequency was too small.

I ran the simulation with a time of 10ms (should be visible in the graphic).

What I expected to see is a voltage of 5V, perhaps with a slight ripple, at point 2 (between the inductor and the NMOS) and a voltage of 12V with a ripple at point 3 (between the diode and the capacitor).

Instead, what comes out is what looks like total chaos -- I get a peak voltage of 23V that oscillates around 11.5V at point 2 and a slightly lower peak voltage of just over 22.5V that oscillates around 17V at point 3:

20kHz

On the hunch that my switching frequency might be too low, I tried increasing it to 200kHz (T=5µs, Ton=2.915µs) and now I get something more like what I was looking for, which is a peak voltage of 12.8V at point 2 (oscillating between that and 0V) and a peak of 12V at point 3 (oscillating about 11.8V):

200kHz

There was significant ripple in the voltage. I tried increasing the size of the inductor to 100µH but all it seemed to affect was the startup oscillation. So I increased the capacitance to 10µF, and that seemed to work, the voltage oscillation at point 3 is much smaller. The image above is the result with a 10µF capacitor.

My questions, then, are:

  • what is wrong with my original model?
  • is 20kHz a completely unrealistic switching frequency (seems strange that it would be)?
  • if I wanted a 20kHz switching frequency, what do I have to change to make the circuit work as expected? A much bigger inductor?
  • is it normal for the voltage on the input side to be similar to the voltage on the output side when the circuit has reached steady-state?
  • what equation should I use to size the capacitor?
\$\endgroup\$
  • 1
    \$\begingroup\$ Sounds like the pulses are saturating the inductor at the lower frequency. \$\endgroup\$ – Ignacio Vazquez-Abrams Sep 10 '12 at 1:43
  • \$\begingroup\$ That means I need a much larger inductance, right? \$\endgroup\$ – Stephen Bosch Sep 10 '12 at 2:01
  • 1
    \$\begingroup\$ Can an (ideal) inductor get saturated in Spice? \$\endgroup\$ – jippie Sep 10 '12 at 2:34
  • \$\begingroup\$ Nope. It cannot saturate. \$\endgroup\$ – Adam Lawrence Sep 10 '12 at 3:12
  • 1
    \$\begingroup\$ Just a quick comment: if you're only interested in general behaviour, then it's much faster to use SW instead of NMOS (.model sw sw(ron=10m vt=0.5), and D with a simple .model d d(vfwd=0.2 ron=50m) card added on the schematic. Using "real-life" components requires larger matrix calculations and, possibly, additional snubbers. A few cents, that's all. \$\endgroup\$ – Vlad Sep 10 '12 at 13:28
20
\$\begingroup\$

enter image description here

Your boost is operating in discontinuous conduction mode or DCM (inductor current goes to zero each switching cycle). The duty cycle becomes a function of load as well as the duty cycle. If you increase the load, the inductor value, or switching frequency, you'll reach a point where you'll see your regulation where you expect it - this is called CCM, or continuous conduction mode. The inductor current doesn't fall to zero, but continuously flows. Your duty cycle formula will be valid here.

20 kHz is very slow for a boost converter. 14A peak inductor current is also unrealistic. Most PFC boost converters operate from 70 to 100 kHz. Lower frequency converters generally need larger inductors. If you want to achieve CCM at 20kHz, you'll need a much larger boost inductance value. Try 470uH in your simulation and you'll see the voltage closer to 12V. (If you had a controller in your model, it would automatically adjust the duty cycle to achieve 12V regardless of CCM or DCM operation).

Because your converter is so heavily into DCM, the switching node voltage resembles the output voltage. If you get closer to CCM, you'll see a clearer picture.

For this simulation, the capacitor is sized such that the switch on-time voltage sag (caused by the load) isn't excessive. In real life, there are other parameters that matter (overall loop stability, ripple current and life rating) that you must consider, along with proper MOSFET choice, reverse recovery and softness of the boost diode...

\$\endgroup\$
  • 1
    \$\begingroup\$ +1 - nice answer. I'd increase the output cap to 47uF or higher also. \$\endgroup\$ – Oli Glaser Sep 10 '12 at 3:41
8
\$\begingroup\$

With the components values that you have selected it is indeed more suitable to run with the 200kHz frequency. Even at 200kHz I find that a more suitable output capacitor may be more like 33 or 47uF.

If you are using an ideal inductor with no equivalent series resistance specified then I would suggest that you try one of the realistic inductors from the LTSpice library such as the Coiltronics CTX10-3. That one has a DCR of 0.028 ohms. That will help to reduce the initial surge of the startup current.

Also note that a realistic design with an actual switching VR controller would have a soft start feature that gradually brings the PWM duty cycle up to its operating level without the huge initial surge. Also a controller would monitor output voltage via a divider and compare it to a reference to continually adjust the PWM duty cycle thus regulating the output voltage.

\$\endgroup\$
7
\$\begingroup\$

I've also had problems with this circuit in LTspice. I don't think my problem was exactly the same as yours but this is the only decent result when searching for "ltspice boost converter" so I'll put my answer here.

Here are the things I did wrong:

  1. I used the generic "nmos" model. It doesn't work. I don't know why but it seems like it has a really high resistance even in the on state which is weird. Anyway, the way to fix it is to place the generic nmos, then right click it and click "Pick new transistor", then choose one from the list, e.g. IRFP4667.

  2. My filtering capacitor was way too big. This means the output voltage takes on the order of seconds to settle (fine in real life, but annoying in a simulation).

Here is my final circuit:

boost converter circuit

Details (probably not critical):

  • I gave the 5V voltage source a series resistance of 1 ohm.
  • The inductor has a series resistance of 6 ohms.
  • Pulse train parameters are Ton = 8us, Toff = 2us (T=10us; 100 kHz).

If anyone knows why the standard nmos model doesn't work let me know!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.