A note for battery scientists

Can a day of CAN data say anything about a battery’s future?

Yes, within stated limits. The method is Kennedy–O’Hagan model calibration, not curve fitting. Your chemistry knowledge is the starting point; the log tells us where this cell sits.

In brief

Chemists and statisticians are doing different halves of one job. The chemistry becomes the prior; the statistics keeps the doubt honest.

1 · The question a battery scientist asks

Show a battery scientist a remaining-life forecast made from a day of BMS data and the reply is predictable:

“Batteries are non-linear electrochemical systems. Most battery scientists would not accept that a short CAN log can predict state of health and remaining useful life. Reviewers will not either.”

The objection is correct, and it would be fatal if the engine fitted a degradation curve to a few hours of data. Twelve hours contain almost no fade: at one cycle a day, a cell loses a few thousandths of a percentage point of capacity. No method can read a knee from that. The engine does something different, and statisticians have a well-studied name for it.

2 · The answer in one equation

Kennedy and O’Hagan (2001): how to combine an expensive, non-linear computer model with a handful of real-world measurements.

y(x) = η(x, θ) + δ(x) + ε
TermIn KOHIn the engine
xinputs, conditionsthe cell’s 16-parameter state from CAN: current, voltages, temperature, SoC, DoD, C-rate, resistance, cycle count, calendar age
η(x, θ)the physics simulatorthe MW manifold: a Pyro VAE trained on a large synthetic fleet under degradation priors (√t SEI growth, cycling stress, Arrhenius, plating, swelling, cracking)
θphysical constantsposteriors carried in the checkpoint (activation energy, rate and stress coefficients), shown with their uncertainty in the Physics Lab
δ(x)model discrepancyper-cell true degradation estimated from the log: capacity ratio and fade-rate multiplier, each with uncertainty
εmeasurement noiseper-feature observation noise; BMS resolution and IR floor reported per log

The non-linearity lives in η. It is fixed by physics and by thousands of simulated cells before this battery is seen. The log answers an easier question: where on this family of physically allowed curves does this cell sit, and how does it differ from the typical member?

A map and one position fix will place you on a winding road. Here the physics is the map and the CAN log is the fix.

3 · What a short log tells you

So one log gives today’s state tightly and the future loosely, and the posterior says so.

QuantityFrom one 12–24 h log?How the engine handles it
Present SoHYesevery forecast path is anchored to the measured SoH; nothing starts from a guess
Per-cell DCIR and dR/dTYes, from current stepstemperature-normalised to 25 °C, 300-sample bootstrap CI per cell
Duty cycleYestemperature, DoD swings, C-rate, rest share and cycles/day become the forecast’s default duty
Capacity spread vs SoC imbalanceIf the log reaches both ends of the SoC swingseparated by a weighted fit; otherwise the app says not resolvable and does not invent a difference
This cell’s fade rateNo: almost no fade in a dayprior from the manifold, scaled per cell by its DCIR, with a double-count guard
Knee onsetNoprior conditioned on duty and resistance; a repeat log adds resistance growth, an early knee signal

A repeat log adds the cell’s own rate once enough has changed to stand above sensor noise, typically weeks to months depending on throughput. The most useful addition is resistance growth: a resistance “elbow” is reported to precede the capacity knee (Fermín-Cueto et al., 2020).

How the range narrows

Schematic of the logic, not a result: a toy model with 40,000 synthetic cells. Tap to add a log.

3,000cycles to end of life6,000

(a) The prior η: every path obeys the same laws; parameters differ. (b) Conditioning on log 1 (duty, DCIR, present SoH) keeps only paths consistent with this cell; log 2 adds SoH change and DCIR growth. The 90% end-of-life interval narrows from 3,080–5,690 cycles (prior) to 3,000–4,780 (one log) to 3,390–4,570 (two logs).

4 · How the app answers each objection

Every row is described in the note as a feature of the current app.

