14
\$\begingroup\$

The typical way to measure the internal resistance of a battery, that I've found through research, is by connecting the battery in a circuit with a resistor, measuring voltage through the battery, calculate current, measure voltage through the resistor, find the voltage drop and use kirchoff laws to calculate the remaining resistance, which would be internal resistance.

A professor mentioned that this is too inaccurate for batteries with very low internal resistances, so is there another, more accurate way to test the internal resistance of a standard battery?

\$\endgroup\$
3
  • 3
    \$\begingroup\$ It's going to change with load, temperature and health of battery. It may be a fairly pointless exercise to go for "accuracy" in this case. \$\endgroup\$
    – Transistor
    Commented Apr 3, 2018 at 22:03
  • \$\begingroup\$ use a calibrated constant current load ... a normal load resistor would change its value when it heats up .... the resistance change may be a significant percentage of the battery's internal resistance \$\endgroup\$
    – jsotola
    Commented Apr 3, 2018 at 22:10
  • \$\begingroup\$ You can connect a zero ohm short to the battery and measure the current. However, do not leave it connected for more than a microsecond. \$\endgroup\$ Commented Apr 10, 2018 at 3:47

3 Answers 3

22
\$\begingroup\$

The easiest is to use an AC current, just like a network analyzer.

You can use a switchable current sink of known value, or a resistor and a FET. Measure voltage with current on, then with current off, substract, divide by current, you get internal resistance. If you keep repeating this on/off cycle, this is equivalent to using an AC current.

An advantage of AC measurement is that you can use a capacitor to get rid of the DC, and only handle the small AC voltage. It also ignores any DC offset in the signal chain, from opamps etc. AC measurement is the most accurate method.

You can use something like this as an experiment:

schematic

simulate this circuit – Schematic created using CircuitLab

Here the voltage source on the left drives an AC signal through R1 and C1 into the battery. This is AC coupled via C1.

C2 extracts the AC voltage on the battery.

Knowing AC voltage V1, once you measure the AC voltage on "OUT", battery internal resistance is easily calculated, as it forms a resistive divider with R1.

You can do this with a soundcard, or with a function generator and a multimeter. Make sure you calibrate and verify your test rig by replacing the battery with a resistor of known value, which should be of the same order of magnitude than the expected resistance to be measured.

\$\endgroup\$
4
  • \$\begingroup\$ +1 for an approach that's new to me. The user might want to limit the current injected into the battery to a safe value. \$\endgroup\$
    – Transistor
    Commented Apr 3, 2018 at 22:22
  • \$\begingroup\$ @Transistor the resistor limits the current, this is in fact a network analyzer... it works with a soundcard too. \$\endgroup\$
    – bobflux
    Commented Apr 3, 2018 at 22:23
  • 2
    \$\begingroup\$ Frequency of the V1sine better be more than 10Hz if measurement at the output will be made by a scope's AC coupling. (?) \$\endgroup\$
    – user16307
    Commented Apr 3, 2018 at 22:27
  • \$\begingroup\$ Soundcard, function generator... Why not just AC from the power outlet, perhaps via a transformer to reduce the voltage? \$\endgroup\$
    – Greendrake
    Commented Mar 11, 2021 at 12:44
16
\$\begingroup\$

The objection by your professor to the method you described is wrong. If a battery has low impedance, you just increase the load, so the difference can be better measurable.

The problem, however, is quite deeper. Batteries usually don't have a steady DC load, and often people need to know the battery reaction to impulse load. The issue is that the battery doesn't have a single "impedance" that can be used for estimation of its response to load. Every battery have a spectrum of impedances, different impedance for different frequency of loading. This topic of engineering is called "Electrochemical Impedance Spectroscopy". An example of presentation. See also this article from BatteryUniversity, with an example of "electrochemical spectrum".

enter image description here

So, the most accurate way to characterize internal impedance of a battery is to measure its spectrum, using, for example, the circuit suggested by peufeu.

However, this is not all. The EI-spectrum is usually collected using "small signal" applied. As Lorenzo Donati commented below, the value of impedance is not only dependent on frequency, but its is also nonlinear with amplitude of applied signal/load, which adds another dimension into complexity of the problem.

\$\endgroup\$
3
  • \$\begingroup\$ Those Bode Plots are characteristic of the presence of a Warburg impedance (in absence of convection.) Shift to Nyquist and it becomes more obvious. I should have guessed, regarding batteries, but I'd never considered it before. Thanks! \$\endgroup\$
    – jonk
    Commented Apr 4, 2018 at 2:11
  • 1
    \$\begingroup\$ the battery doesn't have a single "impedance" : to put it simply, the internal impedance of a battery is non-linear (contrary to common belief and simple "voltage source+resistor" models). (+1) for pointing that out! \$\endgroup\$ Commented Apr 4, 2018 at 8:53
  • \$\begingroup\$ Good point, interesting article. Me to +1 \$\endgroup\$
    – Dorian
    Commented Apr 4, 2018 at 14:43
0
\$\begingroup\$

Internal resistance is an approximation of a complex V(I) function of a battery, so there is no "true" internal resistance value you could accurately measure in the first place. The most representative measurement you can do is the actual V(I) curve for relevant current values. If, by chance, you obtain a straight line - bingo, your battery can be accurately described by a single internal resistance value. Otherwise, you'll have to use the curve you've got to determine current and voltage values for any given load.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.