h2integrate.storage.simple_storage_auto_sizing#

Classes

StorageAutoSizingModel(**kwargs)

Performance model that calculates the storage charge rate and capacity needed to either:

StorageSizingModelConfig(*[, ...])

Configuration class for the StorageAutoSizingModel.

class h2integrate.storage.simple_storage_auto_sizing.StorageSizingModelConfig(*, commodity_name='hydrogen', commodity_units='kg/h', demand_profile=0.0)#

Configuration class for the StorageAutoSizingModel.

Parameters:
  • commodity_name (str)

  • commodity_units (str)

  • demand_profile (int | float | list)

commodity_name#

Name of the commodity being controlled (e.g., "hydrogen"). Defaults to "hydrogen"

Type:

str, optional

commodity_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_units) or a scalar for a constant demand.

Type:

scalar or list

commodity_name: str#
commodity_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:

  1. supply the comodity at a constant rate based on the commodity production profile or

  2. try to meet the commodity demand with the given commodity production profile.

Inputs:
{commodity_name}_in (float): Input commodity flow timeseries (e.g., hydrogen production).
  • Units: Defined in commodity_units (e.g., "kg/h").

{commodity_name}_demand_profile (float): Demand profile of commodity.
  • Units: Defined in commodity_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_units is "kg/h"

max_charge_rate (float): Maximum rate at which the commodity can be charged
  • Units: Defined in commodity_units (e.g., "kg/h").

initialize()#

Perform any one-time initialization run at instantiation.

setup()#

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)#

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) -- Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) -- Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) -- If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) -- If not None, dict-like object containing discrete output values.