Skip to content

CCCV cycling demo

The CCCV cycling demo shows how to use the Battery Cycler block included with Breathe Model to generate insights, such as:

  • Add internal state insights to known empirical datasets
  • Estimate & optimise cycler test conditions in fresh and aged cell states
  • Evaluate model fidelity by comparing against known data

The demo simulates -the following protocol at 25°C:

  1. Constant Current (CC) discharge: 1C to minimum voltage
  2. Rest: 30 minutes
  3. Constant Current/Constant Voltage (CC/CV) charge: 1C Charge until C/90 to maximum voltage
  4. Rest: 30 minutes
  5. Repeat steps 1 to 5 three times

Image

Accessing the demo

Navigate to the .../Examples/ folder in your Breathe Model download folder, and open the Demo_CCCV.slx file.

This demo is built as a Simulink Model, so interaction is handled via Simulink's graphical programming interface.

Simulating 3 cycles of CCCV charge/rest/discharge

To enable the simulation to correctly run, ensure the installation instructions have been followed. Pressing CTRL+D can quickly identify if the Breathe Model library has been correctly installed, as there will be no errors when initialising the simulation.

Running the simulation

The simulation can be run via the Simulate model button. In the Simulink toolbar, the button is located at SIMULATION > SIMULATE > RUN.

A progress bar will appear along the bottom of the Simulink window while the simulation is ongoing. Once complete, the status in the bottom left corner will indicate Ready.

Visualising results

The outputs of Breathe Model recorded during the simulation can be viewed using the Simulink Data Inspector. This can be accessed via the Simulink toolbar: SIMULATION > REVIEW RESULTS > Data Inspector tool.

Image

This is built in Simulink functionality, the detailed documentation for which can be found in MathWorks' Simulation Data Inspector documentation.

Key simulation components

There are 6 key elements to this demo that can serve as a way to get to know the fundamental elements of battery simulation:

  1. Breathe Model
  2. Battery cycler
  3. Thermal load
  4. Model outputs
  5. Terminating conditions
  6. Solver configuration

Breathe Model

Refer to the Breathe Model block documentation for details on the ports, outputs, and parameters.

In this demo, the Breathe Model electrical ports are connected to the Battery Cycler utility block, the thermal port is connected to the Simscape Convective_Heat_Transfer utility, and the outputs are organised in the signal_scopes block.

Image

The Breathe Model block parameters are configured out of the box to be fully charged (SoC of 1.0), at room temperature (25°C), with no ageing.

These values are set within the Block Parameters context window of the Breathe Model block, and can be accessed by simply double clicking the Breathe Model block.

Default initial conditions:

Parameter Default Value Unit
State of Charge (SoC) 1.0 -
Cell temperature 25 °C

Default ageing state:

Label Description Default Value Unit
LLI Loss of Lithium Inventory 0.00 -
LAMNE Loss of Active Material in the Negative Electrode 0.00 -
LAMPE Loss of Active Material in the Positive Electrode 0.00 -

Signal_scopes: model outputs

The outputs of Breathe Model are organised in a Subsystem block for cleanliness of model canvas labelled signal_scopes. The outputs available can be viewed by double clicking the signal_scopes subsystem.

The outputs available are detailed in the Breathe Model documentation.

Battery cycler

Refer to Battery Cycler documentation for the detailed block documentation.

Image

The battery cycler simulates:

  1. Constant Current (CC) discharge
  2. Rest
  3. Constant Current/Constant Voltage (CC/CV) charge
  4. Rest

The Battery Cycler block has seven parameters which must be defined:

Parameter Description Unit
Charge current (> 0 denotes charging) The CC charge current applied during the charging phase A
Discharge current (< 0 denotes discharging) The CC discharge current applied during discharging phase A
Upper cut-off voltage CC charging current is applied until this value is reached, then CV charging continues at this voltage V
Lower cut-off voltage Discharge current is applied until this value is reached V
Current cut-off during CV hold CV charging will continue until charging current has reduced to this threshold A
Rest period after charge Duration of rest period following the charging phase s
Rest period after discharge Duration of rest period following the discharging phase s

Defining the number of cycles conducted

The number of cycles to perform is not explicitly defined, but rather implicitly controlled through the Simulink Stop Time defined.

This is located under the SIMULATION tab of Simulink, in the SIMULATE section.

The number of cycles that have been simulated is logged, and is output by the Battery Cycler block. In this demo, it is labelled cyc# and is viewable in the Data Inspector.

Defining the cycling conditions

The cycling conditions can be set in Simulink by:

  1. Double clicking on the Battery Cycler, revealing the Block Parameters.
  2. Under the Parameters field, specifying the value of each of the seven parameters (see table above).
  3. Click OK to save the selection and close the Block Parameters.

Image

Thermal load

This section defines the thermal environment with which the Breathe Model block is interacting. The key parameters needed to define this environment are (in order of appearance from top to bottom):

  1. Convective_heat_transfer
  2. Ambient_temperature source

Image

Both of these are part of the standard Simscape library.

Convective_heat_transfer

This dictates the heat transfer from the Breathe Model to the ambient heat source, modelling heat transfer via fluid motion.

Three parameters are needed to define this behaviour:

Parameter Default Value Unit
Convection Type Constant -
Cell surface area Cell dependent m2
Heat transfer coefficient 35 W/(K*m2)

The Surface area of the cell model being used can be found in the meta information section of the corresponding parameter JSON file. For the MoliP45B cell example used here, the cell area value is 0.00537 m2.

This is a standard Simscape block. If further details are needed, refer to the MathWorks' Convective Heat Transfer documentation.

Ambient_temperature

Ambient_Temperature is a Temperature Source block that enables the definition of a constant source of thermal energy. It is an ideal source which remains constant regardless of the heat added/removed from the Breathe Model block.

The only parameter for this block is the constant temperature.

Parameter Default Value Unit
Temperature 25 °C

This is a standard Simscape block. If further details are needed, refer to the MathWorks' Temperature Source documentation.

Terminating conditions

Located in the Simulink toolbar under SIMULATION > SIMULATE > Stop Time

The simulation will run until the duration of the simulation reaches this value. For this simulation, this has been set to a value which will cause 3 full cycles to be completed.

Parameter Default Value Unit
Stop time 36000 s

Solver configuration

The recommended solvers to use with Breathe Model are variable-time and implicit solvers, e.g., ode15s, or daesol solver. Variable-time and implicit solvers offer stability and rapid simulations of the underpinning physics-based model equations. For fixed step solving, an implicit scheme is required such as backward Euler (ode1be) or ode14x with a recommended step size of 1 s.