Automotive

Battery management systems

How a BMS estimates state of charge when it cannot measure it directly, what state of health really means, why cells drift apart and how balancing pulls them back, and what the thermal circuit is protecting.

IntermediateAutomotive

Standards referencedISO 6469-1IEC 62660-2SAE J1772ISO 26262

The battery management system has an awkward job. It has to report how much energy is left in something that offers no direct way of measuring it, keep several thousand cells within limits it cannot enforce individually, and decide when to refuse what the driver is asking for.

A battery management controller board removed from a pack and laid on an antistatic mat, with the ribbon of cell sense wires still plugged into its connector and fanning out to the left, a current shunt with heavy copper terminals beside it, and a row of small balancing resistors visible along one edge of the board.
The sense wire ribbon is the whole problem in one picture — one pair of wires for every cell group in the pack, because there is no other way to know what each one is doing.

Why state of charge is an estimate

A fuel tank has a float sitting on the surface of what is left. A cell has nothing equivalent. There is no quantity inside it that corresponds to remaining charge and can be read from outside.

So every percentage a vehicle displays is inferred, by combining indications that are each individually inadequate.

A diagram of state of charge estimation. On the left, coulomb counting is shown as current integrated over time, with an inset showing a small constant current sensor error accumulating into a growing divergence between the estimate and the truth. In the middle, open circuit voltage is shown as a curve of voltage against state of charge, with a steep NMC curve beside a very flat LFP curve, and a band across the flat region showing how a few millivolts of error corresponds to a large charge error. On the right, the two methods are shown combined in a filter, with coulomb counting providing short term accuracy and rested open circuit voltage providing periodic correction. A lower panel shows state of health as two separate measures, capacity fade reducing range and internal resistance growth reducing power and charging speed.
Neither method works alone. Coulomb counting is accurate but drifts, voltage is absolute but ambiguous — so every real system runs both and lets each correct the other.

Coulomb counting

Integrate the current flowing in and out. Over minutes and hours this is excellent, because it measures the thing that actually matters.

Its weakness is that an integrator never forgets. A current sensor reading a fraction of a percent high adds a little error every second, and that error accumulates without limit. Left alone, the estimate drifts steadily away from the truth.

Open circuit voltage

A rested cell’s terminal voltage relates to its charge in a repeatable way. This gives an absolute reference that does not drift.

But it only works at rest. Under load the terminal voltage is the open circuit value minus the drop across internal resistance, and after the load stops the chemistry needs time to settle. This is why the displayed figure is sometimes noticeably corrected after a car has stood overnight.

Running both

Real systems run a filter that uses coulomb counting for short-term accuracy and corrects it whenever the pack rests long enough for a voltage reading to mean something. Temperature and a model of the cell’s internal resistance feed into the same calculation.

State of health is two separate things

Measure What it is What the driver notices
Capacity fade Amp hours available now against when new Range falls
Resistance growth Internal resistance now against when new Less power, slower charging, more heat

A pack can fail one and pass the other. One that has lost fifteen percent of its capacity but kept its resistance still drives normally over a shorter distance. One that has kept its capacity but doubled its resistance goes just as far but accelerates less hard, charges more slowly and runs hotter doing it.

Why cells drift apart

Every cell in a series string carries identical current. It does not follow that they experience identical conditions.

  • They did not start identical — manufacturing tolerance guarantees a spread.
  • A cell in the middle of a module runs hotter than one at the edge, and temperature drives both self-discharge and ageing rate.
  • Small differences in internal resistance mean slightly different heating for the same current.

Over hundreds of cycles those differences compound, and the spread grows.

This matters because of the rule from battery cells, chemistries and packs — the worst cell limits the string. The first cell to reach its upper limit stops the charge for all of them, and the first to reach its lower limit stops the discharge. Capacity that the other cells still hold becomes unreachable.

Balancing

