Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Stumped with buck converter simulation Pspice

Status
Not open for further replies.

dracarys99

Newbie level 5
Joined
Nov 13, 2020
Messages
10
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
109
I have a synchronous buck converter with the following specs:-
Input voltage 400 V, Output voltage 200 V, Output power = 100 W, L = 100 uH, C = 4.4 uH, switching frequency = 300 kHz.
I need the open loop transfer function of this, and it should be similar to the one I plotted on MATLAB using the transfer function I derived. However, there is something going wrong in my Pspice simulation. The bode plots aren't matching at all, and even the bias points are wrong! The circuit is not wrong I think, because this works with any other buck circuit values giving the correct bias points and bode plots also. Here is the circuit (which works correctly for this one here Duty cycle = 0.5):-
1615054263148.png


But when I change the values to my synchronous buck circuit:-

1615054373501.png


Since it works on all the other circuits (literally any), I'm not sure if it has something to do with the U3 definition. Here it is:-
1615054599843.png


According to my calculated control-to-ouptut transfer function, there should be a 32dB overshoot at 7.57 kHz, I don't get that either in the bode plot from this AC analysis.
Here is the Pspice one:-
1615054755259.png


And here is the MATLAB one using the derived hand-calculated transfer function:-

1615054822804.png


What am I doing wrong?
 

I am sure you know C is in Farads.
The attached shows that with your spec, you are in DCM with 100uH or 62.5uH inductor.
(vin=400v, vout=200v, pout=100w, fsw=300khz)
Did you do calcs for current mode or voltage mode?

According to my calculated control-to-ouptut transfer function,
What did you calculate?, the Control to output txfer function for a buck converter in dcm is a standard known equation, no need to calculate it, unless just for academic exercise.
--- Updated ---

I have also attached for you the control to output txfer function for a Buck
 

Attachments

  • buck 400v 200v 100w.zip
    8.2 KB · Views: 77
  • Buck control to output.zip
    1.3 MB · Views: 100
Last edited by a moderator:

Would you mind to explain where you got the behavioral converter model? I didn't check the achieved frequency response, but regarding bias point, the 400V converter is obviously operating in DCM, respectively Vout > 0.5*Vin. According to behavioral model it's an asynchronous (transistor-diode) converter, transiting between CCM and DCM depeding on load current.
 

I am sure you know C is in Farads.
The attached shows that with your spec, you are in DCM with 100uH or 62.5uH inductor.
(vin=400v, vout=200v, pout=100w, fsw=300khz)
Did you do calcs for current mode or voltage mode?

Yes ofcourse, it should be 4.4uF. The intention is to have high inductor current ripple, but the circuit finally would be "synchronous buck". It works fine in the transient analysis, and I suspected it'd go wrong with the asynchronous averaged switch model. But it works for any other buck circuit values I input, so I got confused.
How would I write the subckt definition for the mosfet-mosfet type model ? (For synchronous buck).
What did you calculate?, the Control to output txfer function for a buck converter in dcm is a standard known equation, no need to calculate it, unless just for academic exercise.
--- Updated ---

I have also attached for you the control to output txfer function for a Buck

I meant that I included the non-idealities like MOSFET ON-state resistance Rdson, ESR of L,C, etc, and got the numerical expression of the transfer function. The final aim is to put this in closed loop, so I first need to get the bode plots of the open-loop, so the Pspice bode plots should ideally match the MATLAB ones.
 

Would you mind to explain where you got the behavioral converter model? I didn't check the achieved frequency response, but regarding bias point, the 400V converter is obviously operating in DCM, respectively Vout > 0.5*Vin. According to behavioral model it's an asynchronous (transistor-diode) converter, transiting between CCM and DCM depeding on load current.

The actual circuit has to be synchronous though. I initially thought too, that this circuit is wrong since this would be for an asynchronous buck, I guess that's why I'm getting the wrong frequency response, bias points etc. I wrote the model definition myself, it does work correctly for other (I guess in CCM only , and asynchronous) circuits.

Could you please help on how I would do it for synchronous? I'm not able to write the model definition for it.
 

Unfortunately I'm not fully understanding your CCM-DCM model, transfer function of CCM converter can be simply modelled by a multiplication with input voltage.

1615109618714.png
 

On full load, the C-to-O/p txfer function will be much the same whether synchronous Buck or non synchronous Buck.
Also, if you use current mode control, then the double pole LC at the output has a pole cancelled out, so you dont get that usual peak due to the L,C resonance.
 

On full load, the C-to-O/p txfer function will be much the same whether synchronous Buck or non synchronous Buck.
Also, if you use current mode control, then the double pole LC at the output has a pole cancelled out, so you dont get that usual peak due to the L,C resonance.
I realized(pretty late) that the MATLAB plot I'd done was a CCM transfer function. I changed it referring to the DCM transfer function from Erickson-Maksimovic Fundamentals of Power Electronics book, but I'm still making a mistake somewhere because the Phase margin is not matching although the crossover frequency is close enough to Pspice. I really need some help with this, thank you.
 

