Requirements
Current measurement is an essential requirement for our BMS, as it will allow us to protect the battery from over-current conditions, calculate SOC, and monitor solar/grid charging. Being able to calculate SOC is quite important, so the more accurate we can measure current, the better we can calculate our power usages. Any direct measurements that tap onto the high voltage bus must be properly isolated from the low voltage system. Any current measurement circuits must be able to measure anywhere from our lowest current draw when our array is charging and our battery is near it's maximum voltage (1kW/150V ~= 6.67A), to our maximum current draw with motors fully on and our battery pack near empty (15kW/(2.5V/module * 36modules ~= 167A). To be conservative, the circuit should be able to provide accurate measurements from ~1-5A to ~200A without significant errors.
Options
Hall-Effect Sensor
Hall-effect sensors are commonly used in automotive conditions, they work on the principal of hall-effect voltage, where a voltage difference is generated when current passes through a conductor. The main benefit of hall-effect sensors is that since it's not directly connected to the high-voltage bus, it provides inherent isolation. The downside of hall-effect sensors however, is that they can have a relatively large error across large current ranges. This is especially an issue if we want to measure across our current range, and up to 2-3% of error can be expected according to the LEM datasheets.
LEM HO 150-NP/SP33-1106
LEM donated 2x HO 150-NP/SP33-1106 current transducers for our use in the Spring 2017 term. These sensors can measure from 0 to 150A with +/- 1.15% of nominal RMS current (150A). This provides an error of +/- 2.25A. Linearity is quite good for this current transducer at +/- 0.4%.
Shunt Resistor
A common way of measuring current is using a shunt resistor. This involves passing the current through a small resistor of known value, typically under 1 Ohm, and measuring the voltage drop across the resistor. Then using ohm's law, I = V/R, we can find the precise current. The main downside of using a shunt resistor is isolation, as our voltage measurements are directly off of the high-voltage bus.
Deltec 500A/50mV Shunt
This shunt resistor that we have from previous vehicles provides a 0.1 miliohm resistance (10mV/100A). This results in a relatively low power dissipation (4W at 200A).
Based on the benefits and drawbacks from the two options above, implementing current sensing through the shunt resistor provides the most accuracy at relatively low costs. The design and details of what components are used and how the signal will be amplified will be detailed below.
Block Diagram & Description
Since the high voltage battery can reach up to 150V, we must either select op-amps with a very high common voltage input, which is very difficult to find, or generate a reference voltage 3.3V or 5.0V below the HV battery voltage. This can be either accomplished by biasing a zener diode or by using an isolated DC-DC power supply with a floating ground below the HV battery voltage. Otherwise, the circuit is a fairly standard differential amplifier feeding into a buffer amplifier to increase it's output resistance, and this analog signal is sampled by a 24-bit sigma-delta ADC for maximum precision. The ADC should output the sampled value over SPI, and this signal will be translated into isoSPI using a LTC6820 IC, where it is sent to the BMS carrier board through a transformer for isolation. On the BMS Carrier board, there is another transformer and LTC6820, where the isoSPI signal is translated back to normal 4-wire SPI and read by the controller board. This is summarized in the diagram below, which omits any filtering that has to be designed on the input side.