メインコンテンツ

Estimate Maximum Charging and Discharging Power of Battery Module

Since R2025a

This example shows how to estimate the maximum charging and discharging power of a battery module by using the Battery Power Estimator block.

At the start of the simulation, the battery module has a state of charge (SOC) of 40%. A Battery CC-CV block performs a constant-current (CC) charging until it reaches the cell voltage limit of 4.15 V, specified in the Cell voltage threshold (V) parameter. The block then charges the battery with a constant-voltage (CV) profile. Once the module SOC reaches 90%, the Battery CC-CV block starts a CC discharging procedure and discharges the module until the SOC reaches the initial value of 10%. The charge and discharge cycle then restarts.

During the charging and discharging cycles of the Battery CC-CV block, a Battery Power Estimator block estimates the maximum charge and discharge power of the module. The Battery Power Estimator block estimates the power with a prediction window of 10 seconds.

Open Model

Open the powerEstimator model.

modelname = "powerEstimator";
open_system(modelname);

The model comprises a pre-generated Module (Generated Block) block, a Battery CC-CV block, and a Battery Power Estimator block. The Module block represents a battery module with three parallel assemblies with a gap between each parallel assembly of 0.5 mm, a detailed model resolution, and an enabled ambient thermal path. Each parallel assembly comprises four single-stacked pouch cells. Each pouch cell measures 300 mm in length, 100 mm in height, and 10 mm in thickness. For more information on how to generate the Module block, open the powerEstimatorCreateLib.m file.

Run the simulation.

ssc_pwrEst = sim(modelname);

View Simulation Results

This plot shows the current and SOC of the battery module during the simulation. The Battery CC-CV block charges the battery module from 40% to 90%. Then, the block discharges the battery module back to an SOC of 10% before charging it back again to 90%.

powerEstimatorPlotSOC;

Figure powerEstimator_CurrentSOC contains an axes object. The axes object with title Module Current and SOC, xlabel Time (min), ylabel SOC contains 2 objects of type line.

This plot shows the estimated maximum charging and discharging of the battery module during the simulation, as well as the actual power at the module level.

powerEstimatorPlotPwr;

Figure powerEstimator_PowerLimits contains an axes object. The axes object with title Battery Power and Power Limits, xlabel Time (min), ylabel Power (kW) contains 3 objects of type line. These objects represent Max Charge Power, Max Discharge Power, Module Power.

Results from Real-Time Simulation

This example has been tested on these platforms:

  • Speedgoat™ Performance real-time target machine with an Intel® 3.5 GHz i7 multi-core CPU and 4 GB RAM.

  • dSPACE® SCALEXIO LabBox with Intel® Core XEON E3-1275v3 at 3.5GHz and 4 GB RAM.

You can run this model in real time with a step size of 300 microseconds by using the Simscape local solver. For small sample rates, a task overrun might occur during the initial task execution due to a cold cache. To avoid this overrun, if the selected platform supports these options, relax the start-up behavior by specifying a limited number of task overruns or increasing the sample time of periodic tasks during the start-up phase of the real-time application.

See Also

| |

Topics