Help with simulation of buck converter


I have been trying to solve issues with running the NGspice all the way till the end. It fails intermittently at different locations. I tried to keep the circuit clean and not use any vendor libraries. Can any one take a look and help me why I am not able to run it all the way. (626.6 KB)

Bumping this up. Hope that i was clear in my explanation

I work with switching power converters including buck converters. I have been using LTSpice for the last 2 years but I am not a simulation expert. I have never used NGSpice.

It looks like you have a discrete sort of buck controller (as in op amps and comparators rather than a commercial buck conversion IC.) I have “rolled my own” power conversion controllers although it has been 25-30 years. When I did this, I went from paper to breadboard without using commercial simulation. I have brute-force calculated waveforms using a spreadsheet (for example) and I suppose that is a sort of simulation.

A couple of things about LTSpice: It seems that having input voltage present at T=0 seems to often cause problems. Best to have the input source step up after T=0 for some reason. Also when using a current source as a load, it helps to tick the “load” box so that it can only absorb power and not provide it.

I am not sure what is gear integration. But maybe trying trapezoidal integration might help (if there is such an option.) LTSpice offers gear, trapezoidal, and modified trapezoidal.

EDIT: For me (and maybe for many other engineers) I would much prefer to design something rather than reverse engineer it. Sometimes I have designed something a few years ago, and it works…and I look at it now and say “how does that work?”

I wonder if it might help your cause if you describe your circuit somewhat so we know how you expect it to work.

Hi Bob,

Thank you for your comments. I am trying to make a synchronous buck converter with the ability to adjust the dead time. I also plan to use GaN based switches after successfull simulation with SI. This demands very fast slew rate on the IO. Hence the custom PWM generation.

In todays market, there are digital controllers with 150Ps resolution. Granted, I cannot simulater an entire DSP, but just the PWM portion of it.

Hope this helps.

After some modifications to models and simulator options I have got some simulation:

Comparator line 2
ECOMP 3 0 TABLE {V(1,2)} = (-1uV 1nV)(1uV, 3.3V)

GenOpAmp, line 20
.model Dlimit D N=0.01 RS=10

Eeschema text box
.options method=gear chgtol=1e-10 reltol=0.1 rshunt=10G rseries=0.0005 cshunt=1p trtol=1

Check ‘Use initial conditions’
Uncheck ‘Save all currents’ in tran sim setup window.

10 million time points have to be stored, this requires 10 GB of memory.

Thank you Holger. It works now.

Holy smokes. The ADI controller I have been working with most recently has a non-overlap dead time in the range of 100-200 nSec. I can step outside and check the weather during that time. :smiley:

1 Like