Electronic – Algorithm to know NiMH battery level

batteriesbattery-chargingnimh

Background

I have a device with a NiMH battery. This is a portable device, so I need to know how much battery I have left at all times.

To achieve this, I want to map the battery voltage to a percentage between 0% and 100%.

Characteristics

The battery I am dealing with gives me the following information (printed in the device):

NiMH Battery 7.2V, 400mAh

Manual Information:

Battery voltage V: 6 ~ 10

Nominal capacity (mAh): >=400

Power(Wh): 2.4-4

Charging temperature (Celcius): 0 – 45

Research

I have read some articles indicating that this is possible, but unfortunately I have not found the mathematical formula they used ( page 6 of 14 ):

http://data.energizer.com/pdfs/nickelmetalhydride_appman.pdf

Problem

What is the algorithm that, given the current voltage of the battery, can tell me how much % I have left?

Best Answer

Answer

By analyzing the discharge rate curve of the battery we have:

discharge rate

PS: We don't actually have a discharge graph for our specific batteries, so this is the closest thing I could find. Serves to give you an idea.

We were able to identify 3 stages:

  1. from 100% to 80%
  2. from 80% to 20%
  3. 20% downwards

With this in mind, we created 3 mathematical formulae, one for each stage. Do note that this formulae are mathematical approximations and are not as precise as the ones the papers would give us, but given the time we have we went with them for now.

v > 8400 x = 100

v > 7320 x = 90+(10*(v-7320)/(8400-7320))

v > 6900 x = 15+(75*(v-6900)/(7320-6900))

v > 6000 x = 15*(v-6000)/(6900-6000)

v < 6000 x = 0

Where v is voltage.

We still need to adjust them a little, but for now this is what we have.