reV.losses.power_curve.ExponentialStretching

class ExponentialStretching(power_curve)[source]

Bases: AbstractPowerCurveTransformation

Utility for applying an exponential stretch to the power curve.

The mathematical representation of this transformation is:

\[P_{transformed}(u) = P_{original}(u^{1/t}),\]

where \(P_{transformed}\) is the transformed power curve, \(P_{original}\) is the original power curve, \(u\) is the wind speed, and \(t\) is the transformation variable (wind speed exponent).

The losses in this type of transformation are distributed primarily across regions 2 and 3 of the power curve. In particular, losses are smaller for wind speeds closer to the cut-in speed, and larger for speeds close to rated power:

../_images/exponential_stretching.png
power_curve

The “original” input power curve.

Type:

PowerCurve

Abstract Power Curve Transformation class.

Parameters:

power_curve (PowerCurve) – The turbine power curve. This input is treated as the “original” power curve.

Methods

apply(transformation_var)

Apply an exponential stretch to the original power curve.

Attributes

bounds

Bounds on the wind speed exponent.

optm_bounds

Bounds for scipy optimization, sometimes more generous than the actual fit parameter bounds which are enforced after the optimization.

apply(transformation_var)[source]

Apply an exponential stretch to the original power curve.

This function stretches the original power curve along the “wind speed” (x) axis. Any power above the cutoff speed (if one was detected) is truncated after the transformation.

Parameters:

transformation_var (float) – The exponent of the wind speed scaling.

Returns:

PowerCurve – An new power curve containing the generation values from the shifted power curve.

property bounds

Bounds on the wind speed exponent.

Type:

tuple

property optm_bounds

Bounds for scipy optimization, sometimes more generous than the actual fit parameter bounds which are enforced after the optimization.