Commonly used alkaline batteries (Duracell etc) have a pretty interesting discharge curve. For example, an AA duracell has the following voltage characteristics under constant load,

Constant load

and constant current:

Constant current


The battery voltage is also affected by temperature. For example, from some of my recent tests the fluctuations correspond roughly to the time of day (temperature) they were measured. If the batteries were hotter, they measured a higher voltage.

Real test


Before I try to do this myself, does anyone know a mathematical function to describe the voltage of an alkaline cell under constant current and/or constant load? An added bonus would be a function that takes temperature as a parameter. Of course a linear approximation often suffices, but I'm after a better fit.

The purpose is to fit the curve (representing the function) to battery voltage readings taken from a device under test. This will enable predictions of battery life, and battery life at different temperatures.

  • \$\begingroup\$ This is just an $0.02 comment. See how much variation you'd get between 2 cells under best conditions. Collect measurements from 2 cells side by side. Use 1% load resistors, if you can. Take cells from the same package, which would mean that they were made at the same time and place. \$\endgroup\$ – Nick Alexeev Oct 16 '12 at 4:56
  • \$\begingroup\$ Batteries also change in ESR vs capacity remaining which is related to voltage under load, so the net voltage vs time must factor both. In Lithium batteries it is more pronounced so the knee of the curve is sharper. \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Oct 16 '12 at 5:22
  • \$\begingroup\$ Thanks for the comments. @NickAlexeev I've got a lot of field data already actually, using instruments with the same battery pack and same constant current load. I'm after a function to fit to this data battery voltage data, and for other instruments. \$\endgroup\$ – geometrikal Oct 16 '12 at 5:36
  • \$\begingroup\$ If you have a lot of data already like the graphs shown, you can probably just do a n-degree polynomal fit at a given temperature. If battery voltage vs temperature has a linear relationship (well, im sure there is some degree of non-linearity), it would be pretty trivial to make battery voltage as a function of constant load or current and temperature. \$\endgroup\$ – Michael Choi Oct 16 '12 at 7:25
  • \$\begingroup\$ I interpreted "Constant load" as "Constant power load" - I would really like to see this curve. It must be a warped version of constant current, there is a factor of two in voltage so there must be a factor of two in power outbut between the start and ends of the curves. I use a voltage regulator on dry cells to make a USB charger (for off-grid use). What these curves tell us is that there is power down to about 0.9 volts, so to make efficient use of dry cells we need about 6 of them to get 5V. \$\endgroup\$ – Tony Robinson Aug 19 '19 at 10:00

An equation/model that described the effects of time, current, temperature, etc. on battery voltage would be very useful. It would be even better if a microcontroller could use that model to deduce/estimate the internal state of the battery -- in particular, the state of charge (SoC) and the depth of discharge (DoD). Ideally by watching a battery as it is normally being used, but perhaps probing the battery with occasional brief pulses of positive and negative current would be informative.

My understanding is that many people approximate a battery as some internal voltage source in series with the battery internal resistance (or a more complex RC network). Rather than try to find an equation that directly gives the output voltage of the battery given the instantaneous internal battery state and the instantaneous current pulled from it, they assume the internal voltage source stays fixed (for a given kind of battery chemistry) and find some equation that slowly adjusts the internal resistance of the battery -- close to zero when the battery is fully charged, and slowly increasing resistance as the battery discharges. (Other rapid-transient effects are modeled by fixed capacitors and fixed resistors in the RC network).

I hear that one manufacturer uses a state-of-charge model of a battery with 408 different values. Is there a better model?


Off the cuff as someone who started formal training in both electronics and mathematics as a teenager, and ended up with an M.S. in Applied Mathematics (Univ. of MD, 1991) and 20 years of experience as an electronics design engineer - including using Lithium Iodide cells for CMOS memory backup in 1981 (yeah, "way back in the day") - I will tell you flat out that any hope for a "closed form" mathematical equation (into which you can "plug in" the parameters) is right up there with wishing upon a star. It is not about electronic instruments or their use of primary or secondary cells for operating power: it is all about electrochemistry!

So go study Physical (and Electro) Chemistry as that is the actual science, not technology, behind these devices. All common batteries (as we know them) are chemical sources of electrical energy - or did someone forget to mention that simple and obvious fact? (Does this matter truly require a BSEE to fully grasp intellectually?)

  • \$\begingroup\$ My mentor used to say: "Battery is a nonlinear function of everything." \$\endgroup\$ – Nick Alexeev Aug 24 '14 at 19:05

The instantaneous voltage equation over time may be interesting.

But what is important to most for a given cut-off voltage, what is the watt-hours of service, for a given load value and type {constant I, R, or P).

Other variables which affect service life include duty cycle per day average service temperature.

You can try to convert the results from here to a formula using temperature to affect the capacity.


You can use MS Excel to generate a polynomial curve fit based on your data, then have Excel display the equation on the chart. You may have to diddle the first term a little to get it to fit exactly. I use this feature quite often, and take the equation displayed and generate another curve with it. This way I can make those little adjustments to the first term of the polynomial until the calculated curve fits my data, then I have a pretty good approximation of the actual data.


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.