Skip to content

Cycler

Cycler

Represents a battery cycler protocol used in the Breathe Simulate process for dynamic analysis. Has methods to generate different battery cycler protocols in the correct format.

__init__

__init__(selected_unit, cell_capacity)

Initialize a Cycler object with the selected unit and cell capacity. The default protocol is set to CC_CHG.

Parameters:

Name Type Description Default
selected_unit str

The unit of current (A or C) used in the cycler.

required
cell_capacity float

The capacity of the battery cell in Ah.

required

cc_chg

cc_chg(
    I_chg,
    V_max,
    soc_target=None,
    anode_potential_threshold_mV=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Create a Constant Current Charge cycler protocol.

Parameters:

Name Type Description Default
I_chg float

The charging current in [A || C]. Required.

required
V_max float

The maximum charging voltage in V. Required.

required
soc_target float

Optional charge SoC target between 0 and 1.

None
anode_potential_threshold_mV float

Optional minimum anode potential threshold for current derating.

None
temperature_threshold_degC float

Optional maximum cell temperature threshold in degrees Celsius.

None
temperature_threshold_K float

Optional maximum cell temperature threshold in Kelvin.

None

Returns:

Type Description
dict

representing the CC-CHG cycling protocol.

cc_dch

cc_dch(
    I_dch,
    V_min,
    soc_target=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Create a Constant Current Discharge cycler protocol.

Parameters:

Name Type Description Default
I_dch float

The discharging current in [A || C]. Required.

required
V_min float

The minimum discharging voltage in V. Required.

required
soc_target float

Optional discharge SoC target between 0 and 1.

None
temperature_threshold_degC float

Optional maximum cell temperature threshold in degrees Celsius.

None
temperature_threshold_K float

Optional maximum cell temperature threshold in Kelvin.

None

Returns:

Type Description
dict

representing the CC-DCH cycling protocol.

cccv

cccv(
    I_chg,
    I_dch,
    I_cut,
    V_max,
    V_min,
    t_restC,
    t_restD,
    charge_target_soc=None,
    discharge_target_soc=None,
    anode_potential_threshold_mV=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Create a Constant Current Constant Voltage (CCCV) cycler protocol.

Parameters:

Name Type Description Default
I_chg float

The charging current in [A || C]. Required.

required
I_dch float

The discharging current in [A || C]. Required.

required
I_cut float

The cut-off current in [A || C]. Required.

required
V_max float

The maximum charging voltage in V. Required.

required
V_min float

The minimum discharging voltage in V. Required.

required
t_restC float

The rest time (in seconds) after charging. Required.

required
t_restD float

The rest time (in seconds) after discharging. Required.

required
charge_target_soc float

Optional charge-phase SoC target.

None
discharge_target_soc float

Optional discharge-phase SoC target.

None
anode_potential_threshold_mV float

Optional minimum anode potential threshold for charge derating.

None
temperature_threshold_degC float

Optional maximum cell temperature threshold in degrees Celsius.

None
temperature_threshold_K float

Optional maximum cell temperature threshold in Kelvin.

None

Returns:

Type Description
dict

representing the CCCV cycling protocol.

custom

custom(
    experiment_text,
    period="1s",
    control_arrays=None,
    anode_potential_threshold_mV=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Create a CUSTOM / EXPERIMENT cycler payload for structured dynamic protocols.

Parameters:

Name Type Description Default
experiment_text Any

Experiment text as a string or structured list.

required
period str

Output/sample period. Defaults to "1s".

'1s'
control_arrays dict

Named drive-cycle arrays for structured current/voltage/power control.

None
anode_potential_threshold_mV float

Optional top-level charge derating threshold in mV.

None
temperature_threshold_degC float

Optional top-level thermal derating threshold in degrees Celsius.

None
temperature_threshold_K float

Optional top-level thermal derating threshold in Kelvin.

None

Returns:

Name Type Description
dict dict

The CUSTOM cycler payload.

dcir

dcir(I_app, t_dur, t_rest_before, t_rest_after, V_min, V_max)

Create a Direct Current Internal Resistance (DCIR) cycler protocol.

Parameters:

Name Type Description Default
I_app float

The applied current in [A || C]. Positive for charge, negative for discharge. Required.

required
t_dur float

The duration of the current pulse in seconds. Required.

required
t_rest_before float

The rest time before the current pulse in seconds. Required.

required
t_rest_after float

The rest time after the current pulse in seconds. Required.

required
V_min float

The minimum voltage in V. Required.

required
V_max float

The maximum voltage in V. Required.

required

Returns:

Type Description
dict

representing the DCIR cycling protocol.

rate_cap

rate_cap(
    I_chg,
    I_dch,
    I_cut,
    V_max,
    V_min,
    t_restC,
    target_soc=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Create a Rate Capacity cycler protocol.

Parameters:

Name Type Description Default
I_chg float

The charging current in [A || C]. Required.

required
I_dch float

The discharging current in [A || C]. Required.

required
I_cut float

The cut-off current in [A || C]. Required.

required
V_max float

The maximum charging voltage in V. Required.

required
V_min float

The minimum discharging voltage in V. Required.

required
t_restC float

The rest time (in seconds) after charging. Required.

required
target_soc float

Optional SoC target for the discharge phase.

None
temperature_threshold_degC float

Optional maximum cell temperature threshold in degrees Celsius.

None
temperature_threshold_K float

Optional maximum cell temperature threshold in Kelvin.

None

Returns:

Type Description
dict

representing the RateCap cycling protocol.

soc_current_profile staticmethod

soc_current_profile(steps)

Wrap a list of SoC current steps into a SoC-current profile.

soc_current_step

soc_current_step(
    mode,
    current,
    until_soc,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Build a SoC-terminated current step for a CUSTOM experiment.

step_current_profile staticmethod

step_current_profile(steps)

Wrap a list of mixed-target current steps into a step-current profile.

step_current_step

step_current_step(
    mode,
    current,
    until_soc=None,
    until_voltage_v=None,
    anode_potential_threshold_mV=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Build a mixed-target current step for a CUSTOM experiment.

At least one of until_soc or until_voltage_v must be provided. When both are present, the step ends when the first threshold is reached.

voltage_current_step

voltage_current_step(
    mode,
    current,
    until_voltage_v,
    anode_potential_threshold_mV=None,
    temperature_threshold_degC=None,
    temperature_threshold_K=None,
)

Build a voltage-terminated current step for a CUSTOM experiment.

Version b7830544