Environmental systems, such as rivers, channel networks, and reservoir cascades, are characterized by our ability to influence their behavior within the boundary conditions given by nature. Our demands on the system may be at odds with what the system is able to provide: we may want to use more water than is flowing into the system, for example. Furthermore, demands may also conflict with each other. In a hydro power setting, for instance, spill flows to facilitate fish migration conflict with an operator’s objective to maximize power generation through the turbines.

This calls for several techniques:

  • Planning ahead using a system model
  • Resolving conflicting constraints and optimization goals
  • Robustness in face of meteorological forecast uncertainty

RTC-Tools is an open-source toolbox for control and optimization of environmental systems, with a unique focus on the aforementioned key points. System models may be composed from a library of model components, including a variety of shallow water discretizations, reservoir models, hydraulic structures, and water allocation elements. Modelers may implement their own custom elements using the industry-standard Modelica language.

Multi-objective optimization

RTC-Tools offers two approaches to the handling of competing goals and objectives. One is the weighting method, by which goals are traded off against each other. The other is lexicographic goal programming, a method whereby goals are arranged into an ordered list. This list is then worked down step by step, making sure that when optimizing a goal, the previously optimized goals are no worse off. Lexicographic goal programming is a natural fit to systems for which goals have clearly defined priorities, such as safety concerns taking precedence over economic optimization.

Forecast uncertainty

RTC-Tools supports the use of ensemble forecasts to generate robust solutions.

Extensible model library

The RTC-Tools model library is built using the Modelica modeling language. The Deltares Modelica library contains routing and reservoir models .
Users that want to introduce their own model components can do this by writing the governing equations in a new Modelica class. This flexibility has been used to apply RTC-Tools to other application areas, such as district heating systems.

Python scripting

RTC-Tools may be used as a Python package, facilitating programmatic formulation of complex optimization problems.

Delft-FEWS integration

RTC-Tools can be tightly integrated with Delft-FEWS. Timeseries data, including ensemble forecasts, as well as parameter settings may be read from Delft-FEWS. Using the same Published Interface file format, optimized solutions are communicated back to Delft-FEWS.

More information can be found on the RTC-Tools web page: RTC-Tools