Articles | Volume 9, issue 7
https://doi.org/10.5194/wes-9-1577-2024
https://doi.org/10.5194/wes-9-1577-2024
Research article
 | 
24 Jul 2024
Research article |  | 24 Jul 2024

On the importance of wind predictions in wake steering optimization

Elie Kadoche, Pascal Bianchi, Florence Carton, Philippe Ciblat, and Damien Ernst
Abstract

Wake steering is a technique that optimizes the energy production of a wind farm by employing yaw control to misalign upstream turbines with the incoming wind direction. This work highlights the important dependence between wind direction variations and wake steering optimization. The problem is formalized over time as the succession of multiple steady-state yaw control problems interconnected by the rotational constraints of the turbines and the evolution of the wind. Then, this work proposes a reformulation of the yaw optimization problem of each time step by augmenting the objective function by a new heuristic based on a wind prediction. The heuristic acts as a penalization for the optimization, encouraging solutions that will guarantee future energy production. Finally, a synthetic sensitivity analysis of the wind direction variations and wake steering optimization is conducted. Because of the rotational constraints of the turbines, as the magnitude of the wind direction fluctuations increases, the importance of considering wind prediction in a steady-state optimization is empirically demonstrated. The heuristic proposed in this work greatly improves the performance of controllers and significantly reduces the complexity of the original sequential decision problem by decreasing the number of decision variables.

1 Introduction

As global energy consumption increases, there is a strong willingness and necessity to decarbonize electricity production. Hence, renewable energies are becoming increasingly important (Chu and Majumdar2012). Wind energy, particularly, is the focus of considerable research and development, with turbines becoming larger and more numerous within wind farms. Ensuring efficient control as wind turbines operate is necessary to maximize the benefits of wind energy.

In the context of global warming, designing more efficient wind farms is essential. Wake steering is the subject of growing interest within the community to optimize the energy production of wind farms. However, most research regarding wind farm control technologies disregards the relevance of the wind direction variation. This work is motivated by a central question: from what magnitude of wind direction fluctuations is it necessary to consider the wind evolution in a wake steering optimization? To answer this question, this work proposes a new controller based on wind predictions and conducts a synthetic sensitivity analysis of wake steering and wind evolution using steady-state models and artificial wind data.

In wind farm optimization, the use of low-fidelity models (usually based on steady-state models) is favored over higher-fidelity models (usually based on computational fluid dynamics and real-time wake interaction) due to the complexity and computational load associated with solving dynamic equations for every turbine in the farm. Some recent works such as Janssens and Meyers (2024) explore real-time optimal control of wind farms using large-eddy simulations (LESs). However, this research area is still in the early stages and for large-scale wind farm optimization, steady-state models are still widely used.

In wind farm flow control (WFFC), developing effective closed-loop controllers is essential for scaling to larger wind farms and dealing with unpredictable wind conditions. These controllers dynamically adapt their strategies in real time using continuous sensor feedback to guide their decisions. Model-based, closed-loop controllers, in particular, rely on simulators of the environment to conduct continuous optimization while the farm is in operation. Fast and computationally efficient simulation is crucial for these controllers to quickly react to wind and turbines changes. This work focuses on the optimization process itself, adhering to community standards by using widely accepted, open-source, low-fidelity simulators.

1.1 Wake effect

A single wind turbine reaches its maximum power output when fully aligned with the wind. When the wind direction changes, a turbine uses its yaw to rotate its nacelle on a horizontal plane. By using active yaw control, a wind turbine can keep track of the changes in the wind direction and ensure maximum energy production over time by minimizing its misalignment with the wind. It corresponds to greedy control, where a wind turbine solely tries to maximize its power output (Yang et al.2021).

In the space immediately behind a turbine, the wind speed is slower and more turbulent. Such a phenomenon is called the “wake effect” and is the natural consequence of wind power extraction by the machine. When a wind turbine is located in the wake of another, its power output is reduced (because of a slower wind speed) and its fatigue increased (because of the turbulence). Within a wind farm, depending on the wind direction and the farm layout, most of the turbines can be affected by the wake of others.

Because of wake effects, greedy control can be suboptimal within a farm. Therefore, instead of keeping every turbine aligned with the wind, yaw control can also be used to voluntarily misalign some turbines in relation to the direction of the wind (Boersma et al.2017). When a turbine is misaligned with the wind, its wake effect is steered. By intelligently yawing the turbines and steering the wake effects, the wind flow across the turbines can be optimized. Such a method is known as WFFC (Meyers et al.2022). A simple example of a two-turbine wind farm is given in Fig. 1.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f01

Figure 1Example of WFFC on a two-turbine wind farm with the wind coming from the west. The first (upstream) turbine is misaligned and its wake effect is steered away from the second (downstream) turbine. By letting the wind flow more freely to the second turbine, the misalignment of the first turbine increases the total power output of the farm.

Download

Current implemented wake steering strategies usually involve lookup tables (LUTs) (Fleming et al.2017; Siemens Gamesa Renewable Energy2019). Wake steering strategies are computed for a finite set of different wind conditions prior to the farm operation. The yaw angles of each turbine are computed with steady-state models, regardless of the wind and turbine dynamics. Because a wake steering strategy creates misalignment with the wind, it is highly dependent on variations in the direction of the wind. The wind direction can change over time, and yaw control is constrained by the limited rotational speed of the nacelles. If the wind varies in directions and frequencies that the yaw actuators cannot easily track, computing adequate wake steering strategies over time can be a challenging task.

1.2 Wind direction dynamics

The study of wind direction dynamics is gaining interest within the research community. Wind direction dynamics can be broken down into large-scale drifts and small-scale fluctuations (van Doorn et al.2000) and can be observed on different scales: the synoptic scale describes long distances and extended time periods, the mesoscale depicts the farm level and time periods from days to weeks, and the microscale corresponds to the turbine level and variations from seconds to minutes. The wind direction is fundamentally nonstationary, and there is incomplete knowledge regarding the physical and statistical characteristics of wind direction fluctuations across specific length scales and timescales that are essential for effective WFFC (Dallas et al.2024).

As the farm operates, the wind direction varies in both time (at the farm level) and space (at the turbine level). The study by von Brandis et al. (2023) found that spatial wind direction changes relevant to the operation of wind farm clusters in the German Bight exceed 11° in 50 % of cases. In this present work, numerical simulations are run with steady-state wake models. Therefore, only variations in the wind at the farm level are studied. When the direction varies over time, this work considers it to affect the whole wind farm.

WFFC is most beneficial at low wind speeds because this is where small changes in the wind speeds can lead to important power output variations. The same wake steering strategy will lead to higher power gains at low speeds compared to higher wind speed. Because the wind direction variability is higher for low wind speeds (von Brandis et al.2023; van Doorn et al.2000; Dallas et al.2024), the study of dependence between wind direction variations and yaw control is important. Also, because the impact of climate change on wind dynamics is unknown, designing robust controllers is necessary for long-term operation.

1.3 Related works

As tracking wind direction is essential for wind turbines, the literature is rich in studies seeking better wind direction tracking mechanisms. Song et al. (2018) developed a model predictive control (MPC)-based controller on a finite control set to track the wind directions. Hure et al. (2015) designed a yaw controller based on very short-term wind predictions. But performing WFFC and wake steering is a more complex optimization problem.

