Battery Management System 

and Lithium Batteries

 

 

The battery management system (BMS) was the single most difficult part of the project.  I was fully aware that this was the critical, time consuming and risky part of the project.  There is not a lot of solid information on the internet.  Failure to have a good BMS in place would mean certain destruction of the batteries in which I had $4,500 invested.  I won't talk about how my understanding evolved.  I just read and read.  Most of what I learned was by manually charging the batteries and getting a sense for their charge and discharge characteristics.  As an Electronics Engineering Technologist, I enjoy designing and building electronics.  However I do not believe in re-inventing the wheel just so I can say I built it myself.  I always look for an available product before I develop my own.  In the case of a large capacity lithium BMS, I found nothing that met my requirements for functionality and space.  The general requirements for my BMS are below;

Single Cell limits

According to the TS-LFP90 battery specifications, (the Thunder Sky cells that I bought) have a maximum charging voltage of 4.25 volts and a minimum discharge voltage of 2.5 volts.  Therefore my BMS must ensure each cell is not allowed to discharge below 2.5 volts or be charged to greater than 4.25 volts.  The maximum charging current is < 3C (meaning less than 3 times the rated cell capacity) or in my case < 270 amps since the cell capacity is 90ah.  More information can be deduced if you study the charge and discharge curves shown in the data sheet.

Charging a Single Cell

The charge curves show a typical charge cycle in a 150 minute period using a charge current of 45 amps.  You can see the charge current is initially fixed until the cell voltage reaches 4.25 volts.  At that point the current needs to be reduced while the cell continues to charge until about the 150 minute point where it reaches 100% capacity.  An important characteristic of the cell that is normal with all LiFePO4 cells is that when the cell starts to reach is full charge, its impedance begins to rise.  If the charging voltage is fixed at 4.25 volts, the current draw drops off naturally.  At some point the current draw will be very little.  It is at this stage of the charge cycle that the cell can withstand voltages that are significantly higher than the nominal cell voltage and in the area of 30 volts.  It is not clear to me exactly how low the current must be for the cell to allow for higher voltages.  Nevertheless, I would not recommend doing that.  I am just trying to point out that the cell's chemistry is such that it is far less susceptible to damage than its predecessor, the lithium cobalt cell.   An important point about charging that I believe is not widely understood is that once the cell has reached 4.25 volts, to achieve full capacity the cell needs to be charged a while longer to saturate the cell  This seems to often be missed and the reason why some people do not realize the rated capacity out of the battery.  With respect to charging current, less is better if you can afford the additional time required.  Less means thinner conductors and less heat buildup in the cell.  As  well the absorption rate will be higher at lower charge currents.  This means a more efficient charge with fewer losses. 

wpe3.jpg (22870 bytes)

Red - Current, Blue - Voltage, Yellow - Depth of Charge;  

The charge curve above is specific to the cells I bought however it is typical of all LiFePO4 batteries.  Notice that the current drops off dramatically once the cell has reached 4.25 volts.  This occurs naturally if the cell is charged at a fix voltage from that point forward.  Full capacity is not achieved when the cell first reaches 4.25 volts.  In this case, fixed voltage charging is continued for about 40 minutes after the cell has reached 4.25 volts.  During that 40 minute cycle, the cell is eventually saturated and in doing so, reaches its maximum state of charge.

Charging Multiple Cells

Most battery packs are arranged to achieve the highest voltage possible by arranging the cells in series.  The problem that arises when charging and discharging series connected LiFePO4 batteries is that they will begin to drift out of balance with each other with respect to their voltages.  This means that the cells will have different charge levels.  The most basic BMS would shut off the charger when the first cell reached 4.25 volts or even lower.  However the other cells could be significantly undercharged and so the entire battery pack will have less energy than it otherwise could.  To resolve this, any cell that reaches 4.25 volts needs to be protected from overcharge while the other cells are allowed to catch up.  Another problem is that cells that approach full charge will exhibit a rising impedance and as such not allow much current to pass through them.  This means the other cells stop charging or charging is slowed.  To resolve this, a current path must be established around a cell that is fully charged or almost fully charged.

Cells that are series and parallel connected can be treated the exact same way except in the case of safe over voltage.  As I stated before, you can place a higher voltage across a cell that is fully charged (does not draw hardily any current)  but in the case of a cell that is in parallel with other cells, the cell current is a total of all the cells in parallel.  Therefore there is no absolute way of knowing that all the cells are fully charged and can therefore handle a higher cell over voltage.  A good rule; For parallel connected cells, never allow the voltage to exceed 4.25 volts regardless of the current.

As shown above, cell imbalances become more prevalent near the end of the charge.  Cells should not be charged to greater than 4.25 volts.  In this diagram, if the charging process were stopped when the first cell reached 4.25 volts, the battery pack would exhibit a less than optimized capacity.   To optimize the battery pack's capacity, a BMS must ensure all cells reach their maximum voltage through cell balancing.  Next, the cells need to be saturated using a  constant voltage during the final charging phase.

