1 Introduction

Water resources management is an interdisciplinary field where many stakeholders and different interests come together, and it is not always easy to satisfy all needs at the same time. In many regions of the world, water reservoirs are an important element of water management. Reservoir operations must take into account multiple objectives such as flood protection, drinking water supply, irrigation requirements, environment, recreation and hydropower production. These objectives can conflict with each other and are therefore sometimes hard to align.

Mathematical optimization techniques have been widely used for strategic or long-term planning of reservoirs management (see e. g. [1,2,3]). In times of climate change, increasing water demand and increased pressure on the environment, optimization techniques can help to make better use of the available water resources. Also for operational reservoir management on the short-term and the mid-term time scale optimization techniques have been applied [4,5,6,7,8,9,10,11,12,13,14].

For operational reservoir management on the short-term time scale (from a few days up to a few weeks) it is essential that optimization models produce stable results. As a stable optimization we understand here that a little change in input data does not produce a completely different optimization result, and that two optimization runs with the same input data produce the same result. In particular, a stable optimization is important within an operational context for the following reasons:

  • Optimization runs are repeated frequently. This approach is commonly referred to as “moving horizon approach”: as soon as a new hydrological inflow forecast is available (e. g. once or twice a day), a new optimization run is carried out to determine the optimal reservoir release pattern for the near future (model predictive control, García et al. [15], Morari et al. [16], Morari and Lee [17], Rötz and Theobald [18]). Forecasts change with time, and for operational decision making it is important that the optimization results from consecutive time steps are consistent with each other.

  • Operators carry out multiple optimization runs with different configurations (control options) for one forecast scenario in order to compare the effects of the different control options [18,19,20]. Stable optimization results ensure consistency and allow comparison for different control options for decision making.

  • To address forecast uncertainty, runs for multiple potential future scenarios (ensemble) are carried out [4, 21]. For such ensemble runs it is important that all ensemble members are optimized in a consistent way. Similar scenarios (ensemble members) must produce similar optimization results.

As long as only volumes and flows are the primary variables of interest, a reservoir optimization problem can be formulated as a set of linear equations. The solution of linear optimization problems is straightforward, and gradient-descent optimization algorithms can solve linear optimization problems with a guarantee to find a global optimum, and this means that the result is stable.

The operation of multi-purpose reservoirs, however, often includes goals and constraints related to hydropower generation. Typical optimization goals are the maximization of hydropower generation or load balance (a hydropower generation target to be met, see e. g. Schwanenberg et al. [11]). The physical equation for hydropower generation adds a non-linear equality constraint to the optimization problem. This means that the optimization problem is no longer convex. A gradient-based optimization algorithm will not necessarily find a global optimum [22]. To achieve a certain generation output, multiple local optima with different combinations of turbine discharge and head difference are possible. This means that the optimization problem does not have a unique solution.

A common approach to deal with non-linear terms in reservoir optimization is to simplify the non-linear equations towards a linear function, which then can be solved towards a global optimum by a gradient-descent optimization algorithm [22, 23]. For the equations for hydropower generation this means assuming a constant head difference [24]. The assumption of a constant head difference, however, is a quite severe simplification, because it neglects the dynamics of one important component of the power generation equation and it takes away the incentive for the optimization algorithm to maintain the water level in the reservoir as high as possible for the sake of power generation.

In this paper, we investigate two other approaches to handle the power equation in reservoir optimization: the piecewise-linear approach and the homotopy method. The piecewise-linear method is a widely used approach, but it comes with the need to apply mixed-integer-linear-programming and is still a simplification of the desired equation. The homotopy method uses a continuous formulation and solves the power equation within the optimization problem without simplifying the mathematical description of the system. The homotopy method is a novel approach [25, 26], and this study is the first where the method has been applied for reservoir optimization.

We limit the scope of this study to gradient-descent optimization techniques. Heuristic algorithms, including the group of genetic algorithms, also provide a way to obtain solutions to hard optimization problems. However, due to their heuristic nature, they are very sensitive to the inputs, which is basically not what we consider here as stable [27]. Because they can not sample the full solution space they also do not provide a guarantee for a global or local optimum (see [28]). Heuristic algorithms have proven their applicability for reservoir optimizations, but we consider them less appropriate for operational purpose.

The following section (Sect. 2) introduces the mathematical background of reservoir optimization equations. These equations form equality constraints in the optimization models. The basic equations for inequality constraints and goals and the mathematical background of the linear, the piecewise-linear and the homotopy method as well as the implementation into a generic modelling software are also presented in this section. In Sect. 3 the methods are applied to a cascade of three reservoirs. Two scenarios with different operational goals are evaluated: a flood scenario and a load balance scenario. The paper closes with a conclusion section.

2 The optimization problem for reservoir operations

2.1 Hydraulic model

The storage equation relates the change in the volume in the reservoir against the incoming and outgoing flows, \(Q_\textrm{in}\) and \(Q_\textrm{out}\) respectively:

$$\begin{aligned} \frac{\partial V}{\partial t} = Q_\textrm{in} - Q_\textrm{out}. \end{aligned}$$
(1)

The outgoing flow from the reservoir is distributed between the turbines and the spill flow

$$\begin{aligned} Q_\textrm{out} = Q_\textrm{turbine} + Q_\textrm{spill} \end{aligned}$$
(2)

where spill flow accounts for the flow that is not used for power generation, i.e. flow through the spillway and the flow through the bottom outlet if a bottom outlet is present.

The volume and water level H of the reservoir lake (the reservoir storage) are related to each other by a strictly monotonically increasing function that accounts for the shape of the basin:

$$\begin{aligned} H = f(V). \end{aligned}$$
(3)

Such function is in practice often specified as a table or a polynomial function. Usually, the relation between H and V is not linear. A simplified, linearised relation has the form

$$\begin{aligned} \bar{H} = a \cdot V + b \end{aligned}$$
(4)

where \(\bar{H}\) is the linearised water level in the reservoir and a and b are reservoir-dependent parameters.

The hydropower generation P is a function of the turbine flow and the head difference:

$$\begin{aligned} P=\Delta h \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} \end{aligned}$$
(5)

with the turbine efficiency \(\eta\), the density of water \(\rho\) and the gravity constant \(\textrm{g}\). The head difference \(\Delta h\) is defined as

$$\begin{aligned} \Delta h=H-h_\textrm{tailwater}. \end{aligned}$$
(6)

The tailwater level \(h_\textrm{tailwater}\) is expressed in dependence of the reservoir outflow \(Q_\textrm{out}\):

$$\begin{aligned} h_\textrm{tailwater}=f(Q_\textrm{out}). \end{aligned}$$
(7)

