Hydro Power: How to Generate and Combine Hydro and Thermal Electricity Generation


Constraints

The following modified and additional constraints are used in this example:

  • for $\text {period} \in \text {PERIODS}$ and $\text {hydro} \in \text {HYDROS}$,

    \[ \Variable{HydroOutput[period,hydro]} = \Argument{hydro\_ level[hydro]} \cdot \Variable{HydroNumWorking[period,hydro]} \]
  • for $\text {period} \in \text {PERIODS}$,

    \begin{align*} & \quad \sum _{\text {type} \in \text {TYPES}} \Variable{Output[period,type]} + \sum _{\text {hydro} \in \text {HYDROS}} \Variable{HydroOutput[period,hydro]} - \Variable{Pump[period]} \\ & \ge \Argument{demand[period]} \end{align*}
  • for $\text {period} \in \text {PERIODS}$,

    \begin{align*} & \quad \sum _{\text {type} \in \text {TYPES}} \Argument{max\_ level[type]} \cdot \Variable{NumWorking[period,type]} \\ & + \sum _{\text {hydro} \in \text {HYDROS}} \Argument{hydro\_ level[hydro]} \cdot \Argument{HydroNumWorking[period,hydro].ub} \\ & \ge (1 + \Argument{reserve}) \cdot \Argument{demand[period]} \end{align*}
  • for $\text {period} \in \text {PERIODS}$ and $\text {hydro} \in \text {HYDROS}$,

    \begin{align*} & \quad \Variable{HydroNumStartup[period,hydro]} \\ & \ge \Variable{HydroNumWorking[period,hydro]} \\ & - (\text {if period} - 1 \in \text {PERIODS, then } \Variable{HydroNumWorking[period}-1,\Variable{hydro]};\\ & \quad \text {else }\Variable{HydroNumWorking[|\text {PERIODS}|, hydro]}) \end{align*}
  • for $\text {period} \in \text {PERIODS}$,

    \begin{align*} & \quad (\text {if period} + 1 \in \text {PERIODS}, \text {then }\Variable{Depth[period}+1\Variable{]}; \text {else }\Variable{Depth[1]}) \\ & = \Variable{Depth[period]} + \Argument{meters\_ per\_ mwh} \cdot \Argument{length[period]} \cdot \Variable{Pump[period]} \\ & - \sum _{\text {hydro} \in \text {HYDROS}} \Argument{hydro\_ depth\_ rate[hydro]} \cdot \Argument{length[period]} \cdot \Variable{HydroNumWorking[period,hydro]} \end{align*}