pywasp.estimate_sensitivity_factor#

pywasp.estimate_sensitivity_factor(pwc, wtg, wind_perturbation_factor=0.05)[source]#

Calculate the sensitivity factor that multiplies wind uncertainty terms.

Parameters:
  • pwc (xarray.Dataset) – The Weibull Wind Climate dataset containing the predicted wind climate at the different turbine locations in a wind farm.

  • wtg (xarray.Dataset) – The wind turbine generator dataset. Single wind turbine, with 2 dimensions: (mode, wind_speed) and 11 variables.

  • wind_perturbation_factor (float, optional) – The factor by which the wind speed is perturbed. Default is 0.05.

Returns:

float – The sensitivity factor value (between 0 and 1), averaged over the locations that have one.

Raises:

PywaspError – If no location has a defined sensitivity factor.

Warns:

UserWarning – If some locations are left out of the average because they have no finite sensitivity factor: their wind climate is missing in one or more sectors, or their gross AEP is zero.

Notes

The sensitivity factor is calculated as the ratio of the change in AEP to the change in mean wind speed:

[(AEP_+%_wind - AEP_-%_wind) / AEP_gross] / [((U+U') - (U-U')) / U]

AEP = f(x1, x2, x3, …, xn) where xi are all the uncertain variables that affect the AEP. Some variables have a linear effect on AEP (Energy kind), while others have a non-linear effect (Wind kind). Since wind turbine power output grows with the cube of wind speed, wind uncertainty terms must be multiplied by a sensitivity factor.

Examples

>>> pwc = pw.wasp.downscale(
...     gwc, topo_map, output_locs, conf, interp_method="nearest"
... )
>>> wtg = wk.read_wtg("./data/Bonus_1_MW.wtg")
>>> sf = estimate_sensitivity_factor(pwc, wtg, wind_perturbation_factor)