The linearised tailwater equation has the form

$$\begin{aligned} \bar{h}_\textrm{tailwater} = \alpha \cdot Q_\textrm{out} + \beta \end{aligned}$$
(8)

with \(\alpha\) and \(\beta\) being reservoir-dependent parameters.

The head difference computed from linear equations \(\Delta \bar{h}\) for reservoir water level \(\bar{H}\) and \(h_\textrm{tailwater}\) becomes

$$\begin{aligned} \Delta \bar{h}=\bar{H}-\bar{h}_\textrm{tailwater} \end{aligned}$$
(9)

\(\Delta h\) usually decreases as \(Q_\textrm{out}\) increases, because the outflow from the reservoir decreases the water level H in the reservoir and possibly increases the tailwater \(h_\textrm{tailwater}\). Therefore, meeting a power generation target is a non-trivial interplay between \(\Delta h\) and \(Q_\textrm{out}\).

We are interested in an optimal release scheme over a certain time horizon. The storage equation 1 is discretized in time with the help of timesteps \(j = 1 \dots J\) and becomes

$$\begin{aligned} \frac{V_{j} - V_{j-1}}{\Delta t} - \left( Q_{\textrm{in}, j} - Q_{\textrm{out}, j}\right) = 0. \end{aligned}$$
(10)

It is often sufficient to model the flow routing in the river section between two locations i and \(i+1\) with a fixed time lag \(l_i\):

$$\begin{aligned} Q_{i+1, j} = Q_{i, j-l_i}. \end{aligned}$$
(11)

Here we assume that the time lag is a multiple of the time step size.

2.2 Operational goals

Reservoirs have one or more purposes and are operated to meet objectives like flood control, recreation, hydropower production or drinking water supply. As an operational goal we understand here the mathematical formulation of an objective that the operators aim to meet with the help of reservoir control. Goals are terms of the objective function in a mathematical optimization problem, also referred to as soft constraints.

Objectives can conflict with each other, and not all goals are met all the times. An example for conflicting goals are hydropower production and flood protection. From a flood protection point of view, the water level should be as low as possible, because this provides storage room to catch water from a flood wave in the reservoir and reduce the peak discharge further downstream. For hydropower production, however, the water level should be high at all times, because a high reservoir stage means more hydropower output with the same turbine flow. Optimization of reservoir operations means to find a reservoir release pattern such that multiple goals are met as good as possible. In the following we present a selection of typical objectives for reservoir operations and the related mathematical formulation as optimization goals.

An operational range for the reservoir water level can be translated to an operational volume range \(V_\textrm{min}\) and \(V_\textrm{max}\) with the help of Eq. 3. The mathematical formulation of an operational volume range goal reads:

$$\begin{aligned} \text {minimize}\quad V_j - V_{j, \textrm{max}} \end{aligned}$$
(12)
$$\begin{aligned} \text {minimize}\quad V_{j, \textrm{min}} - V_j . \end{aligned}$$
(13)

The operational range can be specified for one or multiple time steps j in the time horizon J. Typically, an operational range for the reservoir water level is a general goal that applies as a guidance for daily operations and is only exceeded in special situations like flood or drought conditions.

Load balance means to meet the hydropower generation target \(P_j\) for one or multiple time steps \(j \in J\). Typically a generation target is prescribed for the whole time horizon and connected to energy demand or production commitments. The objective term reads:

$$\begin{aligned} \text {minimize}\quad \left|P_j - P_{j, \textrm{target}} \right|. \end{aligned}$$
(14)

Different to water level or volume operational range goals, the objective of load balance is not a general objective. Operators optimize for load balance to analyse if power demand or generation commitments can be fulfilled in combination with other objectives for given hydrological inflow.

For hydropower production it makes sense to guide all reservoir outflow through the turbines or to keep the water in the reservoir if it cannot be used for power generation. A goal to minimize spill at all time steps j accounts for this:

$$\begin{aligned} \text {minimize}\quad Q_{j, \textrm{spill}}. \end{aligned}$$
(15)

A drawdown limit limits the rate of water level change within one time step

$$\begin{aligned} \Delta H_j = H_j - H_{j-1} \end{aligned}$$
(16)

and is applied to ensure bank stability in the reservoir lake. The mathematical formulation of a drawdown limit goal reads:

$$\begin{aligned} \text {minimize}\quad \left|\Delta H_j \right|- \Delta H_{j, \textrm{max}} \quad \forall \, \Delta H_j \le 0 . \end{aligned}$$
(17)

Accordingly, rate of change goals are formulated for discharge quantities Q, where Q is either the spill flow \(Q_\textrm{spill}\) or the turbine flow \(Q_\textrm{turbine}\):

$$\begin{aligned}{} & {} \Delta Q_j = Q_j - Q_{j-1} \end{aligned}$$
(18)
$$\begin{aligned}{} & {} \text {minimize}\quad \left|\Delta Q_j \right|- \Delta Q_{j, \textrm{max}}. \end{aligned}$$
(19)

2.3 Constraints

While goals not necessarily have to be satisfied, constraints must be obeyed at all times. Constraints define the solution space for the optimization problem. If no solution exists that complies with all constraints, the optimization problem is infeasible. Constraints in this closer mathematical sense are called hard constraints to distinguish them from soft constraints (see Sect. 2.2).

The first group of constraints is given by the hydraulic equations in Sect. 2.1. Hydraulic equations are typically equality constraints.

The second group of constraints are so-called bounds. Bounds constrain the range of optimization variables or the range of variables derived from them. Typically, bounds are inequality constraints that represent physical limits with values for a specific site. Usually, the minimum and maximum volume \(V_\textrm{min}\) and \(V_\textrm{max}\) in a reservoir, the discharge capacity of a turbine \(Q_\textrm{turbine, max}\), the capacity of bottom outlet and the spillway \(Q_\textrm{spill, max}\), generator limits or grid capacity \(P_\textrm{max}\) are implemented as bounds:

$$\begin{aligned} V_\textrm{min} \le V_j \le V_\textrm{max}&\quad \forall \ j \in J \end{aligned}$$
(20)
$$\begin{aligned} Q_\textrm{out, min} \le Q_{j, \textrm{out}} \le Q_\textrm{out, max}&\quad \forall \ j \in J \end{aligned}$$
(21)
$$\begin{aligned} Q_{j, \textrm{spill}} \le Q_\textrm{spill, max}&\quad \forall \ j \in J \end{aligned}$$
(22)
$$\begin{aligned} Q_\textrm{turbine, min} \le Q_{j, \textrm{turbine}} \le Q_\textrm{turbine, max}&\quad \forall \ j \in J \end{aligned}$$
(23)
$$\begin{aligned} P_j \le P_\textrm{max}&\quad \forall \ j \in J. \end{aligned}$$
(24)