A battery scientist asksWhat the app does
Is the log itself trustworthy?Before any model runs, nine physics checks on the raw log, per cell and per pack: Ohmic response (MP1), Arrhenius resistance (MP2), OCV↔SoC at rest (MP3), coulomb closure (MP4), SoH ≤ 1 (MP5), chemistry voltage window (MP6), balance at rest (MP7), Joule heating vs thermal gradient (MP8), relaxation to OCV (MP9). An admissibility score summarises them.
Batteries are non-linear.The curve comes from the manifold, not the log. The life forecast walks each cell forward in cycles with calendar age advancing at the log’s own pace.
Capacity cannot recover.Every path is constrained to be non-increasing. The unclamped decoder is kept and the number of steps where it would have risen is reported (MP10), so the constraint is visible, not hidden.
Every cell is different.Per-cell true degradation: each cell’s path is its present SoH minus its fade multiplier times the manifold’s fade, both shrunk across cells so noise is not mistaken for signal. The pack limit is the weakest cell.
How sure are you?Coherent posterior sample paths per forecast (48 by default, up to 128). EOL is reported as a mean, a 90% credible window, P(EOL within 1,000 cycles), and the share of paths extrapolated past the horizon.
Is the cell-level difference real?The true line is compared with the manifold at the horizon. If the gap is inside posterior σ, the app says the two are not distinguishable.
Which operating lever matters?Virtual Lab: sweep temperature, SoC, DoD, C-rate, pace or calendar age on paired posterior paths. A lever counts as resolved only if its effect exceeds posterior σ; values outside the training range are flagged as extrapolation.
Is this state inside what the model knows?MW distance, the standardised off-manifold residual, per cell and through the log, plus a training-range check on every input.

5 · The knee, and where MW goes beyond classic KOH

Capacity fade has two regimes: slow, roughly √t SEI growth, then acceleration once plating or particle cracking switches on (Attia et al., 2022). Classic KOH places Gaussian processes on η and δ; a GP is smooth by construction and blurs an on/off switch. MW puts the switch in the prior as a regime the inference can represent directly. Where the regime switches, the same step in time produces a much larger step in SoH: the metric G(z) = JᵀWJ stretches and the manifold folds. The walk follows the fold, and its projection onto the (cycles, SoH) plane is the knee. The app reports a knee only when a two-segment fit clearly beats a straight line (F > 10) and the second segment is steeper.

Classic KOHMW
PriorsGaussian processesphysical priors: LogNormal rate constants, Beta fractions, Bernoulli regimes
CostO(N³) in data pointsamortised: one encoder–decoder pass per state, independent of fleet size
Discrepancyone δ(x)per cell (capacity, rate) and per physics law (MP1–MP10), each readable
Geometrynonelearned manifold; knee as curvature; off-manifold states flagged

For statisticians. Brynjarsdóttir and O’Hagan (2014) showed that θ and δ are confounded when priors are weak. Physically grounded priors are the standard remedy; the engine adds an explicit guard so the per-cell term does not re-count what the manifold already explains. The geometry is explained step by step on the maths page.

6 · What the engine claims, and what it does not

It delivers
  • Present SoH and per-cell state with credible intervals, from one log.
  • RUL as a posterior interval at a stated duty cycle.
  • Intervals that narrow as repeat logs arrive, and an explicit flag when they cannot.
  • Physics checks on the data before any model runs.
It does not claim
  • An exact knee cycle from a single day of data.
  • Electrochemical mechanism identification: that needs RPTs, dQ/dV and post-mortem.
  • To replace laboratory testing; it works between tests.
  • To be a safety system. It cannot detect thermal runaway or internal shorts.
On the theory. The method is ready to use. The one open question is empirical calibration on a partner’s cells: blind predictions filed before the cells reach end of life, checked for whether the 90% intervals contain the outcome about 90% of the time. The app already produces everything that study needs.

What it takes to run on your cells

References

Open the original note (PDF, 4 pages) The maths in plain steps

Draft for discussion, October 2026.