Battery model validation
Why battery ECM validation needs a pulse it has never seen
A low fitting error can mean the model captured useful dynamics—or that the optimizer learned one current profile unusually well. A held-out pulse separates those explanations.

A good fit is only the first question
A battery equivalent-circuit model can match the pulse used to tune it and still be a poor model. Calibration error answers a narrow question: can this parameter set reproduce the record used to estimate it? It does not show whether the same parameters work with different pulse timings and amplitudes, whether the fast and slow branches are distinguishable, or whether the open-circuit-voltage input leaked information from the target.
The difference becomes visible only when the fitted model predicts a voltage record that did not influence the fit.
The two-RC model being tested
A common equivalent-circuit structure represents terminal voltage as Vt = Voc(SOC) - I R0 - V1 - V2. Its polarization states follow dV1/dt = -V1/(R1 C1) + I/C1 and dV2/dt = -V2/(R2 C2) + I/C2.
The series resistance R0 captures the immediate voltage step. The two RC branches represent faster and slower recovery dynamics, with time constants tau1 = R1*C1 and tau2 = R2*C2. The structure is compact enough for teaching, estimation baselines, and controller studies, but that compactness makes the assumptions around current sign, OCV, initial SOC, polarization, sample time, and parameter bounds especially important.
What a held-out pulse changes
A held-out profile is excluded from parameter estimation. The fitting function never receives its target voltage. After calibration, the same parameter set is used without retuning to simulate that second profile.
- Fit on profile A.
- Freeze every fitted parameter.
- Simulate profile B using only permitted inputs and independently supplied initial conditions.
- Compare predicted and target voltage on profile B.
If calibration error is low but held-out error grows sharply, the fit probably does not generalize. Possible causes include weak excitation, parameter correlation, OCV leakage, or a calibration duty cycle that does not represent the held-out profile. Similar errors are stronger evidence, but the claim remains bounded by the tested profiles, SOC range, temperature, chemistry, and data construction.
A reproducible MATLAB benchmark
The open benchmark accompanying this article uses deterministic synthetic voltage records. It fits positive two-RC parameters on one pulse and then evaluates a distinct held-out pulse.
- Calibration voltage RMSE: 0.401 mV
- Held-out voltage RMSE: 0.440 mV
- Fast fitted time constant: 2.01 s
- Slow fitted time constant: 33.88 s
The similar errors show that this implementation can recover the intended synthetic dynamics without using the held-out target in the fit. They do not prove that these parameter values describe a physical cell. This is a regression and methodology benchmark, not cell characterization.
Five checks that prevent a misleading result
1. Keep OCV independent of the voltage target
If OCV is reconstructed from the same terminal voltage being fitted, part of the target can leak into the input. Use a separately measured OCV-SOC relation or another independently justified source, and document how SOC and initial OCV were established.
2. Enforce positive parameters
Negative resistances or capacitances can reduce a numerical objective while destroying the intended physical interpretation. Positivity is a basic constraint, not proof of identifiability.
3. Preserve the current sign convention
Whether positive current means charge or discharge changes every voltage-drop term and the SOC update. State the convention beside the equations and test it with a known pulse direction.
4. Freeze the fit before evaluation
Do not tune parameters, thresholds, initial states, filtering, or OCV processing after viewing the held-out residual. If you do, reclassify that record as development data and reserve a third untouched record for the final test.
5. Inspect structured errors
RMSE can hide systematic behavior. Also inspect maximum and mean absolute error, current transitions, recovery segments, and sensitivity to initial SOC and polarization.
Common failure modes
The model reaches cutoff too early. Check whether cutoff comes from SOC depletion or loaded voltage. Rated ampere-hour capacity does not guarantee a one-hour discharge at 1C when voltage limits and polarization terminate the usable window.
The slow branch is unstable or enormous. The pulse may lack enough rest or low-frequency content to distinguish the slow time constant. Bounds keep an optimizer finite; they cannot create missing information.
The held-out residual has a persistent offset. Recheck initial SOC, OCV-SOC consistency, temperature, hysteresis, and current integration. An RC branch should not compensate for OCV bias.
The fit works at one SOC only. A constant-parameter model may be too coarse. Add SOC-dependent maps only after the baseline experiment is traceable and sufficiently excited.
What this result supports—and what it does not
A clean held-out result supports the claim that one fixed parameter set generalized across the tested records under the stated assumptions.
It does not establish physical-cell validation, parameter uniqueness, accuracy across temperature or ageing, hysteresis behavior, pack-level safety, or production readiness. Those claims require measured data, broader experimental design, uncertainty analysis, and application-specific validation.
Reproduce the workflow
The complete MATLAB source, equations, assumptions, fitting function, held-out evaluation, result figure, and deterministic checks are available in the open two-RC parameter-identification tutorial.
Start with the documented model, run its checks, and replace the synthetic benchmark only when OCV, SOC initialization, units, sign convention, licensing, and the calibration/held-out split are independently documented. The useful question is not whether a model can fit one trace. It is whether its assumptions and parameters survive the next trace without being quietly changed.