EV Engineering News

The challenges of battery state of charge measurements

Your BMS’s fuel gauge is lying to you. Here’s why that’s not a big deal.

Battery management systems (BMSs), and the fuel gauges in them, are a part of daily life for almost everyone. You’ll find them in vehicles, laptops, cell phones, grid-attached energy storage – basically, anything that does work and needs to be plugged in, recharged, or refilled at some point. Leave it unconnected long enough and it stops working. 

The instantaneous readouts on these devices have conditioned us to think about fuel gauging as a quick measurement taken spontaneously. “I’ll just check my laptop battery real quick!” you might say, followed by, “I have 78.7% remaining, I’m good for hours!” Well, it’s a lie! OK not a complete lie, but more of a guess. A highly educated guess. Behind that comforting three-digit façade lies a complex process that is a product of careful analysis, design, testing, and tuning.

You see, batteries are tricky beasts. No task makes this statement ring truer than trying to determine the state of charge of a single cell. So what do you (pretending to be a BMS for a minute) measure to determine remaining energy? Since it is a function of electrons in minus electrons out, you can measure the net charge into the battery since the last known state of charge (SOC) state by integrating current into/out of the battery. Easy, right? Just measure current, tell your laptop it’s been living a lie, and then go to lunch! I hear there’s a new sandwich shop that just opened up down the street…

Just kidding. Here are some more of the many factors that affect usable energy within a battery1, 2:

  • Instantaneous temperature
  • Instantaneous discharge rate
  • Age
  • Cycle count history
  • Depth of discharge history
  • Time since last charge (self-discharge effects)
  • Temperature fluctuations since last charge (self-discharge effects)

Because there are so many factors affecting the electrochemical behavior of a battery, a “measurement” of state of charge cannot be performed by reading a sensor. What is implied by reading the state of charge of a cell or pack is that an estimate is made based on other directly measurable inputs. Outside of the 0% and 100% SOC bounds (usually measured with voltage), determining SOC is a process of creating an estimate. 

“Oh sure,” you might say, “I’ll just measure all the inputs! Then go to lunch! You have enticed me with talk of this new sandwich shop.” Sorry about that. The sandwich shop is going to have to wait. The reality is that not all inputs are equally measurable, and not all measurements affect SOC equally.

Chemistries like lead-acid make fuel gauging relatively straightforward, since there is a fairly consistent correlation between voltage and SOC; voltage being more easily measurable due to a larger and more consistent change in voltage across the SOC range, making the inverse mapping of voltage to SOC more accurate. 

Chemistries like lithium-ion are more difficult to estimate this way since the change in voltage within the nominal range (10% to 90% SOC for a typical lithium-ion chemistry) is very small, often in the tens of millivolts, and changes progressively less with increasing discharge rates. This is one of the many reasons it doesn’t make sense to have a “one size fits all” BMS – custom-engineered solutions are usually more appropriate. 

Under certain conditions, the voltage-versus-SOC curve is not even monotonic, due to secondary effects like self-heating 3

Figure 1 shows the discharge curve of a well-used LiFePO4 cell from a battery pack from one of Nuvation’s combat robots. In this test, it has been taken out of an 8-series/1-parallel pack and cycled at four different discharge rates at an ambient temperature of 20° C (sometimes our office is kind of cold). Results were measured with a battery analyzer.

The curves in Figure 1 show two important results from the discussion above: SOC dependence on instantaneous current; and the effect of the discharge rate on measured voltage. 

Voltage tends to sag, and usable capacity decreases under load. Both of these effects relax back to their open-circuit values when the load is removed, though not instantaneously. Batteries tend to have a load/charge-dependent hysteresis this way, making voltage seem elastic or “springy.” What’s important in this observation is that not only are the various inputs measurable to different degrees of accuracy, and not only do they affect SOC differently, but these parameters also affect each other. 

Voltage is coupled to temperature, which is coupled to discharge rate which is coupled to…you get the idea. Lots of variables, lots of unknowns, lots of ways error can get introduced.

OK now you’re probably thinking, “Geez, my laptop can’t possibly keep track of all that information! Now I’ll never get lunch and die starving in a ditch somewhere with no charge left in my laptop, clutching a multimeter riddled with teeth marks!” 

Well, the good news is that it’s not quite so grim. Your laptop can kind of keep track of these things. Kind of. 

Most sophisticated SOC estimation algorithms work off of a battery model. This can be an electro-chemical model, a purely electrical model, a lookup table of past history, or anything that will generate a prediction of things to come. 

A lot of times these algorithms implement “state estimators” – or “observers” in controls-speak – that predict SOC based on a battery model and then correct it using measured inputs. An example of this is known as the Kalman filtering approach4, 5, though there are others 6

A good approach would assign a confidence or weight to an input based on an understanding of the battery model, and update this weighting as the system changes.

In practice “coulomb counting,” the act of integrating current to get a measure of charge, is weighted heavily. There are drawbacks to relying too heavily on this, however, mostly due to measurement errors also being integrated and accumulated with the parameter of interest. To illustrate this point, Figure 2 shows a simulated-use case in which a 2500 mAh battery pack is cycled multiple times within its 10% to 90% SOC range, and SOC is calculated using only integrated current (coulomb counting). 

An algorithm like a Kalman filter is a good fit for this application, because it tends to offset the weaknesses of one kind of measurement with the strengths of another, fusing the data to create an estimate that is essentially greater than the sum of its parts.

In summary, your laptop/BMS is doing just fine. No need to fix it. Its only real issue is that it is bad at setting expectations. In reality, the fuel gauge indicator on a laptop is pretty conservatively derated to account for some of the uncertainty in the estimate so that users aren’t able to do any real damage near the actual 0% SOC mark. 

OK, now we can all go to lunch! Boy, I feel like I’m running on empty after all of that talk of fuel gauging. Get it? Anybody? No? I’ll show myself out.


For a more in-depth analysis of the measurement of SOC, consult our sources:

  1. P. Ramadass, B. Haran, R. White and B.N. Popov, “Capacity fade of Sony 18650 cells cycled at elevated temperatures,” Journal of Power Sources, no. 112, pp. 606-613, 2002.
  2. R.P. Ramasamy, R.E. White and B.N. Popov, “Calendar life performance of pouch lithium-ion cells,” Journal of Power Sources, no. 141, pp. 298-306, 2004.
  3. A123 Systems, “ANR26650M1-B Datasheet,” A123 Systems, 2012.
  4. K.A. Smith, C.D. Rahn and C.Y. Wang, “Model-Based Electrochemical Estimation of Lithium-Ion Batteries,” in IEEE International Conference on Control Applications, University Park, 2008. 
  5. D. Di Domenico, G. Fiengo and A. Stefanopoulou, “Lithium-Ion Battery State of Charge Estimation with a Kalman Filter Based on a Electrochemical Model,” in IEEE International Conference on Control Applications, San Antonio, 2008. 
  6. L. Liu, L.Y. Wang, Z. Chen, C. Wang, F. Line and H. Wang, “Integrated System Identification and State-of-Charge Estimation of Battery Systems,” IEEE Transactions on Energy Conversion, vol. 28, no. 1, pp. 12-23, 2013. 
  7. S. Santhanagopalan and R.E. White, “State of charge estimation using an unscented filter for high power lithium ion cells,” International Journal of Energy Research, vol. 34, pp. 152-163, 2009. 


 Murat Ozkan is a Senior Design Engineer for Nuvation, Charged technical contributor, and professional coulomb counter. 


EV Engineering Webinars & Whitepapers

EV Tech Explained