LUTs can be adapted for dynamic control with different methods. Usually, a low-pass filter is used to apply control only for high variations of the direction. A sampling method can be used to adjust the yaw control frequency, and hysteresis mechanisms avoid unnecessary yaw control and restrict the yaw actuators (Kanev2020a). Simley et al. (2021) improved a traditional LUT by anticipating the wind direction changes ahead of upstream turbines. Kanev (2020b) performed WFFC with a receding horizon using gradient-based optimization and ran tests in large-eddy simulations under realistic variations in wind direction and speed. But the wake steering strategies of an LUT fundamentally do not consider the wind dynamics; only their implementation does.

Regarding machine learning (ML) methods, and more particularly reinforcement learning (RL), which is becoming a source of great interest to the scientific community, wind direction variations are often overlooked. The importance of the wind direction dynamics is clearly pointed out by Saenz-Aguirre et al. (2019) and Saenz-Aguirre et al. (2020), but most of the studies carried out later only consider static or quasi-static wind directions. Some recent works have started to consider time-varying wind directions in WFFC optimization (Kadoche et al.2023).

1.4 Contributions

The remainder of this paper is structured to mirror the three main contributions. Each contribution forms the basis of an individual section, and Sect. 5 concludes. The contributions and their corresponding sections are as follows.

  • This work proposes a discretized formalization of the WFFC problem over time as the succession of multiple steady-state optimization problems interconnected by the rotational constraints of the turbines and the evolution of the wind. Due to the discretization hypothesis and the yaw actuation constraints, the important hypotheses regarding the transition between one steady state and the next are formulated. This formalization is conducted in Sect. 2.

  • To develop a prediction-based controller, this work presents a reformulation of the instantaneous, steady-state original sequential decision problem over a future time window. The default objective function is augmented by a new heuristic, computed on a prediction of the wind. The proposed heuristic acts as a penalization for the optimization without increasing its dimension and encourages solutions that will guarantee future energy production. The heuristic and the other studied controllers are detailed in Sect. 3.

  • This work conducts a sensitivity analysis of the wind direction variations and wake steering optimization. It empirically demonstrates the importance of a wind-prediction-based control when the magnitude of the wind direction fluctuations becomes large. The new proposed heuristic greatly improves the performance of a traditional steady-state wake steering optimization when the variations of the wind direction are important. Numerical simulations using synthetic wind data are conducted in Sect. 4.

2 Problem formalization

The environment is composed of a wind farm and some exogenous variables related to the wind direction and the wind speed. The wind farm consists of N interconnected wind turbines. Over time, each turbine is controlled via its yaw. An episode consists of a succession of H time steps during which the turbines are controlled, with H the horizon length. The transition from a time step t to a time step t+1 corresponds to a specific time window of a constant length of Δt minutes. The environment evolves from one time step t to the next time step t+1 in Δt minutes, with t{0,1,,H-1}.

2.1 Wind data

At a time step t, the exogenous variables are a global incoming wind direction Kt[0,360] [°] and a global incoming wind speed Vt[νmin,νmax] [m s−1]. The wind data can be measured or predicted. Then, a controller does not have access to Kt and Vt directly but to Kt [°] and Vt [m s−1], with Kt a noisy wind direction defined as Kt=Kt+ϵK,t, and Vt is a noisy wind speed defined as Vt=Vt+ϵV,t. The random noises ϵK,t and ϵV,t can come from either measurement imprecisions or prediction errors.

Because the turbines alter the wind flow inside the farm, the wind in front of a turbine can be different from the global incoming wind. Then, at a time step t, in front of a turbine i, the local wind direction is denoted as κti [°] and the local wind speed is denoted as νti [m s−1]. The computation of the local velocities is based on complex fluid mechanics and is subject to numerous uncertainties. This work conducts numerical experiments where such computations are done using a low-fidelity, steady-state simulator: FLOw Redirection and Induction in Steady State (FLORIS) NREL (2021). The local wind directions stay equal to the global wind direction for any time step, i.e., κti=Kti{0,1,,N-1}, as is common for low-fidelity, steady-state simulations.

2.2 Turbines

At a time step t, a turbine i is characterized by its absolute angular position βti[0,360] [°] and its relative orientation or yaw (often used to compute the power output) αti=fyaw(Kt,βti)[-180,180] [°] such that

(1) f yaw ( K t , β t i ) = ( K t - β t i + 180 ) mod 360 - 180 .

Adding and subtracting by 180 ensures that the yaw stays in the range [-180,180]. As illustrated in Fig. 2, the yaw corresponds to the rotational movement going from the absolute angular position βti to the wind direction Kt such that βti+αtimod360=Kt. Positive values of the yaw indicate that the turbine is rotated anticlockwise from the wind direction, and negative values of the yaw indicate that the turbine is rotated clockwise from the wind direction.

At a time step t, the yaw setting uti[umin,umax] [°] of a turbine i corresponds to the rotational movement of the turbine between time steps t and t+1. Because of mechanical constraints related to the yaw actuator of the nacelle, the yaw setting is bounded between two consecutive time steps. As illustrated in Fig. 2, the setting is used to update the orientation of the turbine βt+1i=fcontrol(βti,uti) such that

(2) f control ( β t i , u t i ) = ( β t i + u t i ) mod 360 .
https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f02

Figure 2Example of a wind turbine i seen from above at a time step t. The variables are the wind direction Kt, the absolute angular position βti of the turbine, and the yaw αti of the turbine. The wind direction indicates where the wind is coming from; e.g., a wind direction of 270° indicates a wind coming from the west. Here, the nacelle is misaligned with the incoming wind direction: the turbine is rotated clockwise from the wind, so αti<0. The yaw setting uti gives the next orientation of the turbine at time step t+1.

Download

2.3 Power

The power curve Φ of a turbine gives the theoretical power output (megawatts, MW; y axis) of the machine as a function of the wind speed ν [m s−1] (x axis), considering no yaw misalignment, such that

(3) Φ ( ν ) = 1 2 ρ A ν 3 C P ( ν ) ,

with ρ [kg m−3] the air density, A [m2] the rotor blade area, and CP the power coefficient of the turbine. The theoretical power output is strictly positive if the wind speed is within certain bounds [νcut-in,νcut-out] [m s−1].

At a time step t, the power output of a turbine i considering yaw misalignment Pti=fpower(νti,αti) [MW] is computed from the power curve and the yaw angle such that

(4) f power ( ν t i , α t i ) = Φ ( ν t i ) cos p ( α t i ) 𝟙 { α cut-in α t i α cut-out } ,

with p a parameter accounting for power losses due to misalignment and [αcut-in,αcut-out] [°] a safety bound for the yaw taken into account by the indicator function. Because too much misalignment with the wind can damage the machine, if the yaw is too great, the turbine is shut down and its power output is null.

2.4 Policy

A policy π is a function returning the yaw settings (ut0,ut1,,utN-1) of all the turbines at a time step t given a state st. Each wind farm controller is associated with a specific policy. In this work, the state st may be composed of

  • the current orientations of the turbines {βti}i{0,1,,N-1},

  • an observation of the current wind (Kt,Vt),

  • a prediction of the wind at time step t+1 (Kt+1,Vt+1),

  • a prediction of the wind at time step t+2 (Kt+2,Vt+2), and

  • until time step t+L, with L the prediction horizon.

Therefore, the general form of a state is st={Kt,Vt,Kt+1,Vt+1,,Kt+L,Vt+L,{βti}i{0,1,,N-1}}. States can be categorized based on two distinct properties: with perfect or imperfect information and with or without foresight knowledge. Depending on the possible combinations, there are four classes of states, listed in Table 1.

