Order of Operations#
Initialization#
Initialize HerculesModel with YAML input file
Load and validate configuration into
h_dictInitialize hybrid plant components based on
h_dictconfigurationAdd plant component metadata to
h_dictLoad external data files if specified
Initialize controller instance with the prepared
h_dictAssign controller to HerculesModel using
assign_controller()method
Main Simulation Loop#
For each time step:
Update external signals from interpolated data (if external data file provided)
Execute controller step - compute control actions based on current state
Execute hybrid plant step - update all component states and compute outputs
Compute plant-level outputs - aggregate individual component results
Log current state to output file
Advance simulation time and repeat until end time reached
Component Execution Order#
Within each hybrid plant step:
All components execute their
step()method in parallelEach component updates its internal state and outputs
Plant-level power is computed as sum of all component powers
Locally generated power is computed as sum of generator component powers (excluding storage/electrolyzer)