# Closed loop control ZVS buck converter

I have a buck converter of 400 V input, 200 V output, 300 kHz switching frequency, power output 100 W. I am trying to put it into closed loop voltage mode control. It is working DCM mode. Modelling the open loop circuit in MATLAB, I got to know that a simple gain of 0.25 in the feedback path would meet the settling time, gain crossover frequency (one-tenth of 300 kHz) and Phase margin requirements (> 45°).

So I tried to simulate this using Pspice. But I am not getting this to work properly. I did add a shoot-through prevention circuitry, and later removed it as it did not switch on either MOSFET. In the below circuit, it is switching on, but it does so after some time. Why is this happening? The pulses are being produced after some time, but I cannot get why.

Also, these pulses produced are "shifted", please see the sawtooth waveform which is being compared to the OPAMP positive input, it looks shifted.

Although LM318 is a bipolar supply OPAMP, giving it a negative supply of -5V or -12V gives manny error messages in the simulation. So I grounded its negative supply terminal.

What is going wrong in my simulation?

This figure shows (red) Output voltage, (black) output voltage taken from the voltage divider.

Shifted pulses

• 1st your feedback gain is 0.25 x 1/5 = 0.05. Then you have some weird combination, the LM318 acts as a comparator, but as positive feedback - it should open switch U1 when the output voltage is higher that setpoint, which is wrong. The circuit is not understandable ,since there are undcumented blocks E1,E2, other opamp pins voltages, etc... Why would you use a special and obsolete opamp instead of using a comparator? The circuit also has nothing to do with ZVS and resonant-converter as marked in tags. – Marko Buršič May 12 at 8:15
• @MarkoBuršič The E thingies are voltage controlled voltage sources, but you're right about the ZVS -- nothing in there resembles anything like it. – a concerned citizen May 12 at 8:18
• Supply voltage range for LM318 is min. +/-5V to max. +/-20V, nominal +/-15V. You don't provide correct supply voltage, and the V4 has wrong polarity. – Marko Buršič May 12 at 8:26
• @MarkoBuršič The open loop circuit works in ZVS, the high side device is the one which has ZVS. – SM32 May 12 at 8:51

That's the transient moment and it's normal to happen. At the time of the first turn on, the only load the source sees is the load plus the LC filter, which means you have a step function. By the time the rest of the circuit comes alive, the RLC network will respond with its natural response. In this case, you have ω = 47.67 kHz and Q = 83.9, which means that due to the very high Q the step response will show oscillations. But since this is a nonlinear circuit that ensures the current flow goes in one direction, only, the capacitor will charge with this peak voltage and then it discharges in the load. Since the RC time constant, 1.76 ms, is much greater than the switching frequency, 3.3 μs, the discharge is slow. All the loop can do at this point is to turn off the switching, since that is the fastest way the load can discharge (any switching eans current flowing from the source). Not lastly, you'd be better off using a comparator instead of an opamp, and your title (ZVS) has nothing to do with the circuit.

• Thanks, the open loop circuit does work in ZVS (the high-side MOSFET),that's why I wrote ZVS. – SM32 May 12 at 8:55
• Well, the sync-rectified DCM buck will work in ZVS for the upper switch if you synchronize the turn-on with the valley voltage across the drain-source of the upper switch. It is usually done by implementing borderline or boundary conduction mode (BCM) type of control but I don't see that in your circuitry. – Verbal Kint May 12 at 9:29

You oversimplified the buck converter in its topology. This is how it should look like:

souce of the image

There is an error amplifier K*(Vref-Vout) with all the filters. This error signal then drives the modulator. What you have is only a non working modulator, which is feed by unfiltered output signal. So it misses crucial parts.

• Thanks, but since I need just a gain 0.25, I don't need a type 3 compensator right? I did use an inverting opamp at first to do this, but it made things worse, so I chose to use a gain block (U6) and then an opamp which would give the pulses. – SM32 May 12 at 8:54
• I don't see how a gain of 0.25 will do the job. Remember, no gain, no feedback. You need gain a) at resonant frequency to damp the small-signal output impedance and b) in dc to reduce the static error. You have to resort to a type 3 compensator for this purpose. Honestly, PSpice is not well suited for these simulations. Have a look at my free automated SIMPLIS templates here and most of them work on the demo version Elements. – Verbal Kint May 12 at 9:26