I do wish to add a voltage regulator between a Li-Ion battery pack and a 36V 220W rated mid drive pedalling assist motor with integrated controller. The caps of that controller have a 63V rating.

That pedal-assist motor has an unloaded current draw of 0.823A. The motor is (or at least seems to be) a reactive load. Such loads may cause instability at Vout of the switching buck-boost DC converter.

In this (LM5176) case, 1 out of 12 parallel ceramic 100V 4.7 uF input capacitors, the capacitor closest to the MOSFET/inductor was shorted (desoldered Cin10 in the image) the instant I did start pedalling. In several hours of resistive e-load testing the circuit ran fine. For this instability reason I do wish to compensate the loop.

I was told that a large capacitor with proper ESR at the output rail can serve as a damping factor to cope with the reactive load.

How to pick a good large reactive-load-damping capacitor and where to place it in the schematic (close to Vout, or close to the MOSFETs)?

LM5176 buck-boost PCB populated with single MOSFETs and with Cbulk and the shorted Cin10 desoldered LM5176 buck-boost PCB bottom/other side.


  • Rvisns 1.98kΩ ERJ-6ENF1961V
  • Cboot1,Cboot2 100nF ESR=1mΩ C0603C104M3VACTU
  • Cbulk 68uF ESR=320mΩ EEV-FK1K680Q
  • Ccomp 39nF C0603C393K5RACTU
  • Ccomp2 750pF C0603C751J5GACTU
  • Ccs 47pF ESR=147mΩ 06035A470JAT2A
  • Cf 100nF 06035D104KAT2A
  • Cin1, Cin2 15uF ESR=40mΩ 100V 100SXV15M
  • Cin3Cin14, Cout1Cout15 4.7uF ESR=4.236mΩ 100V CGA6M3X7S2A475K200AB
  • Cout16Cout18 33uF ESR=25mΩ 63V 63SXV33M
  • Cslope 1.2nF CL10C122JB8NNNC
  • Css 22nF C0G GCM21B5C1H223JA16L
  • Cvcc 1uF GRM188R61C105KA93D
  • Dboot1 10A 0.91V MBRD10200CT-13
  • Dboot2 20A 100V 0.455V STPS20M100SG-TR
  • Df 100V 1.0A 1.05V STPS1H100A
  • L1 10uH SER2915H-103KL
  • M1,M3 80V BSC037N08NS5ATMA1
  • M2 150V 50A BSC190N15NS3GATMA1
  • M4 100V 5.3mΩ CSD19531Q5A
  • Rcomp 4.64kΩ ERJP03F4641V
  • Rcsg,Rcsp 100Ω
  • Rf 10Ω
  • Rfbb 20kΩ
  • Rfbt 1.1MΩ
  • Rpg 10kΩ
  • Rt 86.6kΩ
  • Ruvb 9.31kΩ
  • Ruvt 249kΩ
  • Rmode 93.1kΩ
  • Rsense1 62mΩ // Rsense2 5.1mΩ -> Rsense 4.7112mΩ


LM5176 44V schematic

  • 1
    \$\begingroup\$ Get a free sim and model it. \$\endgroup\$
    – Andy aka
    May 5, 2018 at 8:06
  • \$\begingroup\$ I don't understand the comment "Get a free sim and model it." \$\endgroup\$
    – Pro Backup
    May 7, 2018 at 7:30
  • \$\begingroup\$ It sounds like you don't know what value the inductive load has, so you can't know what value the capacitor can be, which also means you could not simulate it, or expect answers telling you "this value should be chosen". Yes, a larger ESR cap at the output will damp a bit, yes, if the load is inductive you can compensate it with a properly chosen cap, but with the given information, nobody can give a proper answer. \$\endgroup\$ May 7, 2018 at 8:15
  • \$\begingroup\$ @aconcernedcitizen Can the value of the inductive load be measured? Attach a battery, start pedalling and which values to measure? Active power, reactive power, apparent power, power factor, apparent impedance, active impedance, reactive impedance, ...? When it can be measured, how to come from measured values to cap choosing? \$\endgroup\$
    – Pro Backup
    May 7, 2018 at 12:42
  • \$\begingroup\$ @ProBackup Speaking for the case where the load is of the form R+L: if you measure with the oscilloscope the voltage and current, you can determine the \$\cos\phi\$, with this you have the active, reactive, and apparent powers, from which you can deduce the R and the L; then, \$C=\frac{L}{R^2+\omega^2 L^2}\$. This will nullify the inductance. \$\endgroup\$ May 7, 2018 at 14:08

