h2integrate.control.control_strategies.storage.simple_openloop_controller#
Classes
|
A simple open-loop controller for storage systems. |
Configuration class for the SimpleStorageOpenLoopController |
- class h2integrate.control.control_strategies.storage.simple_openloop_controller.SimpleStorageOpenLoopControllerConfig(*, commodity, commodity_rate_units, commodity_amount_units=None, max_capacity=None, max_soc_fraction=None, min_soc_fraction=None, init_soc_fraction=None, max_charge_rate=None, charge_equals_discharge=True, max_discharge_rate=None, charge_efficiency=None, discharge_efficiency=None, round_trip_efficiency=None, set_demand_as_avg_commodity_in, demand_profile=0.0)#
Configuration class for the SimpleStorageOpenLoopController
- Variables:
commodity (str) -- name of commodity
commodity_rate_units (str) -- Units of the commodity (e.g., kW or kg/h).
set_demand_as_avg_commodity_in (bool) -- If True, assume the demand is equal to the mean input commodity. If False, uses the demand input.
demand_profile (int | float | list, optional) -- 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. Only used if set_demand_as_avg_commodity_in is False. Defaults to 0.
- Parameters:
commodity (str)
commodity_rate_units (str)
commodity_amount_units (str)
max_capacity (float | None)
max_soc_fraction (float | None)
min_soc_fraction (float | None)
init_soc_fraction (float | None)
max_charge_rate (float | None)
charge_equals_discharge (bool)
max_discharge_rate (float | None)
charge_efficiency (float | None)
discharge_efficiency (float | None)
round_trip_efficiency (float | None)
set_demand_as_avg_commodity_in (bool)
demand_profile (int | float | list)
- set_demand_as_avg_commodity_in: bool#
- demand_profile: int | float | list#
- class h2integrate.control.control_strategies.storage.simple_openloop_controller.SimpleStorageOpenLoopController(**kwargs)#
A simple open-loop controller for storage systems.
This controller directly sets a storage control set point as the difference between the demand and the available input commodity. It is useful for testing, as a placeholder for more complex storage controllers, and for maintaining consistency between controlled and uncontrolled frameworks.
- _time_step_bounds = (3600, 3600)#
- setup()#
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- compute(inputs, outputs)#
Simple controller that outputs commodity_command_value, the dispatch command values for each timestep in commodity_rate_units. Negative values command charging, positive values command discharging.