Measuring the Battery Internal Resistance

Here, I will describe an experiment I performed to measure the internal resistance of the high-voltage (traction) battery of my Prius.

When current flows into the battery (charge), the voltage rises and when current flows out (discharge) the voltage falls.  Long-term rise and fall is due to change in the state of charge of the battery, that is, the battery voltage is higher when it is more fully charged.  But, there is also an immediate change in voltage which is due to the internal resistance of the battery.  A voltage is developed by the current flowing though this resistance.  When current flows in, this voltage adds to the battery terminal voltage and when current flow out it reduces the voltage.  Power dissipated in the internal resistance is lost as heat.  A low resistance is desirable to reduce this power loss and give a high power storage efficiency.  The value of the internal resistance of a battery can be an indicator of battery health.  According to data from Toyota in Development of a New Battery System for Hybrid Vehicles, the internal resistance of the Prius battery pack (model year 2001 and on) rises from about 0.5 ohms when new to about 0.55 ohms when the car has been driven for 200,000 km.

Plotting Voltage versus Current

My basic method for measuring the internal resistance was to plot the terminal voltage against current while I put the battery through its paces.  To see the results, click the small image at right.  Let's set aside the details of how the data were gathered (I'll talk about this more below) and discuss this plot.  Now would be a good time to print it or re-arrange your windows so that you can see the plot and this text at the same time.

The horizontal axis is battery current from -70 amps (negative being discharge) to +60 amps (positive being charge).  The vertical axis is battery terminal voltage from 250 to 315 volts.  The narrow solid line that swoops in diagonal curves around the plot is a trace of how current and voltage changed (with time) as I started the car and began my morning commute on Monday, September 23, 2002.  The line is divided into three colored sections but it is nevertheless one continuous sample set. I divided up the line to help in the description that follows.  The wide, dashed pink line is not from sampled data but was added by me as a visual reference.  It slopes up at 0.46 volts per amp, which means it represents a resistance of 0.46 ohms.  Because this slope matches the slope of the sampled data as it crosses the voltage axis (at zero current), I believe that the internal resistance of my Prius battery is about 0.46 ohms.

What the Car was Doing

Now I will describe what was going on in the real world of car, driver and road as the current and voltage data were collected by my data acquisition system.  This may be interesting in its own right but is also important to support my conclusion about the internal resistance of the battery.

Starting the Car to First Movement

The first section (in time) of the sample trace is colored orange.  It begins shortly after turning the car on and ends at the time I pressed the accelerator pedal and the car started to move.  The trace starts at the bottom of the plot and first moves upward.  This almost vertical rise alone the voltage axis is simply due to the System Main Relay closing when I started the car and the battery voltage appearing at the input to my data acquisition circuits.  The rise is damped by my low-pass (anti-aliasing) filter and sags to the left as in-rush current is drawn by the car's electronics.

Having reached about 300 volts, the trace swoops to the left and down (I know this because I have the raw data to supplement the plot).  This represents the pulse of power taken to start the engine.  You can see that the peak current draw is -45 amps and the battery terminal voltage dips to 279 volts.  As the current decreases after the peak, the trace returns on a line lower than the outgoing one.  Charge has been removed from the battery and its voltage is now lower than before.  The difference of about 4 volts seems a lot and it is my impression that the large current draw causes a temporary drop in voltage and that the battery would recover to closer to its starting figure if left alone for a few minutes.  Although this is outside my area of competence, my guess is that this is due to uneven electro-chemical action in the battery.  Perhaps large currents cause material closest to the cell electrodes to give up its energy first.

The trace does not make it all the way back to zero current.  It dips to about -5 amps and then increases again to -15.  Motor Generator 1 is now holding the engine at about 1000 r.p.m. in preparation for firing it up.  The initial surge was to overcome the inertia of the engine and now a more modest power level is needed to keep it spinning.  Note that the dip from -5 amps towards -15 is at a higher voltage than the return from the peak draw of -45 but the current never went positive.  The voltage has already "bounced back" a bit after the sudden high current discharge.  While holding at -15 amps, the voltage falls again as state of charge drops.  You can see the dense cluster of points making up the line, ending at 290 volts and just under -15 amps.

At this point, the car applies fuel and spark to the engine and it begins to run under its own power.  The trace moves to the right and up into positive current (charge) and makes a small loop as the engine is brought under control at the initial idle spin rate of about 1300 r.p.m.  The small amount of charging raises the battery voltage by a couple of volts and as things settle down the trace returns to zero current at 300 volts.  It is my opinion that returning to 300 volts is only coincidence and the car is not deliberately putting back the exact charge removed to start the engine.  But, I could be wrong.  Either way, this return to the same point does make the plot harder to dissect so, before we move on, make sure you've followed the orange section of the line to its highest point, around 305 volts, and from there counterclockwise around the end of the loop down the upper-left side to 300 volts on the voltage axis (at zero current).  At this point the line turns blue and we'll follow it in the next section.

