On the importance of wind predictions in wake steering optimization

. 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 ﬂuctuations 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 signiﬁcantly reduces the complexity of the original sequential decision problem by decreasing the number of decision variables.


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 Majumdar, 2012).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 realtime 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, steadystate 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, lowfidelity simulators.

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.
Current implemented wake steering strategies usually involve lookup tables (LUTs) (Fleming et al., 2017;Siemens Gamesa Renewable Energy, 2019).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 actu- ators cannot easily track, computing adequate wake steering strategies over time can be a challenging task.

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.

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 (Kanev, 2020a).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).

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, steadystate 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 windprediction-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.

Problem formalization
The environment is composed of a wind farm and some exogenous variables related to the wind direction and the wind speed.At a time step t, a turbine i is characterized by its absolute angular position β i t ∈ [0, 360] [°] and its relative orientation or yaw (often used to compute the power output) 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 β i t to the wind direction K t such that β i t + α i t mod 360 = K t .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 u i t ∈ [u min , u max ] [°] 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 (2)

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 with ρ [kg m −3 ] the air density, A [m 2 ] the rotor blade area, and C P the power coefficient of the turbine.The theoretical power output is strictly positive if the wind speed is within certain bounds At a time step t, the power output of a turbine i considering yaw misalignment [MW] is computed from the power curve and the yaw angle such that 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.The variables are the wind direction K t , the absolute angular position β i t of the turbine, and the yaw α i t 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 α i t < 0. The yaw setting u i t gives the next orientation of the turbine at time step t + 1.

