State of Charge Algorithm

soc_algorithm

This page documents research done on a solution to the state of change (SOC) algorithm problem. Past design efforts have focused on colomb-counting as a means of SOC estimation. This presents a problem, as Coulomb Counting utilizes a simple integral state observer, which is an unstable system.

Matlab & Simulink Model

A model of the system was created in Simulink. The Model utilizes a lookup-table for building the voltage-current-soc model. The concept behind this model, was that both testing and simulation could be done graphically, and then Embedded Coder could be used to implement the system.

All efforts completed were based on an approximate model of the battery cell generated in SimPower. This model was based of of data obtained from the supplier “Specification Sheet”.

Mixed Estimation Algorithm

An IEEE paper was found describing a way to utilize voltage-current models of battery cells to stabilize coulomb counting techniques. Voltage-current models do not respond well to transients, but are stable over the long term, while coulomb-counting responds well to transients, but is not stable in the long run. Utilizing control theory to mix these two techniques presents a means of accurately measure the battery SOC.

Original IEEE Paper

The IEEE Paper discussing the theoretical concepts, and analysis of the algorithm.

Algorithm Analysis

This algorithm looks VERY promising, it is easy to implement and responds well to both DC offset and noise in measurements. It appears to be a robust algorithm, which should be implementable provided some effort is put in. More quantitative analysis should be done.

Simulink Embedded Coder

Simulink, which you may be familiar with from Control Systems (ECE433), is a graphical block diagram software. Luckily for us, the ECE department pays LOTS of money to get licenses to two key Simulink packages: SimPower, and Embedded Coder. Let’s take advantage of that!

With SimPower, you can model power electronics… like battery packs. With Embedded Coder you can generate C code, which can thenbe uploaded to a microcontroller. For example, a block diagram can be created and uploaded to the PACMAN system.

Please, Please Use this to make the SOC algorithm… It will save time!