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).
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).
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.
To verify the parameterized model, we simulate it, plot the simulation results in MATLAB, and compare them with the battery test results (Figure 4).
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).
We insert convective heat transfer blocks between individual cells to account for thermal effects. During simulations we monitor the temperature, SOC, and voltage of individual cells as well as the temperature, voltage, and current of the complete module. By modifying the number of strings or the number of cells in each string, we can quickly evaluate different configurations and identify the best one for a specific application.
We adjust the fidelity of our models based on our own needs or the needs of our customer. We use a low-fidelity model to generate an initial design report for new customers who require a customized design, or when an existing product framework is not available for performing system sizing and preliminary analysis. We use a high-fidelity model for product validation, cell balancing, developing state estimation and charger control algorithms, hardware-in-the-loop testing, and integration into a vehicle platform.
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).
We anticipate a growing demand for safe, cost-effective, and reliable batteries to meet the needs of the electric vehicle industry. By modeling and simulating in MATLAB and Simulink we can quickly explore a wide range of cell configurations and optimize the system architecture in terms of performance, weight, volume, or heat dissipation requirements.