Skip to content

Store - Inputs

Stores represent energy storage systems where energy capacity is the primary constraint. Below are all input attributes that you can set for store components.

Basic

AttributeData TypeUnitDefaultRequiredStorage TypeDescription
typestringn/an/aNostaticPlaceholder for store type. Not yet implemented.
carrierstringn/a(empty)NostaticCarrier type for the store (e.g. heat, gas, hydrogen). Used for categorization and energy balance constraints.
activebooleann/aTrueNostaticWhether this store is active and should be included in network calculations. Set to False to temporarily disable the store without deleting it.

Capacity

AttributeData TypeUnitDefaultRequiredStorage TypeDescription
e_nomfloatMWh0YesstaticThe maximum energy storage capacity of the store in MWh. This sets the upper limit for the amount of energy that can be stored.
e_nom_modfloatMWh0NostaticThe unit size for capacity expansion. When extending the nominal energy capacity (e_nom), it can only be increased in multiples of this module size.
e_nom_extendablebooleann/aFalseNostaticSwitch to allow the nominal energy capacity (e_nom) to be extended in optimization.
e_nom_minfloatMWh0NostaticIf the nominal energy capacity (e_nom) is extendable in optimization, set its minimum value.
e_nom_maxfloatMWhinfNostaticIf the nominal energy capacity (e_nom) is extendable in optimization, set its maximum value (e.g. limited by technical potential).
build_yearintyear0NostaticThe year when the store can be built or commissioned. Essential for multi-year capacity expansion planning models, which determine optimal investment timing and store retirement schedules.
lifetimefloatyearsinfNostaticThe operational lifetime of the store in years. Essential for multi-year capacity expansion planning models, which use this to determine when stores retire (build year + lifetime). Set to "inf" for stores that never retire.

Energy

AttributeData TypeUnitDefaultRequiredStorage TypeDescription
e_min_pufloatper unit0Nostatic or timeseriesThe minimum stored energy per unit of the nominal energy capacity (e_nom). Can be static or time-varying.
e_max_pufloatper unit1Nostatic or timeseriesThe maximum stored energy per unit of the nominal energy capacity (e_nom). Can be static or time-varying.
e_initialfloatMWh0NostaticThe energy stored at the beginning of the optimization period, before the first snapshot. Ignored if cyclic energy (e_cyclic) is True.
e_initial_per_periodbooleann/aFalseNostaticIf True, the initial energy (e_initial) is applied at the beginning of each investment period separately, rather than only at the start of the entire optimization horizon.
e_cyclicbooleann/aFalseNostaticIf True, the initial energy (e_initial) is ignored and the store must end with the same energy as it started (cyclic constraint). This ensures the store returns to its initial state at the end of the optimization period.
e_cyclic_per_periodbooleann/aTrueNostaticIf True, the cyclic energy constraint (e_cyclic) is applied to each investment period separately, rather than only to the entire optimization horizon.
standing_lossfloatper unit0Nostatic or timeseriesThe self-discharge rate per hour, expressed as a fraction of the current stored energy. Represents energy losses that occur even when the store is idle (e.g., thermal losses, leakage). Can be time-varying.

Power Limits

AttributeData TypeUnitDefaultRequiredStorage TypeDescription
p_setfloatMW0Nostatic or timeseriesFixed active power flow that the store must maintain (positive for withdrawing energy from the bus, negative for injecting energy into the bus). Used when the power flow is predetermined rather than optimized.
q_setfloatMVar0Nostatic or timeseriesFixed reactive power flow that the store must maintain. Used when the reactive power flow is predetermined rather than optimized.
signfloatn/a1NostaticPower flow direction convention: 1 for generation/discharging (positive power flows into the network), -1 for consumption/charging (positive power flows out of the network).

Costs

AttributeData TypeUnitDefaultRequiredStorage TypeDescription
marginal_costfloatcurrency/MWh0Nostatic or timeseriesThe variable cost applied to both charging and discharging 1 MWh of energy. Used by the optimizer to determine the economic dispatch order.
marginal_cost_quadraticfloatcurrency/MWh²0Nostatic or timeseriesQuadratic term for non-linear cost curves. When set, the total cost includes a quadratic component that increases with the square of energy flow, modeling increasing marginal costs at higher flow levels.
marginal_cost_storagefloatcurrency/MWh/h0Nostatic or timeseriesThe variable cost of storing 1 MWh of energy for one hour. This represents the opportunity cost or wear-and-tear cost associated with storing energy in the store.
capital_costfloatcurrency/MWh0NostaticThe cost per MWh of adding new storage capacity. Includes investment costs (spread over the planning period) and fixed operations & maintenance costs. Only relevant when e_nom_extendable is True.

© Copyright 2025 Bayesian Energy