Source code for foxes.models.wake_models.induction.self_similar2020
import numpy as np
from .self_similar import SelfSimilar
[docs]
class SelfSimilar2020(SelfSimilar):
"""
The self-similar 2020 induction wake model
from Troldborg and Meyer Forsting
The individual wake effects are superposed linearly,
without invoking a wake superposition model.
Notes
-----
References:
[1] Troldborg, Niels, and Alexander Raul Meyer Forsting.
"A simple model of the wind turbine induction zone derived from numerical simulations."
Wind Energy 20.12 (2017): 2011-2020.
https://onlinelibrary.wiley.com/doi/full/10.1002/we.2137
[2] Forsting, Alexander R. Meyer, et al.
"On the accuracy of predicting wind-farm blockage."
Renewable Energy (2023).
https://www.sciencedirect.com/science/article/pii/S0960148123007620
:group: models.wake_models.induction
"""
def _a0(self, ct, x_R, gamma=1.1):
"""Helper function: define a0 with gamma factor, eqn 8 from [2]"""
x_new = np.minimum(np.maximum(-1 * np.abs(x_R), -6), -1)
c = (self._mu(x_new) - self._mu(-1)) / (self._mu(-6) - self._mu(-1))
fg1 = -0.06489
fg2 = 0.4911
fg3 = 0.1577
fg4 = 1.116
far_gamma = fg1 * np.sin((ct - fg2) / fg3) + fg4
ng1 = -1.381
ng2 = 2.627
ng3 = -1.524
ng4 = 1.336
near_gamma = ng1 * ct**3 + ng2 * ct**2 + (ng3 * ct) + ng4
gamma = c * far_gamma + (1 - c) * near_gamma
return self.induction.ct2a(gamma * ct)
def _r_half(self, x_R):
"""Helper function: define induction zone half radius (eqn 13)"""
return -0.672 * x_R + 0.4897