A diagram of cell balancing and thermal management. The upper half shows a series string of cells drawn at different states of charge, with the fullest cell stopping the charge before the others are full and the emptiest cell stopping the discharge before the others are empty, marking the unreachable capacity at both ends. Passive balancing is shown as a resistor and switch across each cell bleeding the higher cells down as heat, and active balancing is shown as converters moving charge from fuller cells into emptier ones. The lower half shows the thermal circuit, with a cooling loop through a chiller and radiator and a heater in the same loop, and a band chart showing the narrow temperature window in which fast charging is permitted, with lithium plating below it and accelerated ageing above it.
Balancing does not add capacity. It recovers capacity the spread had made unreachable, by bringing the outliers back to the group.

Passive balancing puts a small resistor and a switch across each cell. Cells running ahead are bled down through the resistor until they match the lowest. The energy is simply wasted as heat.

It is crude, and it is slow — the rate is limited by how much heat the electronics can get rid of. It is also what the great majority of packs use, because it costs almost nothing.

Active balancing uses small converters or switched capacitors to move charge from fuller cells into emptier ones. Nothing is thrown away, much larger imbalances can be corrected, and there is little heat to deal with. It costs considerably more hardware per cell, so it appears mostly where packs are large, expensive and expected to last a very long time.

The thermal circuit

The pack has a narrow temperature window, and it is bounded for different reasons at each end.

  • Too cold — lithium plates onto the anode during high charge current, permanently. The pack must be warmed before it will accept full charging power.
  • Too hot — ageing accelerates sharply, and the margin to runaway onset shrinks.

So the circuit both heats and cools. A coolant loop runs through plates in contact with the cells, through a chiller tied into the air conditioning for high-load cooling, and through a heater for cold starts and pre-conditioning.

Contactors and pre-charge

The pack connects to the vehicle through contactors — large relays, held closed by 12 volt coils, normally open.

They cannot simply be closed. The inverter’s DC link capacitors start empty, and an empty capacitor looks like a short circuit for the first instant. Connecting it directly across a pack capable of hundreds of amps would produce an inrush that arcs and welds the contacts closed permanently.

So the sequence is:

  1. Close the negative contactor.
  2. Close a pre-charge contactor that feeds the DC link through a resistor, filling the capacitors gently over a few hundred milliseconds.
  3. Check that the DC link voltage has risen to match the pack.
  4. Close the main positive contactor — now across almost no voltage difference.
  5. Open the pre-charge contactor.

What to take away

  • State of charge cannot be measured, only inferred. Coulomb counting is accurate but drifts; rested open circuit voltage is absolute but only available at rest. Every real system runs both.
  • LFP’s flat voltage curve makes estimation hard, which is why those packs need periodic full charges as a reference.
  • State of health is capacity fade and resistance growth, and they inconvenience the driver in different ways.
  • Cells drift apart because identical current does not mean identical temperature or identical starting point.
  • Balancing recovers unreachable capacity rather than adding any. Passive wastes the difference as heat, active moves it.
  • The temperature window is bounded by lithium plating below and accelerated ageing above, so the circuit heats as well as cools.
  • Pre-charge exists so the inrush into empty capacitors does not weld the contactors shut.

Next, what all this energy is for — traction motors and inverters.

Check your understanding

10 questions. Nothing is recorded — this is just for you.

1Why can state of charge not simply be measured?
2What is coulomb counting, and what is its weakness?
3Why is open circuit voltage only useful after the pack has rested?
4Why is LFP harder to estimate state of charge for than NMC?
5What does state of health describe?
6Why do cells in a series string drift apart over time even though they carry identical current?
7How does passive balancing work?
8What is the advantage of active balancing?
9Why does the BMS pre-charge the DC link before closing the main contactor?
10What happens to a pack that is left at a very high state of charge in hot weather?

#vehicle systems#BMS#state of charge#state of health#cell balancing#coulomb counting#thermal management#contactors#electric vehicles