Modeling and Simulating Battery Performance for Design Optimization
By Cecilia Wang, Romeo Power
At Romeo Power, we design our battery packs and battery technology to enable our customers to produce more efficient electric vehicles and implement scalable energy storage systems. Before they select one of our battery packs for their next product, our customers need to know how the pack will perform under the full range of expected operating conditions, including various temperatures and states of charge. Assessing battery pack performance using hardware prototypes can be both slow and costly, so we rely on simulation to ensure that we minimize hardware testing.
Modeling and simulation with MATLAB®, Simulink®, and Simscape™ is faster, safer, and less costly than building physical prototypes. We can identify algorithms or charging methods that will work for a particular design without running the whole system. We can test scenarios that would be difficult or hazardous to test on real batteries and optimize designs for specific applications and usage profiles. Simulation often reveals errors that are missed during system-level testing. In addition, our customers can use our models to evaluate battery packs and battery management systems for their electric vehicles or commercial and residential energy storage systems (Figure 1).
Figure 1. A 48V lithium battery pack for forklifts.
Characterizing and Modeling Individual Cells Using Parameter Estimation
To model a battery cell, we need to characterize its properties—how it performs both initially and after multiple charge-discharge cycles, at various temperatures and states of charge. We run extensive tests, including open-circuit voltage (OCV) and hybrid pulse power characterization (HPPC) tests, using a thermal chamber to vary the cell temperature to cover the operating range of interest. We record changes in capacity and impedance at various states of charge after every aging milestone—for example, after every 200 charge-discharge cycles.
We import the measured data into MATLAB and perform parameter estimation to find open-circuit voltage, resistance, and capacitance values for an equivalent circuit model, which we build in Simulink using Simscape voltage source, resistor, and capacitor blocks (Figure 2).
Figure 2. An isothermal 3-RC equivalent circuit developed for parameter estimation using Simscape blocks. Em = open-circuit voltage, R = resistance, and C =capacitance.
Parameter estimation involves calculating the equivalent circuit parameters to match a simulation result to an experimental measurement. We start with a given equivalent circuit topology and a set of initial parameter guesses. MATLAB optimization functions calculate the parameter values that minimize the discrepancy between simulation and experiment. These steps are repeated at all the temperatures of interest to populate the lookup tables column-by-column. We repeat the parameter estimation using the data we collected as the battery aged, creating additional lookup tables for the battery at each age milestone.
As a result of the beginning of life (BOL) parameter estimation, each equivalent circuit component will have a two-dimensional lookup table with columns representing temperatures and rows representing states of charge. Figure 3 shows an example lookup table, where the internal resistance R0 is shown as a function of SOC and temperature.
Figure 3. Visualization of lookup table resulting from parameter estimation showing internal resistance as a function of state-of-charge and temperature.
To verify the parameterized model, we simulate it, plot the simulation results in MATLAB, and compare them with the battery test results (Figure 4).
Figure 4. One-day, power-driven simulation for an electric vehicle application (based on a single cell). Top to bottom: simulated voltage (red) and measured voltage (blue), current, and state-of-charge.
Creating Multicell Models
To create a complete battery pack or module, we link individual cell models in a series or parallel string and then connect the strings in parallel or series (Figure 5).
Figure 5. From top to bottom: battery pack model, strings connected in parallel, individual cells connected in series, equivalent circuit and example lookup table block (R0).
Sharing Models with Customers
Many of our customers run their own simulations to validate sizing or to see how a particular battery pack will work within one of their designs. A company developing electric vehicles, for example, may want to integrate a battery model with a model of the vehicle motor and run vehicle-level simulations for different drive profiles.
The vehicle model, and even the drive profiles, often contain proprietary information, as do our own battery models. To address this issue, we developed black-box versions of our battery pack models. We generated code from our original models and created new Simulink models based on the compiled code. Our customers have full control over setting up initial conditions, such as initial SOC, initial cell temperature, coolant temperature, and heat transfer coefficients (Figure 6).