We were given the project “Li-ion and BMS modeling for controlling fault events”. The main purpose of the study is to determine the fault events caused by over charge, over discharge, under voltage, over voltage, low temperature and high temperature situations and detect these anomalies and accordingly break the circuit for further escalation of the event. These anomalies will cause the battery to explode and can lead to disasters. We are using Matlab software to create a li-ion battery and Battery management system. Using the software we can simulate the conditions of the fault events and make a logic to break the circuit when the faults occur. By the end of the project we would have made a working simulation of Li-ion battery and BMS in Matlab.
Steps to complete the Project:
1. Researching about the faults occurred during the working of EV and determining on which fault we are going to work.
2. Designing a li-ion Battery using the data acquired after testing real battery parameters for different conditions.
3. Determining the Limit of the Battery parameters at fault events , to design the BMS accordingly.
4. Designing a BMS that detects a fault and accordingly breaks the circuit and tells about the fault occurring in the system.
The tools required for completing this project are:
2. QSS toolbox
Li-ion cell modeling
For Li – Ion cell modeling we took help from the DIY-guru course on Li – ion cell modeling. We designed a Kokam cell of 31Ah [Cell Type High Powered NMC (SLPB78216216H)]. The experimental data was given in the course and we designed our li-ion cell accordingly. Steps
used to create the Li – ion model are as below.
Step 1: Creating current profile
To create a current profile we first decided on a drive cycle which we chose as “FTP75”. Using this drive cycle we obtained the distance, speed and acceleration values. The current profile of a vehicle is similar to the acceleration profile of the drive cycle. Hence we took the acceleration data to feed to our battery as current profile.
Step 2: Plotting graphs
Using the experimental data we plotted graphs for a better understanding of our Li-ion model.
Step 3: Modeling Li – ion cell block
To make a LI-ion cell block we had to make different blocks for calculation of different parameters of the cell such as SOC, OCV, R0, R1, Capacitance, Temperature etc.
Calculating SOC and OCV
For calculating state of charge we used coulomb counting method using current and temperature as our input and for calculating open circuit voltage we used the SOC and Temperature as input to a 2 – D lookup table block. The temperature data is the output of the temperature block.
Calculating R0, R1, and Capacitance
From the experimental data we calculate the R0, R1, and Capacitance using SOC, Temperature as
input to a 2 – D lookup table. For calculating R1 we also use current at R1 which is calculated
while calculating the terminal voltage. We calculate these parameters so that we can calculate
power loss and terminal voltage.
To calculate Temperature we need total power loss which is the sum of power loss in R0 and R1, and we need an initial temperature / ambient temperature as input. We use the experimental cell data like cell area, heat transmitted by convection, cell specific heat and cell mass to calculate the temperature.
Calculating Terminal Voltage
To calculate terminal voltage, we put OCV, R0, R1, C1 and current as input and calculate voltage across R0, R1 and C1 which we subtract from the OCV to get our final terminal voltage.
Step 4: Plotting the values
As current as our input we put a saturation block and gain block before we connect it to the main Li – ion cell block. We used a saturation block to only take the negative values of current so that the battery doesn’t charge due to positive acceleration (Eg. regenerative braking, etc.). We also used gain so that we can get the battery to discharge for such a short time.
Battery pack BMS
Here we have designed a battery management system for a two wheeler battery pack of configuration 14S3P. The BMS model we designed in simulink contains five main subsystems.
1. Mode selection switch.
2. Drive cycle generation system.
3. Charging / Discharging circuit.
4. Battery pack model.
5. Battery management system.
6. Display console.
Mode selection switch
It is through this rotary switch which we provide the input command to select between the available two modes of operation. Either driving mode or charging mode.
In this mode, the battery pack will be connected to a controlled current source. The FTP-75 drive cycle profile is fed into the controlled current source as the control signal and hence this source will be generating current proportional to the FTP-75 drive profile.
In this mode, a constant current is provided into the battery pack within the limits of the maximum cell charging current parameter.
Drive cycle generation system
We have used the drive cycle block from the QSS toolbox and considered FTP-75 as our drive cycle. Since acceleration is directly proportional to the current drawn, we have considered the acceleration profile as our current profile. We have also considered a regenerative braking efficiency of 20% here..
Charging / Discharging circuit
The output signals from charging and discharging subsystems are fed to the controlled current source as a control signal through a controlled switch. This switch is controlled by the signal from the mode selection rotary switch. The current source fed positive/negative current to the battery pack according to the control signal(charge/drive mode commands).
The charging system provides a control signal to the controlled current source. The control signal would be either a changing current constant value which is under the maximum charging current limit for the cells or zero depending on the feedback signals from BMS(fault signal and SOC information) and the mode selection command input.
The discharging system also provides a control signal to the controlled current source. The control signal would be either the drive cycle current profile or zero depending on the feedback signals from BMS(fault signal and SOC information) and the mode selection command input.
Battery pack model
We have considered a two wheeler battery pack of configuration 14S3P. The pack consists of 3 modules connected in parallel with each module consisting of 14 cells connected in series. The parameters like cell SOCs, cell temperature, cell voltage, cell currents from each module are collected at one point using vector concatenate elements and are then fed to the bus creator. These bus signals are the input signals to the BMS subsystem where those are processed and analyzed for fault detection algorithms.
Inside battery modules
Each module consists of 14 cells connected in series. The cell parameters such as SOC, temperature, voltage and current are collected at one point using vector concatenate elements and provided as output from each module. We have used the predefined cell models available in
simulink library to build our pack.
BMS(Battery Management System)
The Battery Management System (BMS) is responsible for safe operation, Performance, and battery life under diverse charge-discharge and environmental conditions. When designing a BMS, We develop feedback and supervisory control that:
1. Monitor cell Voltage, cell current, cell Temperature, and cell SOC
2. Limits power input and output for thermal and overcharge protection
3. Controls the charging profile
4. Isolate the battery pack from the load when necessary
Here, The output of the battery pack is fed into the BMS model and subsystem (fault detection algorithm) as the input.
The BMS model it consists of Two Subsystem namely,
● Fault detection algorithm and
● BMS fault signal generation
Fault detection algorithm
It include four subsystem as Over discharge/charge protection, Over charging current / over discharging current protection, Over / under voltage protection, Over / under temperature protection and to this four subsystem the inputs are BMS input. Cell SOC, BMS input. Cell current, BMS input. Cell voltage, BMS input. Cell temperature respectively.
Over discharge/charge protection
The logic we have used for over-discharge/ charge protection is that when the SOC is less than 15% the action subsystem block generates output as 1 when the SOC is greater than 95% the action subsystem block generates output as 2, and when the SOC is between 15% and 95% the action subsystem block generate output as 3.
Over charging current / over discharging current protection
The logic we have used for over-discharge/ charge protection is that when the charging current is less than -48Amp the action subsystem block generates output as 1 when the discharging current is greater than 60Amp the action subsystem block generates output as 2, and when the current is between -48Amp and 60Amp the action subsystem block generate output as 3.
Over / under voltage protection
The logic we have used for over-discharge/ charge protection is that when the cell voltage is less than 2.5V the action subsystem block generates output as 1 when the voltage is greater than 4V the action subsystem block generates output as 2, and when the voltage is between 2.5V and 4V the action subsystem block generate output as 3.
Over / under temperature protection
The logic we have used for over-discharge/ charge protection is that when the Temperature is less than 20C the action subsystem block generates output as 1 when the Temperature is greater than 30C the action subsystem block generates output as 2, and when the voltage is between 20C and 30C the action subsystem block generate output as 3.
BMS fault signal generation
As we know the input is fed from Fault detection algorithm subsystem block to the BMS fault signal generation subsystem block, In this BMS fault signal generation subsystem block the logic we have used is that it checks whether the output from the Fault detection algorithm subsystem block is 12 or not.. As per the fault detection algorithm at safe conditions always the output from the block will be 12 and during any fault condition it will be less than 12.. So whenever the gate signal is not equal to 12 then the fault signal will be high (value binary 1).
The display console helps the driver to get notified or informed about the fault events as well as the instantaneous output/information from BMS fault detection algorithms. It consists of four lamps to indicate the different fault/safe conditions.
Green – SOC in safe range
Red – Over discharged(SOC < 15%)
Blue – Overcharged(SOC > 95%)
Green – Cell current in safe range
Red – Over discharging current(I > 60A)
Blue – Over charging current(I < -48A)
Green – Cell voltage in safe range
Red – Over cell voltage(V > 4V)
Blue – Under cell voltage(V < 2.2V)
Green – Cell temperature in safe range
Red – high cell temperature(T > 30 degree celsius)
Blue – low cell temperature(T < 20 degree celsius)
Li-ion cell modeling
The below are the graphs which show the characteristics of our Li-ion Battery.
The above graph shows that the SOC is decreasing, OCV is decreasing, Temperature is increasing and power loss is increasing the required output for our Li – ion model.
Battery pack BMS
Test run for over charged/over discharged fault detection
Set below values as per assumptions
Initial cell SOC = 18% (all cells equal SOC)
Lower SOC limit = 17%
Upper SOC limit = 19%
Mode selected at start of simulation = Charging mode
Now we changed the mode to driving mode so that SOC start to decrease
From the above simulation result we observed that the BMS accurately sensed the overcharge/over discharge fault conditions and generated fault signals and disconnected the battery pack from input supply/load. Also the vehicle driver was promptly alerted about the
fault in the display console..