Table 1Four different classes of states based on two distinct properties, with t{0,1,,H-1} and k{0,1,,L}. With perfect information, the state comprises exact wind data (no noise). Without foresight, the state only comprises the current wind data (no predictions).

Download Print Version | Download XLSX

2.5 System evolution

An episode is defined by H time steps during which turbines are controlled via their yaw. An episode is characterized by time series for the wind directions and the wind speeds as well as initial positions for the nacelles. During an episode, it is assumed that all the states belong to the same class (defined in Table 1) and the policy is presumed to be stationary (it does not change over time).

The full evolution of an episode is described in Algorithm (1). At each time step, the policy returns the yaw settings based on the current state, the system is updated, and the power output of the farm is computed. The yaw setting of a turbine i at the end of time step t is indexed t+1 (because it has been updated) and it is the one used for the power computation of time step t.

Algorithm 1Full episode evolution over time.

Input: {Kk,Vk}k{0,1,,H+L-1} true wind data time series
{β0i}i{0,1,,N-1} initial orientations
π yaw control policy
for t={0,1,,H-1} do
st={Kt,Vt,Kt+1,Vt+1,,Kt+L,Vt+L,{βti}i{0,1,,N-1}}
state
(ut0,ut1,,utN-1)=π(st)
control policy
βt+1i=fcontrol(βti,uti),i{0,,N-1}
angular positions update
αt+1i=fyaw(Kt,βt+1i),i{0,,N-1}
yaw angles computation
νti=fsimulationi(Kt,Vt,{αt+1j}j{0,1,,N-1}),i{0,,N-1}
local velocities computation
Pti=fpower(νti,αt+1i),i{0,,N-1}
power outputs computation
end for
Output: t=0H-1i=0N-1Pti farm power output

At a time step t, to compute the power output of each turbine, local wind velocities are needed. Such computations rely on complex fluid mechanics, depending on the incoming wind and the updated yaw angles of each turbine. For optimization, performing such complex computations is computationally expensive. Therefore, in this work, these computations are carried out by a steady-state simulator νti=fsimulationi(Kt,Vt,{αt+1j}j{0,1,,N-1}), which is used as a substitute for real-life measurements.

The simulation is said to be steady-state because it only depends on the current global wind data and the updated yaw angles. It does not consider previous wind data, previous yaw angles, or time delays in the wake propagation. The evolution of an episode over time is constrained by the rotational bounds of the turbines and the variations of the wind.

At each time step, during the “control policy” operation, a controller knows the evolution mechanisms of the system; i.e., it can conduct any computations with the fcontrol,fyaw,fsimulationi, and fpower functions but based on the wind data provided by the state. Because such data can be noisy, all the computed values can be inexact. For example, at a time step t, if a controller computes the yaw of a turbine i based on its updated orientation βt+1i, it would be equal to αt+1i=fyaw(Kt,βt+1i). Because the observed wind direction Kt can be different from the true wind direction Kt, the yaw αt+1i estimated by a controller can be different from its true value αt+1i.

2.6 Transition regime

At a time step t, for a turbine i, and due to the steady-state nature of the simulation, the WFFC problem thus formalized considers a single power output Pti. In reality, during a time step, the wind is time-varying and a turbine takes time to rotate because of mechanical constraints. Therefore, the discretization of the continuous control problem results in the loss of some information and possibly less inaccurate power outputs. To ensure that the discretized power outputs are good approximations, from one time step to another, a turbine is assumed to rotate immediately and the wind is assumed to be quasi-constant.

The duration of a time step is always considered constant during an episode. At a time step t, when a setting uti is applied to a turbine i, the rotational time Tr (minutes) for the turbine to go from its current orientation βti to its next orientation βt+1i is always considered largely inferior to the duration of the time step, i.e., Tr≪Δt for all uti[umin,umax]. A turbine always rapidly reaches its target position before the end of the time step duration. But during a time step, no other control will be applied to the turbine. For this reason, the rotational constraints [umin,umax] need to be consistent with the duration of a time step Δt.

The coherence time Tc (minutes) of a wind variable (either the direction or the speed) is the maximum duration during which the variable is quasi-constant. If the coherence time of the wind direction is strictly smaller than the time step duration, a discretized value Kt would stretch too far away from its corresponding continuous signal. The same goes for the speed. Therefore, in this work, the coherence time is always equal to the time step duration, i.e., Tct, for both the direction and the speed.

3 Controllers

At a time step t, the yaw settings (ut0,ut1,,utN-1) are denoted as ut. A controller is defined by its policy π(st) with the state st described in Sect. 2.4. This work compares a naive control where each turbine is aligned as much as possible with the wind and three optimized wake steering control strategies. In an episode, at each time step t, during the control policy operation of Algorithm (1), each controller computes the yaw settings such that ut=π(st) by maximizing a specific objective function fobj(st,ut) with regard to the turbine rotational constraints, as defined below.

(5)π(st)argmaxutfobj(st,ut),(6)subject touminutiumax,t{0,1,,H-1},i{0,1,,N-1}.

3.1 Naive controller

The naive controller always tries to keep turbines aligned with the current wind direction as much as possible. It is a weak baseline as it does not conduct any wake steering optimization. It runs with no foresight (i.e., L=0), as it is only concerned with the current observed wind direction Kt. Therefore, the state st is reduced to {Kt,{βti}i{0,1,,N-1}}. It consists of a greedy control (no wake steering) where the objective function at a time step t minimizes the amplitude of the yaws, i.e.,

(7)fobj(st,ut)=-i=0N-1|αt+1i|,(8)withαt+1i=fyaw(Kt,βt+1i),(9)withβt+1i=fcontrol(βti,uti).

At a time step t, the rotational movement required for a turbine i to stay aligned with the observed wind direction is equal to fyaw(Kt,βti). Because of the rotational constraints, this movement is clipped such that it is always an acceptable setting with regards to the yaw actuator, giving a closed-form expression for the solution, defined as

(10)πnaive=(ut0,ut1,,utN-1),(11)such thatuti=clip(fyaw(Kt,βti),umin,umax),i{0,1,,N-1}.

3.2 Wake steering

Compared to naive control, wake steering is used to optimize the power output of the farm. In this work, two distinct wake steering strategies are used. One is based only on the instantaneous wind data, and one is based on instantaneous and predicted wind data. The instantaneous controller searches for the yaw settings maximizing the instantaneous power output of the farm. The prediction-based controller maximizes the instantaneous and future power outputs. At each time step t, the same Gauss–Seidel (GS) method is used for both controllers, but with different objective functions. In this work, optimization is conducted with a GS method (described in Algorithm A1). A similar approach was first proposed by Fleming et al. (2022) with a serial-refine algorithm.

The GS method works as follows. A first solution is initialized from the naive controller, where each initial yaw setting keeps its turbine aligned as much as possible with the wind. Then, the GS method iterates over each turbine, from upstream to downstream ones. At each iteration, it solves the optimization problem for the current turbine, considering the yaw settings of all others fixed, by conducting a grid search over a discretized solution space S={umin+lumax-uminny-1} for all l{0,1,,ny-1}, with ny being a precision parameter. Once optimized, the setting of the current turbine is updated, and it goes to the next one.

3.2.1 Instantaneous controller

The instantaneous controller searches for the yaw settings maximizing the immediate power output of the farm. It always runs under no foresight (i.e., L=0), as it performs wake steering for the current observed wind data only. Therefore, the state st is reduced to {Kt,Vt,{βti}i{0,1,,N-1}}. It is a steady-state optimization performed on one time step where the objective function at a time step t is the immediate normalized power output, i.e.,

