Wind turbine models#
FLORIS generally represents wind turbines as actuator disks specified by a power curve and a
thrust coefficient curve (both specified as a function of wind speed). We can easily investigate the
power and thrust coefficients of a turbine by running a single-turbine FlorisModel
using a range
of wind speeds.
import numpy as np
import matplotlib.pyplot as plt
from floris import FlorisModel, TimeSeries
n_wind_speeds = 100
wind_speeds = np.linspace(0.1, 30, n_wind_speeds)
fmodel = FlorisModel("defaults") # Defaults to NREL 5MW turbine
fmodel.set(
wind_data=TimeSeries(
wind_directions=np.zeros(n_wind_speeds),
wind_speeds=wind_speeds,
turbulence_intensities=0.06
),
layout_x=[0],
layout_y=[0],
wind_shear=0.0
)
fmodel.run()
powers = fmodel.get_turbine_powers()
thrust_coefficients = fmodel.get_turbine_thrust_coefficients()
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(wind_speeds, powers)
ax[0].grid()
ax[0].set_ylabel("Power [kW]")
ax[1].plot(wind_speeds, thrust_coefficients)
ax[1].grid()
ax[1].set_ylabel("Thrust coefficient [-]")
ax[1].set_xlabel("Wind speed [m/s]")
ax[1].set_xlim([0, 30])
(0.0, 30.0)

Prepackaged turbine models#
FLORIS ships with three reference wind turbine models: the NREL 5MW turbine
Jonkman et al. [1],
the IEA 10 MW turbine Kainz et al. [2], and the IEA 15 MW turbine
Gaertner et al. [3]. The
turbine models used for FLORIS simulations can be changed by specifying the turbine_type
keyword
argument to FlorisModel.set()
. See Turbine Library for more details.
fig, ax = plt.subplots(2, 1, sharex=True)
turbine_models = ["nrel_5MW", "iea_10MW", "iea_15MW"]
for turbine_model in turbine_models:
fmodel.set(turbine_type=[turbine_model], reference_wind_height=-1)
fmodel.run()
powers = fmodel.get_turbine_powers()
thrust_coefficients = fmodel.get_turbine_thrust_coefficients()
ax[0].plot(wind_speeds, powers, label=turbine_model)
ax[1].plot(wind_speeds, thrust_coefficients)
ax[0].grid()
ax[0].set_ylabel("Power [kW]")
ax[0].legend()
ax[1].grid()
ax[1].set_ylabel("Thrust coefficient [-]")
ax[1].set_xlabel("Wind speed [m/s]")
ax[1].set_xlim([0, 30])
(0.0, 30.0)

User-defined wind turbine models#
Users may also provide their own wind turbine models, provided that they contain the appropriate
information. To include your own wind turbine model in your main FLORIS input YAML, use the
!include
specifier, e.g.
turbine_type:
- !include path/to/your/turbine.yaml
You can also set
the turbine_type
to your own turbine using the path, e.g.
fmodel.set(turbine_type=["path/to/your/turbine.yaml"])
The following pages describe in closer detail how wind turbines are implemented in FLORIS and provide information on advanced wind turbine operation and modeling.
Note
The TurbineInterface
and TurbineLibrary
classes are now deprecated and will be removed in a
future release. Users should simply use an instantiated FlorisModel
to investigate wind turbine
models.