sox.plant.protocol¶

Module Contents¶

Classes¶

Experiment

Utility for PyBaMM Experiment object

Functions¶

append_steps(→ list)

Appends the steps of multiple experiments into a single list of steps

append_experiments(→ Experiment)

Appends multiple experiments into a single experiment

cc_charge_cv_rest(→ Experiment)

Constant current charge, constant voltage hold, rest cycling protocol

cc_discharge_rest(→ Experiment)

Constant current discharge, rest cycling protocol

charge_discharge_cycling(→ Experiment)

Charge and discharge cycling protocol

single_pulse(→ Experiment)

Single pulse then rest protocol

single_pulse_train(→ Experiment)

Single pulse train protocol

multi_pulse_train(→ Experiment)

Multi pulse train protocol

dst_schedule(peak_power[, number_of_cycles, ...])

Dynamically stress test schedule from USABC manual

class sox.plant.protocol.Experiment(*args, **kwargs)¶

Bases: pybamm.Experiment

Utility for PyBaMM Experiment object

sox.plant.protocol.append_steps(*experiments: Experiment) list¶

Appends the steps of multiple experiments into a single list of steps

sox.plant.protocol.append_experiments(*experiments: Experiment) Experiment¶

Appends multiple experiments into a single experiment

sox.plant.protocol.cc_charge_cv_rest(c_rate: float = 1, max_voltage: float = 4.1, cv_hold_c_rate_limit: float = 0.05, rest_time_h: float = 0.5, sampling_time_s: float = 1) Experiment¶

Constant current charge, constant voltage hold, rest cycling protocol

Parameters:
  • c_rate (float) – Charge rate (C).

  • max_voltage (float) – Maximum voltage (V).

  • cv_hold_c_rate_limit (float) – C-rate limit for CV hold (C).

  • rest_time_h (float) – Rest time (h).

  • sampling_time_s (float) – Sampling time (s).

Returns:

PyBaMM experiment object.

Return type:

Experiment

sox.plant.protocol.cc_discharge_rest(c_rate: float = 1, min_voltage: float = 3.3, rest_time_h: float = 0.5, sampling_time_s: float = 1) Experiment¶

Constant current discharge, rest cycling protocol

Parameters:
  • c_rate (float) – Discharge rate (C).

  • min_voltage (float) – Minimum voltage (V).

  • rest_time_h (float) – Rest time (h).

  • sampling_time_s (float) – Sampling time (s).

sox.plant.protocol.charge_discharge_cycling(chg_c_rate: float = 1, max_chg_voltage: float = 4.1, chg_cv_hold_c_rate_limit: float = 0.05, chg_rest_time_h: float = 0.5, dchg_c_rate: float = 1, min_dchg_voltage: float = 3.3, dchg_rest_time_h: float = 0.5, direction: Literal[charge_discharge_cycling.charge, charge_discharge_cycling.discharge] = 'discharge', number_of_cycles: int = 1, sampling_time_s: float = 1) Experiment¶

Charge and discharge cycling protocol

Parameters:
  • chg_c_rate (float) – Charge rate (C).

  • max_chg_voltage (float) – Maximum voltage (V).

  • chg_cv_hold_c_rate_limit (float) – C-rate limit for CV hold (C).

  • chg_rest_time_h (float) – Rest time (h).

  • dchg_c_rate (float) – Discharge rate (C).

  • min_dchg_voltage (float) – Minimum voltage (V).

  • dchg_rest_time_h (float) – Rest time (h).

  • direction (str) – Direction of cycling, either ‘charge’ or ‘discharge’. Defaults to ‘discharge’.

  • number_of_cycles (int) – Number of cycles.

  • sampling_time_s (float) – Sampling time (s).

sox.plant.protocol.single_pulse(direction: Literal[charge, discharge] = 'discharge', c_rate: float = 1, pulse_time_sec: float = 60, pulse_rest_time_sec: float = 600, sampling_time_s: float = 1) Experiment¶

Single pulse then rest protocol

Parameters:
  • direction (str) – Direction of pulse, either ‘charge’ or ‘discharge’. Defaults to ‘discharge’.

  • c_rate (float) – C-rate of pulse (C).

  • pulse_time_sec (float) – Pulse time (s).

  • pulse_rest_time_sec (float) – Rest time (s).

  • sampling_time_s (float) – Sampling time (s).

sox.plant.protocol.single_pulse_train(direction: Literal[charge, discharge] = 'discharge', c_rate: float = 1, pulse_time_sec: float = 60, pulse_rest_time_sec: float = 600, number_of_pulses: int = 20, sampling_time_s: float = 1) Experiment¶

Single pulse train protocol

Parameters:
  • direction (str) – Direction of pulse, either ‘charge’ or ‘discharge’. Defaults to ‘discharge’.

  • c_rate (float) – C-rate of pulse (C).

  • pulse_time_sec (float) – Pulse time (s).

  • pulse_rest_time_sec (float) – Rest time (s).

  • number_of_pulses (int) – Number of pulses.

  • sampling_time_s (float) – Sampling time (s).

sox.plant.protocol.multi_pulse_train(direction=None, c_rate=None, pulse_time_sec=None, pulse_rest_time_sec=None, number_of_pulses: int = 1, sampling_time_s: float = 1) Experiment¶

Multi pulse train protocol

Parameters:
  • direction (list) – List of directions of pulses, either ‘charge’ or ‘discharge’. Defaults to ‘discharge’.

  • c_rate (list) – List of C-rates of pulses (C).

  • pulse_time_sec (list) – List of pulse times (s).

  • pulse_rest_time_sec (list) – List of rest times (s).

  • number_of_pulses (int) – Number of pulses.

  • sampling_time_s (float) – Sampling time (s).

sox.plant.protocol.dst_schedule(peak_power: float, number_of_cycles: int = 1, sampling_time_s: float = 1)¶

Dynamically stress test schedule from USABC manual

Parameters:
  • peak_power (float) – Peak power (W).

  • number_of_cycles (int) – Number of cycles.

  • sampling_time_s (float) – Sampling time (s).

References

Electric Vehicle Battery Test Procedures Manual Revision 2.0 https://avt.inl.gov/sites/default/files/pdf/battery/usabc_manual_rev2.pdf