power_curve
¶
Classes:
-
PowerCurve–Creates a wind turbine's power curve represented by a set of (wind-speed,capacity-factor) pairs.
Functions:
-
compute_specific_power–Calculates the corresponding specific power for a wind turbine in W/m2 from values of capacity in kW and rotor diameter in m.
-
synthetic_power_curve_data–Reads the data used for creating a synthetic power curve.
PowerCurve
¶
Creates a wind turbine's power curve represented by a set of (wind-speed,capacity-factor) pairs.
Initialization:
Returns:
-
PowerCurve object–
Methods:
-
apply_loss_factor–Applies a loss factor onto the power curve. It can be a single value, or a function which takes a 'capacity factor' array as input.
-
convolute_by_gaussian–Convolutes a turbine power curve by a normal distribution function with wind-speed-dependent standard deviation.
-
expected_capacity_factor_from_distribution–Computes the expected average capacity factor of a wind turbine based on an explicitly-provided wind speed distribution
-
expected_capacity_factor_from_weibull–Computes the expected average capacity factor of a wind turbine based on a Weibull distribution of wind speeds.
-
from_capacity_and_rotor_diam–Creates a synthetic wind turbine power curve based on observed relationships between turbine's capacity, rotor diameter and known power curves according to Ryberg et al. [1].
-
from_specific_power–Creates a synthetic wind turbine power curve based on observed relationships between turbine specific power and known power curves according to Ryberg et al. [1].
-
simulate–Applies the invoking power curve to the given wind speeds.
Source code in reskit/wind/core/power_curve.py
apply_loss_factor
¶
apply_loss_factor(loss)
Applies a loss factor onto the power curve. It can be a single value, or a function which takes a 'capacity factor' array as input.
Parameters:
-
(loss¶numeric or function) –If numeric, the value is applied at all capacity factors with: new_capacity_factors = [1-loss] * previous_capacity_factors If a function, it must take a numpy array representing capacity factor values as input, resulting in the equation: new_capacity_factors = [1-loss(previous_capacity_factors)] * previous_capacity_factors
Returns:
-
PowerCurve–The corrected power curve.
Source code in reskit/wind/core/power_curve.py
convolute_by_gaussian
¶
convolute_by_gaussian(
scaling=0.06,
base=0.1,
extend_beyond_cut_out=True,
_min_speed=0.01,
_max_speed=40,
_steps=4000,
)
Convolutes a turbine power curve by a normal distribution function with wind-speed-dependent standard deviation.
Parameters:
-
(scaling¶float, default:0.06) –scaling factor, by default 0.06
-
(base¶float, default:0.1) –base value, by default 0.1
-
(extend_beyond_cut_out¶bool, default:True) –extend the estimation beyond the turbine's cut out wind speed, by default True
-
(_min_speed¶float, default:0.01) –minimum wind speed value in m/s to be considered, by default 0.01
-
(_max_speed¶int, default:40) –maximum wind speed value in m/s to be considered, by default 40
-
(_steps¶int, default:4000) –number of steps in between the wind speed range, by default 4000
Returns:
-
PowerCurve–The resulting convoluted power curve
Notes
The wind-speed-dependent standard deviation is computed with: std = wind_speed * scaling + base
Source code in reskit/wind/core/power_curve.py
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | |
expected_capacity_factor_from_distribution
¶
expected_capacity_factor_from_distribution(
wind_speed_values, wind_speed_counts
)
Computes the expected average capacity factor of a wind turbine based on an explicitly-provided wind speed distribution
Parameters:
-
(wind_speed_values¶numeric or array - like) –wind speed values in m/s
-
(wind_speed_counts¶numeric or array - like) –corresponding counts (number of occurrence) of the given wind speed values. Counts will be normalized within the function
Example
pc.expected_capacity_factor_from_distribution(
wind_speed_values=[ 1, 2, 3, 4, 5, 6], # Units of m/s
wind_speed_counts=[0.1, 0.3, 0.5, 0.3, 0.1, 0.025 ] # Units of "counts"
)
Returns:
-
numeric–Average capacity factor
See Also
PowerCurve.expected_capacity_factor_from_weibull
Source code in reskit/wind/core/power_curve.py
expected_capacity_factor_from_weibull
¶
expected_capacity_factor_from_weibull(
mean_wind_speed=5, weibull_shape=2
)
Computes the expected average capacity factor of a wind turbine based on a Weibull distribution of wind speeds.
Parameters:
-
(mean_wind_speed¶int, default:5) –mean wind speed at the location in m/s, by default 5
-
(weibull_shape¶int, default:2) –Weibull shape parameter, by default 2
Returns:
-
numeric–Average capacity factor
See Also
PowerCurve.expected_capacity_factor_from_distribution
Source code in reskit/wind/core/power_curve.py
from_capacity_and_rotor_diam
staticmethod
¶
from_capacity_and_rotor_diam(
capacity, rotor_diam, cutout=25
)
Creates a synthetic wind turbine power curve based on observed relationships between turbine's capacity, rotor diameter and known power curves according to Ryberg et al. [1].
Parameters:
-
(capacity¶numeric) –Baseline turbine capacity in kW.
-
(rotor_diam¶numeric) –turbine rotor diameter in m
-
(cutout¶int, default:25) –Cut out wind speed in m/s, by default 25
Returns:
Sources
[1] Ryberg, D. S., Caglayan, D. G., Schmitt, S., Linßen, J., Stolten, D., & Robinius, M. (2019). The future of European onshore wind energy potential: Detailed distribution and simulation of advanced turbine designs. Energy. https://doi.org/10.1016/j.energy.2019.06.052
See Also
PowerCurve.from_specific_power( <turbine specific power> )
Source code in reskit/wind/core/power_curve.py
from_specific_power
staticmethod
¶
from_specific_power(specific_power, cutout=25)
Creates a synthetic wind turbine power curve based on observed relationships between turbine specific power and known power curves according to Ryberg et al. [1].
Parameters:
-
(specific_power¶float) –Turbines's specific power in m/s
-
(cutout¶int, default:25) –Cut out wind speed in m/s, by default 25
Returns:
Sources
[1] Ryberg, D. S., Caglayan, D. G., Schmitt, S., Linßen, J., Stolten, D., & Robinius, M. (2019). The future of European onshore wind energy potential: Detailed distribution and simulation of advanced turbine designs. Energy. https://doi.org/10.1016/j.energy.2019.06.052
See Also
PowerCurve.from_capacity_and_rotor_diam( <turbine capacity>, <turbine rotor diameter> )
Source code in reskit/wind/core/power_curve.py
simulate
¶
simulate(wind_speed)
Applies the invoking power curve to the given wind speeds.
Parameters:
-
(wind_speed¶array_like) –Local average wind speed close to or at the hub height.
Returns:
-
array_like–CorrespongDing capacity fators for the given wind speeds
Source code in reskit/wind/core/power_curve.py
compute_specific_power
¶
compute_specific_power(capacity, rotor_diam, **k)
Calculates the corresponding specific power for a wind turbine in W/m2 from values of capacity in kW and rotor diameter in m.
Parameters:
-
(capacity¶float or array - like) –Turbine's nominal capacity in kW.
-
(rotor_diam¶float or array - like) –Turbine's hub height in m.
Returns:
-
float or array - like–Specific power in W/m2
Source code in reskit/wind/core/power_curve.py
synthetic_power_curve_data
¶
Reads the data used for creating a synthetic power curve.
Returns:
-
pandas DataFrame–DataFrame with the data to create a synthetic power curve.