I am working on a golf cart modification for lithium batteries for the go-lithium company in Romania. Two things are annoying with the lithium batteries:
- if you go out of the specifications (temperature/current/tension) you destroy them.
- measuring the sate of charge cannot be based on voltage unless you have a precise model of each battery and a temperature input.
In this article I will discuss the battery voltage behaviour on LiFePO4 batteries. And the consequences on the development process.
When you charge, the electric tension is higher than at rest tension (say 39V against 37V in my example) and when you stop charging, it will slowly go down to a rest tension (37V) during approximately half an hour. But when you start using the battery pack, it will go down to the lower value (say 33,2V at 200Amps). The drop in tension is proportional to the current used, the more current used, lower the drop. But when you stop using current it will NOT return to the rest value found one hour after the charge. During 20 seconds after use, it will go back to another rest tension (say 36V) with a logarithmic curve shape, this is the “relax” time. And more over, all the measured thresholds will also change with temperature. (you can find a graph explaining this behaviour in Texas Instrument’s SLUA450 pdf document ti SLUA450)
So if you want to use the tension for balancing or you want to use the voltage measurement to know the State Of Charge, it will not be easy to calculate nor reliable. Unless a test bench is used to make a model. But even with a test bench, how to be sure that it will behave the same model after many years. And what if the chemical formula changes at the factory?
Knowing the SOC (State Of Charge) can be done with current measurement. Using a shunt or a hall effect current sensor and counting down micro Amp/Hours from a full charge value. The SOC problem can be solved with current measurement and Coulomb counting.
However for simple passive balancing you have to use the voltage measurement during the charge. But when stopping the charger for a wile to do passive balancing you will face the fancy capacitive behaviour of lithium batteries. And the reference tensions taken before stopping the charger will mean nothing after 2 minutes of balancing. Voltage will drop faster at the beginning of passive balancing and maybe go below the lowest battery.
This behaviour pushed me to create a simulator for the micro-controller program. And I believe that the simulator spares me a lot of error and trial. In fact it speeds up error and trial. I can test charge and discharge at high currents and test current protection without raping the pack. I can test the balancing algorithm at hight speed by skipping frames on the simulator.
Actually I am in the process of simulating the behaviour of the LiFePO batteries. It implies a state machine, and Vbat functions depending on time since state transitions (states like: charging, charger_stoped, running, relax…). I believe that otherwise, the design of advanced algorithms would be a nightmare.