Not clear to me which transfer functions you are comparing now. The "MATLAB" transfer function in post #1 is apparently involving hidden parasitic elements, about 10 mohm capacitor ESR, otherwise the zero at 3 MHz won't happen. Avoid comparing apples with oranges and specify all circuit parameters.

As already mentioned, the derivation of the CCM-DCM model is also unclear. In a transient simulation of the 400V switcher, I got 280 rather than 340 V output bias, thus I think, the model may be incorrect.
 

Not clear to me which transfer functions you are comparing now. The "MATLAB" transfer function in post #1 is apparently involving hidden parasitic elements, about 10 mohm capacitor ESR, otherwise the zero at 3 MHz won't happen. Avoid comparing apples with oranges and specify all circuit parameters.

As already mentioned, the derivation of the CCM-DCM model is also unclear. In a transient simulation of the 400V switcher, I got 280 rather than 340 V output bias, thus I think, the model may be incorrect.
Yes, there was a problem in the model, I fixed it now, and the Pspice simulation is I think, correct. I've added here, the pictures of that.
1615188579929.png


1615188639133.png


Now, for the purpose of having a voltage-mode closed loop control, I need to first get the transfer function of this DCM synchronous buck in MATLAB, so that I can make the compensator. For this, I tried to follow the DCM buck control-to-output transfer function given in Erickson-Maksimovic book on Fundamentals of PE, but I'm going wrong somewhere, becuase it does not match this (PM nearly double at close to the crossover frequency obtained from Pspice). Yes, that tf doesn't consider the ESR of L,C, and that's why I tried to derive it myself, but am still stuck. That's what I need some help with, thank you.
 

Can you post the spice definition of the CCM-DCM1 subcircuit? Should be fairly easy to make it operate as a synchronous converter with forced CCM.

Keep in mind, when using the CCM-DCM1 model, it has to be passed your switching frequency and inductance as parameters, and the inductance has to match the actual inductor in your circuit to get valid results. The inductance and frequency together tell the CCM-DCM1 model how to transition between CCM and DCM operation.
 

Can you post the spice definition of the CCM-DCM1 subcircuit? Should be fairly easy to make it operate as a synchronous converter with forced CCM.

Keep in mind, when using the CCM-DCM1 model, it has to be passed your switching frequency and inductance as parameters, and the inductance has to match the actual inductor in your circuit to get valid results. The inductance and frequency together tell the CCM-DCM1 model how to transition between CCM and DCM operation.
Thank you for your post. I have posted the model definition in my first post. In my latest post, I corrected my simulation, and got around 281 V output, which others have also corroborated. But I have a fundamental doubt as to if this circuit is operating in DCM or Forced CCM? As per what I have studied, I think DCM is when the inductor current falls to 0 A and stays there for some time which is not negligible. Also, if this was a DCM mode, then the buck output voltage would have been larger than 400 V. So I think this is not DCM, but FCCM.

Also, my problem is that when I input the DCM buck transfer function from Erickson-Maksimovic book according to my circuit, I get a different bode plot output, matching in the wave shape but not the gain crossover frequency, and not varying by just a small amount owing to ideal circuit. So it further makes me think that it is in FCCM, but I can't get the transfer functions for it.
 
Last edited:

But I have a fundamental doubt as to if this circuit is operating in DCM or Forced CCM? As per what I have studied, I think DCM is when the inductor current falls to 0 A and stays there for some time which is not negligible. Also, if this was a DCM mode, then the buck output voltage would have been larger than 400 V. So I think this is not DCM, but FCCM.
No it's obviously DCM. The output voltage in CCM would be 200V.

By design of the buck converter, the output voltage can't exceed the input voltage, just reach the input voltage in CCM with no or very small load current.
 

The buck of your spec is
vin=400v, vout=200v, fsw=300khz, L=100uH, Pout=100w

this can only be in DCM...as the attached shows

****************************************************************************************************
The control to output transfer function is everything in the loop except the error amplifier…ie, it’s the modulator transfer function, and the power stage transfer function.

If you are in voltage mode, (or current mode), then there can be no doubt what is the power stage transfer function for a Buck…..If voltage mode, and in CCM, then it will be comprised of the following poles and zeroes…

Double pole due to L and Cout.
Zero due to Cout and its ESR
Load pole due to R(LOAD) AND Cout.

*…Passive Pole = 1 / (1 + [s/w0] )
*…Passive zero = (1 + [s/w0] )

so find w0 for each of your poles and zeros { eg double pole due to L and C is w0 = SQRT(1/(LC)) }.
Shovel them in and multiply those poles and zeroes to give your power stage transfer function.

Then find the modulator transfer function. I think for voltage mode it concerns the amplitude of the internal ramp waveform, inside the controller.
--- Updated ---

The following shows how to do feedback compensation with voltage mode sync Buck

...page 1 shows the modulator gain...and the bode plot on page two shows the transfer function of the power stage and modulator together.......for some reason they have missed out the RC load pole....you can see its starts at the gain of the modulator...then goes down therafter because of all the passive components...they dont even show the gain peak from the LC resonance.
 

Attachments

  • buck 100uH.zip
    6.9 KB · Views: 57
Last edited by a moderator:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top