I want to estimate the current maximum capacity (in kWh) having the current power consumption (in kWh) and the state of charge of the battery (in %) available in a time series.

I do not have a full battery charge circle recorded but only a snippet with the state of charge going from ~95% to ~35% in a 1 second data recording interval.

At first, i cumulated the current power consumption and noticed that the progression between cumulated power consumption and state of charge was almost the same (see figure 1 and 2).

progression of state of charge vs. cumulated power consumption enter image description here

So i tried to use a linear regression model to predict two values of cumulated power consumption at 0% and 100% state of charge. In my assumption the delta of these two leaves me with the current maximum capacity of the battery.

Ideally i want to monitor the capacity during the data recording. Which means i only have data of a few percent of state of charge. In figure 3 and 4 you can see my attempt of trying to create a linear regression model for every 2% state of charge. As you can see in the right plot, the estimated capacity has a very high variance.

LEFT: regression lines (green) of every 2% state of charge; RIGHT: estimated capacity of every 2% state of charge enter image description here

Since i am not an expert in neither the matter of regression nor batteries/physics, my questions are:

  • Is there a much simple or more exact way (or both) to estimate the current maximum capacity of the battery?

  • If yes, is there a good way to estimate an sufficiently exact capacity with an even smaller snippet in an ongoing process, lets say every 2% state of charge? (maybe using a characteristic curve of the discharge process)

Here is a sample of my data: sample file

  • $\begingroup$ Welcome to the site :) $\endgroup$
    – Dawny33
    Jan 27, 2016 at 16:34
  • $\begingroup$ Although this question is absolutely suited to this site, I suspect you might have more luck over at electronics.stackexchange.com $\endgroup$ Feb 9, 2016 at 10:45
  • $\begingroup$ @r-doe. I have a few questions and some of these may or may not apply to your case depending on what the data looks like. 1. Are you imputing any values? 2. Is there a pattern to the state of charge % like a least count increment. 3. Is the data tagged with any other categorical variables? 4. Is the graph of state of charge (x) vs non cumulated consumption (y) a flat line? (Should be) 4. Any sample data? $\endgroup$
    – Drj
    Apr 12, 2016 at 20:44
  • $\begingroup$ Power consumption is measured in kW, nor kWh neither kW/h. Are you sure you get your physics right? $\endgroup$
    – Diego
    Apr 18, 2016 at 4:28
  • 1
    $\begingroup$ @Diego Battery Capacity is most of the times given in kWh. Because of that I integrated the consumption over time to get the time component in there. $\endgroup$
    – R. Doe
    Apr 18, 2016 at 7:35

1 Answer 1


Firstly, a common chemical battery discharging from 95% to 35% in 1 second is undergoing a very deep discharge and its discharge profile will be very different from a slow steady discharge, e.g. 95% to 35% within 10 hours. Secondly, inferring from a very small snippet of the charge process (2% change) may work only if you know exactly which charge profile is being exhibited by the battery during that charge cycle, so that you can identify at which point of the charge cycle is the battery right now.

For most chemical batteries, the current consumption by the load determines the discharge profile and hence the capacity at a given point of time in the future. Since this is usually non-linear, and the slope varies at different points of the discharge profile, a linear regression would not be a good fit. I would recommend trying out a polynomial regression fit on the discharge profile. Multivariate adaptive regression splines should also work well. Similarly, the rate of charging determines the charge profile/characteristic curve.

You could fit multiple models, one each for each type of charge profile (e.g. deep discharge, slow discharge, etc.) and then select the appropriate model based on the current status of the battery, to predict the future state.

To understand this process for a lead acid battery, refer to these -

  1. http://scubaengineer.com/documents/lead_acid_battery_charging_graphs.pdf and,
  2. http://batteryuniversity.com/learn/article/how_to_measure_state_of_charge.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.