floris.optimization.yaw_optimization.yaw_optimization_tools

floris.optimization.yaw_optimization.yaw_optimization_tools#

Functions

derive_downstream_turbines(fmodel, ...[, ...])

Determine which turbines have no effect on other turbines in the farm, i.e., which turbines have wakes that do not impact the other turbines in the farm.

floris.optimization.yaw_optimization.yaw_optimization_tools.derive_downstream_turbines(fmodel, wind_direction, wake_slope=0.3, plot_lines=False)[source]#

Determine which turbines have no effect on other turbines in the farm, i.e., which turbines have wakes that do not impact the other turbines in the farm. This allows the user to exclude these turbines from a control setpoint optimization, for example. This function assumes a very simplified wake function where the wakes are assumed to have a linearly diverging profile. In comparisons with the FLORIS GCH model, the wake_slope matches well with the FLORIS' wake profiles for a value of wake_slope = 0.5 * turbulence_intensity, where turbulence_intensity is an input to the FLORIS model at the default GCH parameterization. Note that does not include wind direction variability. To be conservative, the user is recommended to use the rule of thumb: wake_slope = turbulence_intensity. Hence, the default value for wake_slope=0.30 should be conservative for turbulence intensities up to 0.30 and is likely to provide valid estimates of which turbines are downstream until a turbulence intensity of 0.50. This simple model saves time compared to FLORIS.

Args:

fmodel (FlorisModel): A FlorisModel object. wind_direction (float): The wind direction in the FLORIS frame of reference for which the downstream turbines are to be determined. wake_slope (float, optional): linear slope of the wake (dy/dx) plot_lines (bool, optional): Enable plotting wakes/turbines. Defaults to False.

Returns:

turbs_downstream (iterable): A list containing the turbine numbers that have a wake that does not affect any other turbine inside the farm.