zen_garden.model.technology.storage_technology¶
Class defining the parameters, variables and constraints that hold for all storage technologies. The class takes the abstract optimization model as an input, and returns the parameters, variables and constraints that hold for the storage technologies.
Classes
|
Class defining storage technologies. |
|
Rules for the StorageTechnology class. |
- class zen_garden.model.technology.storage_technology.StorageTechnology(tech, optimization_setup)¶
Class defining storage technologies.
- __init__(tech, optimization_setup)¶
Init storage technology object.
- Parameters:
tech – name of added technology
optimization_setup – The OptimizationSetup the element is part of
- calculate_capex_of_single_capacity(capacity, index, storage_energy=False)¶
This method calculates the annualized capex of a single existing capacity.
- Parameters:
capacity – capacity of storage technology
index – index of capacity
storage_energy – boolean if energy capacity or power capacity
- Returns:
capex of single capacity
- classmethod construct_constraints(optimization_setup)¶
Constructs the Constraints of the class <StorageTechnology>.
- Parameters:
optimization_setup – The OptimizationSetup the element is part of
- classmethod construct_params(optimization_setup)¶
Constructs the pe.Params of the class <StorageTechnology>.
- Parameters:
optimization_setup – The OptimizationSetup the element is part of
- classmethod construct_sets(optimization_setup)¶
Constructs the pe.Sets of the class <StorageTechnology>.
- Parameters:
optimization_setup – The OptimizationSetup the element is part of
- classmethod construct_vars(optimization_setup)¶
Constructs the pe.Vars of the class <StorageTechnology>.
- Parameters:
optimization_setup – The OptimizationSetup the element is part of
- convert_to_fraction_of_capex()¶
Converts the capex and fixed opex to fraction of capex.
this method converts the total capex to fraction of capex, depending on how many hours per year are calculated.
- store_carriers()¶
Retrieves and stores information on reference, input and output carriers.
- store_input_data()¶
Retrieves and stores input data for element as attributes.
Each Child class overwrites method to store different attributes.
- class zen_garden.model.technology.storage_technology.StorageTechnologyRules(optimization_setup)¶
Rules for the StorageTechnology class.
- __init__(optimization_setup)¶
Inits the rules for a given EnergySystem.
- Parameters:
optimization_setup – The OptimizationSetup the element is part of
- constraint_capacity_energy_to_power_ratio()¶
Limit capacity power to energy ratio.
\[\rho_k^{min} S^{e}_{k,n,y} \le S_{k,n,y}\]\[S_{k,n,y} \le \rho_k^{max} S^{e}_{k,n,y}\]\(S^{\mathrm{power}}_{k,n,y}\): installed capacity in terms of power of storage \(k\) at node \(n\) in year \(y\)
\(S^{e}_{k,n,y}\): installed capacity in terms of energy of storage \(k\) at node \(n\) in year \(y\)
\(\rho_k^{min}\): minimum power-to-energy ratio of storage \(k\)
\(\rho_k^{max}\): maximum power-to-energy ratio of storage \(k\)
- constraint_capacity_factor_storage()¶
Limits load of storage technologies by capacity and maximum load factor.
\[\underline{H}_{k,n,t,y}+\overline{H}_{k,n,t,y}\leq m^{\mathrm{max}}_{k,n,t,y}S_{k,n,y}\]\(\underline{H}_{k,n,t,y}\): carrier flow into storage technology \(k\) on node \(n\) and time \(t\) in year \(y\)
\(\overline{H}_{k,n,t,y}\): carrier flow out of storage technology \(k`on node :math:`n\) and time \(t\) in year \(y\)
\(m^{\mathrm{max}}_{k,n,t,y}\): maximum load factor for storage technology \(k\) on node \(n\) and time \(t\) in year \(y\)
\(S_{k,n,y}\): storage capacity of storage technology \(k\) on node \(n\) in year \(y\)
- constraint_charge_discharge_binary()¶
Avoid simultaneous charge and discharge of storage technologies.
Ensure that the storage technology cannot charge and discharge simultaneously within the same operational time step. This is only active if the storage_charge_discharge_binary flag in the system.json file is set to True.
\[\underline{H}_{k,n,t,y} \le B^\mathrm{charge}_{k,n,t,y} s^\mathrm{max, power}_{k,n,y}\]\[\overline{H}_{k,n,t,y} \le (1-B^\mathrm{charge}_{k,n,t,y}) s^\mathrm{max, power}_{k,n,y}\]\(\underline{H}_{k,n,t,y}\): carrier flow into storage technology \(k\) on node \(n\) and time \(t\) in year \(y\)
\(\overline{H}_{k,n,t,y}\): carrier flow out of storage technology \(k`on node :math:`n\) and time \(t\) in year \(y\)
\(s^\mathrm{max, power}_{k,n,y}\): power capacity limit of storage technology \(k\) at location \(n\) in year \(y\)
\(B^\mathrm{charge}_{k,n,t,y}\): binary variable indicating whether the storage technology \(k\) is in charging mode (1) or discharging mode (0) at location \(n\) at time step \(t\) in year \(y\)
- constraint_couple_storage_level()¶
Couple subsequent storage levels (time coupling constraints).
\[L_{k,n,t^k,y} = L_{k,n,t^k-1,y} (1-\phi_k)^{\tau_{t^k}^k} + (\underline{\eta}_k \underline{H}_{k,n,\sigma(t^k),y} - \frac{\overline{H}_{k,n,\sigma(t^k),y}}{\overline{\eta}_k}) \sum^{\tau_{t^k}^k-1}_{\tilde{t}^k=0} (1-\phi_k)^{\tilde{t}^k}\]\(L_{k,n,t^k,y}\): storage level of storage technology \(k\) on node \(n\) and time \(t^k\) in year \(y\)
\(\phi_k\): self discharge rate of storage technology \(k\)
\(\tau_{t^k}^k\): duration of storage level time step of storage technology \(k\)
\(\underline{\eta}_k\): efficiency during charging of storage technology \(k\)
\(\overline{\eta}_k\): efficiency during discharging of storage technology \(k\)
\(\underline{H}_{k,n,\sigma(t^k),y}\): charge flow into storage technology \(k\) on node \(n\) and time \(\sigma(t^k)\) in year \(y\)
\(\overline{H}_{k,n,\sigma(t^k),y}\): discharge flow out of storage technology \(k\) on node \(n\) and time \(\sigma(t^k)\) in year \(y\)
- constraint_flow_storage_spillage()¶
Ensure that flow_energy_spillage is not greater than the flow_storage_inflow.
\[\]Todo:
- constraint_opex_emissions_technology_storage()¶
Calculate opex of each technology.
\[ \begin{align}\begin{aligned}O_{h,p,t}^\mathrm{t} = \beta_{h,p,t} (\underline{H}_{k,n,t} + \overline{H}_{k,n,t})\\\theta_{h,p,t}^{\mathrm{tech}} = \epsilon_h (\underline{H}_{k,n,t} + \overline{H}_{k,n,t})\end{aligned}\end{align} \]\(O_{h,p,t}^\mathrm{t}\): variable operational expenditures for storage technology \(h\) on node \(n\) and time \(t\)
\(\beta_{h,p,t}\): specific variable operational expenditures for storage technology \(h\) on node \(n\) and time \(t\)
\(\underline{H}_{k,n,t}\): carrier flow into storage technology \(k\) on node \(n\) and time \(t\)
\(\overline{H}_{k,n,t}\): carrier flow out of storage technology \(k\) on node \(n\) and time \(t\)
\(\theta_{h,p,t}^{\mathrm{tech}}\): carbon emissions for storage technology \(h\) on node \(n\) and time \(t\)
\(\epsilon_h\): carbon intensity for operating storage technology \(h\) on node \(n\)
- constraint_storage_level_max()¶
Limit maximum storage level to capacity.
\[L_{k,n,t^\mathrm{k}} \le S^\mathrm{e}_{k,n,y}\]\(L_{k,n,t^\mathrm{k}}\): storage level of storage technology \(k\) on node \(n\) and time \(t\)
\(S^\mathrm{e}_{k,n,y}\): energy capacity of storage technology \(k\) on node \(n\) in year \(y\)
- constraint_storage_technology_capex()¶
Definition of the capital expenditures for the storage technology.
\[CAPEX_{y,n,i} = \Delta S_{h,p,y} \alpha_{k,n,y}\]\(\Delta S_{h,p,y}\): capacity addition of storage technology \(h\) on node \(n\) in year \(y\)
\(\alpha_{k,n,y}\): specific capex of storage technology \(k\) on node \(n\) in year \(y\)