I was just thinking theoretically on how long I would be able to run a circuit on a capacitor.

I'm wondering - is my approach for this approximate calculation correct?

Let's say the circuit consits of one Arudino (5V) and one other sensor (5V). Let's say that the total current draw of the Arduino + Other Sensor is 150mA at 5V (asssume constant draw)

Now, I model this cirucuit as a resistor of resistance R = (5V)/150mA = 33ohms.

Next, I choose a capacitor of capacitance 1F with a rating of 10V. Now, I can model my entire circuit as an RC circuit with a 33ohm resistor and a 1F 10V capacitor. The time constant of this circuit is thus (33)(1) == 33. Thus, in a discharging configuration, the capacitor will deplete by 63% of it's total charge in one time constant (33s).

Next, I consider the fact that my circuit needs 5V to run and thus I cannot utilise the full capacity of my capacitor. I assume that I will be using some sort of LDO that provides stable 5V to my circuit for any voltage of the capacitor above 5.3V (5V + LDO drop out).

By the equation Q = CV - if it takes 33s to deplete charge on the capacitor to (100-63)=36%, then it will also take 33s to reduce the voltage across the capacitor from 10V to 36% of 10V which is 3.6V.

By a rough estimate then, I assume I'll get somewhere between 10-20s of usable time.

Is my thought process correct (I know it's very rough calculations) - particularly about modelling the circuit as a resistor?


For back-of-the-envelope calculations, your thought process is mostly correct. There's two improvements that you can make, though, one of which is actually easier on the math than yours.

Important note -- I'm doing all of this assuming that it's reasonable to charge a 10V cap to 10V. This actually isn't so. The general rule of thumb for electrolytics is that you derate them by anywhere between 20 and 50% for the normal operational voltage you'd put on them. So if you could find some 12.5V or 16V supercaps to use for this, you'd have a much more reliable system. Even then, you'd want a charge control system that would never, ever let the cap voltage to get above whatever limit you imposed.

Solution 1

You're mis-modeling the behavior of a linear regulator. A linear regulator will have an input current equal to the supply current plus some quiescent current. There are regulators out there with quiescent currents less than 1mA, so let's just ignore that. In that case, the draw on the cap is 150mA.

If you draw 150mA from a 1F cap, the voltage will drop at a rate of \$\frac{di}{dt} = \mathrm{\frac{150mA}{1F}} = \mathrm{150mV/s}\$. To go from 10V to 5V will take 33s -- so say 30s to get to the point where the regulator hits its dropout voltage. Even less if you want to give the cap some voltage headroom.

Solution 2

Linear regulators are wasteful -- they work by burning up the extra voltage as heat in the regulator.

So use the same cap, but this time use a buck-boost converter. If we assume 100% efficiency, what matters is the total energy used by the processor, and the total energy in the cap.

The energy in a cap is \$w = \frac{1}{2}V^2 C\$. For a 1F cap at 10V, that's \$w = \mathrm{50 J}\$. If you're drawing 150mA at 5V, that's 450mW, or 450mJ/s. So if you had a magic buck-boost that was 100% efficient and worked down to 0V, you could keep things working for 111 seconds (hoo boy!). That's not reasonable, because (A) I'm not taking converter efficiency into account, and (B) no converter will work down to 0V input.

So let's start by multiplying the time by 90% (90% is a moderately reasonable estimate for converter efficiency -- use 80% if you want to be more conservative). That gives 100s.

Now let's say that the converter is a pure buck converter, and only works down to 5V. In that case the energy in the cap at 5V is \$w = \mathrm{\frac{(5V)^2 (1F)}{2} = 12.5J}\$. So instead of extracting 50J out of the cap, we only get 37.5J, or \$\frac{3}{4}\$ as much. So we can only go for 75 seconds. This may not be a bad place to stop -- we lost 25% of our theoretical total. It may be easier to design a really efficient buck converter than to try to use a buck-boost.

But let's persevere. Say we can find a chip and design a that works efficiently from 10V to 2V input. Then the total energy available is \$w = \mathrm{\frac{(10V)^2 (1F)}{2} - \frac{(2V)^2 (1F)}{2} = 48J}\$ This would give us 96s of run time.

| improve this answer | |

I think your "back of the envelope" estimate is reasonable.

For a series RC network with \$R=33\,\Omega\$ and \$C=1\,F\$, and initial voltage across the capacitor of \$V_C(t=0s)=10\,V\$, the voltage \$V_C\$ across the capacitor at any time \$t\ge0\,s\$ is given by:

$$ V_C(t) - V_F = \left( V_C(0)-V_F \right ) e^{-t/RC} \bigg\rvert_{V_F=0V} $$

where \$V_F\$ is a forcing function term (e.g., a battery voltage), which in your case is not present, so you are only interested in the natural voltage decay response. The time \$t\$ when the voltage across the capacitor reaches 5.3 Volts is

$$ \Rightarrow t = -RC \; ln \left ( \frac{V_C(t)}{V_C(0)} \right ) \bigg\rvert_{V_C(t)=5.3V,\;V_C(0)=10V} \\ \Rightarrow t = -33\,ln(0.53) \\ \Rightarrow t \approx 21 sec $$

My analysis ignores your statement that the 1 F capacitor has "a rating of 10V". (To be honest, I missed that requirement when I first read your problem statement.) If you want your capacitor to have a long service life you should not routinely charge up the cap to its maximum rated voltage.

| improve this answer | |

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