Discharging Cells

Looking at the  data sheet at the discharge curves you can see that a cell exhibits very little capacity below the 3 volt point. Since the specifications say the minimum allowable cell voltage is 2.5 volts, a BMS must accurately monitor each cell's voltage and set off an alarm, turn down the power of the motor controller or do something else to protect the cell from dropping below 2.5 volts.  It is my understanding that little or no damage occurs if a cell is allowed to drop below 2.5 volts for just a few seconds.  The safe bet is to simply never allow any cell to fall below 2.5 volts.

Monitoring Cell Temperatures

Prolonged high charge and discharge currents are the greatest thermal threat to a LiFePO4 cell.  LiFePO4 cells are far less prone to thermal damage and deforming than lithium cobalt batteries however they still need to be monitored and protected against high charge and discharge currents that can cause heat rise.  My BugE will not draw excessive current long enough to warrant temperature monitoring.  However my BMS will have the abilities built into it for future projects where currents will be higher and for longer periods.  I am aware that the cells can physically deform unless they are strapped together and have plates of some sort to prevent them from bulging.  If temperatures approach 75 degrees C, the cell needs to cool via reduced charge or discharge current or external cooling.  Note that some heating can be beneficial.  For example, when the cells are around 50 degrees C, they will demonstrate up to 10% more capacity. 

BMS Structure and Functions

From the information above, we know that a lithium BMS must monitor and limit cell voltages both in the charge and discharge cycles.  If charge and discharge currents are high, cell temperatures need to be monitored to protect the cells against high temperatures.  To perform these functions, the BMS must be able to protect each cell from overcharge and if a cell is charged, provide a current path around that cell so the other cells can continue to charge.  As well, the BMS must be able to have at least some basic on/off control of the charger and some way of annunciating or responding to a low cell voltage (should that occur).  

Other functions may include;

  • Reading and displaying or logging cell voltages

  • Reading and displaying or logging cell temperatures

  • Calculating and displaying battery state of charge

  • Displaying battery pack voltage

  • Displaying charge or discharge current

Distributed or Integrated BMS

I have seen 2 types of lithium BMSs;

Distributed - Individual element circuits are connected to each cell.  Most often, the elements are physically located on the cell's battery terminals.  They protect the cell and communicate to a main central BMS controller that has some control over the charger and performs other functions.  These systems are usually expandable.

Integrated - A single BMS controller monitors and protects all cells from a central location.  It also has some control over the charger and usually performs other functions.  These systems are normally not expandable.

My BMS

My BMS system either had to be an integrated type or use elements that were not mounted on each cell but rather in another location.  I had no room on top of the cells for a circuit to be located.  I was very much interested in a  flexible and expandable system so that my design could be used on electric vehicles with varying numbers of cells.  I also wanted to be able to have the option to collect and store data, display data and provide the option of polling each element for cell information.  I  wanted the option of sending commands to each element to perform special functions too.  Ultimately I designed a system that uses small element circuits that plug vertically into interconnect boards that hold up to 8 elements per board.  Since I was using 24 cells, my BMS is made up of 3 interconnect boards each holding 8 plug-in element circuits (24 elements in total) and one main BMS board.  Each element is equipped with a small but powerful PIC processor that includes 10 bit A/D functionality and background pulse with modulation capability.  The main BMS board is also based on a PIC processor.  Using PICs makes the functionality extremely flexible via software. 

I wrote various programs that used different approaches to monitoring and balancing.  for example, I initially programmed the main BMS board to poll each element for its cell voltage.  I then had the main BMS board send commands to each element, telling it when and how much to balance its associated cell.   I eventually decided that is was better to have the balancing decisions done within the elements and not be reliant on a single main BMS.  I also abandoned the polling of each element. It simply wasn't required for my application.  In the future, if I want the system to do different things, I'll write new software to do so.

Elements - Each element is equipped with a small PIC processor (PIC12F683) with a precision A/D converter.  Also on the element boards are a precision voltage reference, 2 opto-isolators for input and output data or signaling, a 5.6 ohm power resistor, a couple of status LEDs and a few other components.   The data input and output lines of all the elements are connected in parallel on common lines.  Each element performs functions to protect its associated cell from over voltage and under voltage.  Here is a full description of the functions;

