h2integrate.storage.simple_storage_auto_sizing#
Classes
|
Performance model that calculates the storage charge rate and capacity needed to either: |
|
Configuration class for the StorageAutoSizingModel. |
- class h2integrate.storage.simple_storage_auto_sizing.StorageSizingModelConfig(*, commodity='hydrogen', commodity_rate_units='kg/h', demand_profile=0.0)#
Configuration class for the StorageAutoSizingModel.
- Parameters:
commodity (str)
commodity_rate_units (str)
demand_profile (int | float | list)
- commodity#
Name of the commodity being controlled (e.g., “hydrogen”). Defaults to “hydrogen”
- Type:
str, optional
- commodity_rate_units#
Units of the commodity (e.g., “kg/h”). Defaults to “kg/h”.
- Type:
str, optional
- demand_profile#
The demand values for each time step (in the same units as commodity_rate_units) or a scalar for a constant demand.
- Type:
scalar or list
- commodity: str#
- commodity_rate_units: str#
- demand_profile: int | float | list#
- class h2integrate.storage.simple_storage_auto_sizing.StorageAutoSizingModel(**kwargs)#
Performance model that calculates the storage charge rate and capacity needed to either:
supply the commodity at a constant rate based on the commodity production profile or
try to meet the commodity demand with the given commodity production profile.
Then simulates performance of a basic storage component using the charge rate and capacity calculated.
Note: this storage performance model is intended to be used with the PassThroughOpenLoopController controller and is not compatible with the DemandOpenLoopStorageController controller.
- Inputs:
- {commodity}_in (float): Input commodity flow timeseries (e.g., hydrogen production)
used to estimate the demand if commodity_demand_profile is zero. - Units: Defined in commodity_rate_units (e.g., “kg/h”).
- {commodity}_set_point (float): Input commodity flow timeseries (e.g., hydrogen production)
used as the available input commodity to meet the demand.
- {commodity}_demand_profile (float): Demand profile of commodity.
Units: Defined in commodity_rate_units (e.g., “kg/h”).
- Outputs:
- max_capacity (float): Maximum storage capacity of the commodity.
Units: in non-rate units, e.g., “kg” if commodity_rate_units is “kg/h”
- max_charge_rate (float): Maximum rate at which the commodity can be charged
Units: Defined in commodity_rate_units (e.g., “kg/h”).
Assumed to also be the discharge rate.
- {commodity}_out (np.ndarray): the commodity used to meet demand from the available
input commodity and storage component. Defined in commodity_rate_units.
- total_{commodity}_produced (float): sum of commodity discharged from storage over
the simulation. Defined in commodity_rate_units*h
- rated_{commodity}_production (float): maximum commodity that could be discharged
in a timestep. Defined in commodity_rate_units
- annual_{commodity}_produced (np.ndarray): total commodity discharged per year.
Defined in commodity_rate_units*h/year
- capacity_factor (np.ndarray): ratio of commodity discharged to the maximum
commodity that could be discharged over the simulation. Defined as a ratio (units of unitless)
- setup()#
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- compute(inputs, outputs)#
Computation for the OM component.
For a template class this is not implement and raises an error.