Function to describe alkaline battery voltage under constant current / load
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).


Jonathan Johansen.
"Mathematical modelling of Primary Alkaline Batteries".
gives curves that very closely match your first curve,
and a explanation in terms of the internal chemistry.
(Can you tell I prefer such "Babylonian" explanations?)
Mathworks.
generic battery model.
Uses a fixed internal resistance and a complex equation to describe the internal voltage.
This gives a curve that very closely matches your first curve.
Alas, to me it looks like the kind of Euclidean equations that give more-or-less the right answers, but don't help me understand what's really going on.
Min Chen, and Gabriel A. Rincon-Mora.
"Accurate Electrical Battery Model Capable of Predicting Runtime and I–V Performance"
M.R. Jongerden and B.R. Haverkort.
"Battery Modeling".
Wikipedia: Peukert's law.
Peukert's law is an equation that estimates the run-time -- from fully charged to fully drained -- from 4 other parameters, including a Peukert exponent.
Guoliang Wu, Rengui Lu, Chunbo Zhu, and C. C. Chan.
"Apply a Piece-wise Peukert’s Equation with Temperature Correction Factor to NiMH Battery State of Charge Estimation".
Guoliang Wu et. al. show one way to adjust the Peukert exponent to compensate for temperature.
So we're up to 5 values.
Alas, my understanding is that both Peukert's law and Guoliang's improvement are purely empirical fits to a bunch of data -- it doesn't explain why the run-time varies in that way.
They only gives one point on your graph -- the time when your graph crosses the manufacturer's full discharge voltage -- roughly 0.8 V for alkaline batteries.
Ralph Hiesey.
"Some comments on “Peukert’s” compensation—why we don’t use it".
Ahmed Fasih.
"Modeling and Fault Diagnosis of Automotive Lead-Acid Batteries".
Mikäel G. Cugneta, Matthieu Dubarrya and Bor Yann Liawa
"Peukert's Law of a Lead-Acid Battery Simulated by a Mathematical Model".
Quan-Chao Zhuang et. al.
"Diagnosis of Electrochemical Impedance Spectroscopy in Lithium-Ion Batteries"
p. 192 shows a model of a battery composed of a bunch of resistors and capacitors.
Duracell MN1500 AA datasheet
has a nice graph of resistance versus depth of discharge. All Duracell datasheets, in case the link changes.


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