2.4 Stable optimization through convex and linear formulation of the optimization problem

In general, an optimization problem reads:

$$\begin{aligned}&\text {minimize}\ f(x)&\end{aligned}$$
(25)
$$\begin{aligned} \text {subject to:}&\end{aligned}$$
(26)
$$\begin{aligned}&g_1(x) \le 0&\end{aligned}$$
(27)
$$\begin{aligned}&g_2(x) = 0&\end{aligned}$$
(28)

where \(f(x)\) is the objective function, \(x\) is the optimization variable, and \(g_1\) and \(g_2\) are inequality constraints and equality constraints, respectively.

If \(f\) and \(g_1\) are convex and \(g_2\) is affine, i. e. can be formulated as \(g_2=ax+b\) (linear), the optimization problem is called convex. In convex optimization problems any local optimal solution is also globally optimal. As mentioned above, the global optimum is required for stable optimization results, which is considered an important prerequisite for the usage of optimization within an operational water management context.

The optimization problems of this study are composed by equality constraints given with the hydraulic model equations from Sect. 2.1, objective function terms formulated as goals as described in Sect. 2.2 and bounds according to Sect. 2.3 as inequality constraints.

As long as only reservoir volume and flows are concerned, the optimization problem is linear, and consequently can be set up as a convex problem. When adding non-linear components, the problem is no longer necessarily convex. Typically, non-linear equality constraints are introduced with

  • the relation between water level and reservoir volume (Eq. 3)

  • the tailwater equation (Eq. 7)

  • the hydropower equation (Eq. 5) with the product of two variables \(Q_\textrm{turbine}\) and \(\Delta h\).

To ensure stable optimization, the non-linear equations need some special treatment. We focus on the hydropower equation and discuss three options in this paper:

  • Reduction to a linear optimization problem by setting a constant head difference for \(\Delta h\) (Eq. 6) and a linear relation between reservoir volume and reservoir water level (Eq. 3)

  • Piecewise linearisation of the non-linear equations to multiple domains of \(\Delta h\) according to a linear relation between reservoir volume and reservoir water level (Eq. 3), solution with mixed-integer linear programming (MILP)

  • The homotopy method, a path-stable non-linear optimization with a dynamic formulation for the head difference and a non-linear relation between reservoir volume and reservoir water level.

2.5 The linear approach

The basic idea of the linear approach is to replace non-linear functions with a linear function. For the application to reservoir operations this means to assume a constant head difference for the power generation [24, 29] (Eq. 5):

$$\begin{aligned} \Delta h = \Delta \tilde{h} = \textrm{const} \end{aligned}$$
(29)

The linearisation of the power equation addresses \(\Delta h\) and not \(Q_\textrm{turbine}\), because the head difference usually varies less than the turbine flow, and turbine flow \(Q_\textrm{turbine}\) is a control variable for the reservoir operations.

With a constant head difference \(\Delta \tilde{h}\), the power equation 5 depends only on the turbine flow \(Q_\textrm{turbine}\). The interplay between reservoir release, tailwater level and reservoir volume is not accounted for. The assumption of a constant head difference takes away the incentive for the optimization model to keep the water level high. In practice, reservoir operators will aim for a high reservoir water level for reservoirs that are used for energy generation. Against that background, the linear approach can be quite a severe simplification, but will be acceptable for larger reservoirs where the reservoir outflow affects the reservoir water level only marginally within the optimization horizon.

The water level in the reservoir H is still used to apply a goal for the drawdown limit (Eq. 17) and is formulated with a linear relationship in dependence of the volume V (Eq. 8), but the tailwater equation 7 is not used and thus removed from the optimization problem. The optimization problem can now be formulated as a fully linear optimization problem, and a globally optimal solution can be guaranteed with gradient optimization techniques. The Interior Point Optimizer IPOPT [30] has been used to solve the linear optimization problems in this study.

2.6 The piecewise-linear approach

The basic idea of the piecewise-linear approach is to approximate a non-linear function with multiple pieces of linear functions. Each linear function covers only a part of the solution space. For the current case this means using multiple values of \(\Delta \tilde{h}\) for different situations instead of only one that applies for all situations. With the piecewise-linear approach a global solution can still be guaranteed, because the model is linear, but the interplay between reservoir outflow, tailwater level and reservoir volume can be represented in the optimization to some extent. The optimization problem thus incorporates an incentive to keep the water level in the reservoir high.

The starting point for the piecewise-linear approach is the head difference \(\Delta \bar{h}\) computed from linear Equations for \(\bar{H}\) (Eq. 4) and \(\bar{h}_\textrm{tailwater}\) (Eq. 8). \(\Delta \bar{h}\) changes with the reservoir outflow \(Q_\textrm{out}\). To provide a constant head difference for the power equation, for \(\Delta \bar{h}\) now multiple domains (pieces) \(\Delta \bar{h}_d\) are defined. A constant head difference \(\Delta \tilde{h}_d\) is assigned to each domain \(\Delta \bar{h}_d\), and \(\Delta \tilde{h}_d\) then goes into the computation of the power generation with Eq. 5.

To address the different piecewise-linear domains within the optimization, Boolean variables must be introduced. This introduces non-continuous behaviour into the optimization problem. The problem can be formulated as so-called mixed-integer linear problem (MILP). MILP tools developed in the past years have gained in efficiency regarding solution accuracy and computational time [29], and the piecewise-linear approach has been applied to short-term hydropower optimization problems [24, 29]. For this study, we have used the COIN Branch and Cut Solver CBC [31].

For each piecewise-linear domain two sets of constraints must be formulated:

  • A set of conditional constraints that connect the Boolean variables \(B_m\) to the variable the domains are defined for. For the current case this is the head difference for power generation \(\Delta \bar{h}\). The corresponding Boolean variable is true if the optimization variable is within a domain d and false otherwise.

  • Constraints with the linear function for the corresponding piecewise-linear domain. A constraint must be formulated such that it becomes non-trivial if the Boolean variable is true, i. e. the corresponding domain is active, and trivial if the Boolean variable is false, i. e. the domain is inactive. For the current case the constraints contain the power equation 5 with \(\Delta h = \Delta \tilde{h}_d\).

These constraints are formulated with the help of large numbers M (Big M method) associated with the variables, here \(\Delta \bar{h}\) and P. The Boolean variables are optimization variables and addressed within the optimization such that all constraints – including flow equations and the constraints for the piecewise-linear domains – are met and the operation goals are met as good as possible.

