Create a Power Curve From Scratch#
Workflow:
Import required packages
Create powercurve with user defined capacity factors
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
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
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
...