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:

\[{\underline{{\rm{POWER}}}}_{h,m,y,z,e}\times {\rm{cap}}_{y,z,e}^{\rm{existingtech}}\le{\rm{power}}_{h,m,y,z,e}\le {\rm{cap}}_{y,z,e}^{\rm{existingtech}}\quad\forall h,m,y,z,e\in {\mathcal{STOR}}\ \&\ {\mathcal{DISP}}\]

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}}\)):

\[{\rm{power}}_{h,m,y,z,e={\rm{hydro}}}=\sum_{s\in{\mathcal{SZ}}_z} {\rm{power}}_{s,h,m,y}^{\rm{hydro}}\quad\forall h,m,y,z\]

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}}\)):

\[{\rm{gen}}_{h,m,y,z,e} = {\rm{power}}_{h,m,y,z,e}\times\Delta h \times\eta_{y,e}^{\rm{out}}\quad \forall h,m,y,z,e\in {\mathcal{E}}\]

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:

\[{\rm{power}}_{h,m,y,z,e}^{\rm{up}}-{\rm{power}}_{h,m,y,z,e}^{\rm{down}} ={\rm{power}}_{h,m,y,z,e}-{\rm{power}}_{h-1,m,y,z,e} \quad\forall h,m,y,z,e\ \in {\mathcal{E}}\backslash {\mathcal{NDISP}}\]

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:

\[{\rm{power}}_{h,m,y,z,e}^{\rm{up}}\le{{R}}_e^{\rm{up}}\times \Delta h\times {\rm{cap}}_{y,z,e}^{\rm{existingtech}}\quad \forall h,m,y,z,e\in {\mathcal{E}}\backslash {\mathcal{NDISP}}\]
\[{\rm{power}}_{h,m,y,z,e}^{\rm{down}}\le{{R}}_e^{\rm{down}}\times \Delta h\times {\rm{cap}}_{y,z,e}^{\rm{existingtech}} \quad\forall h,m,y,z,e\in {\mathcal{E}}\backslash {\mathcal{NDISP}}\]

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: object

Add 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_up_bound_rule(h, m, y, z, te)[source]

Generation is less than or equal to the existing capacity.

Parameters
  • h (int) -- Hour.

  • m (int) -- Month.

  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

The constraint of the model.

Return type

poi.ConstraintIndex

ramping_down_rule(h, m, y, z, te)[source]

Ramping down limits.

Parameters
  • h (int) -- Hour.

  • m (int) -- Month.

  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

The constraint of the model.

Return type

poi.ConstraintIndex

ramping_up_rule(h, m, y, z, te)[source]

Ramping up limits.

Parameters
  • h (int) -- Hour.

  • m (int) -- Month.

  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

The constraint of the model.

Return type

poi.ConstraintIndex