2.7 The homotopy approach

The basic idea of the homotopy method is a continuous (i. e., homotopic) deformation of the optimization problem from a linear problem to a non-linear one. The use of homotopy for addressing non-linearities in water system optimization has been developed by Baayen et al. [26, 32] and has been applied for different water-related optimization problems [13, 27]. The mathematical background for the application of the homotopy method, also referred to as continuation method, for the hydropower equation is documented in Baayen et al. [25].

The optimization starts with the linear problem, and in the end the full non-linear equations are solved for. Solving a non-linear non-convex optimization problem directly can lead to stability issues, because a non-linear non-convex problem can have multiple local solutions. Under some mild technical conditions, a non-linear solver guarantees to find one of such minima [25]. To solve a non-linear optimization problem, gradient-descent algorithms need a starting point. In principle, and in practise, providing two even very close starting points can lead to different local optima. This becomes problematic in an operational context where it is important for the final solution to be robust to small perturbations. The homotopy method provides a way to find a stable (or ‘reliable’) starting point.

To facilitate the deformation of the optimization problem from linear to non-linear, each non-linear equation is expressed as a linear combination of its non-linear representation and its linear approximation, where the non-linear equation is what we want to solve for. A parameter \(\Theta\) takes values from 0 to 1 to move from the linear to the non-linear formulation. The power generation equation then becomes:

$$\begin{aligned} P = ((1 - \Theta )\cdot \Delta \tilde{h}+ \Theta \cdot \Delta h) \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g}. \end{aligned}$$
(30)

The relation between water level and volume in the reservoir becomes:

$$\begin{aligned} V(h) = (1-\Theta ) \cdot A \cdot (H-H_\textrm{b}) + \Theta \cdot (\kappa _0 + \kappa _1 \cdot H + \kappa _2 \cdot H^2 + \kappa _3 \cdot H^3 + \kappa _4 \cdot H^4). \end{aligned}$$
(31)

In Eq. 31\(H_\textrm{b}\) denotes the bottom elevation of the reservoir lake and A the average surface area, and \(\kappa _0\) to \(\kappa _4\) are parameters to describe the relation between water level and volume as fourth order polynomial.

If \(\Theta = 0\), the linearised power generation equation (see Sect. 2.5) and a linear relation between water level and volume is obtained, with \(\Theta = 1\), one obtains the desired non-linear equation for the power generation with a product of \(Q_\textrm{turbine}\) and a dynamic \(\Delta h\) that changes with the reservoir stage according to Eq. 31 and the tailwater level according to Eq. 7.

The homotopic deformation is basically a sequence of multiple continuous non-linear optimization problems, here solved with the Interior Point Optimizer IPOPT [30]. A homotopy optimization starts with a full optimization run with \(\Theta = 0\). Full optimization run means here that all goals and constraints are included. With \(\Theta = 0\) only the linear part the homotopy formulation (Eqs. 30 and 31) is active. The optimization problem can be solved to a global optimum. The solution of this first optimization run is now set as seeding for a consecutive optimization where \(\Theta\) is increased by an increment of \(\Delta \Theta\) to a value larger than zero. This second optimization problem has now a small non-linear component, but it is still similar to the first, linear optimization problem. With the seeding being the result from a similar optimization problem, the solution of the second optimization problem is found quickly. This procedure is repeated until \(\Theta\) has reached 1; now the optimization problem with the desired non-linear equations is solved. Since the linear problem has a unique solution and each deformation only slightly changes the problem, this method provides a reliable way to find a ‘good’ starting point for the fully non-linear problem. Note that the homotopy method ensures a stable optimization result but does not come with a guarantee for a global optimum for the non-linear optimization problem. The solution is always connected to the global optimum of the corresponding linear problem, though. We refer to Baayen et al. [25] for more details on the mathematical background.

A typical value for \(\Delta \Theta\) is 0.1, this is the value that has also been used for this study. Larger values of \(\Delta \Theta\) can be chosen, too, for example \(\Delta \Theta =0.2\) or \(\Delta \Theta = 0.5\). With large values for \(\Delta \Theta\) it can happen that the optimization fails. Our implementation of the homotopy method (see Sect. 2.8) repeats the optimization run with \(\frac{1}{2}\Delta \Theta\) in this case. Beside \(\Delta \Theta\) the user specifies \(\Delta \Theta _\textrm{min}\) to limit the automatic reduction of \(\Delta \Theta\).

The advantage of the homotopy method is that the optimization applies the desired non-linear formulation, meaning that the equations are not simplified. In the power generation the full interplay between \(\Delta h\) and \(Q_\textrm{turbine}\) is captured.

2.8 Implementation in a generic modelling software

RTC-Tools 2 [11, 33] is a generic modelling software for the optimization of water systems. An RTC-Tools model consists of

  • A hydraulic layer that contains the flow equations for the water system, related equations and bounds,

  • A control layer with the operational goals,

  • The data layer to manage input time series, model parameters and model output.

The hydraulic model is written in the Modelica modelling language. RTC-Tools provides a Modelica library with water-related equations to model reservoirs, river segments etc. Sections 2.1 and 2.3 contain the equations for reservoir modelling. The user can build water system models with these generic building blocks.

The control model must be scripted in Python. RTC-Tools offers two approaches to handle competing goals and objectives within the optimization:

  • Multi-objective optimization (Pareto-optimization), where goals are traded off against each other. Weighting factors can be assigned to the goals in order to control the trade-off. Multi-objective optimization applies where different goals must be balanced with each other to achieve a compromise.

  • Lexicographic goal programming [23], where goals are arranged in an ordered list. This list is then worked down step by step, making sure that when optimizing a goal, the previously optimized goals are still met. Lexicographic goal programming is a natural fit to systems where goals have clearly defined priorities, such as safety concerns (e. g. flood control) taking precedence over economic optimization (e. g. hydropower production).

The data layer is a set of input files in comma separated value format (CSV). RTC-Tools also supports the FEWS-PI file format for integration in operational decision support systems based on the Delft-FEWS platform [34].

The RTC-Tools computational core is written in Python and compiles the three layers into an optimization problem and feeds it to a solver. The interior point optimizer IPOPT [30] is a standard solver of RTC-Tools and has been used for this study. Other solvers, like the mixed integer COIN Branch and Cut Solver CBC [31], are also available.

3 Case study

3.1 Optimization models

