h2integrate.control.control_strategies.storage.openloop_storage_control_base#

Classes

StorageOpenLoopControlBase(**kwargs)

Base OpenMDAO component for open-loop demand tracking.

StorageOpenLoopControlBaseConfig(*, ...[, ...])

Configuration class for the open-loop storage control models.

class h2integrate.control.control_strategies.storage.openloop_storage_control_base.StorageOpenLoopControlBaseConfig(*, commodity, commodity_rate_units, demand_profile, commodity_amount_units=None)#

Configuration class for the open-loop storage control models.

Attributes:

commodity (str): Name of the commodity being stored (e.g., “hydrogen”). commodity_rate_units (str): Rate units of the commodity (e.g., “kg/h” or “kW”). demand_profile (int | float | list): 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.

commodity_amount_units (str | None, optional): Units of the commodity as an amount

(i.e., kW*h or kg). If not provided, defaults to commodity_rate_units*h.

Parameters:
  • commodity (str)

  • commodity_rate_units (str)

  • demand_profile (int | float | list)

  • commodity_amount_units (str)

commodity: str#
commodity_rate_units: str#
demand_profile: int | float | list#
commodity_amount_units: str#
class h2integrate.control.control_strategies.storage.openloop_storage_control_base.StorageOpenLoopControlBase(**kwargs)#

Base OpenMDAO component for open-loop demand tracking.

This component defines the interfaces required for open-loop demand controllers, including inputs for demand, available commodity, and outputs dispatch command profile.

_time_step_bounds = (3600, 3600)#
initialize()#

Perform any one-time initialization run at instantiation.

setup()#

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute()#

This method must be implemented by subclasses to define the controller.

Raises:

NotImplementedError – Always, unless implemented in a subclass.