Element Functions

  1. Each element is calibrated to 4.250 volts.  The software allows 10 seconds to adjust the trimmer potentiometer upon initial power-up for calibration purposes.  Calibration is done via a small trimmer potentiometer.  The blue status LED illuminates when the A/D is perfectly calibrated to exactly 4.25 volts.

  2. After the calibration routine ends, the element goes into its normal operating routine.  The cell voltage is sampled several times a second, calculating an average of 10 samples before it determines a verified reading.  If the cell voltage is low (<2.8 volts), the blue LED flashes slowly and the data output line goes low.  If the voltage is within normal range set for >2.8 to <4.22 volts then the blue LED flashes at a medium rate.  

  3. If the cell voltage reaches 4.22 volts, the data output line goes low to signal balancing, the blue LED flashes fast and a varying amount of resistance is placed across the cell using variable pulse width modulation (PWM) in an attempt to maintain 4.22 volts.  The resistance serves to dissipate energy or bypass current. The low data output line signals the main BMS board to cause the battery charger to reduce charging voltage.  This reduced voltage results in reduced charging current so that any elements that are balancing can dissipate the required amount of energy to maintain a cell voltage of 4.22 volts.  The maximum shunting current is about 760mA.

  4. If the cell voltage rises to 4.255 volts, maximum PWM is applied to dissipate or bypass as much energy as possible and the data output line signals the main BMS board to turn off the charger and end the charging process.  The element that was at the point of over voltage will continue to dissipate energy until it reaches 4.22 volts. This condition (charging above 4.25 volts) should not normally occur. 

Note:  I built a precision voltage reference that I had calibrated to exactly 4.250 volts at a instrumentation lab in Edmonton.   

Main BMS Board Functions

The main BMS main board is equipped with a PIC processor that (with supporting hardware and software), responds to signals from the element's data output lines.  Pack voltage and operating current (driving and charging) are measured, the charger is controlled and data is reported to an in-dash 4 line, 20 column blue LCD.

  1. The main BMS board is put into "Drive" mode or "Charge" mode via a toggle switch on the BugE dash.

  2. In drive mode, the BMS reports the following to the LCD display;
    - Battery Voltage
    - Current
    - Battery State of Charge (this is calculated and displayed)
    - Mode ("Drive Mode")
    - Low Cell Warning (if any element report a low cell)

  3. In charge mode the main BMS board controls the charger (on/off) via a solid state relay and controls the charge voltage (high or low) via the thermal probe port of the Zivan NG1 charger.

  4. When the charge cycle is initiated, the main BMS board will turn on the charger to full voltage if the battery voltage is below 102 volts or the current is less than 1 amp and the charge voltage is less than 100 volts.

  5. During the charge process, if any of the elements report they are balancing via a low data out signal to the main BMS, the main BMS places the charger in a low current and fixed voltage state.  If cell balancing stops, the BMS will pulse the charger's thermal probe port to increase voltage cyclically.   This helps the other cells reach full charge faster while minimizing the chance that any element that was previously balancing will reach a state of over voltage.

The 4 line 20 column LCD display provides operating data in charge and drive mode.   

Performance of the BMS

The BMS works fantastic in fully charging and saturating the batteries.  I am glad that I focused on precision balancing.  Each cell is perfectly balanced with a maximum voltage difference from one cell to the other of only 2 to 3 millivolts.  My onboard charger is a Zivan NG1 that is custom programmed for a lithium charge curve.  The charger puts out a peak voltage of 102 volts.  During most of the charge cycle the charger puts out a constant current of about 10 amps.  When the battery pack reaches about 99 volts, the charger switches to constant voltage mode.  Current naturally begins to decrease as the cells near their full charge.  The BMS main board interfaces to the charger's main AC power input via a solid state relay to turn the charge on and off and to the charger's thermal probe port such that if any of the elements are balancing, it turns down the charger by simulating a high battery temperature.  In addition, my BMS includes a cyclic algorithm that results in extreme balancing and full cell saturation.  I'll probably add an optional charge sequence that charges and balances the batteries to about 4 volts.  This would increase the life expectancy of the batteries by a lot however the state of charge of the batteries would be lower, 

You may notice that I am using 2 main BMS circuits in my BugE.  I used a second circuit as a custom controller to turn on the brake light when in regenerative braking.  As well, this circuit is used to sample the pack voltage via an onboard relay.  This resulted in reduced current consumption for the overall BMS.  The motor controller is fully capable of turning on the brake light  when in regenerative braking.   As well, I was planning to use the controller's analog outputs to operate analog gauges.   Unfortunately I have not been able to obtain a copy of the controller's operating system in order to amend the software using VCL.  Therefore I had to extend the use of my first BMS circuit and utilize another one to perform some of those functions.  At this point, even if I did obtain a copy of the controller's operating system, I think I would leave things as they are.  Everything works perfectly as it is. 

Below are some pictures showing the printed circuit boards during the design process, a couple of the schematics and some pictures of the actual PC boards;

Top side of an element board.  I used 24 of these, one for each of the 24 cells.

A blurry picture of the main BMS board.  I used 1 BMS board and adapted another as a general controller to perform other functions.

 The interconnect board.  Three are used for my BugE

 This is a layout of 3 boards that were produced as panels.  I had to cut out the individual boards.  It is cost effective to have panels of boards made when you only need a few of each.  The above boards are the main BMS (top), a basic voltage regulator board (middle) and PMW speed controller or light controller boards (bottom).

 Schematic diagram of the element circuit.

Schematic of the main BMS board.

 Shown are an interconnect board with 1 socket mounted (left), a complete main BMS board (middle) and a complete element board (right)

 My entire BMS system (less the charger and solid state relay) is shown above.  Only the main BMS board is shown populated.

Next

Back

Home