Create a Power Curve From Scratch#

Workflow:

  1. Import required packages

  2. Create powercurve with user defined capacity factors

  3. Load a real turbine’s power curve

import reskit as rk
# - Windspeeds given in m/s
# - Capacty factors given from 0 (no generation) to 1 (100% generation)

pc = rk.wind.PowerCurve(
    wind_speed=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 25],
    capacity_factor=[
        0,
        0,
        0.06,
        0.16,
        0.3,
        0.6,
        0.75,
        0.85,
        0.91,
        0.95,
        0.975,
        0.99,
        1.0,
        1.0,
    ],
)

# plot power curve
pc
../../_images/4ecec382769f8673bb876386be1244086bf139c2ca95afdd2b2c1f00153e5797.svg

Load a real turbine’s power curve#

# Consult the Turbine Library
rk.wind.TurbineLibrary().head()
Manufacturer Capacity Usage Hub_Height Rotordiameter Source PowerCurve
Model
V112-3300 Vestas 3300.0 Onshore [84.0, 94.0, 119.0, 140.0] 112.0 https://en.wind-turbine-models.com/turbines/69... 2.00 - 0.00\n 3.00 - 0.01\n 3.50 - 0.02\n ...
HW3_S2500_97 HEAG 2500.0 Onshore [70.0, 80.0] 97.0 NaN 1.00 - 0.00\n 2.00 - 0.00\n 3.00 - 0.00\n ...
MM100 Senvion 2000.0 Onshore [76.5, 80.0, 100.0] 100.0 https://en.wind-turbine-models.com/turbines/89... 1.00 - 0.00\n 2.00 - 0.00\n 3.00 - 0.01\n ...
N100_Delta Nordex 3300.0 Onshore [75.0, 85.0, 100.0] 99.8 NaN 3.00 - 0.00\n 3.50 - 0.00\n 4.00 - 0.02\n ...
V136-3450 Vestas 3450.0 Onshore [82.0, 112.0, 132.0, 149.0] 136.0 https://en.wind-turbine-models.com/turbines/12... 2.50 - 0.00\n 3.00 - 0.01\n 3.50 - 0.03\n ...
# See specific Turbine Information
rk.wind.TurbineLibrary().loc["E115_3200"]
Manufacturer                                               Enercon
Capacity                                                    3200.0
Usage                                                      Onshore
Hub_Height                             [92.0, 122.0, 135.0, 149.0]
Rotordiameter                                                115.7
Source                                                         NaN
PowerCurve         1.00 - 0.00\n  2.00 - 0.00\n  3.00 - 0.02\n ...
Name: E115_3200, dtype: object
# Retrieve the power curve
pc = rk.wind.TurbineLibrary().loc["E115_3200"].PowerCurve

pc
../../_images/620b8c6e5313c8de7642bf3277a1fb503294c298870273c76ee55180c450d27f.svg

Access Power Curve#

# Direct access to the power curve's capacity factor values
#  - used 'pc.wind_speed' for wind speed values
#  - used 'pc.capacity_factor' for capacity factor values

for i, ws, cf in zip(range(10), pc.wind_speed, pc.capacity_factor):
    print("The capacity factor at {:.1f} m/s is {:.3f}".format(ws, cf))
print("...")
The capacity factor at 1.0 m/s is 0.000
The capacity factor at 2.0 m/s is 0.001
The capacity factor at 3.0 m/s is 0.015
The capacity factor at 4.0 m/s is 0.048
The capacity factor at 5.0 m/s is 0.106
The capacity factor at 6.0 m/s is 0.196
The capacity factor at 7.0 m/s is 0.312
The capacity factor at 8.0 m/s is 0.469
The capacity factor at 9.0 m/s is 0.653
The capacity factor at 10.0 m/s is 0.819
...