generation¶
This module contains constraints related to technology generation. The power output of storage and each dispatchable (exclude hydropower) technology (\({\rm{power}}_{h,m,y,z,e}\)) is limited by the existing installed capacity (\({\rm{cap}}_{y,z,e}^{\rm{existingtech}}\)) and minimum technical output, as follows:
Since hydropower processes are explicitly modelled at the plant level in PREP-SHOT, total hydropower output in zone \(z\) (\({\rm{power}}_{h,m,y,z,e={\rm{hydro}}}\)) is the sum of the plant-level hydropower output (\({\rm{power}}_{\it{s,h,m,y}}^{\rm{hydro}}\)):
Here, calculation of \({\rm{power}}^{\rm{hydro}}_{s,h,m,y}\) is obtained by external net water head simulation procedure. In addition, \({\rm{power}}^{\rm{hydro}}_{s,h,m,y}\) is bounded between the guaranteed minimum output (\({\underline{{\rm{POWER}}}}_s^{\rm{hydro}}\)) and the nameplate capacity (\({{\rm{CAP}}}_s^{\rm{hydro}}\)), as follows:
Regardless of the technology type, actual power generation (\({\rm{gen}}_{h,m,y,z,e}\)) in a corresponding period \(\Delta h\) can be calculated based on the power output (\({\rm{power}}_{h,m,y,z,e}\)) and the generation efficiency (\(\eta_{y,e}^{\rm{out}}\)):
Note that \(\eta_{y,e}^{\rm{out}}=1\) when \(e\in {\mathcal{E}}\backslash {\mathcal{STOR}}\).
All technologies apart from dispatchable technology are limited by the so-called ramping capability, meaning that the variation of their power output in two successive periods is limited. We introduce two non-negative auxiliary variables: increment (\({ m{power}}_{h,m,y,z,e}^{ m{up}}\)) and decrement (\({ m{power}}_{h,m,y,z,e}^{ m{down}}\)) to describe changes in power output in two successive periods (from \(h\)-1 to \(h\)) as follows:
When the power plant ramps up from \(h\)-1 to \(h\), the minimum of \({\rm{power}}_{h,m,y,z,e}^{\rm{up}}\) is obtained when \({\rm{power}}_{h,m,y,z,e}^{\rm{down}}\) becomes zero. Similarly, when the power plant ramps down from \(h\)-1 to \(h\), the minimum of \({\rm{power}}_{h,m,y,z,e}^{\rm{down}}\) is obtained when \({\rm{power}}_{h,m,y,z,e}^{\rm{up}}\) becomes zero. Therefore, we can constrain the maximum ramping up and down respectively, as follows:
where \({{R}}_e^{\rm{up}}$/${{R}}_e^{\rm{down}}\) is the allowed maximum/minimum ramping up/down capacity of technology \(e\) in two successive periods, expressed as a percentage of the existing capacity of storage technology \(e\).
- class prepshot._model.generation.AddGenerationConstraints(model)[source]¶
Bases:
objectAdd constraints for generation in the model.
- Parameters
model (object) --
- __init__(model)[source]¶
Initialize the class and add constraints.
- Parameters
model (object) -- Model object depending on the solver.
- Return type
None
- gen_low_bound_rule(h, m, y, z, te)[source]¶
gen[h,m,y,z,te] >= cap_existing × p_min_pu × dt.
Defaults to p_min_pu = 0 (no minimum) when the tech has no entry in tech_min_gen_profile.csv. Set p_min_pu > 0 for must-run plants with a minimum stable load.
- Parameters
h (int) --
m (int) --
y (int) --
z (str) --
te (str) --
- Return type
ConstraintIndex
- gen_up_bound_rule(h, m, y, z, te)[source]¶
gen[h,m,y,z,te] <= cap_existing × p_max_pu × dt.
Defaults to p_max_pu = 1 (full capacity) when the tech has no entry in tech_max_gen_profile.csv. Variable renewables specify a time-varying p_max_pu < 1 to cap by capacity factor; must-run techs set p_max_pu = p_min_pu to lock generation to a profile.
- Parameters
h (int) --
m (int) --
y (int) --
z (str) --
te (str) --
- Return type
ConstraintIndex