SoC Measurement Methods (Research + Notes)
VIEW AS PDF:
Direct measurement methods
Direct measurement methods use physical attributes of the battery such as impedance or terminal voltage
Open Circuit Voltage Method (OCV)
The voltage at the battery terminal decreases/increases depending on the charge level. The voltage will be highest when the battery is fully charged and lowest when it is empty
If we know the relationship (curve) between the voltage at the terminal and its associated charge level, we can use that curve to figure out the SoC
Different types of battery have different types of curve (see lead-acid vs lithium-ion)
The flatter the curve, the harder/less accurate the measurements will be since a small change a voltage result in a completely different SoC measurement
In the image, a 0.5V difference results in a 40% difference in SoC
2 ways we can use OCV to determine SoC:
Buy (or make) a battery charged indicator
Figure out the relationship curve between SoC and voltage
Thoughts
Figuring out the relationship curve may be hard, errors in the relationship curve will directly affect our readings, terminal voltage measurements must be very accurate and precise
https://www.powertechsystems.eu/home/tech-corner/lithium-ion-state-of-charge-soc-measurement/
Terminal Voltage Method
This is somewhat similar to the OCV method. Here, we measure the EMF (as it is proportional to the terminal voltage). Since the EMF is approx linear proportional to the SoC, we can use that to calculate the SoC
The issue arises at the end of the battery discharge when there is a huge drop in voltage (see image in previous section where lithium-ion voltage drops drastically). At the end of the battery discharge, the voltage (which we use to derive the EMF) is no longer linear proportional to the SoC, which results in a huge error
Thoughts
It has the same philosophy as the OCV where terminal voltage measurements are done and used to determine the SoC
The core difference between terminal voltage method and OCV is that the terminal voltage method assumes a linear relationship whereas OSV requires a OCV-SoC relationship curve
Probably useful when we're not at the end of the battery discharge -> Maybe use it as a datapoint (and use these values to compare) when testing other SoC methods
Impedance method
This method uses the battery voltage and current variation over a very small period of time to measure the battery's internal resistance (the ratio of voltage and current variation). The battery's internal resistance then represents the SoC in DC
The "small period of time" needs to be < 10ms to capture the ohmic effect (also to reduce the affect of transfer reaction and acid diffusion)
Smaller period of time = less error
Accuracy to get internal resistance is very hard to obtain (because it's in the milliohm range). Also the internal resistance changes slightly with a wide range of SoC (small changes in internal resistance result in big changes of SoC) -> Due to this, this method is not really used
Thoughts:
This is a pretty straightforward + adaptable SoC method but it requires very precise measurements (<10ms, internal resistance in the milliohm range, etc.)
Measurements may be hard to get (due to the preciseness)
Generally not often used
Impedance spectroscopy method
Measures battery impedances over a wide range of AC frequencies at different charge and discharge currents
Using the measured impedances, find the model impedances values by doing least-squares fitting (on the measured impedance values)
On race day, the SoC can be inferred by measuring present battery impedances and correlating them with known impedances at various SOC levels
Thoughts:
How to find impedance?
Lots of work to pre-measure battery impedances (different AC frequencies, different charge/discharge rates)
The result is only an estimation -> "indirectly inferred"
Book keeping methods
Uses previous SoC data (at some intial time) and battery discharging current data to find the current SoC (kind of like a step function)
This method permits to include some internal battery effects as self-discharge, capacity-loss, and discharging efficiency
Coulomb counting method
Measure the discharging current of a battery and integrates the discharging current over time in order to estimate SoC
Estimate the current $SoC(𝑡)$, which is estimated from currently discharging current, $𝐼(𝑡)$, and previously estimated SoC values, $SoC(𝑡 −1)$.
$Q_{n}$ here is the battery cell capacity
Requires an accurate initial SoC “measurement” of the cell -> Charge to maximum cell voltage which can be used as a reference point
May have drifting during battery discharge, so need to calibrate it back
Factors that affect the accuracy: temperature, battery history, discharge current, and cycle life
Sources of error in the data collection: Starting SoC accuracy, Current measurement accuracy, Current integration error, Uncertainty in battery capacity, Timing error
Which can be impacted by: Components used for cell voltage measurement, Voltage sense wires, connectors and connection locations, Current sensors, Voltage and current measurement channel accuracy, Timing circuit, The code/math
Thoughts:
What we're currently using
Might need to look at how to reduce errors/improve accuracy
Small errors/inaccuracies may cause big errors down the line (error analysis in numerical methods)
Modified Coulomb counting method
Improves upon coulomb counting by introducing a "corrected current", $I_c(t)$, which replaces the current, $I(t)$
$k_2, k_1, k_0$ are constants that you need to find experimentally
This results in the following SoC equation:
Thoughts:
Similar to coulomb counting
Finding the $k$ constants may take some time but it's a 1-time thing and can lead to overall long-term accuracy improvement
Need to research to figure out how to find $k$ constant values
Adaptive systems
Mostly involving AI to estimate SoC -> May be able to account for things like battery chemical factors and nonlinear SoC's
BP Neural network
BP neural network is a good fit because it allows for non linear mapping, which is what occurs with the battery's SoC -> the relationship between the input and target is nonlinear and very complicated in SOC estimation
BP neural network predicts the current SOC using the recent history of voltage, current, and the ambient temperature of the battery
Research paper:
Thoughts:
It's pretty straightforward if we have a model, but how do we make the model?
Pretty interesting, might be worth a look into
RBF Neural Network
RBF is a method to estimate SoC with incomplete information -> can be used to analyze the relationships between one major (reference) sequence and the other comparative ones in a given set
Research paper:
https://sci-hub.se/https://ieeexplore.ieee.org/document/7993295 (the researchers are from mcmaster, so it shouldn't be too hard to contact them)
Thoughts:
Similar to BF, it may be worthwhile to take a look into because once you have a model, you can almost use it indefinitely
Fuzzy Logic Method
Uses fuzzy logic to estimate SoC by measuring the impedance at three frequencies. The SoC the calculated using an improved fuzzy logic version of coulomb counting
"The learning system tunes the Coulomb [counting] method in such a way that the estimation process remains error free from the time-dependent variation"
Research papers:
Thoughts:
May be worthwhile to take a look into because once you have a model, you can almost use it indefinitely
Support Vector Machine
The idea of this method is to supplement the Impedance spectroscopy method.
Rather than using least squares estimation, you use an SVM because an SVM is less sensitive to small changes -> "SVM used as a nonlinear estimation system is more robust than a least squares estimation system because it is insensitive to small changes"
Research papers:
Thoughts:
This is somewhat of an add on to the Impedance spectroscopy method -> and that method is already somewhat hard
Fuzzy Neural Network
"FNN can effectively fit the nonlinear system by calculating the optimized coefficients of the learning mechanism"
"approach uses a fusion of an FNN with B-spline membership functions and a reduced-form genetic algorithm"
Research papers:
Thoughts:
Pretty complicated, not sure how big the upside is
Kalman Filter
"Kalman filter method is shown to provide verifiable estimations of SOC for the battery via the real-time state estimation"
"extended Kalman filter (EKF) to estimate the concentrations of the main chemical species which are averaged on the thickness of the active material in order to obtain the SOC of the battery, by using the terminal current and voltage measurements"
Research papers:
Thoughts:
Pretty complicated, not sure how big the upside is
Hybrid Methods
Using multiple SoC methods together
Aims to maximize available information, combine model information
Generally better than only using a single method
Combine different approaches such as direct measurement method and book-keeping estimation method
Coulomb Counting and EMF Combination
Battery will lose capacity during cycling -> "In order to calculate SOC and remaining run-time (RRT) accurately and to improve the SOC estimation system capability to cope with the aging effect, a simple Qmax adaptation algorithm is introduced"
"In this algorithm the stable conditions of the charge state are exploited in order to adapt Qmax with the aging effect"
Qmax is the max capacity of the battery (accounting for the battery's aging)
Basically this method accounts for the wear and tear of the battery because the battery will slowly lose capacity over many uses (charge and discharges)
Research papers:
Thoughts:
Need to consider EMF method before considering this
Coulomb Counting and Kalman Filter Combination
"KalmanAh method" -> uses the Kalman filter method to correct for the initial value used in the Coulomb counting method
"the Kalman filter method is used to make the approximate initial value converge to its real value."
This results in an error of 2.5% compared to only SoC (11.4%)
Research paper:
Thoughts:
Considering that we are highly likely to use coulomb counting, this is a great addon to that method -> significantly decreases the error
Needs more research to see if doing this is viable
Per-Unit System and EKF Combination
No clue
From the paper: "Kim and Cho described the application of an EKF combined with a per-unit (PU) system to the identification of suitable battery model parameters for the high accuracy SOC estimation of a lithium-ion degraded battery. To apply the battery model parameters varied by the aging effect, based on the PU system, the absolute values of the parameters in the equivalent circuit model in addition to the terminal voltage and current are converted into dimensionless values relative to a set of base value. The converted values are applied to dynamic and measurement models in the EKF algorithm."
Research paper:
Final thoughts (Things to look more into)
Open circuit voltage method
Something to look into because we've previously used it in the past
Pretty straightforward method once you have a model (finding the model is the hard part)
Impedance method
Since it's doesn't work well at battery end of life maybe we can use this during battery testing (when the battery is 50%+) to compare values against OCV (since they're very similar)
Modified Coulomb counting method
A simple addon to the normal coulomb counting method, just need to figure out the $k$ constants
Normal coulomb counting method is pretty straightforward (literally a math equation) and can be coded very fast (and was previously used)
BP neural network
I think it's something interesting that we should look at
BPNN -> straight forward once we have a model to use (hard part is finding the model)
Maybe it can be like a term project designated for someone to do -> it's implementing the algorithm, takes a long time to work on this, can't really work on this as a group
Coulomb Counting and EMF Combination
Depending on the battery's usage, this may be useful as it accounts for wear and tear
I don't think this will have a significant impact but can be looked into if we have extra hands
Coulomb Counting and Kalman Filter Combination
Since it reduces the error from coulomb counting from 11.4% -> 2.5%, I think this is something that is worthwhile looking into
Maybe cross compare results with Modified Coulomb counting method