2 Answers 2


If you ran your supply with the load and it proved to be unstable, then you can consider compensation. Also, given your input, this is about the most precise answer I can give.

If all you need is some sort of compensation, then a brute force method would be to connect the load and perform a sweep to determine if and where there's a peak in the response. Something like this (this is an extremely simplified view to get an idea):


The response shows an increase in the peak as the inductance's value is higher (stepped from 10\$\mu\$H to 100mH). To compensate, add a zero in the transfer function; here, on the upper resistor of the divisor that controls the output voltage. The value should be, roughly, the peak frequency; for ex. 22nF. Here's the response with the cap:


The peak is still there, but much tamed. Hopefully, the inner feedback loop of the buck-boost will take care of that. Note that I am using some ugly values for the LR time constant, but this is just for exemplification. Also, brute-placing a cap across the divisor is a very blunt approach, in practise, a series RC sould be placed across [R||(R+C)], or the resistor split accordingly and the cap placed across one of them [R+(R||C)], otherwise the resultant derivative will be too high and serious noise will pollute the response; the series RC time constant should be some 10x higher, or more, than the parallel one, but this is in case you don't know exactly what value.

The method above is not a guarantee, the LR time constant may prove to be too much even for the builtin loop with added compensation, or the compensation can influence negatively the builtin loop, or <insert possible failure>, but if you don't have other options, it's worth a try.


If you can't determine if there is a resonant peak, or bump, in the output, then you can use an oscilloscope to see how the output voltage behaves. Here's another simple/ideal example showing a voltage-mode buck-boost configuration with a made up model of a motor (the model inside the dashed rectangle):


At the output, R1 and R4 decide the output voltage. Normally, these have no other components (see Rfbt and Rfbb in your schematic). C2 is placed across the upper resistor to provide a passive zero (in the same manner as above). Then the value is stepped from 1pF (considered null), to 10nF, 22nF, 33nF, 47nF, and 56nF (traces from bottom to top, including 1pF). The traces have been shifted for better viewing. When the value of C2 is null (the 1pF case), the output shows some oscillations. These have an approximate frequency of 1kHz. If the same happens to you, it may be different, maybe 10kHz or more, maybe 100Hz or less, maybe they have larger, or smaller amplitude, maybe none at all and then the loop can take care of them. So, according to the formula above: \$C_2=\frac{1}{2\pi f R_1}\approx 33\text{nF}\$.

Again, the values are bogus, completely made up, just for exemplification. You can see that even with the compensation there still are some minor oscillations. These may be due to the very simple loop filter, or the very simple passive compensation. But it does show that, if there is such an instability, it can be remedied to an extent. What exact instabilities can there be, this is entirely up to your circuitry and their connections.

If you want to determine the load, and you know these values will help you calculate precisely the feedback loop -- whichever that would be --, then one method is with a pulsed source, measure the time it takes the output to reach (1-exp(-1)) of the total amplitude, then L=R*t. If you can't measure accurately that 0.632 value, then you can measure the time it reaches 50%, and then L=R/log(2)*t Something like this:


The source is 1V, but the amplitude of the current is 0.1A, thus R=1V/0.1A=10\$\Omega\$. The time it takes to reach (1-exp(-1)) is 10ms, so R*t=10*0.01=0.1H. If you choose to measure the 50% rise, then the time would have been ~6.96ms and L=R/log(2)*t=10/0.693*6.96m~0.1H.

If you have a motor, then the inductance will vary under load, but this way, at least, you can measure the static inductance.

