Estimating the battery capacity using current power consumption and battery percentage 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


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


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
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 -


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