(12)fobj(st,ut)=1Ni=0N-1fpower(νti,αt+1i),(13)withνti=fsimulationi(Kt,Vt,{αt+1j}j{0,1,,N-1}),(14)withαt+1i=fyaw(Kt,βt+1i),(15)withβt+1i=fcontrol(βti,uti).

3.2.2 Prediction-based controller

A traditional prediction-based controller searches for the yaw settings of time steps t,t+1,,t+L that maximize the power output over that horizon. It always runs with foresight (i.e., L⩾1). The corresponding sequential decision problem over a future time window can be stated under a form usually exploited by the MPC community, defined as

(16)maxut,ut+1,,ut+L1Nk=0Li=0N-1fpower(νt+ki,αt+k+1i),(17)subject touminut+kiumax,t{0,1,,H-1},k{0,1,,L},i{0,1,,N-1},(18)withνt+ki=fsimulationi(Kt+k,Vt+k,{αt+k+1j}j{0,1,,N-1}),(19)withαt+k+1i=fyaw(Kt+k,βt+k+1i),(20)withβt+k+1i=fcontrol(βt+ki,ut+ki).

The optimization problem thus described multiplies the number of decision variables by L+1. Also, the computation of the local velocities at a given time step depends on all the previous yaw settings. Therefore, the prediction-based decision problem significantly increases the complexity, and because there is no simple solution, this work proposes a reformulation. The objective function given by Eq. (16) can be split between the current time step t and the next ones, from t+1 to t+L, such that

(21) 1 N k = 0 L i = 0 N - 1 f power ( ν t + k i , α t + k + 1 i ) = 1 N f power ( ν t i , α t + 1 i ) first term + 1 N k = 1 L i = 0 N - 1 f power ( ν t + k i , α t + k + 1 i ) second term .

The first term of Eq. (21) is the normalized power output of the farm for the current time step. It corresponds to the objective function of the instantaneous controller defined in Sect. 3.2.1. It only depends on the current yaw settings ut. Now, focusing on the second term, the closed-form expression of the fpower is written, giving

(22) 1 N k = 1 L i = 0 N - 1 f power ( ν t + k i , α t + k + 1 i ) = 1 N k = 1 L i = 0 N - 1 Φ ( ν t + k i ) cos p ( α t + k + 1 i ) 𝟙 { α cut-in α t + k + 1 i α cut-out } .

The complexity brought by the prediction-based controller comes from the fact that Eq. (22) depends on the local velocities νt+ki and the updated yaw angles αt+k+1i corresponding to the optimized yaw settings of each future time step. To decrease the complexity, this work proposes modifying Eq. (22) in the following way.

  • Each local velocity νt+ki is replaced by the corresponding predicted global wind speed Vt+k. It reduces the complexity coming from the steady-state simulation by removing the dependence on the updated yaw angles. While this simplification removes future local wind data, it retains some information regarding potential future energy production by relying on the predicted global wind data only.

  • Each updated yaw angle αt+k+1i depending on the optimized yaw setting ut+ki is replaced by the expected yaw angle α^t+k+1i if a naive controller was used instead. It reduces the complexity coming from the optimization, as there is a closed-from expression for the naive controller, as provided by Eq. (10). Replacing the wake steering optimization performed in the future with a naive wind tracking solution reduces the number of optimization variables of the original problem while keeping good solutions. Indeed, proper yaw settings are known to be close to the wind on average.

  • The cosine function at power p of each yaw angle is replaced with a simpler penalization for yaw misalignment. The penalization chosen corresponds to 1 minus the normalized absolute value of that yaw angle. It provides linearity and better interpretability.

  • The indicator function is removed so that there is no discontinuity. Even if a yaw is too great, it can be of some interest for the optimization to know about the potential power output. The more a turbine is misaligned, the less likely it will be to produce energy and the more it will be penalized.

  • For each time step, the overall expression is multiplied by a discounted factor γ[0,1]. It gives more importance to immediate time steps. It is common practice for model-predictive-based optimization.

The only variables specific to each turbine are the yaw angles updated from a naive controller, which are already normalized. Therefore, it becomes unnecessary to normalize the overall expression by N. With such modifications, Eq. (22) becomes a new heuristic t defined as

(23)Ht(st,ut)=k=1Lγk-1Φ(Vt+k)1-1N1180i=0N-1|α^t+k+1i|,(24)withα^t+k+1i=fyaw(Kt+k,β^t+k+1i),(25)withβ^t+k+1i=fcontrol(β^t+ki,u^t+ki),u^t+kicomputed with a naive controllerdefined by Eq. (10),(26)withβ^t+1i=fcontrol(βti,uti),uticomputed from a wakesteering optimization.

Because this new proposed heuristic depends on neither the future optimized yaw settings (naive control) nor the future local velocities (no simulation), it does not increase the number of optimization variables. The heuristic is a scalar acting as a penalization for the optimization. The final objective function of the prediction-based controller can finally be written as

(27)fobj(st,ut)=1Ni=0N-1fpower(νti,αt+1i)+Ht(st,ut),(28)withνti=fsimulationi(Kt,Vt,{αt+1j}j{0,1,,N-1}),(29)withαt+1i=fyaw(Kt,βt+1i),(30)withβt+1i=fcontrol(βti,uti),(31)withHt(st,ut)defined by Eq. (23).

The heuristic is the discounted weighted sum of the future theoretical power outputs. By choosing certain optimized yaw settings ut for the current time step, the heuristic uses a naive controller over a future time horizon of L time steps to evaluate how well the turbines will manage to stay aligned with the predicted wind directions. The higher the potential future energy production, the more critical it becomes for the current yaw settings not to rotate the turbines too far away from the predicted wind direction.

For example, if the future expected power outputs are high, the heuristic will encourage yaw settings that will put the turbines in good orientations for the future. The heuristic will penalize the objective function for yaw settings that will prevent turbines from keeping track of the wind. An illustration of the heuristic is given in Fig. 3, describing the first term (wake steering optimization) and the second term (heuristic based on a wind tracking control) of Eq. (27).

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f03

Figure 3Illustration of the heuristic for a turbine i at time step t for two different cases. The horizon is L=2 and the wind data are the same for cases A and B. The rotation zone represents the range of possible orientations a turbine can take at a given time step after being controlled. First, wake steering optimization is performed to find the setting uti, which yields a power output of PA MW for case A and PB MW for case B at time step t. By considering PA>PB, case A would be preferred. But then the heuristic computes the future expected yaw angles if a naive wind tracking solution is used. From these expected yaw angles, the heuristic computes the expected power outputs based on the predicted wind speeds. Here, while the yaw setting of case A gives a better immediate solution than the one given by case B, it keeps the turbine further away (i.e., giving greater yaw angles) from the future wind. The solution of case B would then be preferable. The heuristic encourages the choice of yaw settings that may not be the best at the current time step but that ensures future power output.

Download

3.3 Upper bound

To have an upper bound in terms of performance (power output) of a wake steering strategy, the rotational constraints are relaxed. It means that in Eq. (6), the variables umin and umax are equal to 180 and 180°, respectively. Between two consecutive time steps, each turbine is assumed to be capable of reaching any orientation.

From a different point of view, the upper bound corresponds to the wake steering instantaneous controller, but for a complete steady-state version of the system evolution presented in Algorithm (1). All time steps are entirely independent from each other, as there are no longer any rotational constraints for the turbines.

