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}|$,\Variable{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*}