turbine.hpp file
Defines the Turbine structure representing a hydroelectric turbine.
This module defines the Turbine structure which couples a hydraulic waterway to an electrical generator, converting water flow [m³/s] into electrical power [MW].
Conversion relationship
power [MW] = conversion_rate [MW·s/m³] × flow [m³/s]
Variable efficiency (hydraulic head)
When main_reservoir is set, the turbine's conversion rate can vary with the reservoir volume (hydraulic head). The piecewise-linear efficiency curve is provided by a matching ReservoirProductionFactor element. During SDDP forward iterations the conversion-rate LP coefficient is updated based on the current reservoir volume.
Connection modes
A turbine connects to the water system via one of:
waterway— traditional mode: reads water flow from a waterway variable in the junction balance LP.flow— simplified mode: reads discharge directly from a Flow element's fixed schedule. No junctions or waterways needed. Useful for simple run-of-river (pasada) units.
When flow is set, waterway is ignored. The turbine's power constraint becomes: power ≤ discharge[block] × conversion_rate. Aperture updates automatically change the flow discharge, so the turbine power bound varies correctly across scenarios.
JSON Example (waterway mode)
{ "uid": 1, "name": "t1", "waterway": "w1_2", "generator": "g_hydro", "conversion_rate": 0.0025, "capacity": 100, "main_reservoir": "res1" }
JSON Example (flow mode — pasada)
{ "uid": 2, "name": "t_pasada", "flow": "f_river", "generator": "g_pasada", "conversion_rate": 1.0 }
Fields that accept a number/array/string value can hold:
- A scalar constant
- A 1-D inline array indexed by
[stage] - A filename string referencing a Parquet/CSV schedule in
input_directory/Turbine/
Namespaces
- namespace gtopt
Classes
- struct gtopt::Turbine
- Hydroelectric turbine converting water flow into electrical power.