Create a Power Curve From Scratch¶
Workflow:
- Import required packages
- Create powercurve with user defined capacity factors
- Load a real turbine's power curve
In [1]:
Copied!
import reskit as rk
import reskit as rk
In [2]:
Copied!
# - 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
# - 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
Out[2]:
Load a real turbine's power curve¶
In [3]:
Copied!
# Consult the Turbine Library
rk.wind.TurbineLibrary().head()
# Consult the Turbine Library
rk.wind.TurbineLibrary().head()
Out[3]:
| 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 ... |
In [4]:
Copied!
# See specific Turbine Information
rk.wind.TurbineLibrary().loc["E115_3200"]
# See specific Turbine Information
rk.wind.TurbineLibrary().loc["E115_3200"]
Out[4]:
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
In [5]:
Copied!
# Retrieve the power curve
pc = rk.wind.TurbineLibrary().loc["E115_3200"].PowerCurve
pc
# Retrieve the power curve
pc = rk.wind.TurbineLibrary().loc["E115_3200"].PowerCurve
pc
Out[5]:
Access Power Curve¶
In [6]:
Copied!
# 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("...")
# 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 ...