As a bonus, in case you have an AC load (sine), here's an example of compensating: L=0.1H, R=10\$\Omega\$. You don't know that, so with the oscilloscope you determine that from the mains, Vpk=325V (230VRMS), f=50Hz, the current is 6.963A and the delay of the current is 4.08ms => \$\cos\phi\$=0.305 and the powers are:

$$S=230*6.963=1601.5\text{VA}$$ $$P=S\cos\phi=1601.5*0.305=488.5\text{W}$$ $$Z=\frac{V}{I}=\frac{230}{6.963}=33.03\Omega$$ $$R=Z*\cos\phi=33.03*0.305=10.075\Omega$$ $$X_L=\sqrt{Z^2-R^2}=31.456\Omega$$ $$L=\frac{X_L}{\omega}=\frac{31.456}{2\pi 50}=0.1\text{H}$$ $$C=\frac{L}{\omega^2L^2+R^2}=\frac{0.1}{(100\pi 0.1)^2+10^2}=92\mu\text{ F}$$

XL = inductive reactance, ω = angular frequency

Here's the result of a flimsy simulation:


The unseen traces are I(C1) (red) and the current fromthe mains, -I(V1) (green). The current through the inductance (blue) lags the voltage (black), the compensation current (red) leads, the resultant (green) is almost in phase with the mains. Almost -- due to roundings.

You can simplify this in terms of the reactive power, Q, then calculate the cap directly from there. The way it is above shows a dependency on the circuit's elements, this way it shows the dependency on the power that needs to be compensated, flip the coin.

  • \$\begingroup\$ You haven't taken into account the power factor of the motor - which OP has not provided \$\endgroup\$
    – user160063
    May 7, 2018 at 16:09
  • \$\begingroup\$ @sidA30 True, but that's for AC, and he's using a buck-boost. Even if OP hasn't said anything, I doubt he's using superimposed DC+AC current. The 1st part of the answer is there because OP continued the line of discussions, in the comments. It's difficult to answer his question since the details are very vague. \$\endgroup\$ May 7, 2018 at 16:12
  • \$\begingroup\$ @aconcernedcitizen I would love to see the answer having the DC part as its main focus (also explaining AC is a bonus). I am not limited to using a scope. The Zes power meter is able to directly output Z and PF. Cos ϕ (Cosinus Phi) is the Power Factor (PF), a value between 0 and 1 (for inductive loads), that nears 1 for ohmic loads, isn't it? R, is that the active impedance (= active power ÷ (Itrms)² ), a.k.a. Rser ? In case it is, isn't then L= Rser ÷ switching frequency of the DC converter (which is 97.698 kHz) × duty cycle (= 81.912 %)? \$\endgroup\$
    – Pro Backup
    May 7, 2018 at 21:08
  • \$\begingroup\$ And which amount of over dimension should one apply to account for loss of capacitor capacitance over time? Divide by 0.7 to account for losses up to 30%? \$\endgroup\$
    – Pro Backup
    May 7, 2018 at 21:16
  • \$\begingroup\$ @ProBackup I've updated my answer. \$\endgroup\$ May 8, 2018 at 7:17

If you need compensation due to a proven unstable circuit,

1. Find the circuit resonance peak frequency

That is for the output feedback loop thus the output divisor resistor, in this schematic: Rfbt. Finding the resonance peak is done using a 10 Ohm shunt resistor in series to the feedback resistor. Many different wave lengths of low voltage AC signals are inserted at that point and the returning signal its gain is plotted. This frequency response graph is usually known as (the gain diagram part of) a Bode Plot. Many DC/DC converter evaluation boards (Linear and TI eval boards do) have a 10 till 50 Ohms resistor in series to the feedback resistor for exactly this purpose.

  • Sweep the 1kHz to 100 kHz frequency range
  • with a 10mV AC signal
  • while the power supply and the dc/dc converter are attached (and running)
  • note: there is need to use a bias voltage, nor to pedal

2. Dampen peak gain frequency with parallel capacitor

Now you have found the peak frequency, let's say 11kHz, then the matching capacitor to dampen this signal is: C=1/(2*pi*𝑓peak*Rfbt) or as in the example:

C = 1/(2*pi*11.000*1.100.000) ≅ 13pF (milli,micro,nano,pico)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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