How it works

The MW Battery Engine

The Modak–Walawalkar (MW) Battery Engine is a Bayesian, physics-constrained approach to battery analytics. It reads the ordinary BMS/CAN log a pack already produces and separates the single health number into how cells actually age: resistance growth, lithium-inventory loss, slower internal transport and heat.

What it combines

Five ingredients, one engine

Together they separate meaningful ageing signals from noise, sensor faults, inconsistencies and misleading indicators.

  • Measured battery behaviour

    Resistance, relaxation and dQ/dV peaks fitted directly from the raw log.

  • Battery physics

    Ageing laws such as Arrhenius temperature acceleration, calendar fade and SEI growth, with SoH ≤ 1 and no capacity recovery built in.

  • Integrity checks

    Ten laws test whether the log itself is physically consistent before anything is concluded from it.

  • Bayesian inference

    The ageing-law constants are learned as probability distributions, so every result carries its uncertainty.

  • Predictive modelling

    Many coherent simulated futures through a learned map of battery states give a life distribution, not a guess.

Why physics plus Bayes, and not one without the other

A 20-hour log from one pack is far too little data to learn battery ageing from scratch. The physics priors — the law forms, SoH ≤ 1, no capacity recovery — do the heavy lifting, and the posteriors learned across training packs supply the constants. The log then only has to place each cell on that learned map. That is why the engine can say something useful from ordinary BMS telemetry, and why it can also say clearly where it cannot.

The Bayesian layer

A distribution, not a single answer

A conventional tool answers “what is the SoH?” with one number. A Bayesian engine answers with what is plausible, how plausible, and how much the data actually supports. It decides what the report is allowed to claim.

  1. PriorWhat physics allows

    Law forms (Arrhenius, √t calendar fade, SEI), SoH ≤ 1, no capacity gain.

  2. DataWhat was observed

    Training packs shape the posteriors. Your log is projected in.

  3. PosteriorWhat we now believe

    Law coefficients as distributions; each cell placed on the map with its own σ.

  4. PredictiveWhat happens next

    48 coherent walks through the map give an end-of-life distribution and a health band.

  5. DecisionWhat you can act on

    Probability of end of life within N cycles, percentiles, whether an effect is resolved, and trust via MW distance.

Three kinds of number

Every value says how far to trust it

Every number in an assessment belongs to one of three groups. The split is deliberate: model estimates can never sit unnoticed among the measurements.

GroupWhere it comes fromWho can verify itHow to use it
MeasuredWhere it comes fromFits and arithmetic on the raw log: regressions of ΔV/ΔI, dQ/dV curves, relaxation fits. No model needed.Who can verify itAnyone with the CSV: point at the rows and recompute.How to use itGround truth. Safe to quote with its confidence interval.
Physics-checkedWhere it comes fromEach law expressed in σ against a fire line. Above the line, the law is broken.Who can verify itAn engineer, by reading the law and the measured value behind it.How to use itIntegrity and fault findings. A break is a lead to investigate, not a verdict.
Bayesian posteriorWhere it comes fromLearned law coefficients, the cell’s position on a 32-dimension learned map, and 48 sampled forward walks.Who can verify itBy trusting the trained model, and by checking MW distance and the training-range law to see if it is extrapolating.How to use itPlanning, probabilities and ranking. Always quoted with the window and the caveats.
Physics laws

Two families, two jobs

Physics can reveal an inconsistency; the physical cause still needs investigation. Keeping the two families apart is what makes both trustworthy.

Ageing laws: how a cell ages

Arrhenius temperature acceleration, √t calendar fade, SEI growth, cycle ageing, C-rate, SoC and depth-of- discharge stress, plating, swelling, particle cracking. Their coefficients are learned as posteriors and shape every forecast.

  • L1Arrhenius factor Ageing rate at your temperature vs 25 °C
  • L2Plating window Cold and fast charge
  • L3Voltage window Cells inside chemistry limits
  • L4Capacity bound SoH ≤ 1
  • L5Manifold distance Is your state admissible?
  • L6Training range Largest input vs training normaliser
  • L7No recovery A forecast path must not gain capacity

