User Tools

Site Tools


platform_agnostic:cell_battery_internal_resistance_calculator

Cell/Battery Internal Resistance Calculator

The internal resistance of a cell (battery) is important as, among other things, it dictates the ability to deliver the expectation of current into a load at the required voltage (barring design flaws). Internal resistance is also a key value you need to calculate power dissipation in the cell itself while under load. Now you can work out why the fluid is boiling in your lead/acid battery =)

Recently, I had a problem with a real-time clock chip (RTC) where the registers were going static while on battery power. This is an expected behaviour of the chip in question where it will stop it's internal oscillator if the battery voltage gets too low in an attempt to conserve power to the max and give an indication of when the clock stopped running (you also get a flag in the status register to indicate the oscillator has been stopped at some point).

It was quite a tricky problem at the time and was eventually traced to crappy coin cells with an enormous internal resistance of about 45K(!). This meant that as the expected current was drawn (a tiny 59uA), the voltage dropped away to almost nothing to the point the RTC could no longer run it's oscillator and maintain the time.

The calculation is fairly simple; the voltage difference between on/off load and the current drawn while on load… divide one into the other gives your internal resistance using Ohm's law.

Below is a tiddly trinket (I used MMBasic but it is simple enough to transcribe into just about any language) to take the above values and quickly determine the interesting stuff. It isn't rocket-science but it takes the grunt out of one more chore. Oh, and those cells? in the recycling.

The Code

	Dim Float VOffLoad,VOnload,VDelta,IOnLoad,RInternal
	
	Input "Enter Off-Load Voltage: ",VOffLoad
	Input "Enter On-Load Voltage: ",VOnLoad
	Input "Enter On-Load Current (A): ",IOnLoad
	
	VDelta=VOffLoad-VOnload
	Print "On-load Voltage drop is: ";VDelta;"V"
	RInternal=VDelta/IOnLoad
	Print "Cell Internal Resistance is (Ohms): ";RInternal
	Print "Cell Power Dissipation is (Watts): ";(IOnLoad^2)*RInternal

To gather the input values, you'll need to measure both voltage and current (ideally at the battery positive terminal). Try to use two meters if you can so that the internal workings of the meter don't interfere with the readings as you move it from one section to the next. Set up your test as follows (the cell being tested is in the red box). Make sure your load represents “real life” i.e. what you are expecting the cell to do in anger. Unrealistic tests and expectations lead to unrealistic capabilities. The switch can just be a crocodile clip lead.

Testing is easy; follow these steps:

  1. Open the switch
  2. Measure the voltage - this is your off-load voltage
  3. Close the switch
  4. Measure the voltage again - this is your on-load voltage
  5. Measure the current - this is your on-load current draw

Feed the numbers into the program above and wonder at the internal resistance of your battery.

Here is the example using the values from those garbage coin cells… now you see why I binned them. Couldn't drive 3V into a 59uA load and the figures show why:

> RUN
Enter Off-Load Voltage: 3.232
Enter On-Load Voltage: 0.6
Enter On-Load Current (A): 0.000059
On-load Voltage drop is:  2.632V
Cell Internal Resistance is (Ohms):  44610.2
Cell Power Dissipation is (Watts):  0.000155288
>
platform_agnostic/cell_battery_internal_resistance_calculator.txt · Last modified: 2024/02/01 12:08 by gerry