Simulator#

The Simulator facilitates generating synthetic data for a battery system.

Create a Simulator by supplying the CellModel which defines the system physics, and the initial state of health, transient state, and inputs.

Defining and Evolving a System#

simulator = Simulator(
    model=ecm,
    asoh=asoh,
    transient_state=transient,
    initial_input=inputs,
    keep_history=True
)

The Simulator represents a single instance of the battery system. Evolve the state by either supplying inputs individually

for time in np.arange(10.)[1:]:
    simulator.step(ECMInput(time=time, current=1.))

or via a list of inputs

inputs = [ECMInput(time=time, current=1.) for time in np.arange(10.)[1:]]
simulator.evolve(measurements)

Accessing Results#

The easiest route for retrieving results of the simulation are to let the Simulator track results for you by setting keep_history to True when creating the class.

Access the history from

  • input_history for the history of the inputs,

  • transient_history for the history of the hidden states of the system,

  • or measurement_history for the history of the measurable outputs.

The to_dataframe option returns all three types of history as a single Pandas dataframe.

Track the history yourself by using the measurable outputs and states returned by the step and evolve functions. The current state of the system is also always available as the transient_state and the last output as the measurement attributes.