Integrity laws: is this log consistent?

Ohm, Arrhenius sign, OCV–SoC, coulomb closure, SoH ≤ 1, voltage window, balance, Joule heating, relaxation and manifold agreement. Each tests measured values against a fire line, scaled by the value’s own uncertainty, so a noisy cell does not fire on noise alone.

  • MP1Voltage follows current across steps (Ohm)
  • MP2Resistance falls as cells warm
  • MP3Resting voltage agrees with BMS SoC
  • MP4∫I dt agrees with ΔSoC
  • MP5Capacity ≤ nominal
  • MP6Cell voltages inside the chemistry window
  • MP7String balanced at rest
  • MP8Gradient consistent with Joule heating Fired on the reference pack
  • MP9Voltage relaxes back after steps
  • MP10Manifold SoH agrees with measured
Fire lines and what to suspect when a law breaks
The learned map

Manifolds instead of hand-solved equations

Solving governing equations for every scenario takes specialist time and compute. The MW Framework replaces that with Bayesian priors and a learned manifold of physically consistent states.

  1. Step 1

    Encode physics as priors

    Domain knowledge — thermodynamics, electrochemistry — becomes a Bayesian prior instead of a hand-solved equation.

    import pyro
    import pyro.distributions as dist
    
    def battery_prior():
        r_int = pyro.sample(
            "internal_resistance",
            dist.LogNormal(-2.1, 0.3)
        )
        soh = pyro.sample(
            "state_of_health",
            dist.Beta(9.0, 1.2)
        )
        return r_int, soh
  2. Step 2

    Learn the manifold

    An encoder–decoder pair learns the low-dimensional curved surface that physically consistent battery states actually live on.

  3. Step 3

    Read the distance

    A state far from that surface is physically unusual. MW distance measures how far, so the model can say when it is outside what it knows.

MW distance on the reference pack

Knowing when not to trust a forecast is part of the analytics. Above 3σ the model is outside its learned range, and the report says so instead of quoting a life number.

1.7σ this pack: inside the learned map, so the forecast can be used with its stated caveats.

> 3σ outside what the model has learned: do not quote a remaining-life number. Gather more data or retrain.

MW distance measures how far a battery’s state sits from the learned map of physically consistent states.
For the expert reader

Where v7 is not yet fully Bayesian

Worth knowing before you describe the system to a specialist. Each gap has a concrete upgrade that closes it.

  • MP1–MP10 use fixed fire lines. They report “fired / not fired”, not a posterior probability that the law is violated.
  • L1 uses the central value of the activation-energy posterior. The 2.46× factor is shown without the interval that posterior implies.
  • The forecast samples the cell’s latent state, not the law coefficients, so the credible window understates coefficient uncertainty.
  • Latent σ is capped at the prior (σ ≤ 1). This keeps far off-manifold bands from blowing up, but also means the band cannot widen as much as it should.
Beyond batteries

The same engine as a physics validation layer

Battery analytics is our commercial offering. The MW Framework underneath it is general: only the priors change.

A physics constraint layer for world models

AI is moving from text to the physical world. World models can drift over long horizons — inventing energy, violating conservation, producing impossible states. MW is designed to plug in as a physics constraint layer that checks whether a predicted state is physically valid. We do not compete with world-model labs; we aim to complete them.

Built in India

Not by outspending anyone on hardware, but by extracting exact answers from imperfect means — a long Indian tradition from Aryabhata to Ramanujan. We are building a sovereign physics engine for India’s strategic future.

Validated against published battery research

Trained only on electrochemical priors, the engine independently reproduced a leading battery researcher’s published SEI-cracking findings on his own data, a result he has confirmed.

One architecture, other domains

The same engine powers our RF work, detecting GNSS spoofing that per-band threshold systems miss. Our GitHub repository hosts an open demo of MW applied to verticals other than batteries.

See what your own battery data is telling you.

Share a BMS/CAN log. We run it through the MW Battery Engine and send back an MW Battery Assessment Report: findings, how sure we are, and what to do next. The first assessment is free.