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:

  1. Initial SOC

    1. This is required as a start point before performing any coulomb counting

  2. Current measurement error

    1. Offset errors

  3. Current integration approximation error

  4. Battery capacity uncertainty

    1. Battery capacity changes due to temperature, age, etc. The uncertainty in battery capacity will affect the SOC computed by the Coulomb counting method.

  5. Timing oscillator error/drift

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

Algorithm: https://www.analog.com/media/en/technical-documentation/tech-articles/accurate-fuel-gauging-without-battery-characterization-using-modelgauge-m5-ez-algorithm.pdf

  • 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..?

  •