**My first attempt at designing a boost regulator was comical.**I took what I knew about SMPS (Switched Mode Power Supply) buck regulators and applied that. Then I figured out that running a boost regulator in CCM (Continuos Conduction Mode) creates a RHPZ (Right Half Plane Zero) that is not present in the buck regulator. That creates a circuit that is not stable. Did everybody get through that pile of acronyms? Then it's time to make something that works.

There are three basic approaches that I could take.

1) I could design it to run in DCM (Dis-continuos Conduction Mode), where the inductor is small enough that it is fully discharged before the end of the cycle and the current is drawn from the capacitor. This requires a bit of finesse in component sizing, load current specification, and feedback network setup. It could make sense for this application because the load current has a narrow expected range.

2) I could stick with CCM but roll the response off at a fairly low frequency. This works for this application because I'm driving LEDs through a current regulator. The load current will change very slowly, mostly with temperature.

3) I could make sense of this paper or similar and keep a high bandwidth while retaining CCM. That isn't needed for this application. Maybe next time.

3) I could make sense of this paper or similar and keep a high bandwidth while retaining CCM. That isn't needed for this application. Maybe next time.

**First, the most important stage of any design, the specification.**You can't design something if you don't know what you're designing.

Parameter | Minimum | Typical | Maximum |
---|---|---|---|

Input Voltage | 10 V | 13.8 V | 20 V |

Output Voltage | 40 V | 44 V | 48 V |

Output current | 36 mA | 40 mA | 44 mA |

That's all that really matters. The input voltage minimum and maximum are somewhat arbitrary. The output voltage needs to be at least 40V to allow for the worst case corner, +/-10% seemed reasonable, so I set the maximum 20% higher. The frequency should be higher than 200Hz to avoid visible flicker, but I'll want much higher to keep the inductor size reasonable.

Very simplified Bode plot for the boost control to output gain |

The frequencies f

_{LC}, f

_{Z}, and f

_{ESR}are from the output stage. The f

_{C}frequency is where the feedback system will get the crossover frequency to be. The crossover frequency needs to be at least three times higher than f

_{LC}so the peaking doesn't mess with it too much. f

_{C}also needs to be at least

^{1}/

_{3}of the lowest f

_{Z}. f

_{Z}needs to be at least 10*f

_{LC}.

Time for some numbers now.

The duty cycle is D ≈ (V

_{out}−V

_{in})/V

_{out}= 50-79%, 69% typical.

The minimum inductor size needed stay in continuous conduction mode with a 100kHz switching frequency is

L ≥ (V

_{out}D (1−D)

^{2})/(2 I

_{out}f) = 156-347μH I choose 750μH.

The minimum capacitor to keep the output ripple to less than, say, 1V is

C ≥ (I

_{out}D)/(ΔV f) = 0.035μF choose 1μF because that seperates f

_{LC }and

_{ }f

_{Z}.

Therefore

f

_{LC}= (1-D)/2π (LC)

^{1/2}= 1210-2910 Hz, 1.8k Hz typical.

f

_{Z}= (V

_{out}/I

_{out}) (1-D)

^{2}/(2π L) = 10.1-58.4 kHz, 23 kHz typical.

I'll want f

_{C}to be about 8kHz.

F

_{ESR}= 1/(2π CR

_{ESR}) = 320kHz (I assumed 500mΩ)

DC Gain is 20*log(V

_{out}/((1-D)V

_{ramp}) = 43dB.

Gain at f

_{C}(8kHz) is about 18dB.

So the feedback compensation needs to provide a couple of zeros at about

^{3}/

_{4}f

_{LC}or 1.35kHz, a couple of poles at f

_{ESR}or 320kHz and attenuation of about -18dB at about 8kHz.

The next table summarizes this in terms of component values. I made a spread sheet to do the actual calculations.

Compensator values

Parameter | Formula | Numbers | Result | Std Value |
---|---|---|---|---|

G_{Z} | G_{C}-(20*Log(f_{Z}/(^{3}/_{4}f_{LC}) | -18dB-(20*10^(23kHz*0.75*1.8kHz)) | -46dB | |

R_{1} | picked | 200kΩ | 200kΩ | 200kΩ |

R_{Z2} | R_{1}*10^(G_{Z}/20) | 200kΩ*10^(-43dB/20) | 1.50kΩ | 1.5kΩ |

C_{Z2} | 1/(2π R_{Z2 }^{3}/_{4}f_{LC}) | 1/(2*3.1416*1.0kΩ*0.75*1.8kHz) | 77.6nF | 75F |

C_{Z3} | 1/(2π R_{1 }^{3}/_{4}f_{LC}) | 1/(2*3.1416*200kΩ*0.75*1.8Hz) | 582pF | 470pF |

C_{p1} | 1/(2π R_{Z2} F_{ESR}) | 1/(2*3.1416*1.0kΩ*320kHz) | 334pF | 470pF |

R_{z3} | 1/(2π C_{Z2} F_{ESR}) | 1/(2*3.1416*0.68μF*320kHz) | 1.064kΩ | 1.0kΩ |

The inductor is larger than I'd like, but it is set by the basic specifications. I don't think I can easily make a triangle wave generator faster than 100kHz on a PCB (this will be a breadboard style project, no custom PCB will be purchased). Raising that frequency would allow a smaller inductor.

**Schematic is below.**This is obviously not the implementation schematic. I am using ideal op-amps, comparators, and saw-tooth wave generator. The resistors on the the op-amp outputs helped initial convergence. The highest value

*comped*(the output of the feedback loop) can take is 9V. The saw-wave switches between 0V and 10V. This means the

*gate*signal will always be switching, even when the feedback is saturated to its rail.

Simulation schematic for boost regulator. |

A simulation showing

**typical operation**is below. The current through the LED legs is in blue, the voltage output (

*pwr*) is in green on the right axis, the inductor current is in orange on the left axis. The

*pwr*output overshoots then settles to 44V. The currents are controlled at 18mA in each leg. Not too bad; I may want to raise the LED currents. I do not understand the quick drops to ground that the

*pwr*signal does every now and then. When zoomed in on, they drop in one time step which suggests a simulation issue. I'm not certain of that, though. The 10V case input gets the output voltage up past 40V which meets spec, but it is no longer regulating. I'm going to call that good enough; low voltage operation works, but not well.

Simulation results for 10, 13, and 20V batteries. |

Zoom in to show inductor current. I'm going to need a hefty inductor to handle 400mA continuous. |

**The next steps**are to find real components that can be used and design a saw-tooth generator. I will probably use a triangle wave generator running at twice the frequency. This would be trivial for me on and IC, but I haven't done it using components before. "It shouldn't be too bad." I'm still thinking through how best to ensure the triangle-wave always has a peak higher then feedback network's high saturation point. I will also need to either make a soft-start or a voltage limiter. 80V initial transient is a bit large, and I wouldn't be surprised if the real (non-simulation) peak is even higher. I am also considering removing the LM317 based current sources and instead controlling the current directly.

I found

**several good references**while working to understand boost converter stabalization.

Loop compensation of voltage-mode boost converters This stepped through the design process in a organized and understandable fashion. If I had found this first instead of last, I would not have had much trouble.

Compensating the RHPZ in a CCM Boost Converter: the analytical way This is part three of a four part series that is pretty good, but hard to follow because the equations and figures are not in-line with the text.

DC/DC Boost Calc This is a quick and dirty component calculator.

I'm making some progress on this project. I would like to finish up the design in nest week's blog. What I expect to do is write an entry on miller op-amp compensation or ADC specifications because I need to prepare for a technical phone interview.

Bruce