Derivation of Formula

batteriesbattery-chargingcharge

This is the method for calculating the State of Charge (SOC) of the 12V lead acid vehicle battery. Based on the formula for battery capacity (C) formula

$$C = (\text{Current}) \cdot (\text{Time of Discharge})$$

and my approximation that under loaded conditions (even 1 amp) if the battery voltage reaches 10.5 the SOC is 0%.

So, if the present battery voltage is say \$V_1\$ and on applying a load of say \$I_1\$ the voltage has fallen to \$V_2\$ and the present SOC is \$\text{SOC}_{\text{present}}\$. Then the formula for the new SOC is

$$\text{SOC}_{\text{new}} = (V_1 – V_2) \cdot \dfrac{\text{SOC}_{\text{present}}}{V_1 – 10.5} $$

This is the final equation I derived after intermediate calculations. But my main concern is when you crank the vehicle the voltage falls sometimes below 10.5 and hence my SOC is 0% in fact less than 0% which is not practical and returns back to normal SOC after vehicle starts though.

So, my question is can I omit that one condition and still say the formula is valid? If required I can show the intermediate calculations. For simplification I made lot of approximations like neglecting peukart equation, temperature affects which in fact will be reflected in the voltage is my assumption.

Best Answer

So your formula does not work in all cases. You can change your formula to a conditional formula like this:

\$ y = \left\{ \begin{matrix} \text{(your formula)} & , & \text{if } cranking=0 \\ \text{unknown} & , & \text{otherwise}\end{matrix} \right. \$

The range (set of possible outputs) of this formula is no longer just real numbers, but real numbers plus "unknown". Whatever you use this formula for will need to account for this. For example, if you will be averaging the values, you could just ignore "unknown" values unless a certain number of them accumulate. Assuming the "cranking" case is short lived, the resulting averaged/filtered output may be acceptable.

Another option would be to make the formula explicitly time-dependent. For example, if you know that cranking always lasts less than 5 seconds and reduces the state of charge by 2%:

\$ y(t) = \left\{ \begin{matrix} \text{(your formula)} & , & \text{if } cranking=0 \\ y(t-5\text{ seconds}) - 0.02 & , & \text{otherwise}\end{matrix} \right. \$

You can keep adding more conditions. Perhaps the above 2% reduction only applies above 50% and below that it is a 1% reduction. You'll have to measure and refine until your model matches reality well enough for your purposes.