Reservoir balance relaxation

The reservoir balance is set up with constraints for each time step for all reservoirs.

\[\begin{split} \\{i \in reservoirs,\ k = 0 \\}\end{split}\]
\[ \textrm{RESBAL}(i,k): res(i,k) - \textrm{VolumeStart}(i) = \textit{Inflow}(i,k) - \textit{Outflow}(i,k)\]
\[\begin{split} \\{i \in reservoirs,\ k \in \\{1, 2, ..., timesteps - 1\\}\\}\end{split}\]
\[ \textrm{RESBAL}(i,k): res(i,k) - res(i,k-1) = \textit{Inflow}(i,k) - \textit{Outflow}(i,k)\]

For large reservoirs it’s likely that the changes in volume during one period is not great enough to come close to the limits of the reservoir. For these large reservoirs, it is possible to relax the constraint by forgoing all but the constraint for the last time step, with all of the in- and outflow variables concatinated into this constraint.

\[\begin{split} \\{i \in reservoirs,\ k = timesteps-1 \\}\end{split}\]
\[ \textrm{RESBAA}(i): res(i) - \textrm{VolumeStart}(i) = \sum_{t = 0}^{k}{\textit{Inflow}(i,t)} - \sum_{t = 0}^{k}{\textit{Outflow}(i,t)} \]

Limit checks

After solving the master problem, the results are checked against the minimum and maximum limits of the reservoir for each time step. Should any limits be broken, the reservoir balance constraints for each of the time steps from k = 0 to timesteps-2 are restored to the model, and the model is resolved with warm start.

This process keeps checking until no reservoirs has broken its limits.