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__
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'
|
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
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
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
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.