The same objective function of the instantaneous controller, presented in Sect. 3.2.1, is used. It always runs under no foresight (i.e., L=0), as it performs wake steering for the current wind data only. Therefore, the state st is reduced to {Kt,Vt,{βti}i{0,1,,N-1}}. The yaw settings computed by the upper bound would not be admissible in reality if the corresponding targeted orientations are too far away from the current ones.

4 Simulations

In Sect. 4.1 the process used to generate wind data is described, and in Sect. 4.2 the experiment setting is given. Finally, the results and the empirical conclusions that can be drawn are explained in Sect. 4.3.

4.1 Wind data scenario

The wind data time series are artificially generated with custom Wiener processes. The wind directions {Kt}t{0,1,,H+L-1} are computed with Algorithm (2). The wind speeds {Vt}t{0,1,,H+L-1} are computed with Algorithm (3). To generate the time series, an initial value is cumulatively incremented at each time step by variable mt. Each increment mt is independently sampled from a normal distribution of mean 0 and standard deviation σt such that

(32) σ t = τ × δ t X , t { 0 , 1 , , H + L - 1 } ,

with τ a normalization variable with regard to the number and range of the generated values and δtX a variation parameter for the wind variable X (either the direction or the speed).

Algorithm 2Wind direction generator.

Input: H+L number of points
Kinit initial wind direction
δminK,δmaxK bounds for the variation variable
τ=360/(H+L)
for t={0,1,,H+L-1} do
δtKU(δminK,δmaxK)
σt=τ×δtK
mtN(0,σt)
Kt=(Kinit+i=0tmi)mod360
end for
Output: {Kt}t{0,1,,H+L-1} wind direction time series

Algorithm 3Wind speed generator.

Input: H+L number of points
Vinit initial wind speed
νmin,νmax bounds for the wind speed
δminV,δmaxV bounds for the variation variable
τ=(νmax-νmin)/(H+L)
for t={0,1,,H+L-1} do
δtVU(δminV,δmaxV)
σt=τ×δtV
mtN(0,σt)
Vt=mirrored(Ninit+i=0tmi)
end for
Output: {Vt}t{0,1,,H+L-1} wind speed time series

To maintain the wind directions in the range of valid values, i.e., [0,360] [°], the modulo operation is sufficient. To maintain the wind speeds in the range of valid values, i.e., [νmin,νmax] [m s−1], a mirrored function as explained in Fig. 4 is proposed. The generated values inside the wind speed bounds are not modified. The generated values outside the bounds are recursively mirrored inside the bounds.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f04

Figure 4Toy example of the mirrored function used to keep the generated wind speeds inside specific bounds. Raw data are generated thanks to a process described by Algorithm (3). Raw data points inside the wind speed bounds are not modified: the black and red curves overlap. Data points outside the wind speed bounds are recursively mirrored inside the bounds.

Download

The variable δtX defines the level of variation of the wind variable X time series (either the direction or the speed). When equal to 0, the signal is constant. As δtX increases, the absolute value of the increments increases on average. At each time step, δtX is sampled from a uniform distribution defined between δminX and δmaxX. When δminX and δmaxX are equal, all increments {mt}t{0,1,,H+L-1} are independently sampled from the same distribution: the generated time series is stationary with regard to the increments. When δminX<δmaxX, increments are independently sampled from different distributions: the generated time series is nonstationary with regard to the increments. In Fig. 5 the impact of the δtK variable is shown for the wind direction.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f05

Figure 5(a) Sine and cosine values for δtK=1. (b) Sine and cosine values for δtK=4. (c) Sine and cosine values for δtK=9. Example of different wind direction signals generated with different δtK values, considering that δtK=δminK=δmaxK for all t{0,1,,49} and Kinit=7°. If δtK=0, all the generated points are equal to Kinit. The sine and cosine values are plotted for illustration convenience (it avoids the discontinuity issue of degrees). Note that the behavior shown in this example is the same for the wind speed, but values are in the range [νmin,νmax].

Download

4.2 Experimental setting

The function fsimulationi(Kt,Vt,{αt+1j}j{0,1,,N-1}) computes the local wind speed in front of a turbine i at a time step t given wind data Kt,Vt, and the yaw of each turbine {αt+1j}j{0,1,,N-1}. This function, introduced in Sect. 2.5, is ensured by the low-fidelity, steady-state simulator FLORIS (NREL2021). FLORIS is used with a Gauss curl hybrid wake model. The Gaussian velocity model is implemented based on Bastankhah and Porté-Agel (2016) and Niayifar and Porté-Agel (2016). To compute the deflection of the wakes depending on the yaws, the models described by Bastankhah and Porté-Agel (2016) and King et al. (2021) are used. The turbulence model described by Crespo and Hernández (1996) is used. The optional wake modeling options “secondary steering”, “yaw added recovery”, and “transverse velocities”, provided by FLORIS and giving additional features to the fsimulationi function, are enabled.

A wind farm of 34 International Energy Agency (IEA) identical 15 MW (Gaertner et al.2020) wind turbines is used. It has cut-in and cut-out speeds of νcut-in=3 m s−1 and νcut-out=25 m s−1, respectively. Each wind turbine has a rotor diameter of 242.24 m, i.e., a rotor area of 46 087  m2. The air density is ρ=1.225 kg m−3 and the tunable parameter accounting for the power losses due to misalignment is p=1.88. WFFC strategies are sensitive to the distances between turbines. To make the numerical simulations more robust to the distances between turbines, a diamond shape is used for the layout. With a diamond shape, there is an identical distance between each machine and its surrounding turbines. Using 34 machines creates a sufficiently large wind farm for wake steering to be impactful and is sufficiently small for optimization to converge quickly. A FLORIS illustration of the layout used is given in Fig. 6.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f06

Figure 6Layout in the form of a diamond shape. The farm comprises 34 identical IEA 15 MW wind turbines. There is an identical space equivalent to the diameter of four turbines between a machine and its adjacent turbines. A distance of four turbine diameters is sufficiently small to create detrimental wake effects for the farm, and therefore the optimization is pertinent and sufficiently large for the design to be realistic. Here the direction is 287.4°, the wind speed is 8.4 m s−1, and yaws are computed with the instantaneous wake steering controller.

Download

The limits for the wind speed are νmin=4 m s−1 and νmax=10 m s−1. The interval [4,10] m s−1 approximately corresponds to the ascending part of the power curve, where wake steering is the most beneficial for the farm. For wind speeds of [10,25] m s−1, the power output is constant; if the wind speed is reduced because of wake effects, there will be no power deficit. Because this work conducts a sensitivity analysis of yaw control, the wind speed is kept in the range of [4,10] m s−1.

The horizon size is H=144 and the length of the foresight for the prediction-based controller is L=10. The initial wind values are Kinit=270° and Vinit=8 m s−1. The discount factor used for the heuristic t is γ=0.99. The precision parameter for the GS methods is ny=120, giving the grid search method good precision.

More technical details regarding the simulations and numerical instabilities are given in Appendix B. The time step duration Δt is intentionally undefined, as it will be explained in Sect. 4.3.1. Depending on the time step duration value, different interpretations of the same results will be made. For example, if Δt corresponds to 5 min, then the horizon L=10 means that the prediction-based controller has access to a prediction of the wind of 50 min. In Table 2, a summary of the experimental setting used in this work is given.

Table 2Detail of the variables and their values used across the simulations. This configuration is shared by all the numerical simulations. The foresight length is equal to 10 only for the prediction-based controller. Otherwise, it is equal to 0. The yaw rotational constraints will vary across the simulations, but αcut-in and αcut-out are always equal to umin and umax, respectively.