To compare the different approaches, we developed RTC-Tools optimization models for a cascade of three reservoirs, one model for each approach. The three models use the equations from Sect. 2.1 as equality constraints. The three models differ in the approach of handling the head difference from the power equation (Eq. 5) in the optimization problem, the way how the relation between water level and volume is expressed and the corresponding solver. The linear model uses one constant value for the head difference and a linear relation to describe the water level as a function of reservoir volume (Sect. 2.5). The piecewise-linear model uses three different constant values for the head difference, where the head difference that goes into the power equation is selected based on a the linearised head difference calculation (Sect. 2.6). Like in the linear model, the relation between reservoir water level and volume is linear. The homotopy approach uses a dynamic head difference \(\Delta h\) (Sect. 2.7) and a fourth order polynomial to describe the relation between water level and volume in a reservoir (Eq. 31).

The reservoir system is inspired by the Grand River (Oklahoma). The Grand River is impounded by three reservoirs, namely the Grand Lake, Lake Hudson and Fort Gibson. Figure 1 shows the model schematization. Each of the three reservoir objects can release water either through turbines or other outlets (spillway, gates). The river sections between the reservoirs are modelled with so-called delay branches that account for a the travel time between the reservoirs with a fixed value. The reservoir properties given in Table 1 are applied as inequality constraints (bounds). Turbine efficiency \(\eta\) in Eq. 5 has been set constant, and for the relation between water level and volume in the reservoirs and the tailwater equation, linear relationships have been used according to Eqs. 4 and 8, respectively.

Fig. 1
figure 1

Schematization of the reservoir cascade in the Grand river, here shown in a Modelica editor. Flow direction from left to right. The three reservoir lakes are represented as blue triangles with each having one or two inputs (light green triangle) and one output (dark green triangle). Model inflow boundaries are shown as pink star, here the inflow to the reservoir system is set as time series. The model’s lower boundary is shown as pink box. Delay elements between the reservoirs account for travel time of water

Table 1 Constraints to account for physical limits

The head difference domains in Table 2 have been used to represent the head difference in the piecewise-linear optimization model. The definition of domains is a modeller’s choice. Preparatory test runs have been carried out to select the domain boundaries such that the number of crossings between the domains is limited.

To activate domains, constraints according to Sect. 2.6 have been introduced for each reservoir. For the first domain \(d=1\) with \(\Delta \bar{h}_{d, \textrm{max}}\) as upper domain boundary the constraints read:

$$\begin{aligned} \left. \begin{array}{l} \Delta \bar{h} - M_{\Delta \bar{h}} \cdot B_1 \le \Delta \bar{h}_{d, \textrm{max}}\\ \Delta \bar{h}_{d, \textrm{max}} \le \Delta \bar{h} + M_{\Delta \bar{h}} \cdot (1- B_1)\\ 0 \le P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} + M_\textrm{P} \cdot B_1\\ P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} - M_\textrm{P} \cdot B_1 \le 0 \end{array} \right\} \text {for} \quad d = 1 \end{aligned}$$
(32)

\(M_{\Delta \bar{h}}\) and \(M_\textrm{P}\) are large numbers associated with the variables \(\Delta \bar{h}\) and P, respectively, and \(B_1\) and \(B_2\) are Boolean variables. If \(B_1=0\) (true), domain 1 is active, if \(B_2=0\), domain 2 is the active domain. If both Boolean variables are false (\(B_1 = B_2 = 1\)), the third domain is active.

Let Boolean \(B_1\) be zero (true). The first constraint is met only for values of \(\Delta \bar{h}\) within domain 1. With a parameter \(M_{\Delta \bar{h}}\) chosen large enough, i. e. larger than the upper boundary of the domain 3 \(\bar{h}_{3, \textrm{max}}\), the second constraint is fulfilled for any value of \(\Delta \bar{h}\). If \(B_1 = 1\) (false, domain 1 not active), the second constraint is met only for values of \(\Delta \bar{h}\) outside domain 1 and the first constraint becomes trivial for all values of \(\Delta \bar{h}\). The third and the fourth constraint in Eq. 32 now compute the corresponding power generation with the help of the corresponding \(\Delta \tilde{h_d}\). The constraints are formulated in such a way that they are basically trivial, except for the domain that is activated with the help of the Boolean variables \(B_1\) and \(B_2\).

For domain 2 and 3, the constraints are:

$$\begin{aligned}{} & {} \left. \begin{array}{l} \Delta \bar{h} - M_{\Delta \bar{h}} \cdot B_2 \le \Delta \bar{h}_{d, \textrm{max}}\\ \Delta \bar{h}_{d, \textrm{max}} \le \Delta \bar{h} + M_{\Delta \bar{h}} \cdot (1- B_2)\\ 0 \le P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} + M_\textrm{P} \cdot (1 - B_1) + M_\textrm{P} \cdot B_2\\ P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} - M_\textrm{P} \cdot (1- B_1) - M_\textrm{P} \cdot B_2 \le 0 \end{array} \right\} \text {for} \quad d = 2 \end{aligned}$$
(33)
$$\begin{aligned}{} & {} \left. \begin{array}{l} \Delta \bar{h} - M_{\Delta \bar{h}} \cdot B_2 \le \Delta \bar{h}_{d, \textrm{max}}\\ \Delta \bar{h}_{d, \textrm{max}} \le \Delta \bar{h} + M_{\Delta \bar{h}} \cdot (1- B_2)\\ 0 \le P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} + M_\textrm{P} \cdot (1 - B_2)\\ P - \Delta \tilde{h_d} \cdot Q_\textrm{turbine} \cdot \eta \cdot \rho \cdot \textrm{g} - M_\textrm{P} \cdot (1- B_2) \le 0 \end{array} \right\} \text {for} \quad d = 3. \end{aligned}$$
(34)

For the linear model, a constant head difference of \(\Delta \tilde{h}={38}\,\hbox {m}\), \(18\, \hbox {m}\) and \(21\, \hbox {m}\) have been used for Grand Lake, Lake Hudson and Fort Gibson, respectively.

Two scenarios were analysed: the first scenario is a flood scenario, where we expect the models to operate the reservoir cascade for best flood control under given constraints and targets. In the second scenario, the load balance scenario, the model must find an operational schedule for the reservoir cascade such that the system-wide hydropower production meets a generation request as good as possible (load balance). With the application of operational short-term planning in mind the simulation periods have a length of 11 and 7 days, respectively.

Data to set up the hydraulic model and the control model as well as scenario data has been obtained from openly available information from the Grand River Dam Authority [35] and the US Army Corps of Engineers [36]. For the upstream reservoir, the Grand Lake, measurement data for the water level–volume relationship has been taken from Hunter and Labriola [37]. For the other two reservoirs and where no public data is available, assumptions have been made. We only present model parameters that are relevant for the comparison of the different optimization models. For the hydraulic parameters and the related data sources and processing methods we refer to Haf [38].

