h2integrate.control.control_strategies.storage.simple_openloop_controller#

Classes

SimpleStorageOpenLoopController(**kwargs)

A simple open-loop controller for storage systems.

SimpleStorageOpenLoopControllerConfig(*, ...)

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.