Measuring the current for battery monitoring project

current measurement

I have to build up a battery cell(single) monitoring system which can calculate the cell's (single) efficiency which should be atleast 0.1% – 0.5% accurate. The cell would be charged over a couple of hours (nominal rating 12V – 15A), and then discharged during a specified time. At the end i have to calculate the total energy delivered to and obtained from the battery by measuring the current and voltage.
The sensed current would range in from few milli Amps to a maximum of 50 Amps. I read alot about current sensing online and i came accross a very famous opinion of using series shunt to measure the current if you require a high accuracy. I also came to know about high side sensing and low side sensing.
Now my question is would it be possible for me to measure the current with the help of shunt, as to me, my range seems a bit large (few mA to 50A), so would a 0.01ohms shunt for e.g would be able to cover the whole range (resulting voltage would be in between 0.01mV (for 1mA) – 500mV (for 50A) ) ? What i mean is that after amplifying my resulting voltage across the shunt before feeding it to the ADC, would i be able to measure the current accurately keeping in mind if i am using some AVR contorller for e.g which has a 10 bit resolution ADC, with a reference voltage of 5 V ?
Or if there exists any other solution, other than measuring(with high accuracy) via shunt resistor, please tell !
Thanks !

Best Answer

As stated, you need to go talk to whoever set the requirements for your measurements. The dynamic range and precision required are just absurd.

Just for rough numbers, let's say your current range is 5 mA to 50 A. That's 4 orders of magnitude. If each current measurement must be accurate to .1%, that requires a system resolution of 5 uA. 50 A divided by 50 uA is 10,000,000. That is a 24-bit dynamic range. Trying to get this level of accuracy is enough to boggle the mind. At the least, keeping a shunt at a constant resistance (to within 0.1 ppm!) over a current range like this is mind-boggling. Think about self-heating for a bit. Hint - it varies as the square of the current. Think about how this affects the resistance of the shunt.

Much more reasonable is to consider exactly what range of currents will be encountered in a discharge cycle, and more importantly to establish just exactly why you need 0.1% accuracy. A 10-bit A/D converter will provide a nominal 0.1% resolution (with accuracy somewhat less due to nonlinearity), but attempting to extend this to calculate battery capacity to this accuracy is just silly. Among other things, battery capacity changes with discharge current level, temperature and age. Batteries are not precision artifacts.

Ordinarily, you would measure capacity based on a constant current discharge, with the test stopping at a voltage well above 1/2 the starting voltage. The test is then repeated for different current levels. To do otherwise is wasted effort. If you want to wring the last few electrons out of the battery, consider that, in a multi-cell battery this will inevitably cause one or more cells to become reverse-biased, and this is most definitely not good for the cells.

If you do this (constant-current discharge with a fixed cutoff) then a 10-bit measurement of the voltage and the current will provide a nominal energy resolution of about 9 bits, or ~.2%. For each different current level you can vary the shunt resistance to get the peak current measurement near full scale of the ADC.

Even if you decide to try for a full discharge of the test cell, keep in mind that, once you're below about half the original voltage, the time left will be (relatively speaking) very small, and inaccuracies introduced by limited ADC resolution will have only a very small effect on total accuracy.

And finally, if you really, really must try for this accuracy, you will need to pay extraordinary attention to the accuracy of your charge cycles. Extreme consistency will be the key, with absolute accuracy of charge current and temperatures required. Plus, you will need to provide some way to guarantee that each cell is (in absolute terms) discharged to the exact same level before starting a charge cycle.