Table 2 Head difference domains for the piecewise-linear approach

3.2 Operational goals for dam operations

The operational protocol for the reservoir cascade is modelled as a set of goals (Table 3), containing a drawdown limit for the reservoir level, maximum discharges, water level ranges for the reservoirs, ramp rates for turbine flow and the load balance goal. The goals are prioritized according to their relevance under the assumption that goals related to dam safety and flood control have priority above hydropower generation. The priorities are a choice, a different order of goals produces a different solution. For goals with higher priority is optimized first, and the remaining operational space is then used to meet consecutive goals with lower priority [23]. Weighting factors take effect only if there are multiple goals with the same priority. In this case the weighting factor can be used to put more emphasis on a specific goal.

Table 3 Goals for the dam operations, with index code GL for Grand Lake, LH for Lake Hudson and FG for Fort Gibson

The minimize spill goal is applied here as incentive to direct as much water as possible through the turbines in order to use the water for power generation. We applied a spill zero target, but it would also be possible to formulate a non-zero spill request for modelling a fish protection goal. We have put the minimize spill flow goal in one priority group together with two other goals: the minimize change goals for turbine flow G7 and the spillway flow G8. The rate of change goals for turbine flow and spill flow aim to reduce the number of changes in the operational state of the turbine and the spillway to limit wear of machinery. Goals 6, 7 and 8 have the same priority, the minimize spill flow goal has a higher weighting factor than goals G7 and G8 to give more emphasis on this goal.

The load balance goal forces the model to find a control scheme that generates a given amount of energy over time. A load balance goal is mathematically challenging for two reasons:

  • Power generation depends on the head difference \(\Delta h\) (Eq. 6), which depends on the water level in the reservoir. Water level and volume of a reservoir are related to each other with a non-linear relation (see Sect. 2.1).

  • A certain generation request can be achieved with multiple combinations of head and discharge (see Eq. 5).

Especially the latter is a major difference to a maximize power generation goal, which is also a common operational objective for reservoir operations. While a maximize power generation goal can often be formulated as a non-linear but convex function term, a load balance goal introduces a non-linear non-convex term into the optimization problem. The non-convexity means that the optimization problem no longer can be solved to a guaranteed global optimum.

Another source of non-linearity is the drawdown limit that is applied for all three reservoirs. All other goals address volumes and flows only and can be addressed with a linear formulation. For the current case, also the water level goals are formulated with the help of the corresponding relation (Eq. 3) as volume goals to maintain a linear formulation wherever possible. It has been shown that this has also an advantage in terms of computational speed and accuracy [38]. Being the largest reservoir, the Grand Lake has an additional inner water level goal that accounts for the seasonal water level target within the year-operation of the Grand Lake. The water level target varies over the year, but for the short scenarios analysed here the target is constant over time.

3.3 Flood scenario

3.3.1 Setup

The flood scenario is characterized by a flood wave as inflow boundary to the upper reservoir, the Grand Lake. The simulation period is 11 days. This length has been chosen in order to represent a typical short-term forecasting period rather than to cover the whole flood event in the simulation period.

The model is expected to pass the flood wave through the reservoir cascade and to obey the operational goals as good as possible. Not all goals can be met due to the flood conditions.

The load balance goal is not active in the flood scenario, but a constraint on maximum generation (generator limit). Consequently, the power equation (Eq. 5) is still part of the optimization problem, and together with the drawdown limit the power equation makes the optimization problem non-linear.

We applied a time lag of two days as travel time between the reservoirs. This value is much higher than the time lag in reality, but has been chosen to better illustrate cascading behaviour of the system model.

3.3.2 Results

Fig. 2
figure 2

Optimization results for the flood scenario for volume and reservoir outflow for Grand Lake, Lake Hudson and Fort Gibson and inflow boundary condition for Grand Lake

Figure 2a shows the volume over time for the three reservoirs. The model draws down the reservoir volume in the beginning of the simulation period in order to create flood storage volume in all three reservoirs to anticipate the flood peak. The volume increases again towards the end of the simulation period. In the Grand Lake the volume curve obtained with the piecewise linear and the linear approach remains under the maximum of the operational volume goal, the homotopy approach ends up with a little exceedance of the volume operational goal, but the physical maximum of the volume is not exceeded. For Lake Hudson the models apply a drawdown, too, and the operational volume maximum is exceeded in the end of the simulation period also here. The homotopy model fills the reservoir faster after the drawdown than the other two models and exceeds the operational volume earlier and to a higher degree than the others. In Fort Gibson the maximum volume goal is not violated. The homotopy model reaches the maximum volume earlier than the two other models. Fort Gibson has more storage capacity than the two other reservoirs, so the lake can hold the inflow without exceeding neither the operational maximum volume nor the maximum discharge. Note that the operational maximum volume has a lower priority than the drawdown limit (Table 3, G1) and the maximum reservoir outflow (Table 3, G2). This explains why the reservoir is not drawn down further and the operational volume range is exceeded in the end of the simulation period. According to the priorities in Table 3 the operational space is first used to meet the drawdown limit. All other goals are not considered in this first optimization run. The remaining operational space is used to meet the discharge goal (G2). With the given inflow (Fig. 2a, top diagram), this is not possible at all times. In the subsequent optimization run for priority 3 the optimization model aims to obey the goal for the water level operational range (G3) and thereafter the water level range goal for Grand Lake (G4). Given the high inflow to Grand Lake it is, however, not possible to meet the goals at all times.

Fig. 3
figure 3

Optimization results for the flood scenario: water level at Grand Lake

Like the results for water volume in the reservoirs the discharge results for Grand Lake (Fig. 2b) reflect the anticipation on the flood wave in the first third of the simulation period. The drawdown of Grand Lake comes with a high reservoir outflow, and it is necessary to release above the operational release maximum (Table 3, G2) in the beginning to meet the maximum discharge in the remainder of the simulation period. In the beginning of the simulation period the release of Grand Lake is higher than the inflow, but the scenario requires to release water in addition to the incoming flood wave. In the initial phase, the homotopy model produces higher discharges than the other two methods, but is closer to the desired maximum discharge in other periods.

