I'm building buck converter to drive led lamps. It consists of microcontroller, PWM generator, buck-circuit and current sensor. Microcontroller knows what target current should be and sets duty cycle basing on current sensor results.

The circuit, powered with +48V at VIN should drive led lamps with wide voltage and current ratings. Current limit is set in uC, independently for each lamp. Output must be filtered for as-low-as-possible ripple, because lamps are pretty far from the driver and I want to reduce EMI.

First simulation: 30kHZ PWM Frequency, 50% duty cycle, 1mH inductor, 47uF capacitor. With this circuit I want to drive 2.5A led strip.

30KHz, 50% duty, 1m, 47uF circuit

However, in simulation, I can see very high overshoot current during first 2ms of operation. After that current is pretty stable.

I can't just put passive limiter there, because I have to retain ability to set output current.

30KHz, 50% duty, 1m, 47uF simulation

Now, my questions:

  • Will such current raise (3.6A for 2ms) destroy 2.5A rated led strip?
  • How can I prevent such effect?
  • What can I do to achieve better filtering of output current?
  • Is there any way to reduce inductor size? With 100uH I get lots of ringing on drain
  • How can I improve the circuit?
  • \$\begingroup\$ This is not what inrush current means. \$\endgroup\$
    – pipe
    Sep 9, 2016 at 9:48
  • 1
    \$\begingroup\$ Ok, now I see. What's the proper name for this effect? \$\endgroup\$
    – peku33
    Sep 9, 2016 at 9:57
  • 2
    \$\begingroup\$ Overshoot may be more useful. \$\endgroup\$
    – pipe
    Sep 9, 2016 at 10:00
  • 1
    \$\begingroup\$ LEDs will clamp overshoot somewhat, Simulate with an ideal Zener at some V + ESR, it will be much lower than fixed R. That reduces Q and overshoot, Show LED specs if not sure how to simulate Vf,R \$\endgroup\$ Sep 9, 2016 at 11:40
  • 3
    \$\begingroup\$ LEDs will clamp overshoot voltage - which isn't the issue here - by conducting (not limiting) excess current. So this concern may be real - depending on abs max ratings for the LED. Some have "do not exceed" pulse current ratings for use as photo flash, others might not. Some kind of soft start may be a good idea. \$\endgroup\$
    – user16324
    Sep 9, 2016 at 12:42

2 Answers 2


The problem is in your control loop. This is the firmware that senses what the supply is doing, compares that to what you want it doing, then adjusts the PWM duty cycle as a result.

You haven't said anything about your control loop, so there is little we can say about it either. In general, it is too aggressive. In your situation it seems that slow response to a new situation isn't a big deal. LEDs are pretty fixed in their characteristics. You can therefore overdamp the controller. That will greatly reduce or eliminate overshoots, at the expense of slow transient response.

There are whole books on how to optimize control loops. However, fancy control schemes are often not needed. I'd use a simple pulse on demand system. When the output falls below the regulation threshold, you do a pulse, else you don't. This has more ripple, but is nicely stable with no more overshoot than what a single pulse can produce.

This is exactly the control scheme I used in my KnurdLight LED headlamp. The control scheme is so simple it runs in a PIC 10F.

  • 3
    \$\begingroup\$ Right now there is NO control loop. It's just a plain simulation of 50% duty cycle applied to buck circuit. \$\endgroup\$
    – peku33
    Sep 9, 2016 at 11:20

If you want to reduce the inductor size by reducing the inductance, increase the frequency to compensate and reduce ripple current. V = L*dI/dt. Just as an example: at 50% duty cycle, $$ 24V = L \times \frac{0.5A(inductor\ ripple\ current)}{5us(from\ 100kHz)} $$ $$ \Rightarrow L = 240uH $$

Ripple current (at >many kHz) to a certain extent does not matter for a LED. For example, a 2.5A LED should work fine with 0.5A of ripple current. That means, C2 can be as little as 0 for this one example. You can vary C2 to give the LED ripple current you are comfortable with. C2 of 5uF or 10uF is probably fine. The overshoot is from the RLC output arrangement (with R being the LED load). With C reduced, the damping factor goes up and the overshoot should decrease.

This is just an example at 50% duty cycle.

  • \$\begingroup\$ I want to reduce ripple current, because the wires connecting the converter and target leds are very long - ~30.0m \$\endgroup\$
    – peku33
    Sep 10, 2016 at 20:45
  • \$\begingroup\$ You can see from above of a tradeoff. Increase frequency -> reduce ripple current, which can be spent in lowering inductance and/or capacitance. One opposite side of the tradeoff is increased switching loss. \$\endgroup\$
    – rioraxe
    Sep 11, 2016 at 8:02
  • 1
    \$\begingroup\$ Other ways of reducing the RLC overshoot are to vary the control ramp of the PWM. Let's say the natural response is in the order 1 ms (like in the trace you displayed). It is slow enough that it could be addressable by putting it inside the control loop. Or by making PWM change that are divided into small steps that are spread out. For example, 10ms would still appear instantaneous to the eyes. 1 or 2 seconds instead could give a pleasant fade in and out effect. \$\endgroup\$
    – rioraxe
    Sep 11, 2016 at 8:13

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.