Download Print Version | Download XLSX

4.3 Results

To empirically demonstrate the importance of optimizing yaw control over a long-term time horizon, numerical simulations are performed with perfect and imperfect (noisy) wind predictions. In the graphs, for each curve, the centerline corresponds to the mean and the colored (shaded) area corresponds to the standard deviation of the results obtained through 11 Monte Carlo trials.

For one episode, the total farm power output of a controller C given by Algorithm (1) is denoted as PC=t=0H-1i=0N-1Pti. The metric to benchmark a controller C is the power gain [%] between the total farm power output of C and the total farm power output of the naive controller. The power gain is equal to 100(PC-Pnaive)Pnaive.

4.3.1 Perfect predictions

The first set of simulations explores the performance of each controller over increasing variations of wind directions using perfect predictions. Each state comprises perfect information, i.e., ϵK,t=0 and ϵV,t=0 for all t{0,1,,153}. The performance of each controller presented in Sect. 3 is tested for increasing values of δtK.

Numerical simulations are run on 21 different values of δtK, with δtK{0,1,2,,20}. The wind speed is always generated with δtV=1. Because this work explores the impact of wind direction on wake steering, the magnitude of the wind speed fluctuations is kept small. The wind direction and wind speed increments are stationary: δtK=δminK=δmaxK and δtV=δminV=δmaxV for all t{0,1,,153}.

The objective here is to study the impact of the wind direction variations on yaw control. The greater the δtK value, the stronger the variations. Because the nacelles have a limited rotational speed, the study of the wind direction fluctuations is crucial for yaw control. The standard deviations of the wind direction time series are related to the δtK parameter in Eq. (32). To better illustrate the wind direction evolution, the time series ΔK defined as

(33) Δ K = { | f yaw ( K t + 1 , K t ) | } t { 0 , 1 , , 153 }

is used. Each value of ΔK lies in the range [0,180] [°]. To study the magnitude of the variations, the absolute values are taken. Figure 7 illustrates the influence of some δtK time series on the magnitude of wind direction variations ΔK.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f07

Figure 7(a) The mean value (and standard deviation) of wind direction variations is given as a function of δtK. For example, for δtK=5, the mean absolute variation of the wind direction is around 6.11°. (b) Example of time series ΔK for different values of δtK{0,4,8,12,16,20}. Again, as the δtK parameter increases, the magnitude of the variations of the wind direction increases.

Download

In Fig. 8, the power gains of each controller compared to a naive controller are plotted. The yaw limits umin and αcut-in are equal to 15° (a) or 30° (b). And umax and αcut-out are equal to 15° (a) or 30° (b). These yaw constraints offer enough liberty for a wind turbine to rotate between two consecutive time steps and are small enough to limit the induced fatigue. The detailed results are given in Appendix C in Tables C1 and C2.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f08

Figure 8(a) Yaw limits are umin=αcut-in=-15° and umax=αcut-out=15°. At δtK=6, the prediction-based controller increases the power output of a naive approach by 6.23 %. It corresponds to absolute variations of the wind direction of 7.34° as displayed in Fig. 7. (b) Yaw limits are umin=αcut-in=-30° and umax=αcut-out=30°. At δtK=10, the prediction-based controller increases the power output of a naive approach by 8.93 %. It corresponds to absolute variations of the wind direction of 12.23° as displayed in Fig. 7. Considering future wind data in a steady-state yaw control optimization becomes mandatory when δtk6 for yaw constraints [-15,15]° and δtk10 for yaw constraints [-30,30]. From these points, the heuristic t provided by the prediction-based controller greatly improves the performance of a classic instantaneous steady-state optimization.

Download

As the variations of the wind direction increase, the performance of each controller diverges from the others. For small variations of the wind direction, both the instantaneous controller and the prediction-based controller give similar results. When the variations of the wind direction become large, the instantaneous controller struggles to maintain good performance. The heuristic of the prediction-based controller manages to find better yaw control strategies. The gap between the performance of the upper bound with the other controllers shows how strong wind direction variations, in relation to the rotational constraints of each machine, impact yaw control.

Based on the results given in Fig. 8, several general statements can be drawn. As previously said, the time step duration is intentionally imprecise. The reason is that different values of Δt will lead to different interpretations. The following statement is true for any values of Δt, with respect to the hypotheses of the transition regime, described in Sect. 2.6.

  • For wind turbines that can rotate from 15 to 15° every Δt minutes, if the wind direction changes by more than 7.34° every Δt minutes, it is important to consider future wind data in a steady-state yaw control optimization.

  • For wind turbines that can rotate from 30 to 30° every Δt minutes, if the wind direction changes by more than 12.23° every Δt minutes, it is important to consider future wind data in a steady-state yaw control optimization.

4.3.2 Noisy predictions

In the second set of simulations, the robustness to noisy predictions of each controller is tested. The yaw limits are umin=αcut-in=-15° and umax=αcut-out=15°. The {Kt}t{0,1,,153} time series are computed with δminK=0 and δmaxK=20. The time series {Vt}t{0,1,,153} are always computed with δtV=δminV=δmaxV=1. Because δminKδmaxK, the increments are nonstationary for the wind direction. The corresponding ΔK time series is plotted in Fig. 9.

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f09

Figure 9Plot of the time series ΔK for the 11 different seeds. Wind directions are generated with δminK=0 and δmaxK=20. The mean is 12.53° and the standard deviation is 1.12. Here, the increments vary from one time step to another because they are nonstationary.

Download

In Fig. 10, the noise for the wind direction is increasing, i.e., ϵK,tU(-zK,zK) with zK{0,1,,15}, for each t{0,1,,153}. The noise for the wind speed is always sampled from the same distribution, i.e., ϵV,tU(-1,1). In Fig. 10, the noise for the wind speed is increasing, i.e., ϵV,tu(-zV,zV) with zV{0,1,,7}, for each t{0,1,,153}. The noise for the wind direction is always sampled from the same distribution, i.e., ϵK,tU(-1,1).

https://wes.copernicus.org/articles/9/1577/2024/wes-9-1577-2024-f10

Figure 10(a) The noises for the wind directions are ϵK,tU(-zK,zK) with zK{0,1,,15} for each t{0,1,,153}. The noise for the wind speeds is always sampled from a uniform distribution U(-1,1). (b) The noises for the wind speeds are ϵV,tU(-zV,zV) with zV{0,1,,7} for each t{0,1,,153}. The noise for the wind directions is always sampled from a uniform distribution U(-1,1).

Download

Only the noise applied to the wind directions strongly impacts the different policies. The prediction-based controller results in a poorer performance than a naive controller from a noise of 8°. The wind speed noise insignificantly affects the performance of the algorithms. This corroborates the fact that yaw control mainly depends on the wind directions. Because the prediction-based controller uses more wind data points, it is more robust than the instantaneous controller.

5 Conclusions

As WFFC is becoming more important to increase the energy production of wind farms, this work studies wake steering as a steady-state optimization problem over time. The yaw control problem is formalized as successive multiple steady-state optimization problems interconnected by the rotational constraints of the turbines and the evolution of the wind. Because the function computing the power outputs is steady-state, only the dynamics of a homogeneous global wind and the rotational constraints of the machines are captured. Low-fidelity, steady-state simulators are used because they are not time-consuming and they are suitable for optimization. But future works should perform the same studies with continuous and higher-fidelity simulators such as HAWC2Farm (Liew et al.2023), better capturing the dynamics of the wake effects from one time step to another. This becomes especially important when the variations of the wind direction become important.

