Pumps

Pump object

The modelling of pumps in the LtmApi is defined by a list of pumps objects. The parameters in bold are required and the rest are optional. Each object must have:

Pump parameters

Parameter

Datatype

Description

name

string

name of pump object

ownership

float (optional)

Ownership of the station/pump in percent (%)

average_power

float

Average supplied power at mean pumping head and capacity

pump_capacity

attribute-value pair

x: [max, min] pumping head [m]; y: [min, max] discharge [m³/s]. Note the reverse head - discharge relation.

upper_reservoir_reference_curve

Txy

Reference curve for maximum volume [Mm³]. See Time dependent constraints and Reservoir.

lower_reservoir_reference_curve

Txy

Reference curve for minimum volume [Mm³]. See Time dependent constraints and Reservoir.

unavailable_capacity

Txy (optional)

Planned capacity outage for a pump (revision) [MW]

breakdown_unavailable_capacity

Txy (optional)

Unforeseen downtimes capacity outage for a pump (havari) [MW]

comment

string

optional comment

Notes to the pumps objects (see also Production discharge curve):

  • The highest head is the difference between HR of the reservoir where water is pumped into and the inlet of the draft tube. HR is the highest regulated level of water (masl).

  • The smallest head is the difference between LR of the reservoir water is pumped to and the HR of the reservoir where water is pumped from.

  • The pumped discharge for a given head is calculated using linear interpolation.

  • The attribute average_spill_energy_equivalent on the object Reservoir needs to be set with a resonable value to get resonable pumping results. Be sure to compare it to the discharge_energy_equivalent on the object Plant.

Minimal example for pumps
 1{
 2    "name": "pump1_upper",
 3    "ownership": 100,
 4    "average_power": 150,
 5    "pump_capacity": {
 6        "x": [110, 100],
 7        "y": [47, 50]
 8    },
 9    "upper_reservoir_reference_curve": {
10        "timestamps": ["2023-W17", "2023-W40", "2023-W50"],
11        "scenarios": [[450, 450, 450]]
12    },
13    "lower_reservoir_reference_curve": {
14        "timestamps": ["2023-W17", "2023-W40", "2023-W50"],
15        "scenarios": [[5, 5, 5]]
16    }
17}

Below is a minimal example on how to use pumps with revisions (unavailable capacity) on pumps and plants. Unavailable capacity can be set by attribute unavailable_capacity on Plant or Pump object. Breakdown unavailable capacity can also be set in a similar manner by the breakdown_unavailable_capacity on Plant or Pump object.

Minimal example for pumps with unavailable_capacity
 1{
 2    "name": "pump1_upper",
 3    "ownership": 100,
 4    "average_power": 150,
 5    "pump_capacity": {
 6        "x": [110, 100],
 7        "y": [47, 50]
 8    },
 9    "upper_reservoir_reference_curve": {
10        "timestamps": ["2023-W17", "2023-W40", "2023-W50"],
11        "scenarios": [[450, 450, 450]]
12    },
13    "lower_reservoir_reference_curve": {
14        "timestamps": ["2023-W17", "2023-W40", "2023-W50"],
15        "scenarios": [[5, 5, 5]]
16    }
17    "unavailable_capacity": {
18        "timestamps": [
19            "2023-01-02T00:00:00Z",
20            "2024-06-01T00:00:00Z",
21            "2024-12-01T00:00:00Z"
22        ],
23        "scenarios": [
24            [
25                170,
26                150,
27                0
28            ]
29        ]
30    }
31}

Pump modelling variants

There two types of pumps, standalone and as a part of the power plant.

Power plant with pumps

Upper - Plant w/pump - Lower

When the power plant has a pump, the pump is connected to the plant/bottom resevoir. The pumped hydropower plant can reverse the turbines and pumps hydro in the reverse direction.

Standalone pump

Upper - Pump - Lower

With a standalone pump, the pump is connected to the top reservoir.

Example

An example is provided here: Pumps in the LtmApi