# Buck Converter – Open Loop Simulink Model

Simulating is a big part of design verification, so this post will deal with creating a model of an open loop synchronous buck converter using MATLAB and Simulink, which can be used to perform transient analysis. The equations governing the operation of a synchronous buck converter shown in fig. 1 are:

$\frac{di_L}{dt} = \frac{1}{L}\left(V_g*d - i_L*R_L - v_o\right)$

$\frac{dv_c}{dt} = \frac{1}{C}\left(i_L - i_o\right)$

$v_o = v_C + ESR\left(i_L - i_o\right)$

Fig. 1: Synchronous Buck Converter

Modelling such a converter using Simulink is quite simple. As shown in fig. 2, the input to model are:

Input voltage,$V_g$

Duty cycle,$d$

Load current, $i_{load} \left(i_o\right)$

Whereas the outputs of the system are:

Voltage across the load, $V_o$

Inductor current, $i_L$

Fig. 2: Switching converter model (Fundamentals of power electronics, Robert Erickson)

Click my_syncbuck_ol to download the simulink model file, then change the file extension from .pdf to .mdl. From the top level view shown in fig. 3, you can change the values of input voltage, duty cycle, and load resistance according to your system parameters.

Fig. 3: Top Level View

Double clicking on the “Buck converter – open loop” block opens up another window with two more subsystem blocks. Clicking on any of these subsystems will allow you to change their respective parameters. In order to access the underlying lower levels, right click on the block and select “Look under mask” from the menu.

Fig. 4: Mid-level subsystems

• PWM Subsystem:Allows you to change the switching frequency as well as the amplitude of the PWM ramp signal.

Fig. 5: PWM Subsystem

• Buck converter Subsystem: Allows you to change the values for inductance and capacitance, along with their parasitic resistances. This is the block where we implement the system equations described earlier.

Fig. 6: Buck Converter Subsystem

Once you have all the parameters setup, you can run the simulation. Fig. 7 shows a screenshot of the simulation result, which can be accessed from the scope block located in the top level view.

Fig. 7: Simulation Result

1. Vinayak

how have you calculated the ESR and RL for your buck

• You don’t choose ESR for the capacitance, that’s inherent to the capacitor. For a buck converter, the idea is to minimize the ripple (overshoot) at the output voltage. Larger the capacitor, smaller it’s ESR (inverse relationship). You as a designer, can select a capacitor which will meet the output ripple specification. Let’s assume that you have a buck converter which has 100 V as input and outputs 10 V. Additionally, the output ripple needs to be less than 1%, which translates to (10*0.01) = 100 mV.

Ripple due to ESR can be approximated using,

delta_Vo = Resr * delta_ic = Resr * delta_iL

where, delta_Vo is the ripple in output voltage
Resr is equivalent series resistance
delta_ic is the change in capacitance current
delta_iL is the change in inductor current

You can look at https://eprimes.wordpress.com/2012/04/25/fundamentals-of-non-isolated-buck-converter/ to find out how to determine inductor current ripple.

Since you already know inductor current ripple, max output voltage ripple, you can determine ESR value. Having determined this value, you will seek out a manufacture which can provide you with a capacitor whose ESR is less than or equal to your ESR value.

2. Vinayak

How have you calculated the value of the inductor . can you please give me the formula. According to L=(Vin-Vo)D/Iripple*Fs. I cant get the value of 4.1u. Also please specify your ripple and load current

• Go through the theory I mentioned earlier. The values selected in this tutorial is based on a random example. You can determine the minimum value of inductance using Lmin = (1-D)*R / (2*fs). Based on the value you obtain, that would be the minimum inductance you need to operate your converter in Continuous Conduction Mode (CCM). Theoretically, you can pick any value greater than or equal to Lmin. Practically, you will have limitations since the choice of inductance will also govern your capacitor value (see theory https://eprimes.wordpress.com/2012/04/25/fundamentals-of-non-isolated-buck-converter/).

3. Damien Lopez

What about configurations parameters ? What solver did you choose ?

4. i am having difficulty implementing this. can you check my matlab file

5. Daniela

I’m having a lot of difficulty to implement this model, could you email me, please. If it’s possíble could you send me the Boost model too, I don’t know why, but I’m not getting doing the download of pdf file. My email adress dany.danysilva@gmail.com, thanks a lot.

6. David

Hello.
Thank you for sharing your model, however I can’t get it to show me anything other than a single line a single line in the lowest plot window going from the minimum value to the maximum value in an instance as if it happens at T=0.
I mean that the hole plot is empty apart from the left most side shows where there is a line covering the hole range at time 0, I also get a warning about the following:
“Component: Simulink | Category: Block diagram warning
Found algebraic loop containing:
‘my_syncbuck_ol1/Buck Converter – Open Loop/buck converter/Subtract2’
‘my_syncbuck_ol1/Buck Converter – Open Loop/buck converter/ESR – Capacitor series resistance’
‘my_syncbuck_ol1/Buck Converter – Open Loop/buck converter/Add’
‘my_syncbuck_ol1/Buck Converter – Open Loop/Divide’ (algebraic variable)”

Do you know what this is about?

Regards

• David

Oh I see, I didn’t consider what ranges of output values where shown and that the generated output values might not be even close to those shown…

I have to express a enormous appreciation for your blog, I have been trying to learn how to make models like this(but I have also tried to learn stuff that you have written about on your other buck and boost related pages) but I haven’t been able to get anywhere and after what combines into many days of searching online I stumbled upon your site and I haven’t seen any straight forward information such as the one that you are sharing.

These are very very appreciated and I would be joyous if you where to write more articles or examples on these subjects.

Thank you very much.