h2integrate.storage.storage_performance_model#
Classes
|
OpenMDAO component for a storage component. |
|
Configuration class for storage performance models. |
- class h2integrate.storage.storage_performance_model.StoragePerformanceModelConfig(*, min_soc_fraction, max_soc_fraction, demand_profile, commodity, commodity_rate_units, max_capacity, max_charge_rate, init_soc_fraction, commodity_amount_units=None, max_discharge_rate=None, charge_equals_discharge=True, charge_efficiency=None, discharge_efficiency=None, round_trip_efficiency=None)#
Configuration class for storage performance models.
This class defines configuration parameters for simulating storage performance with the Pyomo controllers. It includes specifications such as capacity, charge rate, state-of-charge limits, and charge/discharge efficiencies.
- Parameters:
min_soc_fraction (float)
max_soc_fraction (float)
demand_profile (int | float | list)
commodity (str)
commodity_rate_units (str)
max_capacity (float)
max_charge_rate (float)
init_soc_fraction (float)
commodity_amount_units (str)
max_discharge_rate (float | None)
charge_equals_discharge (bool)
charge_efficiency (float | None)
discharge_efficiency (float | None)
round_trip_efficiency (float | None)
- commodity#
name of commodity
- Type:
str
- commodity_rate_units#
Units of the commodity (e.g., “kg/h”).
- Type:
str
- demand_profile#
Demand values for each timestep, in the same units as commodity_rate_units. May be a scalar for constant demand or a list/array for time-varying demand.
- Type:
int | float | list
- max_capacity#
Maximum storage energy capacity in commodity_amount_units. Must be greater than zero.
- Type:
float
- max_charge_rate#
Rated commodity capacity of the storage in commodity_rate_units. Must be greater than zero.
- Type:
float
- min_soc_fraction#
Minimum allowable state of charge as a fraction (0 to 1).
- Type:
float
- max_soc_fraction#
Maximum allowable state of charge as a fraction (0 to 1).
- Type:
float
- init_soc_fraction#
Initial state of charge as a fraction (0 to 1).
- Type:
float
- commodity_amount_units#
Units of the commodity as an amount (i.e., kW*h or kg). If not provided, defaults to commodity_rate_units*h.
- Type:
str | None, optional
- max_discharge_rate#
Maximum rate at which the commodity can be discharged (in units per time step, e.g., “kg/time step”). This rate does not include the discharge_efficiency. Only required if charge_equals_discharge is False.
- Type:
float | None, optional
- charge_equals_discharge#
If True, set the max_discharge_rate equal to the max_charge_rate. If False, specify the max_discharge_rate as a value different than the max_charge_rate. Defaults to True.
- Type:
bool, optional
- charge_efficiency#
Efficiency of charging the storage, represented as a decimal between 0 and 1 (e.g., 0.9 for 90% efficiency). Optional if round_trip_efficiency is provided.
- Type:
float | None, optional
- discharge_efficiency#
Efficiency of discharging the storage, represented as a decimal between 0 and 1 (e.g., 0.9 for 90% efficiency). Optional if round_trip_efficiency is provided.
- Type:
float | None, optional
- round_trip_efficiency#
Combined efficiency of charging and discharging the storage, represented as a decimal between 0 and 1 (e.g., 0.81 for 81% efficiency). Optional if charge_efficiency and discharge_efficiency are provided.
- Type:
float | None, optional
- commodity: str#
- commodity_rate_units: str#
- max_capacity: float#
- max_charge_rate: float#
- init_soc_fraction: float#
- commodity_amount_units: str#
- max_discharge_rate: float | None#
- charge_equals_discharge: bool#
- charge_efficiency: float | None#
- discharge_efficiency: float | None#
- round_trip_efficiency: float | None#
- class h2integrate.storage.storage_performance_model.StoragePerformanceModel(**kwargs)#
OpenMDAO component for a storage component.
- _time_step_bounds = (3600, 3600)#
- setup()#
Set up the storage performance model in OpenMDAO.
Initializes the configuration and defines inputs/outputs for OpenMDAO. If dispatch connections are specified, it also sets up a discrete input for Pyomo solver integration.
- compute(inputs, outputs, discrete_inputs=[], discrete_outputs=[])#
Run the storage performance model.