Policy
A policy π is a function returning the yaw settings (u 0 t , u 1 t , . .., u N−1 t ) of all the turbines at a time step t given a state s t .Each wind farm controller is associated with a specific policy.In this work, the state s t may be composed of an observation of the current wind (K t , V t ), a prediction of the wind at time step t + 1 (K t+1 , V t+1 ), a prediction of the wind at time step t + 2 (K t+2 , V t+2 ), and until time step t + L, with L the prediction horizon.
Therefore, the general form of a state is 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.

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.
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 ), 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 f control , f yaw , f i simulation , and f power 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 β i t+1 , it would be equal to α i t+1 = f yaw (K t , β i t+1 ).Because the observed wind direction K t can be different from the true wind direction K t , the yaw α i t+1 estimated by a controller can be different from its true value α i t+1 .

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 P i t .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 u i t is applied to a turbine i, the rotational time T r (minutes) for the turbine to go from its current orientation β i t to its next orientation β i t+1 is always considered largely inferior to the duration of the time step, i.e., T r t for all u i t ∈ [u min , u max ].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 [u min , u max ] need to be consistent with the duration of a time step t.
The coherence time T c (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 K t 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., T c = t, for both the direction and the speed.

Controllers
At a time step t, the yaw settings (u 0 t , u 1 t , . .., u N −1 t ) are denoted as u t .A controller is defined by its policy π (s t ) with the state s t 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 u t = π (s t ) by maximizing a specific objective function f obj (s t , u t ) with regard to the turhttps://doi.org/10.5194/wes-9-1577-2024 Wind Energ.Sci., 9, 1577-1594, 2024 E. Kadoche et al.: On the importance of wind predictions in wake steering optimization Algorithm 1 Full episode evolution over time.

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 K t .Therefore, the state s t is reduced to {K t , {β i t } 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., with with At a time step t, the rotational movement required for a turbine i to stay aligned with the observed wind direction is equal to f yaw (K t , β i t ).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 (11)

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 = {u min +l • u max −u min n y −1 } for all l ∈ {0, 1, . .., n y − 1}, with n y being a precision parameter.Once optimized, the setting of the current turbine is updated, and it goes to the next one.

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 s t is reduced to {K t , V t , {β i t } 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., with ν i t = f i simulation (K t , V t , {α j t+1 } j ∈{0,1,...,N−1} ), ( 13) with with with with 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 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 u t .Now, focusing on the second term, the closed-form expres-sion of the f power is written, giving The complexity brought by the prediction-based controller comes from the fact that Eq. ( 22) depends on the local velocities ν i t+k and the updated yaw angles α i t+k+1 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 ν i t+k is replaced by the corresponding predicted global wind speed V t+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 α i t+k+1 depending on the optimized yaw setting u i t+k is replaced by the expected yaw angle αi t+k+1 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.
- 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 H t defined as with with βi t+k+1 = f control ( βi t+k , ûi t+k ), ûi t+k computed with a naive controller defined by Eq. ( 10), (25) with βi t+1 = f control (β i t , u i t ), u i t computed from a wake steering optimization. (26) 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 with ν i t = f i simulation (K t , V t , {α j t+1 } j ∈{0,1,...,N−1} ), ( 28) with with H t (s t , u t ) defined by Eq. ( 23). ( 31) The heuristic is the discounted weighted sum of the future theoretical power outputs.By choosing certain optimized yaw settings u t 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).

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 u min and u max 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 s t is reduced to {K t , V t , {β i t } 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.

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.

Wind data scenario
The wind data time series are artificially generated with custom Wiener processes.The wind directions {K t } t∈{0,1,...,H +L−1} are computed with Algorithm (2).The wind speeds {V t } 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 m t .Each increment m t is independently sampled from a normal distribution of mean 0 and standard deviation σ t such that with τ a normalization variable with regard to the number and range of the generated values and δ X t a variation parameter for the wind variable X (either the direction or the speed).
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.
The variable δ X t defines the level of variation of the wind variable X time series (either the direction or the speed).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 u i t , which yields a power output of P A MW for case A and P B MW for case B at time step t.By considering P A > P B , 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.
When equal to 0, the signal is constant.As δ X t increases, the absolute value of the increments increases on average.At each time step, δ X t is sampled from a uniform distribution defined between δ X min and δ X max .When δ X min and δ X max are equal, all increments {m t } 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 δ X min < δ X max , 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 δ K t variable is shown for the wind direction. https://doi.org/10.5194/wes-9-1577-2024 Wind Energ.Sci., 9, 1577-1594, 2024 Algorithm 2 Wind direction generator.
Input: H + L number of points K init initial wind direction δ K min , δ K max bounds for the variation variable τ = 360/(H + L) Input: H + L number of points V init initial wind speed ν min , ν max bounds for the wind speed δ V min , δ V max bounds for the variation variable τ = (ν max − ν min )/(H + L)

Experimental setting
The function f i simulation (K t , V t , {α j t+1 } j ∈{0,1,...,N−1} ) computes the local wind speed in front of a turbine i at a time step t given wind data K t , V t , and the yaw of each turbine {α j t+1 } j ∈{0,1,...,N−1} .This function, introduced in Sect.2.5, is ensured by the low-fidelity, steady-state simulator FLORIS (NREL, 2021).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 f i simulation 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 m 2 .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 be- tween 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.
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 K init = 270°and V init = 8 m s −1 .The discount factor used for the heuristic H t is γ = 0.99.The precision parameter for the GS methods is n y = 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 Wind Energ.Sci., 9, 1577-1594, 2024 https://doi.org/10.5194/wes-9-1577-2024 Figure 6.Layout 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.
to a prediction of the wind of 50 min.In Table 2, a summary of the experimental setting used in this work is given.

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 center-Table 2. Detail 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 predictionbased 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 u min and u max , respectively.For one episode, the total farm power output of a controller C given by Algorithm (1) is denoted as 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 • (P C −P naive ) P naive .
The performance of each controller presented in Sect. 3 is tested for increasing values of δ K t .Numerical simulations are run on 21 different values of δ K t , with δ K t ∈ {0, 1, 2, . .., 20}.The wind speed is always generated with δ V t = 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: max 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 δ K t 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 δ K t parameter in Eq. (32).To better illustrate the wind direction evolution, the time series K defined as 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 δ K t time series on the magnitude of wind direction variations K.
In Fig. 8, the power gains of each controller compared to a naive controller are plotted.The yaw limits u min and α cut-in are equal to −15°(a) or −30°(b).And u max 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.
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.

Noisy predictions
In the second set of simulations, the robustness to noisy predictions of each controller is tested.The yaw limits are u min = α cut-in = −15°and u max = α cut-out = 15°.The {K t } t∈{0,1,...,153} time series are computed with δ K min = 0 and δ K max = 20.The time series {V t } t∈{0,1,...,153} are always computed with δ max , the increments are nonstationary for the wind direction.The corresponding K time series is plotted in Fig. 9.
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.

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 pro-posed 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.Experhttps://doi.org/10.5194/wes-9-1577-2024 Wind Energ.Sci., 9, 1577-1594, 2024  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
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 {cx i , cy i } 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 E. Kadoche et al.: On the importance of wind predictions in wake steering optimization

Appendix C: Detailed results
Table C1.Detailed results of the simulations conducted on perfect predictions in Sect.4.3.1.Yaw limits are u min = α cut-in = −15°and u max = α cut-out = 15°.For each δ K t the total power output of the farm in 10 4 MW is given for each controller.

Figure 1 .
Figure1.Example 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.

Figure 2 .
Figure2.Example of a wind turbine i seen from above at a time step t.The variables are the wind direction K t , the absolute angular position β i t of the turbine, and the yaw α i t 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 α i t < 0. The yaw setting u i

Figure 3 .
Figure3.Illustration 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 u i t , which yields a power output of P A MW for case A and P B MW for case B at time step t.By considering P A > P B , 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.

Figure 4 .
Figure 4. Toy 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.

Figure 5 .
Figure 5. (a) Sine and cosine values for δ K t = 1.(b) Sine and cosine values for δ K t = 4. (c) Sine and cosine values for δ K t = 9.Example of different wind direction signals generated with different δ K t values, considering that δ K t = δ K min = δ K max for all t ∈ {0, 1, . .., 49} and K init = 7°.If δ K t = 0, all the generated points are equal to K init .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 ].
Wind speed limits [ν min , ν max ] [4, 10] m s −the mean and the colored (shaded) area corresponds to the standard deviation of the results obtained through 11 Monte Carlo trials.

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

Figure 8 .
Figure 8.(a) Yaw limits are u min = α cut-in = −15°and u max = α cut-out = 15°.At δ K t = 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 u min = α cut-in = −30°and u max = α cut-out = 30°.At δ K t = 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 δ k t 6 for yaw constraints [−15, 15]°and δ k t 10 for yaw constraints [−30, 30].From these points, the heuristic H t provided by the prediction-based controller greatly improves the performance of a classic instantaneous steady-state optimization.

Figure 9 .
Figure 9. Plot of the time series K for the 11 different seeds.Wind directions are generated with δ K min = 0 and δ K max = 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.
)3.2.2 Prediction-based controllerA 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 max u t ,u t+1 ,...,u t+L