Traditionally, yaw control is optimized in a steady-state manner. Yaw settings are computed so that they maximize the instantaneous power output of the farm. To optimize wake steering over a long-term time horizon, an MPC method is usually used. Such an approach increases the complexity of the optimization problem, making it harder to solve. To overcome such complexity, a reformulation of the steady-state optimization problem is proposed in this work to consider future wind data. The traditional objective function is augmented by a new heuristic estimating the future expected theoretical power outputs of the farm, weighted by how far the turbines will be from the wind if they are controlled by a naive approach. The new prediction-based controller proposed in this paper has the same number of decision variables as an instantaneous optimization.

Lastly, this work conducts a sensitivity analysis of yaw control and the variations of the wind direction. It demonstrates the importance of optimizing yaw control over future wind data when the variations of the wind directions become large. For strong wind variations, the new prediction-based controller greatly improves the performance without increasing complexity. This work shows, for example, that if deploying wind turbines that can rotate from 15 to 15° every Δt minutes, and if the wind direction changes by more than 7.34° every Δt minutes, it is important to consider future wind data in a steady-state yaw control optimization. Experiments empirically show the effectiveness of the simplifications proposed in this work in a specific experimental setting, but future research could better justify and quantify their impact on the original prediction-based decision problem.

This study is conducted on synthetic wind data so future works should explore the same question of dependence between the wind variations and yaw control over real wind data. Because the hypotheses regarding the transition regime may be far from reality, the proposed heuristic could be combined with low-pass filters and hysteresis mechanisms for more realistic implementations. Future works should incorporate the fatigue in the optimization process, as WFFC can have a major impact on the lifetime of each turbine. For example, the objective function of the prediction-based controller could be augmented by a heuristic taking into account the magnitude of the yaw actuations. However, the results provided by this work also suggest that with wake steering strategies more robust to wind direction variations, it would be possible to reach the same level of performance with fewer yaw actuations.

Appendix A: Gauss–Seidel method

Algorithm A1GS method.

Input: st input state
cxti,cyti=(cxi,cyi)(cos(270-Kt)-sin(270-Kt)sin(270-Kt)cos(270-Kt))
rotate turbines
R={i0,i1,,iN-1|cxti0cxti1cxtiN-1}
order turbines
(ut,0i0,ut,0i1,,ut,0iN-1)=πnaive(st)
initialize yaw settings
for iR do
S={umin+lumax-uminny-1},l{0,1,,ny-1}
discretized solution space
U=(ut,1i0,ut,1i1,,ui,,ut,0iN-2,ut,0iN-1)
fix all other settings
ut,1iargmaxuiSfobj(st,U)
grid search optimization
end for
Output: (ut,1i0,ut,1i1,,ut,1iN-1) yaw settings

The GS method iterates over each turbine in the direction of the wind, one by one, from upstream turbines to downstream ones. The turbines' default coordinates {cxi,cyi}i{0,1,,N-1} [m] are rotated such that the wind is coming from the west. The initial yaw settings are computed with a naive controller. By doing so, the initial solution is already a good enough solution that keeps turbines as aligned with the wind as possible. At each iteration, it solves the optimization problem by varying the yaw setting of the current turbine, considering all the others fixed. To solve each optimization problem on one variable, a grid search approach over a discretized solution space S is used. Once solved, the setting for turbine k is fixed and optimization is conducted again on turbine k+1. Such an approach gives good results because it exploits the sequential nature of the low-fidelity simulation.

Appendix B: Numerical instabilities

First, some modifications have been made to FLORIS in order to shut down turbines misaligned too much with the wind during a simulation. At a time step t, for a given turbine i, all the possible yaw settings can give a similar power output. In such cases, the best yaw setting is the one staying the closest to the wind direction in order to prevent future misalignment. To incorporate such behavior in the optimization process and to make the controllers robust to numerical instabilities, the following steps are taken.

  • Round out the power output computed by the simulator.

  • Take the yaw setting uti maximizing the objective function.

  • Find all the yaw settings giving a performance close to the maximum.

  • Among these selected settings, keep the one closest to the setting corresponding to the naive controller.

To compute the solutions of the upper-bound controller described in Sect. 3.3, a trick is used. Relaxing the rotational constraints of the turbines, i.e., making umin and umax equal to 180 and 180°, respectively, increases the solution space. With the same precision parameter ny, it reduces the precision of the grid search method. To keep the solution space between umin and umax, and therefore not to alter the precision of the grid search method, the evolution of the system described in Algorithm (1) is slightly modified. At the beginning of each time step, every turbine is realigned with the wind direction. Such a trick does not alter the solutions given by the upper-bound controller because good yaw settings are the ones keeping turbines close to the wind direction.

Appendix C: Detailed results

Table C1Detailed results of the simulations conducted on perfect predictions in Sect. 4.3.1. Yaw limits are umin=αcut-in=-15° and umax=αcut-out=15°. For each δtK the total power output of the farm in 104 MW is given for each controller.

Download Print Version | Download XLSX

Table C2Detailed results of the simulations conducted on perfect predictions in Sect. 4.3.1. Yaw limits are umin=αcut-in=-30° and umax=αcut-out=30°. For each δtK the total power output of the farm in 104 MW is given for each controller.

Download Print Version | Download XLSX

Appendix D: Nomenclature
N Number of wind turbines
Δt Time step duration
H Horizon length
Kt Wind direction
Vt Wind speed
Kt Observed wind direction
Vt Observed wind speed
νti Local wind speed
βti Absolute orientation
αti Yaw angle
fyaw Yaw angle computation function
uti Yaw setting
fcontrol Absolute orientation update function
Φ Theoretical power output function
fpower Power output function
st Controller state
ϵK,t Wind direction noise
ϵV,t Wind speed noise
fsimulation Local velocities computation function
Pti Turbine power output
π Control policy
ut All turbine yaw settings
fobj Controller objective function
Appendix E: Acronyms
FLORIS FLOw Redirection and Induction in Steady State
GS Gauss–Seidel
IEA International Energy Agency
LESs large-eddy simulations
LUT lookup table
ML machine learning
MPC model predictive control
MW megawatts
RL reinforcement learning
WFFC wind farm flow control
Code availability

The code related to the simulation is open-source and is publicly accessible at https://github.com/NREL/floris.git (NREL, 2021). The code related to the controllers is not publicly accessible as it is the property of TotalEnergies OneTech. For any details or questions, please write to elie.kadoche@totalenergies.com.

Data availability

The farm and turbine data are publicly accessible at https://github.com/NREL/floris.git (NREL, 2021). The wind data used in this paper are fully synthetic. The whole generation process is detailed in Sect. 4.1. The parameters of the generated wind data time series are given in Sect. 4.2 and 4.3.

Author contributions

EK contributed to the original idea of the heuristic, implemented the codes, conducted all the simulations, and wrote most of the paper. PB, FC, PC, and DE contributed to the writing and review of the paper.

Competing interests

The contact author has declared that none of the authors has any competing interests.

Disclaimer

Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.

Acknowledgements

The authors are grateful for the support of the R&D Wind program of TotalEnergies OneTech, especially Cédric Eneau for his support.

Review statement

This paper was edited by Johan Meyers and reviewed by two anonymous referees.

References

Bastankhah, M. and Porté-Agel, F.: Experimental and theoretical study of wind turbine wakes in yawed conditions, J. Fluid Mech., 806, 506–541, https://doi.org/10.1017/jfm.2016.595, 2016. a, b

