SoC Calculation Research (mostly notes rn, wip)
Chip looks good, I think should go with this for now
(Supposedly) Implements a lot of algorithms that are based on models and testing data that we don’t have, and realistically probably won’t be able to gather
Only “downside” in this case is that it’s a generic algorithm, so if we had like infinite time we would probably be able to come up with an algorithm or something that’s more specific and accurate to our cells
not really a downside lol
May need/want one chip per each series cell? Each chip only has one input for cell voltage
But can also do one chip per module, or more, depending on how much accuracy we want I think
Going with probably one chip for pack, realistically don’t need more unless our cell imbalance is really high
Verify expected cell imbalances
Also having more chips requires a lot more voltage references and stuff
Next step would probably be to design a test plan for verifying the functionality of the chip?
probably one chip per entire pack
if there is eval board can test with the mock test pack, otherwise put on hold until current sense board is finished
If doing the algorithm ourselves, cannot ONLY do coulomb counting, we need some sort of correction algorithm to prevent drifts during race, which would be based on voltage measurements
We are currently planning on doing all SOC calculations locally on the car itself, as telemetry is up in the air right now. The SOC should be calculated as accurately as possible, and driver can then relay relevant information such as current SOC reading to following cars via radio.
Forest found a chip on DigiKey which may be able to simply provide all the functionality needed for SoC measurement: https://www.digikey.ca/en/products/detail/analog-devices-inc-maxim-integrated/MAX17261METD-T/9833459
This page is doing research on various possible SoC algorithms that are possible on the STM32, and comparing them with the accuracy of the chip. We should go with whichever one provides the most accuracy (probably will be the chip tbh).
(Realistically on the STM32, we won’t be able to do any advanced SoC measurement methods that use advanced algorithms such as Kalman filters and the like, so manual calculation methods will probably boil down to various numerical integration methods)
General SoC Measurements
A Critical Look at Coulomb Counting Approach for State of Charge Estimation in Batteries
^^ most info copied from here
Pretty much all SoC algorithms rely on a combination of current and voltage measurements to accurately estimate the state of charge of a battery. Current measurements are used to perform coulomb counting which are accurate for short-term and linear measurements (numerical integration methods), while voltage measurements are typically used to re-calibrate the SoC near the max and min voltages (full and empty charges) where there is a steep drop off. Temperature measurements (thermistors) are also used as cut-off points.
Voltage-Based SOC Estimation
Basically employs a table look-up method. Battery terminals' voltage is matched with the SOC according to the OCV-SOC characterization curve:
Function f() refers to the open circuit voltage model that relates the OCV of the battery to SOC, while g() accounts for the voltage-drop within the battery cell, due to hysteresis and relaxation effects. The main challenge here is that f() and g() are non-linear and we don’t really know what those functions are. Usually it’s recommended to
OCV-SOC modeling error. The OCV-SOC relationship of a battery can be approximated through various models: linear model, polynomial model and combined models are a few examples. Reducing the OCV-SOC modeling error is an ongoing research problem—in [11], a new modeling approach was reported that resulted in the “worst case modeling error” of about 10 mV. It must be mentioned that the OCV modeling error is not identical in all voltage regions of the battery.
Voltage-drop modeling error. Voltage-drop models account for the hysteresis and relaxation effects in the battery. Various approximations were proposed in the literature in order to represent these effects [7,12].
Voltage measurement error. Every voltage measurement system comes with errors; this translates into a SOC estimation error.
Coulomb Counting
A Critical Look at Coulomb Counting Approach for State of Charge Estimation in Batteries
Coulomb counting is used to measure the total mAh that has been discharged from the pack using numerical integration methods.
There are five main types of error sources:
Initial SOC
This is required as a start point before performing any coulomb counting
Current measurement error
Offset errors
Current integration approximation error
Battery capacity uncertainty
Battery capacity changes due to temperature, age, etc. The uncertainty in battery capacity will affect the SOC computed by the Coulomb counting method.
Timing oscillator error/drift
Errors in timing affects computed SOC
Pure coulomb counting is prone to “time-cumulative” errors, where over a long period of time, it will drift without bounds. Imagine our current measurement has a +1mV offset voltage, over time our estimated SOC will drift further and further from the actual
Fusion approach
Getting into filters here:
NGL getting kind of lost at this point…
A Critical Look at Coulomb Counting Approach for State of Charge Estimation in Batteries
^^ Will probably read more into this throughout this term, but I think
MAX17261METD+T
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max17261.pdf
Compare imbalance between cells with accuracy of chip
still use AFE for thermistor inputs
Basic Specs:
Provided data:
Implements the Maxim ModelGauge m5 EZ algorithm
State of charge in percentage
Fuel gauge error always converges to 0% as the cell approaches empty
Becomes more accurate near empty?
Remaining capacity in milliampere-hours (mAhr)
Estimated time to full
Estimated time to empty
Age of battery
Reduction in capacity
Increase in battery resistance
Cycle odometer
Number of charge/discharge cycles performed (can compare against datasheet)
5.1 uA operating current
Probably more like 15 uA when active? Assuming supply voltage of 3-4V
400kHz I2C interface
Requires 3-5V supply
Measures current. voltage, and temperature (requires some external circuitry)
Cell voltage measurement requires voltage divider
On specs, needs voltage divider to have an input that is 40% of a single cell voltage to the CELLX input
R2/R1 = 5/2 x (N-1) + 3/2
N is number of cells in series
CELLX value will be multiplied by 2.5X before being saved to register, idk why it needs to be scaled down to 40%?
ADC Accuracy:
Accuracy?
Don’t really understand how they have one error line for multiple discharge curves
Should compare with our expected accuracies if we were to measure these voltages independently
Realistically I think best to simply order some, develop a board to test them, and then compare via actual test rather than trying to figure it out
IC includes advanced voltage fuel gauge (VFG) that estimates open-circuit voltage (OCV) even during current flow, and simulates the nonlinear internal dynamics of a Li+ battery to determine the SOC with improved accuracy
wat does nonlinear internal dynamics mean in this case
Model considers the time effects of a battery caused by the chemical reactions and impedance in the battery to determine SOC… How does it measure this?
More generic, will not specifically be accurate to the specific cell model that we have
“provides tolerance against battery diversity”, but is not specific to any one model
“avoids time-consuming battery characterization”
But may be accurate enough still
Model becomes more accurate after multiple discharge cycles
The IC includes an advanced voltage fuel gauge (VFG) that estimates open-circuit voltage (OCV), even during current flow, and simulates the nonlinear internal dynamics of a Li+ battery to determine the SOC with improved accuracy. The model considers the time effects of a battery caused by the chemical reactions and impedance in the battery to determine SOC. This SOC estimation does not accumulate offset error over time. The IC performs a smart empty compensation algorithm that automatically compensates for the effect of temperature condition and load condition to provide accurate state-of-charge information. The converge-to-empty function eliminates error toward empty state. The IC learns battery capacity over time automatically to improve long-term performance. The age information of the battery is available in the output registers.
The ModelGauge m5 algorithm combines a high-accuracy coulomb counter with a VFG. See Figure 2. The complementary combined result eliminates the weaknesses of both the coulomb counter and the VFG while providing the strengths of both. A mixing algorithm weighs and combines the VFG capacity with the coulomb counter and weighs each result so that both are used optimally to determine the battery state. In this way, the VFG capacity result is used to continuously make small adjustments to the battery state, cancelling the coulomb-counter drift.
For even better fuel-gauging accuracy than ModelGauge m5 EZ, contact Maxim for information regarding cell characterization.
Probably too long of a lead time / too expensive to consider..?