Estimating the SOC of a battery while under load

I am building a RC lawn mower. I use a wireless ps2 controller with the Arduino to steer it. In order not to destroy the batteries (two 12V/14Ah lead acid batteries in series) by discharging them too much, I need a method to estimate their state of charge. I know there are simple equations to estimate the SOC when there is no load on the batteries, but I obviously need to estimate the SOC while the batteries are in use. I tried to google it, but so far I only fond out that it is a complex problem and there is no simple way the figure out the SOC while discharging the batteries.

I guess at least some people here have faced the same problem. What methods have you used to estimate the SOC or do you protect batteries against over discharging them?

As you have found out that is not a simple task and made even harder depending on the type of battery one is using. Nicad and Nimh batteries have a very 'flat' discharge curve until almost totaly depleted of charge. Lead acid and Lipo batteries have a more linear discharge curve.

However do you really need a accurate SOC or just a low voltage cut-off value that can be used to signal time to power down the system. I would think even under load if the battery voltage goes down to say 11 to 11.5vdc that would be a good decision point to cut off the power. A simple two series resistor voltage divider would allow the battery voltage to be sensed with an arduino analog input pin and take it from there with your software and external power down circuit or maybe just a buzzer signal.


10.7v is reckoned to be a workable minimum but your problem is made even more difficult by virtue that the batteries may show differing voltages. So measuring the 24v system and shutting down when you get to 21.4v may mean that one battery is happily outputting 11.5 volts whilst the other is down to 9.9v

So you'll need a couple of sensor lines, one measuring battery 1, the other battery 1+2 Then by subtraction of the two results you can establish the voltage on battery 2.

Mathematically this is far from ideal since any error in measuring battery 1 is reflected in the determination of battery 2.

Thanks, Lefty. As you pointed out, a cut-off value is what I really need. I had already started to build a protection mechanism similar to what you explained (a voltage divider, a warning led blinking when the voltage drops below a certain level and cutting off the power when the voltage drops below the cut-off value), but then I realized that I don't know how to determine the cut-off voltage when the batteries are under load.

You can determine the % SOC experimentally for your specific load and batteries. It depends on their condition, how many times they've been discharged. Just measure the voltage over time, with a constant load, until they're down to 10% or 10.7v.