Target reservoirs
Target reservoirs are reservoirs with a defined target volume. The target volume follows a time series supplied by the user. The solver will try to keep the reservoir volume at the target, but this is not a hard limit.
In the optimized module, the reservoir volume variable is split in two layers, the volume of water lower than the target, and the volume of water above the target.
\[\begin{split} \\{i \in target\ reservoirs,\ k \in \\{0, 1, ..., timesteps - 1\\}\\}\end{split}\]
\[ \textit{Volume}(i,k) = \textrm{Target}(i,k) - res^-(i,k) + res^+(i,k) \]
\[ 0 \leq res^-(i,k) \leq \textrm{Target}(i,k) \]
\[ 0 \leq res^+(i,k) \leq \textrm{PhysMax}(i)-\textrm{Target}(i,k) \]
The objective function contains penalties for using either layer above or below the target value.
\[ Obj^{min}: C^Tx + \sum{Cr_{target}(i,k)*(res^+(i,k) + res^-(i,k))} \]
Additionally, target reservoirs do not get an end valuation since the water level is controlled directly.