floris.core.turbine.controller_dependent_operation_model#

Classes

ControllerDependentTurbine()

Static class defining a wind turbine model that may be misaligned with the flow.

class floris.core.turbine.controller_dependent_operation_model.ControllerDependentTurbine[source]#

Static class defining a wind turbine model that may be misaligned with the flow. Nonzero tilt and yaw angles are handled via the model presented in https://doi.org/10.5194/wes-2023-133 .

The method requires C_P, C_T look-up tables as functions of tip speed ratio and blade pitch angle, available here: "floris/turbine_library/iea_15MW_demo_cp_ct_surface.npz" for the IEA 15MW reference turbine. As with all turbine submodules, implements only static power() and thrust_coefficient() methods, which are called by power() and thrust_coefficient() on turbine.py, respectively. There are also two new functions, i.e. compute_local_vertical_shear() and control_trajectory(). These are called by thrust_coefficient() and power() to compute the vertical shear and predict the turbine status in terms of tip speed ratio and pitch angle. This class is not intended to be instantiated; it simply defines a library of static methods.

Developed and implemented by Simone Tamaro, Filippo Campagnolo, and Carlo L. Bottasso at Technische Universität München (TUM). email: simone.tamaro@tum.de

static power(power_thrust_table, velocities, air_density, yaw_angles, tilt_angles, power_setpoints, average_method='cubic-mean', cubature_weights=None, **_)[source]#
Parameters:
  • power_thrust_table (dict)

  • velocities (ndarray[tuple[int, ...], dtype[float64]])

  • air_density (float)

  • yaw_angles (ndarray[tuple[int, ...], dtype[float64]])

  • tilt_angles (ndarray[tuple[int, ...], dtype[float64]])

  • power_setpoints (ndarray[tuple[int, ...], dtype[float64]])

  • average_method (str)

  • cubature_weights (ndarray[tuple[int, ...], dtype[float64]] | None)

static thrust_coefficient(power_thrust_table, velocities, yaw_angles, tilt_angles, power_setpoints, tilt_interp, average_method='cubic-mean', cubature_weights=None, correct_cp_ct_for_tilt=False, **_)[source]#
Parameters:
  • power_thrust_table (dict)

  • velocities (ndarray[tuple[int, ...], dtype[float64]])

  • yaw_angles (ndarray[tuple[int, ...], dtype[float64]])

  • tilt_angles (ndarray[tuple[int, ...], dtype[float64]])

  • power_setpoints (ndarray[tuple[int, ...], dtype[float64]])

  • tilt_interp (ndarray[tuple[int, ...], dtype[object_]])

  • average_method (str)

  • cubature_weights (ndarray[tuple[int, ...], dtype[float64]] | None)

  • correct_cp_ct_for_tilt (bool)

static axial_induction(power_thrust_table, velocities, yaw_angles, tilt_angles, power_setpoints, tilt_interp, average_method='cubic-mean', cubature_weights=None, correct_cp_ct_for_tilt=False, **_)[source]#
Parameters:
  • power_thrust_table (dict)

  • velocities (ndarray[tuple[int, ...], dtype[float64]])

  • yaw_angles (ndarray[tuple[int, ...], dtype[float64]])

  • tilt_angles (ndarray[tuple[int, ...], dtype[float64]])

  • power_setpoints (ndarray[tuple[int, ...], dtype[float64]])

  • tilt_interp (ndarray[tuple[int, ...], dtype[object_]])

  • average_method (str)

  • cubature_weights (ndarray[tuple[int, ...], dtype[float64]] | None)

  • correct_cp_ct_for_tilt (bool)

static compute_local_vertical_shear(velocities)[source]#

Called to evaluate the vertical (linear) shear that each rotor experience, based on the inflow velocity. This allows to make the power curve asymmetric w.r.t. yaw misalignment.

static control_trajectory(rotor_average_velocities, yaw_angles, tilt_angles, air_density, R, shear, power_setpoints, power_thrust_table)[source]#

Determines the tip-speed-ratio and pitch angles that occur in operation. This routine assumes a standard region 2 control approach (i.e. k*rpm^2) and a region 3. Also region 2-1/2 is considered. In the future, different control strategies could be included, even user-defined.

static find_cp(sigma, cd, cl_alfa, gamma, delta, k, cosMu, sinMu, tsr, theta, MU, ct)[source]#
static get_ct(x, *data)[source]#

System of equations for Ct, as represented in Eq. (25) of Tamaro et al. x is a stand-in variable for Ct, which a numerical solver will solve for. data is a tuple of input parameters to the system of equations to solve.