I am creating a simple boost converter following the classic circuit diagram just for learning purpose.

The switch is a power transistor controlled by PWM output of an Arduino (with additional necessary components). I want to implement a feedback mechanism to control or regulate the output voltage. I am a novice, but I know how to use a voltage divider to read the output voltage as an analog input to Arduino. What I am not very sure is - what to increase or decrease based on the input. For example if I need to increase the output voltage to maintain desired output voltage level, should I

  1. Just increase the duty cycle and keep the frequency constant?
  2. Increase duty cycle, and decrease frequency?

I want to achieve higher 'On' time on the switch, but what is the right way to do it?

If only toggling duty cycle is the answer, how does the frequency impact the output parameters? Does it also allow controlling the output voltage (but not the right way)? Or does it determine how much current I allow the output load to draw? Or something else? Please help.enter image description here

  • 2
    \$\begingroup\$ As a first order measure, then yes do increase the duty cycle to increase the output voltage. The exact equation depends on if you are operating in DCM or CCM mode. \$\endgroup\$
    – winny
    Commented Jul 21, 2018 at 23:24
  • 1
    \$\begingroup\$ Boost converters normally work by PFM \$\endgroup\$ Commented Jul 21, 2018 at 23:35
  • \$\begingroup\$ You may find interesting data in a tutorial seminar taught in San-Antonio, TX, this year: cbasso.pagesperso-orange.fr/Downloads/PPTs/… There are many books on the subject of switching converters if you want to further dig the subject. \$\endgroup\$ Commented Jul 22, 2018 at 6:27

2 Answers 2


Think about what happens. There are two parts to the switching cycle. The first part is when the switch is closed and the input supply voltage is placed across the inductor. This causes the current to ramp positively: -

$$\dfrac{di}{dt} = \dfrac{V}{L}$$

The longer the switch is closed the higher the current becomes. More current means more energy (W) stored in the magnetic field: -

$$W = \dfrac{1}{2}\cdot LI^2$$

When the switch opens that energy is transferred to the load via the diode. If that is done 100,000 times per second then the power to the load is 100,000 x W.

So you can use duty cycle increases to send more power to the load and you modify the duty cycle to regulate the voltage at the load. If you kept duty cycle constant and increased frequency, the "charge time" reduces as frequency increases and, the energy transferred per cycle reduces as a square of the frequency but, because frequency is increasing more packets of reduced energy are delivered per second hence, increasing frequency whilst keeping duty constant will reduce power to the load proportionately.

  • \$\begingroup\$ Thanks @Andy It answers both of my questions. And now I understand how the PWM should be regulated. \$\endgroup\$
    – sribasu
    Commented Jul 22, 2018 at 11:47

Short answer: vary duty cycle, keep frequency constant. Preferably, use the highest feasible frequency.

The common approach for designing the control of a switched-mode supply is using the state-space averaged model of the system (first introduced by Cuk in 1976, link).

This averaged model best represents the actual system the closer the switching period is to zero. Therefore, choose the highest feasible frequency for PWM (achievable by the microcontroller, without signal corruption), and don't change it.

The control action is then inherently a matter of duty-cycle calculation. The most direct approach is using the steady-state assumption (output voltage is already constant) and obatin duty cycle like the wikipedia article \$D = 1-\frac{Vi}{Vo}\$. Or make use of the state-space averaged model and design a controller with PI action.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.