Predefined Engineering wind farm model classes
NOJ
- class py_wake.literature.noj.Jensen_1983(site, windTurbines, rotorAvgModel=<py_wake.rotor_avg_models.area_overlap_model.AreaOverlapAvgModel object>, ct2a=<function ct2a_madsen>, k=0.1, superpositionModel=<py_wake.superposition_models.SquaredSum object>, deflectionModel=None, turbulenceModel=None, groundModel=None)[source]
- Implemented according to:
Niels Otto Jensen, “A note on wind generator interaction.” (1983)
- Features:
Top-hat shape for the wake profile.
Wake superposition is done with the squared sum model as default.
Given the top-hat shape, the Area Overlap Average model is used as default, which includes the wake radius.
- __init__(site, windTurbines, rotorAvgModel=<py_wake.rotor_avg_models.area_overlap_model.AreaOverlapAvgModel object>, ct2a=<function ct2a_madsen>, k=0.1, superpositionModel=<py_wake.superposition_models.SquaredSum object>, deflectionModel=None, turbulenceModel=None, groundModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
k (float, default 0.1) – wake expansion factor
superpositionModel (SuperpositionModel, default SquaredSum) – Model defining how deficits sum up
blockage_deficitModel (DeficitModel, default None) – Model describing the blockage(upstream) deficit
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default None) – Model describing the amount of added turbulence in the wake
BastankhahGaussian
- class py_wake.literature.gaussian_models.Bastankhah_PorteAgel_2014(site, windTurbines, k, ceps=0.2, ct2a=<function ct2a_mom1d>, use_effective_ws=True, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, groundModel=None)[source]
- Implemented according to:
Bastankhah M and Porté-Agel F. A new analytical model for wind-turbine wakes. J. Renew. Energy. 2014;70:116-23.
- Description:
Conservation of mass and momentum is applied with the assumption of a Gaussian shape for the wake profile in the calculation of the wake deficit.
Only one parameter needed to determine the velocity distribution: the wake expansion parameter k.
- __init__(site, windTurbines, k, ceps=0.2, ct2a=<function ct2a_mom1d>, use_effective_ws=True, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, groundModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
k (float) – Wake expansion factor
use_effective_ws (bool) – Option to use either the local (True) or free-stream wind speed (False) experienced by the ith turbine
rotorAvgModel (RotorAvgModel, optional) –
Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.
if None, default, the wind speed at the rotor center is used
superpositionModel (SuperpositionModel, default SquaredSum) – Model defining how deficits sum up
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default None) – Model describing the amount of added turbulence in the wake
IEA37SimpleBastankhahGaussian
- class py_wake.IEA37SimpleBastankhahGaussian(site, windTurbines, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.SquaredSum object>, deflectionModel=None, turbulenceModel=None)[source]
Predefined wind farm model
- __init__(site, windTurbines, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.SquaredSum object>, deflectionModel=None, turbulenceModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
rotorAvgModel (RotorAvgModel, optional) –
Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.
if None, default, the wind speed at the rotor center is used
superpositionModel (SuperpositionModel, default SquaredSum) – Model defining how deficits sum up
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default None) – Model describing the amount of added turbulence in the wake
NiayifarGaussian
- class py_wake.literature.gaussian_models.Niayifar_PorteAgel_2016(site, windTurbines, a=[0.3837, 0.003678], ceps=0.2, ct2a=<function ct2a_mom1d>, use_effective_ws=True, use_effective_ti=True, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=<py_wake.turbulence_models.crespo.CrespoHernandez object>, rotorAvgModel=<py_wake.rotor_avg_models.gaussian_overlap_model.GaussianOverlapAvgModel object>, groundModel=None)[source]
- Implemented according to:
Amin Niayifar and Fernando Porté-Agel Analytical Modeling of Wind Farms: A New Approach for Power Prediction Energies 2016, 9, 741; doi:10.3390/en9090741 [1]
- Features:
Conservation of mass and momentum and a Gaussian shape for the wake profile.
Wake expansion function of local turbulence intensity.
- Description:
The expansion rate ‘k’ varies linearly with local turbluence intensity: k = a1 I + a2.
The default constants are set according to publications by Porte-Agel’s group, which are based on LES simulations. Lidar field measurements by Fuertes et al. (2018) indicate that a = [0.35, 0.0] is also a valid selection.
Wake superposition is represented by linearly adding the wakes.
The Crespo Hernandez turbulence model is used to calculate the added streamwise turbulence intensity, Eq 14 in [1].
- __init__(site, windTurbines, a=[0.3837, 0.003678], ceps=0.2, ct2a=<function ct2a_mom1d>, use_effective_ws=True, use_effective_ti=True, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=<py_wake.turbulence_models.crespo.CrespoHernandez object>, rotorAvgModel=<py_wake.rotor_avg_models.gaussian_overlap_model.GaussianOverlapAvgModel object>, groundModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
superpositionModel (SuperpositionModel, default LinearSum) – Model defining how deficits sum up
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default CrespoHernandez) – Model describing the amount of added turbulence in the wake
use_effective_ws (bool) – Option to use either the local (True) or free-stream (False) wind speed experienced by the ith turbine
use_effective_ti (bool) – Option to use either the local (True) or free-stream (False) turbulence intensity experienced by the ith turbine
ZongGaussian
- class py_wake.literature.gaussian_models.Zong_PorteAgel_2020(site, windTurbines, a=[0.38, 0.004], deltawD=0.7071067811865475, eps_coeff=0.35, lam=7.5, B=3, use_effective_ws=True, use_effective_ti=True, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.WeightedSum object>, deflectionModel=None, turbulenceModel=<py_wake.turbulence_models.crespo.CrespoHernandez object>, groundModel=None)[source]
- Implemented according to:
Haohua Zong and Fernando Porté-Agel “A momentum-conserving wake superposition method for wind farm power prediction” J. Fluid Mech. (2020), vol. 889, A8; doi:10.1017/jfm.2020.77
- Features:
Conservation of mass and momentum and a Gaussian shape for the wake profile.
Wake expansion function of local turbulence intensity.
New wake width expression following the approach by Shapiro et al. (2018).
- Description:
Extension of the Niayifar et al. (2016) implementation with adapted Shapiro wake model components, namely a gradual growth of the thrust force and an expansion factor not falling below the rotor diameter. Shapiro modelled the pressure and thrust force as a combined momentum source, that are distributed in the streamwise direction with a Gaussian kernel with a certain characteristic length. As a result the induction changes following an error function. Zong chose to use a characteristic length of D/sqrt(2) and applies it directly to the thrust not the induction as Shapiro. This leads to the full thrust being active only 2D downstream of the turbine. Zong’s wake width expression is inspired by Shapiro’s, however the start of the linear wake expansion region (far-wake) was related to the near-wake length by Vermeulen (1980). The epsilon factor that in the original Gaussian model was taken to be a function of CT is now a constant as proposed by Bastankhah (2016), as the near-wake length now effectively dictates the origin of the far-wake.
- __init__(site, windTurbines, a=[0.38, 0.004], deltawD=0.7071067811865475, eps_coeff=0.35, lam=7.5, B=3, use_effective_ws=True, use_effective_ti=True, rotorAvgModel=None, superpositionModel=<py_wake.superposition_models.WeightedSum object>, deflectionModel=None, turbulenceModel=<py_wake.turbulence_models.crespo.CrespoHernandez object>, groundModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
superpositionModel (SuperpositionModel, default SquaredSum) – Model defining how deficits sum up
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default None) – Model describing the amount of added turbulence in the wake
use_effective_ws (bool) – Option to use either the local (True) or free-stream (False) wind speed experienced by the ith turbine
use_effective_ti (bool) – Option to use either the local (True) or free-stream (False) turbulence intensity experienced by the ith turbine
SuperGaussian
- class py_wake.literature.gaussian_models.Blondel_Cathelain_2020(site, windTurbines, use_effective_ws=True, use_effective_ti=True, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, rotorAvgModel=None, groundModel=None)[source]
- Implemented according to:
Blondel and Cathelain (2020) An alternative form of the super-Gaussian wind turbine wake model Wind Energ. Sci., 5, 1225–1236, 2020 https://doi.org/10.5194/wes-5-1225-2020 [1]
- Features:
Wake profile transitions from top-hat at near wake to Gaussian at far wake.
characteristic wake width (sigma) function of turbulence intensity and CT.
evolution of super gaussian “n” order function of downwind distance and turbulence intensity.
- Description:
Super gaussian wake order “n” is determined with the calibrated parameters: a_f, b_f, c_f; with a_f kept constant at 3.11.
Calibrated parameters taken from Table 2 and 3 in [1].
Linear summation of the wakes based on Shapiro (2019) https://www.mdpi.com/1996-1073/12/15/2956
Turbulence model is set to None. The Crespo Hernandez model is recommended.
- __init__(site, windTurbines, use_effective_ws=True, use_effective_ti=True, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, rotorAvgModel=None, groundModel=None)[source]
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
superpositionModel (SuperpositionModel, default SquaredSum) – Model defining how deficits sum up
deflectionModel (DeflectionModel, default None) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel, default None) – Model describing the amount of added turbulence in the wake
use_effective_ws (bool) – Option to use either the local (True) or free-stream (False) wind speed experienced by the ith turbine
use_effective_ti (bool) – Option to use either the local (True) or free-stream (False) turbulence intensity experienced by the ith turbine
TurbOPark
- class py_wake.Nygaard_2022(site, windTurbines)[source]
- Implemented similar to:
Ørsted’s TurbOPark model (https://github.com/OrstedRD/TurbOPark/blob/main/TurbOPark%20description.pdf)
- Features:
Velocity deficit defined as in Bastankhah and Porté-Agel (2014) with a Gaussian profile.
Wake expansion calculation considers the combination of the ambient turbulence intensity (I0) and the turbulence generated by the wake itself.
The expression by Frandsen (2007) is used to model the turbulence in the turbine’s wake, which depends on the thrust coefficient and downstream distance.
Wake expansion parameter (A) calibrated from data and constant at A = 0.04.
The squared sum wake superposition model from Katic et al (1986) is used as default.
The mirror model is used as the default ground model.
- __init__(site, windTurbines)[source]
Initialize flow model
- Parameters:
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
wake_deficitModel (DeficitModel) – Model describing the wake(downstream) deficit
rotorAvgModel (RotorAvgModel, optional) –
Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.
if None, default, the wind speed at the rotor center is used
superpositionModel (SuperpositionModel) – Model defining how deficits sum up
deflectionModel (DeflectionModel) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel) – Model describing the amount of added turbulence in the wake
Fuga
- class py_wake.literature.fuga.Ott_Nielsen_2014(LUT_path, site, windTurbines, rotorAvgModel=None, deflectionModel=None, turbulenceModel=None, remove_wriggles=False)[source]
- Implemented according to:
Ott, S., & Nielsen, M. (2014). Developments of the offshore wind turbine wake model Fuga. DTU Wind Energy. DTU Wind Energy E No. 0046
- Description:
Fuga is a linearized CFD model that can predict wake effects for offshore wind farms.
It has the ability to work with different types of turbines for the same project, which makes it useful for inter farm interactions.
- __init__(LUT_path, site, windTurbines, rotorAvgModel=None, deflectionModel=None, turbulenceModel=None, remove_wriggles=False)[source]
- Parameters:
LUT_path (str) – path to look up tables
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
rotorAvgModel (RotorAvgModel, optional) –
Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.
if None, default, the wind speed at the rotor center is used
deflectionModel (DeflectionModel) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel) – Model describing the amount of added turbulence in the wake
FugaBlockage
- class py_wake.literature.fuga.Ott_Nielsen_2014_Blockage(LUT_path, site, windTurbines, rotorAvgModel=None, deflectionModel=None, turbulenceModel=None, convergence_tolerance=1e-06, remove_wriggles=False)[source]
- Implemented according to:
Ott, S., & Nielsen, M. (2014). Developments of the offshore wind turbine wake model Fuga. DTU Wind Energy. DTU Wind Energy E No. 0046
- Description:
Fuga is a linearized CFD model that can predict wake effects for offshore wind farms.
It has the ability to work with different types of turbines for the same project, which makes it useful for inter farm interactions.
An additional blockage model is added and the All2AllIterative wind farm model is used to model blockage effects.
- __init__(LUT_path, site, windTurbines, rotorAvgModel=None, deflectionModel=None, turbulenceModel=None, convergence_tolerance=1e-06, remove_wriggles=False)[source]
- Parameters:
LUT_path (str) – path to look up tables
site (Site) – Site object
windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines
rotorAvgModel (RotorAvgModel, optional) –
Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.
if None, default, the wind speed at the rotor center is used
deflectionModel (DeflectionModel) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.
turbulenceModel (TurbulenceModel) – Model describing the amount of added turbulence in the wake