The outflow from Grand Lake enters Lake Hudson two days later, and Lake Hudson’s outflow again reaches Fort Gibson reservoir with delay. Due to the time lag of two days the short release peak at April 4 does not reach Lake Hudson before the end of the simulation time. The optimization model makes use of the time lag and sends water travelling to have it not appear in any reservoir, where goals apply. This behaviour is also known as “end-of-the-world problem”: what happens after the simulation period does not matter for the performance of the optimization. Real-world operators can not operate like this. For practical applications, optimization results can be useful though: the last part of the optimization result will be cut off or the operator will not use it—the forecast uncertainty is higher for this period anyway. Furthermore, operators usually apply only the first part of the model result in reality and repeat the optimization after a certain period, usually when new forecast data is available (moving horizon technique).

Fig. 4
figure 4

Optimization results for the flood scenario: Turbine flow, spill flow and power generation for Lake Hudson

Figure 3 shows the optimization results for water level over time in the Grand Lake. The piecewise-linear and the linear approach use a simplification for the relation between water level and volume during the optimization with respect to the polynomial function the homotopy approach uses, so re-calculated water level computations are shown as well for these two runs. The volume results obtained from optimization were translated with the exact relation in a post-processing step after the optimization. Initial volume is the same in all three runs (Fig. 2a), but the water level obtained with linear and piecewise-linear optimization differs from the water level that the homotopy run produces. The optimization result shows a similar slope in the water level curve for the initial phase of drawdown according to the drawdown limit, but the re-calculated results show a flatter slope. This corresponds with the volume results shown in Fig. 2a. The homotopy run makes better use of the drawdown restrictions than the two other methods, because the exact relation between water level and volume is used.

With respect to the power generation, the homotopy model represents the interaction between maximum turbine flow and generator limit with spill flow better than the piecewise-linear model. The homotopy optimization balances the turbine flow with head difference (not shown) such that the maximum generation is not exceeded (Fig. 4b). At March 26, 06:00 h the generator limit is no longer limiting due to the water level drawdown (Fig. 2), and now the maximum turbine flow is the limiting factor. The power generation drops below its physical maximum for a short period. Excess water is spilled. The piecewise-linear result is more driven by the maximum turbine flow. The optimization takes the maximum generation constraint into account, but the re-calculated generation exceeds the generator limit. The effect of the head difference domain borders can be seen in Fig. 4a: Between March 25, 06:00 h, and March 31, 00:00 h the head difference is kept under 16 m, and after March 31 the results show two jumps in the power generation as well as turbine flow and spill flow due to entering a different head difference domain. At April 4, 15:00 h the head difference reaches the domain for \(\Delta \tilde{h} = {23.2}\,\hbox {m}\), the consequence is a jump in turbine flow.

Note that the set-up of the models contains modeller’s choices: priorities and weights could have been chosen differently. In the setup shown here the drawdown goal has highest priority and dominates the reservoir release. Although the maximum release goals are often not obeyed, the release goals still have priority above the operational volume goals, which explains why the operational volume goal is violated in the end of the simulation period in Lake Hudson and Grand Lake, which is acceptable for a flood event. Compared to the spillway's capacity the spill flow looks still moderate.

3.4 Load balance scenario

3.4.1 Setup

In the load balance scenario the inflow is much smaller (Fig. 5a) than in the flood scenario. The governing goal is a time-variant generation request (load) to be answered with system-wide power generation by the three reservoirs (Fig. 6a). Heavy load hours alternate with light load hours: during the day, the power demand of 302 MW is to be generated by the three reservoirs together. During night time the power request is lower (151 MW). If the system-wide hydropower generation meets the load, load balance has been achieved.

For this scenario the travel time of water between the reservoirs has been set to four hours. This value is closer to the real travel time. Time resolution of the base data is one hour. For the sake of computational speed, the time resolution has been reduced from hourly time steps to three-hour time steps.

3.4.2 Results

Fig. 5
figure 5

Optimization results from the load balance scenario for discharge from Grand Lake, Lake Hudson and Fort Gibson; inflow boundary condition, volume and distribution of release to turbine and spill for Grand Lake

Figure 5a shows the total reservoir release for the three reservoirs Grand Lake, Lake Hudson and Fort Gibson. Different to the flood scenario (Sect. 3.3), the models are able to obey the maximum discharge goals (G2 in Table 3) for all three reservoirs at all times, because the inflow to the Grand Lake is much smaller. Grand Lake releases water in the beginning of the simulation period in order to anticipate on the increase of inflow starting with August 8th. The pre-release becomes visible as drawdown in the volume of Grand lake (Fig. 5b, top). All three models start with a moderate drawdown in order to not exceed the upper operational level (G3 in Table 3) by the end of the simulation period.

Grand Lake’s turbine discharge capacity of \({400}\,\hbox {m}^{3}/\hbox {s}\) (Table 1) is not fully used by the homotopy and the linear model, only the piecewise-linear model guides flow through the turbines up to the maximum turbine flow during heavy load hours in the first part of the simulation period (Fig. 5b, middle). The remainder of the total outflow is guided through other outlets than the turbines, here summarized as \(Q_\textrm{spill}\).

Discharge results from all models for Lake Hudson and Fort Gibson reflect the energy load pattern with its change between heavy load hours and light load hours (Fig. 5a). The linear model and the piecewise-linear model address the turbines of Lake Hudson during light load hours, while the homotopy model addresses the turbines of Fort Gibson during light load hours instead. Fort Gibson releases less water than it receives from Lake Hudson as inflow. The reservoir release is guided through the turbines, and the reservoir volume increases (not shown). With its main purpose of flood control the Fort Gibson lake has a comparatively large storage capacity (see Table 1) which is used by the optimization models to avoid spilling.

Fig. 6
figure 6

Optimization results for Grand Lake and Lake Hudson

The re-calculated system-wide generation of the reservoir cascade and the generation request (load) are shown in Fig. 6a. The optimization results from the piecewise-linear and the linear model show deviations from the generation request due to the simplified representation of the head difference during the optimization as explained above. The piecewise-linear model generates too much power during during light load hours and too little during heavy load hours; the linear model generates too little hydropower during the heavy load hours, but shows a good match to the light load hours. The three models distribute the power generation on the three reservoirs in slightly different ways. Basically all three models assign base load generation to Grand Lake and use the other two reservoirs for the variation in the load during the day. Only the piecewise-linear model shows some daily variation in the generation curve of Grand Lake, which is also visible in the reservoir release curve (Fig. 5b), as already mentioned above.

