elecLear78
Member
I wanted to know your comments regarding the formula which i worked out after quite an effort. The idea is to calculate the SOC of a 12v lead acid battery during run time or vehicle moving condition. First thing is i made simplifications to the algorithm in order to reduce the number of calculations to implement in micro controller.
Inputs: Battery voltage , Battery current.
Output: SOC of battery (0-100%) on CAN.
Step1: As soon as the Ignition is ON the Micro reads the open circuit battery voltage (assuming all loads are OFF). Based on the open circuit voltage i measure the initial soc. (The relation is linear between soc and ocv).
Step2: Assuming the alternator is OFF
Then based on the relation that BatteryCapacity = Ampere * Time.
And an assumption that under loaded conditions if the battery voltage reaches a voltage of 10.5 then the soc is 0%. I derived the following
equation.
Suppose if the initial voltage is v1 and after applying load i1 the let the new voltage be v2. And Initial soc is soc1 then
socdec = (v1 - v2)*soc1/(v1-10.5);
soc2 = soc1 - socdec.
and the calculations will go every second with
soc1 = soc2;
v1=v2;
v2 newly read voltage.
Step3: If the alternator is ON the algorithm will change and it will be the current flowing into the battery. This is because i cannot read the battery voltage.
Now my main questions are regarding step2 how far the formula is valid?
There is case where if i remove the load then v2 is greater than v1 and the soc rises. This somehow is creating some kind of confusion since i do not want soc to rise.
How practical is this for actual implementation? My idea is i do not want a perfect soc meter but at least an approximate one is fine.
Any modifications to the algorithm i can do to improve or totally i have to discard. I am not able to take a decision.
Please suggest.
Inputs: Battery voltage , Battery current.
Output: SOC of battery (0-100%) on CAN.
Step1: As soon as the Ignition is ON the Micro reads the open circuit battery voltage (assuming all loads are OFF). Based on the open circuit voltage i measure the initial soc. (The relation is linear between soc and ocv).
Step2: Assuming the alternator is OFF
Then based on the relation that BatteryCapacity = Ampere * Time.
And an assumption that under loaded conditions if the battery voltage reaches a voltage of 10.5 then the soc is 0%. I derived the following
equation.
Suppose if the initial voltage is v1 and after applying load i1 the let the new voltage be v2. And Initial soc is soc1 then
socdec = (v1 - v2)*soc1/(v1-10.5);
soc2 = soc1 - socdec.
and the calculations will go every second with
soc1 = soc2;
v1=v2;
v2 newly read voltage.
Step3: If the alternator is ON the algorithm will change and it will be the current flowing into the battery. This is because i cannot read the battery voltage.
Now my main questions are regarding step2 how far the formula is valid?
There is case where if i remove the load then v2 is greater than v1 and the soc rises. This somehow is creating some kind of confusion since i do not want soc to rise.
How practical is this for actual implementation? My idea is i do not want a perfect soc meter but at least an approximate one is fine.
Any modifications to the algorithm i can do to improve or totally i have to discard. I am not able to take a decision.
Please suggest.