Boersma, S., Doekemeijer, B. M., Gebraad, P. M. O., Fleming, P. A., Annoni, J., Scholbrock, A. K., Frederik, J. A., and van Wingerden, J.: A tutorial on control-oriented modeling and control of wind farms, in: 2017 American Control Conference (ACC), 18 pp., https://doi.org/10.23919/ACC.2017.7962923, 2017. a

Chu, S. and Majumdar, A.: Opportunities and challenges for a sustainable energy future, Nature, 488, 294–303, https://doi.org/10.1038/nature11475, 2012. a

Crespo, A. and Hernández, J.: Turbulence characteristics in wind-turbine wakes, J. Wind Eng. Ind. Aerod., 61, 71–85, https://doi.org/10.1016/0167-6105(95)00033-X, 1996. a

Dallas, S., Stock, A., and Hart, E.: Control-oriented modelling of wind direction variability, Wind Energ. Sci., 9, 841–867, https://doi.org/10.5194/wes-9-841-2024, 2024. a, b

Fleming, P., Annoni, J., Shah, J. J., Wang, L., Ananthan, S., Zhang, Z., Hutchings, K., Wang, P., Chen, W., and Chen, L.: Field test of wake steering at an offshore wind farm, Wind Energ. Sci., 2, 229–239, https://doi.org/10.5194/wes-2-229-2017, 2017. a

Fleming, P. A., Stanley, A. P. J., Bay, C. J., King, J., Simley, E., Doekemeijer, B. M., and Mudafort, R.: Serial-Refine Method for Fast Wake-Steering Yaw Optimization, J. Phys. Conf. Ser., 2265, 032109, https://doi.org/10.1088/1742-6596/2265/3/032109, 2022. a

Gaertner, E., Rinker, J., Sethuraman, L., Zahle, F., Anderson, B., Barter, G. E., Abbas, N. J., Meng, F., Bortolotti, P., Skrzypinski, W., Scott, G. N., Feil, R., Bredmose, H., Dykes, K., Shields, M., Allen, C., and Viselli, A.: IEA Wind TCP Task 37: Definition of the IEA 15-Megawatt Offshore Reference Wind Turbine, Technical Report, https://doi.org/10.2172/1603478, 2020. a

Hure, N., Turnar, R., Vašak, M., and Benčić, G.: Optimal wind turbine yaw control supported with very short-term wind predictions, in: 2015 IEEE International Conference on Industrial Technology (ICIT), Seville, Spain, 17–19 March 2015, 385–391, https://doi.org/10.1109/ICIT.2015.7125129, 2015. a

Janssens, N. and Meyers, J.: Towards real-time optimal control of wind farms using large-eddy simulations, Wind Energ. Sci., 9, 65–95, https://doi.org/10.5194/wes-9-65-2024, 2024. a

Kadoche, E., Gourvénec, S., Pallud, M., and Levent, T.: MARLYC: Multi-Agent Reinforcement Learning Yaw Control, Renew. Energ., 217, 119129, https://doi.org/10.1016/j.renene.2023.119129, 2023. a

Kanev, S.: Dynamic wake steering and its impact on wind farm power production and yaw actuator duty, Renew. Energ., 146, 9–15, https://doi.org/10.1016/j.renene.2019.06.122, 2020a. a

Kanev, S.: Dynamic wake steering and its impact on wind farm power production and yaw actuator duty, Renew. Energ., 146, 9–15, https://doi.org/10.1016/j.renene.2019.06.122, 2020b. a

King, J., Fleming, P., King, R., Martínez-Tossas, L. A., Bay, C. J., Mudafort, R., and Simley, E.: Control-oriented model for secondary effects of wake steering, Wind Energ. Sci., 6, 701–714, https://doi.org/10.5194/wes-6-701-2021, 2021. a

Liew, J., Göçmen, T., Lio, A. W. H., and Larsen, G. Chr.: Extending the dynamic wake meandering model in HAWC2Farm: a comparison with field measurements at the Lillgrund wind farm, Wind Energ. Sci., 8, 1387–1402, https://doi.org/10.5194/wes-8-1387-2023, 2023. a

Meyers, J., Bottasso, C., Dykes, K., Fleming, P., Gebraad, P., Giebel, G., Göçmen, T., and van Wingerden, J.-W.: Wind farm flow control: prospects and challenges, Wind Energ. Sci., 7, 2271–2306, https://doi.org/10.5194/wes-7-2271-2022, 2022. a

Niayifar, A. and Porté-Agel, F.: Analytical Modeling of Wind Farms: A New Approach for Power Prediction, Energies, 9, 741, https://doi.org/10.3390/en9090741, 2016. a

NREL: FLORIS. Version 3.4.1, GitHub [code and data set], https://github.com/NREL/floris (last access: 4 October 2023), 2021. a, b

Saenz-Aguirre, A., Zulueta, E., Fernandez-Gamiz, U., Lozano, J., and Lopez-Guede, J. M.: Artificial Neural Network Based Reinforcement Learning for Wind Turbine Yaw Control, Energies, 12, 436, https://doi.org/10.3390/en12030436, 2019. a

Saenz-Aguirre, A., Zulueta, E., Fernandez-Gamiz, U., Ulazia, A., and Teso-Fz-Betono, D.: Performance enhancement of the artificial neural network–based reinforcement learning for wind turbine yaw control, Wind Energy, 23, 676–690, https://doi.org/10.1002/we.2451, 2020. a

Siemens Gamesa Renewable Energy: Siemens Gamesa now able to actively dictate wind flow at offshore wind locations, https://www.siemensgamesa.com/en-int/newsroom/2019/11/191126-siemens-gamesa-wake-adapt-en (last access: 15 May 2023), 2019. a

Simley, E., Fleming, P., King, J., and Sinner, M.: Wake Steering Wind Farm Control With Preview Wind Direction Information: Preprint, https://www.osti.gov/biblio/1778702 (last access: 4 January 2021), 2021. a

Song, D., Yang, J., Fan, X., Liu, Y., Liu, A., Chen, G., and Joo, Y. H.: Maximum power extraction for wind turbines through a novel yaw control solution using predicted wind directions, Energ. Convers. Manage., 157, 587–599, https://doi.org/10.1016/j.enconman.2017.12.019, 2018. a

van Doorn, E., Dhruva, B., Sreenivasan, K. R., and Cassella, V.: Statistics of wind direction and its increments, Phys. Fluids, 12, 1529–1534, https://doi.org/10.1063/1.870401, 2000. a, b

von Brandis, A., Centurelli, G., Schmidt, J., Vollmer, L., Djath, B., and Dörenkämper, M.: An investigation of spatial wind direction variability and its consideration in engineering models, Wind Energ. Sci., 8, 589–606, https://doi.org/10.5194/wes-8-589-2023, 2023. a, b

Yang, J., Fang, L., Song, D., Su, M., Yang, X., Huang, L., and Joo, Y. H.: Review of control strategy of large horizontal-axis wind turbines yaw system, Wind Energy, 24, 97–115, https://doi.org/10.1002/we.2564, 2021. a

Download
Short summary
This work proposes a new wind farm controller based on wind predictions and conducts a synthetic sensitivity analysis of wake steering and the variations of the wind direction. For wind turbines that can rotate from −15 to 15° every 10 min, if the wind direction changes by more than 7.34° every 10 min, it is important to consider future wind data in a steady-state yaw control optimization.
Altmetrics
Final-revised paper
Preprint