floris.core.turbine.controller_dependent_operation_model#
Classes
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.