We have clearly seen the battery voltage drop as current is drawn out and increase when current flows in.  This gives the trace its basic diagonal movement.  We have also seen the battery voltage change due to charging and discharging, that is, the effect of current flow integrated over time.  This is why the trace doesn't simply follow a single diagonal line but swoops around a diagonal, forming roughly elliptical shapes.  I have also presented the notion that some of this change in voltage due to charging and discharging is temporary, due to large currents, and is subject to "bounce back" as the battery recovers.

Getting to the End of my Street

The blue section of the trace is acceleration along my (short) street and then braking to a stop at the end.  It forms a single fairly well-defined loop starting at the end of the orange section, moving to the left and down then returning to the right and up (but lower down on the plot) and then going into positive current (regenerative braking).  The loop ends by returning to the left and down to 289 volts on the voltage axis (at zero-current).  This voltage is significantly lower than the 300 volts at which this section started, showing a considerable discharge.

Now, if you're somewhat familiar with how the Prius works, you may be surprised by the large current draw of over 50 amps as I accelerated up the street.  The battery power draw peaked at about 13.8 kW.  Normally, the engine would begin to supply power when the demand rose about 10 kW.  Also, the engine was running anyway, so why did the car take so much power from the battery?  The answer is that the car was in its "pre-heat" phase (my term) which lasts for about 60 seconds from a cold start.  In this phase, the car prepares the emissions control system for operation, heating the oxygen sensors and catalytic converters, and, if possible, allows the engine to just idle.  Because I did not accelerate very hard, the battery was able to meet my power demand and Motor Generator 2 propelled the car.  Whenever possible, I limit acceleration during the first minute to avoid breaking out of "pre-heat" and consequent loss of emission control.  The car will provide more power if I ask for it, but at an increased emission level, though probably still far below that of a conventional car.  In the experiment, this burst of battery power caused the voltage to fall by about 18 volts by the time I backed off on the accelerator pedal to zero current again.  Again, I believe that because of the high discharge current, the battery would recover to a somewhat higher voltage if left to rest at this point.

After the removal of my foot from the accelerator pedal, the trace crosses the zero-current line into positive current and settles for a short time at about 12 amps of charge.  You can see the blue line jiggle about in this area as the voltage rises from 288 to 290 volts.  This is the slight regenerative braking that gives the Prius the feeling of a conventional car by simulating the effect of engine braking.  However, my foot was soon on the brake and current increases to a peak of about 33 amps due to regenerative braking at a higher level.  A battery charge current of more than 50 amps can occur during normal braking.  I conclude therefore that the friction brakes did not come on at this time, except to bring the car to a final stop when the speed was too low for regenerative braking to have a significant effect.  You will see a dip to the left as braking current increases.  This could have been a change in pedal pressure on my part as I re-evaluated the distance to the stop line but I cannot be sure.  Battery voltage increased only by about 7 volts during braking.  Clearly, I'd used up energy moving the car to the end of the street against rolling resistance, some aerodynamic drag but mainly against gravity, the street being slightly uphill in this direction.

Getting to the Stop Light

The trace continues from this point in red.  This is a second, shorter but harder acceleration, followed by a short coast and then braking to a halt at a stop light.   Following the trace to the left and down, this time I use over 60 amps at the peak forcing the battery voltage down to 255 volts for a power of 15.8 kW.  This is still short of the battery's maximum power of 21 kW and I have recorded currents of -75 amps and more in this situation on other occasions.  Although peaking at a higher current than my first acceleration (above, in blue) the loop formed by the drop in voltage due to discharge is narrower because I held the acceleration for a shorter time.  Thus, the total discharge was less.  The hesitation at around -20 amps and 280 volts may again be due to unsteady pressure on the pedal but I cannot be sure of this.

As my foot came off the pedal, the trace returns to the right and up, just like the blue section, crossing into positive current as regenerative braking starts during the coast.  Since the charge current at this time is larger than before, about 15 amps, I presume my speed was higher, but this is not recorded.  As I remained in the coast for several seconds, two things are much more clear than in the previous short coast.  First, battery voltage increases by about 6 volts as state of charge increases.  Second, the charge current drops off slightly as the car slows.