Figure 6b shows power generation, head difference and turbine flow for Lake Hudson. The linear optimization uses the same head difference \(\Delta \tilde{h}\) for all time steps. For the piecewise-linear approach the head difference \(\Delta \bar{h}\) is shown, which is later translated for the calculation of power generation to \(\Delta \tilde{h}\) with the help of the domains from Table 2. The domain borders are also shown in the graph. The piecewise-linear model manages to keep the head difference \(\Delta \bar{h}\) such that the domain borders are not crossed during the simulation period in order to avoid a jump: during the first light-load hour, \(\Delta \bar{h}\) does not fall below 16 m. Consequently, both piecewise-linear and linear optimization use a constant head difference in the power generation equality constraint (Eq. 5). With this simplification, the power generation that is computed internally for the optimization is equal to the generator limit \(P_\textrm{max}\) (not shown in Fig. 6b) for all three methods. The bottom diagram in Fig. 6b shows the re-calculated power generation with the discharge Q and head difference \(\Delta h\) (not \(\Delta \tilde{h}\)) obtained within the optimization for the three methods. The linear approach and the piecewise-linear approach show power generation below the generator limit due to the use of \(\Delta \tilde{h}\), while the re-calculated power generation of the homotopy method makes full use of generator limit during heavy load hours. For the power generation the homotopy method shows the interplay between head difference and turbine flow with more accuracy: during heavy load hours the turbine flow reduces the reservoir volume and consequently the reservoir stage, which comes along with a decreasing head difference. In order to keep the power generation constant to meet the load request, the turbine flow is increased accordingly, such that the decrease in head difference is compensated. Homotopy is the only one of the three methods that represents this interplay. However, the fact that the piecewise-linear result does not drop below the domain border of 16 m during the first heavy load hour from August 6, 09:00 to 21:00 h shows that the model aims to control the reservoir system towards a high head difference at least to some extent. The linear model has no incentive at all to keep the reservoir water level high. Note that the domain borders for the piecewise-linear model are a modeller’s choice, here they have been set just to avoid a switch between domains, the effect of such a switch between domains has already been shown in the previous Sect. 3.3.

4 Discussion and concluding remarks

For an application case of a reservoir cascade, three different optimization models have been developed. With the equation for power generation, non-linear equations for the relation between reservoir volume and reservoir stage, constraints for generation limits and a load balance goal, the optimization problem is non-linear and non-convex. Each of the three optimization models uses a different approach to account for non-linear equations in the optimization problem. For the two scenarios analysed, all three methods—linear, piecewise-linear, and homotopy—produce plausible results. The interplay between the reservoirs in the cascade is well represented in all of the three models, and all three models show the expected behaviour for the scenarios, which is the anticipation on the upcoming flood wave by applying a pre-release in the flood wave scenario and the load balance for the load balance scenario.

Reservoir operators usually aim to keep the reservoir water level high in order to increase hydropower generation. From the three analysed methods, the homotopy method is the one that best includes this incentive into the optimization model, because a continuous formulation of the head difference is incorporated in the optimization problem. With the three piecewise-linear domains at least some incentive to keep the reservoir level has been achieved for the piecewise-linear model, while in the linear approach the power generation only depends on the discharge without any incentive to keep reservoir levels high for the sake of hydropower generation.

The homotopy method proves its strength in compensating the decreasing head difference with increased turbine flow for a constant power generation request in the load balance scenario. The linear approach with a constant head difference can not represent this behaviour at all, while the piecewise-linear approach is able to represent the interplay between turbine flow and head difference for power generation at least to some extent: larger variations in head difference, as for the flood scenario shown here, can be accounted for with changing the head difference domain. Crossing a domain border, however, creates jumps in turbine flow. By adding more domains, the piecewise-linear result can be improved in terms of accuracy.

The added value of the homotopy comes to bear only for application cases where a generation request has to be fulfilled or generation limits apply. Optimization problems where the power output or the revenue is to be maximized (“use the water in the best way”) can be formulated as a convex non-linear optimization problem. Convex non-linear optimization problems do not necessarily require the homotopy method.

With respect to usability from a modeller’s perspective, our experience is that the piecewise-linear approach comes with more configuration effort than the homotopy method, because constraints with Boolean logic for the piecewise-linear domains must be configured (Sect. 2.6). Furthermore, the homotopy method needs less user choices than the piecewise-linear method, where the boundaries of the domains, in the current case the domains for the head difference \(\Delta h\), must be defined and adjusted such that the optimization model produces meaningful results. It can make sense to carry out a sensitivity analysis to support the process of adjusting the domain boundaries. Different scenarios will require different domain settings. For the application within operational decision support systems under varying conditions during the year (wet season, dry season) this means that different set-ups for different seasons or situations can be necessary. Against this background we found it much easier to build the optimization model with the homotopy method than with the piecewise-linear optimization models.

RTC-Tools supports both the homotopy method and the optimization with piecewise-linear and linear equations. From a software development perspective, the technical implementation of the homotopy method is considered more complex than implementing a linear or a piecewise-linear optimization. Furthermore, the piecewise-linear method and certainly linear optimization have already been widely used and undergone a lot of testing. These methods therefore come with a certain level of trust and maturity, while the homotopy method is a relatively new method in the field of reservoir optimization. As far as we know, this study is the first application of the homotopy method for a reservoir cascade with power generation. Applications for other flow equations in water domain are possible [25,26,27]. When applying the homotopy for hydraulic systems that require other equations than the equations that have been used here, the suitability should be proven first.

The piecewise-linear method and the linear method approximate a non-linear optimization problem with a linear one, which can be solved towards a global optimum. The homotopy method, however, does not necessarily produce a result with a guarantee for global optimality, but the solution is connected to the global optimum of the corresponding linear problem. We call such a solution path-stable solution. So all three methods end up with a stable optimization result and meet an important requirement for operational use. In case of the homotopy method, this solution is physically more accurate, but not necessarily global optimal, while the piecewise-linear and the linear method guarantee a global optimum, but are less accurate in terms of physics.

As mentioned above, the accuracy of the piecewise-linear approach can be increased by introducing more domains, or, in other words, by introducing more linear pieces. The gain in accuracy by more domains is to the cost of higher computational time. We have not analysed the computational performance in detail for the models presented here. The computing time for the examples shown is for all three approaches in the order of minutes on a standard computer and thus suitable for operational use. With a different case, advantages in terms of computational performance have been observed for the homotopy method with respect to the piecewise-linear approach: computational time for the homotopy method increases linearly with a growing number of timesteps. For the piecewise-linear approach an exponential increase has been observed [38]. This indicates an advantage of the homotopy method with respect to the piecewise-linear approach for larger problems.

In this study the homotopy method has been applied to optimize the operation of a reservoir cascade under multiple conflicting goals—to the knowledge of the authors for the first time. The advantages in accuracy, usability (model set up, model tuning) and computational performance (not shown here) makes the homotopy method the method of choice for the analysed case. Other application fields should be investigated.