LTspice tool for power amp power supply component evaluation

It's lonely in here!

I thought I'd post something that might be useful if you're evaluating power supply components for a power amp. It's an LTspice simulation that allows you to enter some simple transformer and filter capacitor parameters, specify a sinusoidal or other current to be delivered to a load, and look at things like ripple on the supply voltage, sag in output voltage with load, primary RMS current for specifying fuses and so on.

The model for the transformer assumes two secondaries with a center tap. It makes use of two simple ideal transformers with primaries in parallel and secondaries in series. It's meant to be fairly simple and fast to simulate, so there's no transformer saturation effects or inductance taken into account. The output voltage drop under load is modeled as a simple resistor in each secondary. All component values, peak output currents, line frequency, output frequency, etc. are specified in .PARAM statements so that individual element values don't need to be tediously specified. Each .PARAM statement has a comment explaining what it is and its units.

Here's how it works. First, find the specification of a transformer you're thinking of using. Calculate the turns ratio N as the ratio of the no-load output voltage of a single secondary to the primary voltage at which this is specified. Specify N in the corresponding .PARAM statement. Next, find the value of transformer output resistance Rs by taking the change in transformer output RMS voltage delta_v from no-load to a specified RMS load current Irms. Transformer vendors assume a resistive load and no rectifier here, such that the load current in this case is sinusoidal. Then Rs = delta_v/Irms. Enter this in the .PARAM statement. Then enter the estimated filter capacitor value.

The peak load current and its frequency are specified by Ipeak and sigfreq respectively. The total quiescent current IQ in the output stage can be specified. The sneaky part of the simulation is the calculation of the current drawn from each supply. These currents are computed by nonlinear current-controlled current sources which use the table() function. For peak load currents less than or equal to twice IQ, the currents drawn from each supply will be sinusoidal. This assumes push-pull operation, and by specifying a large IQ, a class A amp can be simulated. There are two simulation files, one for unbalanced and the other for balanced amps. For the unbalanced amp where the peak load current is much larger than the quiescent current, each supply current is essentially a half-wave rectified signal. The corresponding case for a balanced amp gives a full-wave rectified current on each supply. The diode parameters were modified from an OnSemi part I found, such that they match a good 35A bridge rectifier.

There's also a third simulation file called "Ramp_table_if.asc". This is just an example from the Yahoo LTspice group that explains how the table() function works for nonlinear controlled sources. The file "Rectifier_bal.asc" is for a balanced amp, and "Rectifier_unbal.asc" is for unbalanced.

Last edited by andy_c; 23rd August 2009 at 04:14 PM.

That table thing looks very useful and flexible. I usually use the min(x, y) and max(x, y) functions for that kind of thing, but this looks more flexible.

The table() is a bit weird because the output value is assumed constant outside the range of the table points. That's why I put that silly 1000A limit point in there. But you can see from the Yahoo group example that it's not nearly as messy as multiple nested if() functions.