H_Dict Structure#
The h_dict
(Hercules Dictionary) is the central configuration structure used throughout the Hercules simulation framework. It contains all simulation parameters, component configurations, and runtime state information. It is a nested dictionary with defined components.
Structure Overview#
The h_dict
is a Python dictionary that contains all the configurations for each plant component. The structure is designed to be flexible, allowing users to include only the components they need for their specific simulation scenario.
Complete H_Dict Structure#
Key |
Type |
Description |
Default |
---|---|---|---|
Simulation Parameters |
|||
|
float |
Time step size in seconds |
- |
|
float |
Simulation start time in seconds |
- |
|
float |
Simulation end time in seconds |
- |
|
int |
Current simulation step |
0 |
|
float |
Current simulation time |
starttime |
Plant Configuration |
|||
|
dict |
Plant-level configuration |
- |
|
float |
Maximum power limit in kW |
- |
Optional Global Parameters |
|||
|
bool |
Enable verbose logging |
False |
|
str |
Simulation name |
- |
|
str |
Simulation description |
- |
|
str |
Output CSV file path |
“outputs/hercules_output.csv” |
|
int |
Logging interval in steps |
- |
|
int |
Log every N simulation steps (default: 1) |
1 |
|
str |
External data file path |
- |
|
dict |
Controller configuration |
- |
Hybrid Plant Components |
Wind Farm (wind_farm
)#
| component_type
| str | Must be “Wind_MesoToPower” |
| floris_input_file
| str | FLORIS input file path |
| wind_input_filename
| str | Wind data input file |
| turbine_file_name
| str | Turbine configuration file |
| log_file_name
| str | Wind farm log file path |
| logging_option
| str | Logging level: “base”, “turb_subset”, or “all” |
Solar Farm (solar_farm
)#
| component_type
| str | “SolarPySAMPVWatts” |
| For SolarPySAMPVWatts: |
| pysam_model
| str | “pvwatts” |
| solar_input_filename
| str | Solar data file path |
| system_capacity
| float | DC system capacity in kW as defined by PVWatts - under Standard Test Conditions|
| tilt
| float | Array tilt angle in degrees (required) |
| lat
| float | Latitude |
| lon
| float | Longitude |
| elev
| float | Elevation in meters |
| initial_conditions
| dict | Initial power, DNI, POA |
Battery (battery
)#
Key |
Type |
Description |
Default |
---|---|---|---|
|
str |
“BatterySimple” or “BatteryLithiumIon” |
Required |
|
float |
Total capacity in kWh |
Required |
|
float |
Maximum charge rate in kW |
Required |
|
float |
Maximum discharge rate in kW |
Required |
|
float |
Maximum state of charge (0-1) |
Required |
|
float |
Minimum state of charge (0-1) |
Required |
|
dict |
Contains initial SOC |
Required |
|
bool |
Allow grid power consumption |
False |
|
float |
Roundtrip efficiency (BatterySimple only) |
1.0 |
|
float |
Self-discharge time constant in seconds (BatterySimple only) |
inf |
|
bool |
Enable usage tracking (BatterySimple only) |
False |
|
int |
Usage calculation interval in seconds (BatterySimple only) |
100 |
|
float |
Battery lifetime in years (BatterySimple only) |
- |
|
int |
Number of cycles until replacement (BatterySimple only) |
- |
Electrolyzer (electrolyzer
)#
Key |
Type |
Description |
---|---|---|
|
bool |
Initialize electrolyzer |
|
float |
Initial power in kW |
|
dict |
Supervisor configuration |
|
dict |
Stack configuration |
|
dict |
Controller configuration |
|
dict |
Cost parameters |
|
dict |
Cell parameters |
|
dict |
Degradation parameters |