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}$,

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

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

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

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