At 14 amps and 290 volts, I applied the brake.  The trace touches the earlier blue section at this point, so be careful to stay with the red section.  Moving smoothly up and to the right, regenerative braking peaks at a current of about 51 amps, pushing the battery up to 310 volts for a peak charge power of 15.8 kW.  This is close to the maximum the battery can take and harder braking would result in the friction brakes coming on.  As the car slows, current falls off and the trace moves to the left and down.  By unfortunate coincidence, this loop overlaps the earlier blue section and ends up where it started.  The final battery voltage is the same as at the end of the blue section, where the red section began.  To a first approximation, it would seem that the charge during braking balanced the discharge during acceleration.  This is actually possible and reasonable, since this part of the journey was downhill.  The trace ends at zero current and 290 volts.


Movement of the trace in the direction of the bottom-left to top-right diagonal is due to internal battery resistance.  A change in battery current causes an instantaneous voltage change, proportional to the current change, where the constant of proportionality is the internal resistance in ohms.  If the current were to quickly return to its previous value, the voltage would also return to the value it had before at this current.

Migration of the trace up and down the plot is due to charge and discharge of the battery.  While the current is negative, to the left of the voltage axis, the battery discharges and the voltage falls in rough proportion to the magnitude of the current and to time.  While the current is positive, to the right of the voltage axis, the battery charges and the voltage rises in the same way.  Since the data I have captured contains fairly slow changes of current, the battery state of charge is always changing and the trace never goes out and back along the same diagonal (as it would if current changed too fast for the state of charge to alter significantly).  So, resistance and charge effects are mixed together in the plot.  Some up and down movement of the trace is also caused by the battery voltage recovering from high current pulses, which have an exaggerated initial effect on voltage.

To separate the internal resistance effect from changes to state of charge, I reason that I should measure the slope of the trace where it crosses the voltage axis.  Around zero current, charge/discharge will be negligible, change of voltage due to change of state of charge will be a minimum and so the change of voltage due only to current change (resistance) will be most apparent.  At several points, the lines move through zero current quickly with time as my foot came off the accelerator and moved to the brake.  I have taken particular notice of the slope here.  This further reduces interference to the slope from changes to state of charge.  More important, selecting fast-moving crossings through zero current is the only way to minimize the effect of any change of voltage with time due to battery recovery from high current pulses.

In summary, I have matched the dashed pink line's slope to the trace as it crosses the voltage axis (at zero current), giving greater weight to the blue and red sections as they cross the axis going from negative to positive current as I abruptly lift my foot from the accelerator.  The slope of the dashed pink line in 0.46 volts per amp, giving an estimate of the battery internal resistance as 0.46 ohms.  This is not inconsistent with data published by Toyota.  Since the internal resistance of the battery is probably affected by temperature, state of charge, and perhaps other factors of which I am not aware, I don't think it is appropriate to refine this experiment further.  The figure of 0.46 ohms is a satisfactory outcome and shows that my battery is in excellent health.

Data Acquisition System

Full details of my data acquisition system are published elsewhere and are subject to change as I continue development.  For your convenience, what follows is a brief description of the situation at the time of the experiment.

Battery current was measured using the sensor built into the System Main Relay.  Its sensitivity was assumed to be 0.027 volts per amp, which was determined by comparison with an Amprobe CT600 clamp-on current probe.  Calibrating the sensor offset (sensor output at zero current) presents problems as the Amprobe is only accurate to  0.5 amps.  Fortunately, this is immaterial for slope measurement.

Battery voltage was measured at the terminals of the System Main Relay behind the rear seat.  A differential amplifier circuit (with a TL082 BiFET operational amplifier) was used to measure the voltage difference between the terminals without assuming or providing any connection to the car's chassis.  The gain was calibrated with an inexpensive digital multimeter which in turn had been checked against a more expensive multimeter.

Both voltage and current signals were passed through second-order low-pass filters to attenuate components above the sampling frequency.  The corner frequency of the filters was at about 24 Hz (in later experiments, I reduced this to closer to 10 Hz as I gained confidence that there was nothing of interest in the current and voltage signals at more than a few hertz).

Data was sampled by a LabJack U12 data acquisition unit controlled by the "Ljstream" application (supplied with the unit) running on a notebook computer.  The sampling rate was 100 Hz (in later experiments, I reduced this to 50 Hz).  Analog input gains were chosen appropriately and calibration parameters for the signals were entered into the application so that data was stored on disk directly in amps and volts.

The plot was created using Microsoft Excel.  Uninteresting data was trimmed from the start and end of the trace.  The small plot was made as a "thumbnail" by shrinking the large plot and rescaling the axes.  It is intended only to give you an idea of what you'll see when you click it to get the real data plot.

Last edited November 10, 2002.  All material Copyright   2002 Graham Davies.  No liability accepted.