# LiDAR-assisted closed-loop control of a wind farm

Donatien Dubuc, Paolino Tona

► To cite this version:

Donatien Dubuc, Paolino Tona. LiDAR-assisted closed-loop control of a wind farm. Journal of Physics: Conference Series, 2025, 3016, pp.012023. 10.1088/1742-6596/3016/1/012023. [https://doi.org/10.5508/1742-6596/3016/1/012023](https://doi.org/10.5508/1742-6596/3016/1/012023). [https://doi.org/10.5508/1742-6596/3016/1/012023](https://doi.org/10.5508/1742-6596/3016/1/012023)

HAL Id: hal-05151164

https://ifp.hal.science/hal-05151164v1

Submitted on 8 Jul 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_2.png" /></figure>

PAPER • OPEN ACCESS

LiDAR-assisted closed-loop control of a wind farm

To cite this article: Donatien Dubuc and Paolino Tona 2025 *J. Phys.: Conf. Ser.* **3016** 012023

View the [article online](#) for updates and enhancements.

You may also like

- Prospects for generating electricity by large onshore and offshore wind farms
Patrick J H Volker, Andrea N Hahmann, Jake Badger et al.

- Energy production and inter-farm wake losses in future North Sea wind farms
R Borgers, J Meyers and N P M van Lipzig

- Benchmarking Engineering Wake Models for Assessing Wind Farm Wakes Interaction
Rafael Valotta Rodrigues and Antonio H Moura

UNITED THROUGH SCIENCE & TECHNOLOGY

<figure><img src="image_3.png" /></figure>

The Electrochemical Society
Advancing solid state & electrochemical science & technology

248th
ECS Meeting
Chicago, IL
October 12-16, 2025
Hilton Chicago

<figure><img src="image_4.png" /></figure>

Science +
Technology +
YOU!

Register by
September 22
to save $$

REGISTER NOW
# LiDAR-assisted closed-loop control of a wind farm

Donatien Dubuc¹, Paolino Tona¹

¹Control, Signal and System Department, IFP Energies Nouvelles, Solaize, France

E-mail: donatien.dubuc@ifpen.fr

**Abstract.** A common approach to perform wake steering control in wind farms, involves using pre-calibrated, low-fidelity wake models. Due to their low computation time, these models can be efficiently used to precalculate the yaw angles that maximize the total wind farm power across a wide range of wind conditions. This “open-loop” control strategy, however, is highly dependent on the accuracy of the model. Any errors in the model can lead to suboptimal power output. To overcome this issue, a “closed-loop” control method can be used, which leverages available measurements to adjust certain model parameters, ensuring a closer alignment with the actual operation of the wind farm. To implement this closed-loop approach, a new control-oriented wake model is presented, designed to be adapted in real time using measurements from the wind farm. These measurements are assumed to come from nacelle-mounted multi-range LiDAR sensors, which provide partial wind field data. The entire closed-loop control scheme is validated using the medium-fidelity dynamic simulator FAST.Farm. Several wind condition scenarios are tested, all showing a significant increase in the total power output of the wind farm.

## 1 Introduction

When wind turbines are grouped together in a wind farm they may interact with each other, under given wind conditions, through what is known as the wake effect. When a wind turbine captures the wind's kinetic energy, energy conservation causes the downstream wind flow to lose speed and increase turbulence. Wind turbines in this wake experience not only a significant drop in electrical power output but also an increase in mechanical fatigue. This effect is not negligible at the wind farm scale, as shown in [2], where the authors found that power loss due to wake effects could reach 12.4% and 23% at the Horns Rev and Lillgrund wind farms, respectively.

However, it is possible to influence wakes by controlling some wind turbine actuators. One such actuator is the yaw angle, defined as the angle between the wind direction and the rotor plane, which makes it possible to deflect the wake, potentially allowing downstream turbines to capture more energy. Techniques that aim to control the wakes are known as wake steering methods. To maximize their individual power output, wind turbines are positioned orthogonally to the incident wind direction (i.e., the yaw angle is zero) by the standard yaw control approach, known as “greedy control”. Non-zero values of the yaw angle will cause a power loss for the misaligned turbine but lead to an increase in power for the downstream turbines affected by the wake. In wake steering control, the aim is therefore to move from a greedy strategy to a collective strategy in order to maximize the power delivered by the wind farm. Figure 1 illustrates the principle of wake steering.

To implement this kind of strategy, various methods are reported in the literature [1], but the most widely used are based on low-fidelity wind farm models that predict the total power of the wind farm

<figure><img src="image_5.png" /></figure>

Content from this work may be used under the terms of the Creative Commons Attribution 4.0 licence. Any further distribution of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI.
<figure><img src="image_6.png" /><figcaption>Figure 1: Schematic view of wake steering by yaw angle. The turbine on the left has a non-zero yaw angle, which has the effect of deflecting its wake, the turbine downstream of the wind flow has thus more energy.</figcaption></figure>

as a function of wind conditions and turbine yaw angles. Since these models have a short computation time, optimization methods can be efficiently used to determine the set of angles that maximizes total power and to derive a lookup table that provides these angles based on wind conditions. This method has been successfully implemented both in simulation [17] and experimentally [7, 8, 11].

However, this model-based method is clearly highly dependent on the quality of the model used for the optimization. Thus, a modeling error will result in an optimization that fails to provide the true maximum production of the wind farm. To overcome this, it is possible to use data-driven model-free methods instead [1, 3] or to adapt the underlying models with measurements available from the wind farm. In the literature, the latter approach is often referred to as closed-loop control, as opposed to the approach presented initially, which relies on a pre-calibrated model and is referred to as open-loop control. As pointed out in [1], there are few research studies dealing with estimation at wind farm scale for both wind conditions and wake parameters. Among the studies where the problem is addressed we can cite [6], where wind conditions are estimated using power measurements. In [12], the authors seek to estimate in real time the parameters of the model described in [23] using an ensemble Kalman filter to maximize the total power solely using turbine power measurements. The method is tested with an LES (Large Eddy Simulation) simulator, and the authors show that the resulting closed-loop performance is not significantly better than that obtained with the open-loop method, even when the turbine power model is assumed to be perfectly known. In this paper, we propose a new control-oriented wake model tailored for real-time adaptation using measurements from the wind farm. Unlike the previously cited papers, which mainly use power data to perform their estimations, here we will investigate the possibility of using also data provided by LiDAR sensors.

The complete closed-loop control scheme is depicted in Figure 2. In our case, for validation purposes, the wind farm is modeled using the medium-fidelity dynamic simulator FAST.Farm [15], which will hereafter also be referred to as the plant model. The controller computes the optimal yaw angles maximizing the power of a simplified wind farm flow model. In a closed loop, this model is adapted in real time using an estimator fed by LiDAR measurements from the wind farm.

In this paper, we begin by detailing our new control model for implementing the closed loop system. We then present the method used for real-time estimation of the model's parameters, namely the Unscented Kalman Filter (UKF). Next, we describe our validation environment, which is based on the FAST.Farm medium-fidelity simulator and enables the simulation of LiDAR measurements used for parameter estimation. The complete closed-loop scheme is implemented within this environment, and several wind conditions cases are tested to assess the effectiveness our method.

## 2 Simplified wake model for control purposes

To simulate wake phenomena in wind farms, many models and software tools are available [5]. These can be high-fidelity, such as SOWFA [21], which uses large-eddy simulation models, or low-fidelity, such as FLORIS [20], which implements several “analytical” wake models. Due to their low computational cost, only the latter can be reasonably used for wind farm control, for the time being. They assume steady-state conditions, providing an averaged representation of wind farm flow over time periods of a few minutes.

Although those models have been refined over the years, they have also become more complex, with
<figure><img src="image_7.png" /><figcaption>Figure 2: Diagram describing the complete closed-loop with FAST.Farm.</figcaption></figure>

a large number of parameters to tune. We initially based our work on these models, but as they did not yield satisfactory results, we developed the following alternative. Indeed, to ensure accurate and robust parameter adaptation, the model should be simple, with a limited number of parameters to estimate – each having a significant influence on wake characteristics. To this end, we propose a new analytical model, inspired by both [23] for the velocity deficit and [14] for the wake deflection:

$$ \Delta u = U_0 \left( \frac{1 - \sqrt{1 - C_T}}{8\sigma_0^2} \right) \exp \left( -\frac{1}{2\sigma_0^2} \left( (y - y_c(x))^2 + z^2 \right) \right) \quad (1) $$

with

$$ y_c(x) = k_d \times \frac{C_T \sin \gamma}{4k_{d0}} \left( 1 - \frac{1}{1 + 2k_{d0}x} \right), \quad (2) $$

where $\Delta u$ stands for velocity deficit and $C_T$ the thrust coefficient. $x$, $y$ and $z$ respectively denote the axial position downstream of the turbine, the radial position and the altitude, normalized by the turbine diameter.

To obtain the velocity at a turbine $i$, $u_i$, we do the linear summation of the $n$ upstream single velocity deficits evaluated at the downstream location:

$$ u_i = U_{\infty} - \sum_{j=1}^{n} \Delta u, \quad (3) $$

where $U_{\infty}$ free-flow wind speed. It is then possible to have the velocity field at wind farm scale. In addition, the turbine powers are calculated using the actuator disk theory. We can thus deduce the total farm power and solve the following optimization problem:

$$ \gamma_{\max} = \underset{\gamma}{\operatorname{argmax}} P_{\text{farm}}(\gamma), \quad (4) $$

where $\gamma$ is a vector containing the yaw angles of the turbines and $P_{\text{farm}}$ represents the total power of the wind farm. (4) will be solved using Powell's BOBYQA algorithm [22].

In this model there are only 3 parameters to tune: $U_0$ which determines the maximum amplitude of the velocity deficit, $\sigma_0$ which sets the wake width and $k_d$ which influences the amplitude of the yaw angle deviation. The parameter $k_{d0}$ will be set to the typical value of 0.15.

### 3 Real-time estimation

In a dynamic context such as that of FAST.Farm (and of a real wind farm), where data arrive continuously over time, real-time estimation techniques, such as Kalman filters, are especially well-suited. Since we are dealing with a non-linear system for which we have a simulator, but no explicit mathematical formulation,
which is challenging to obtain, we will use the Unscented Kalman Filter (UKF) [16]. Unlike the Extended Kalman Filter (EKF), this estimator has the advantage of being derivative-free, so there is no need to explicitly have model equations. The UKF estimates the system state by a deterministic sampling technique via the so-called sigma-points and uses the unscented transform to calculate the system's statistical properties.

Consider the following non-linear discrete system:

$$ 
\begin{aligned}
x_k &= f(x_{k-1}, u_{k-1}) + v_{k-1} \\
y_k &= h(x_k, u_k) + \varepsilon_k
\end{aligned} 
\quad (5) $$

where $x_k$ is a vector of dimension $n$ representing the state of the system, $u_{k-1}$ the input vector, $y_k$ the output (or measurement) vector and $v_k$ and $\varepsilon_k$ are Gaussian white noises defined as: $v_k \sim \mathcal{N}(0, Q)$ and $\varepsilon_k \sim \mathcal{N}(0, R)$.

To estimate the state $x_k$ with a UKF, we need to go through the following steps [25]:

(1) Sigma-point calculation:

$$ \mathcal{X}_{k-1} = [ \hat{x}_{k-1} \quad \hat{x}_{k-1} + \sqrt{\alpha^2(n+\kappa)} \sqrt{P_{k-1}} \quad \hat{x}_{k-1} - \sqrt{\alpha^2(n+\kappa)} \sqrt{P_{k-1}} ] . \quad (6) $$

(2) Time-update equations:

$$ \mathcal{X}_k = f(\mathcal{X}_{k-1}, u_{k-1}), \quad (7) $$

$$ \hat{x}_k^{-} = \sum_{i=0}^{2n} w_i^{(m)} \mathcal{X}_{i,k}, \quad (8) $$

$$ P_{x_k} = Q + \sum_{i=0}^{2n} w_i^{(c)} (\mathcal{X}_{i,k} - \hat{x}_k^{-}) (\mathcal{X}_{i,k} - \hat{x}_k^{-})^T . \quad (9) $$

(3) Measurement-update equations:

$$ \mathcal{Y}_k = h(\mathcal{X}_k, u_k), \quad (10) $$

$$ \hat{y}_k^{-} = \sum_{i=0}^{2n} w_i^{(m)} \mathcal{Y}_{i,k}, \quad (11) $$

$$ P_{y_k} = R + \sum_{i=0}^{2n} w_i^{(c)} (\mathcal{Y}_{i,k} - \hat{y}_k^{-}) (\mathcal{Y}_{i,k} - \hat{y}_k^{-})^T, \quad (12) $$

$$ P_{x_k, y_k} = \sum_{i=0}^{2n} w_i^{(c)} (\mathcal{X}_{i,k} - \hat{x}_k^{-}) (\mathcal{Y}_{i,k} - \hat{y}_k^{-})^T . \quad (13) $$

(4) Correction:

$$ K_k = P_{x_k, y_k} P_{y_k}^{-1}, \quad (14) $$

$$ \hat{x}_k = \hat{x}_k^{-} + K_k(y_k - \hat{y}_k^{-}), \quad (15) $$

$$ P_k = P_{x_k} - K_k P_{y_k} K_k^T. \quad (16) $$

where $(\cdot)_i$ represents the i-th column of the considered matrix, with $\hat{x}_0$ and $P_0 \in \mathbb{R}^{n \times n}$ given. $\sqrt{P_{k-1}}$ can be calculated with the Cholesky decomposition.

The weight vectors $w^{(m)}$ and $w^{(c)}$ for performing the unscented transformation are given by:

$$ 
\begin{aligned}
w_0^{(m)} &= \frac{\lambda}{n+\lambda}, \\
w_0^{(c)} &= \frac{\lambda}{n+\lambda} + 1 - \alpha^2 + \beta,
\end{aligned} 
\quad (17) $$

$$ w_i^{(m)} = w_i^{(c)} = \frac{1}{2(n+\lambda)} \quad \text{for all } i = 1, \dots, 2n, $$
with $\lambda = \alpha^2(n + \kappa) - n$.

The parameters $\alpha$, $\beta$ and $\kappa$ will influence the sigma-point distribution. Their usual values are:

$$ \alpha = 10^{-3}, \quad \beta = 2, \quad \kappa = 0. \qquad (18) $$

To tune the UKF, the covariance matrices $Q$ and $R$, which are generally unknown, will be adjusted to balance the convergence speed and the robustness to noise of the filter.

In our case, $\hat{x}_k = [U_0, \sigma_0, k_d]$, $f(\hat{x}_{k-1}, u_{k-1}) = \hat{x}_{k-1}$ and $\hat{y}_k = h(\hat{x}_k, u_k)$ correspond to the LiDAR measurement points given by the model described in Section 2 and visualized in Figure 3. In addition, we will take $Q = 10^{-5} \times I_3$ and $R = 5 \times I_{n_{LiDAR}}$, where $I$ represents the identity matrix and $n_{LiDAR}$ the number of LiDAR measurement points.

## 4 Plant model configuration

Dynamic Wake Meandering (DWM) models are very useful for control validation, due to their relatively fast evaluation and ability to capture dynamic phenomena As described in [18], these models describe wakes by a series of tracers, to which static models are applied. These tracers are then advected according to the incoming airflow. FAST.Farm operates on these principles, integrating them with OpenFAST's aeroelastic models [19]. This combination enables individual wind turbines to be controlled, while simultaneously simulating the dynamic propagation of wakes through the wind farm.

FAST.Farm uses a Dynamic Link Library (DLL) called the Super Controller (SC) to manage the control of individual wind turbines. This DLL communicates with OpenFAST instances, which simulate turbine behavior using standardized DISCON controllers. However, since the DLL is written in FORTRAN, it presents a challenge for the control-oriented community, which is more accustomed to developing algorithms in MATLAB or Python. Recently, [24] introduced an interface between FAST.Farm and MATLAB. However, as our models and algorithms are developed in Python, we proposed a custom interface, detailed in [4] and available as open source software on [13]. This interface leverages an MPI channel to facilitate communication between Python and FAST.Farm, allowing yaw angle, pitch angle and generator torque setpoints to be applied to different wind turbine controllers. The interface can also be used to retrieve measurements from these controllers, such as electrical power output. In addition to deploying the interface, we also modified the FAST.Farm executable so that it can simulate LiDAR measurements.

In our configuration, each wind turbine is equipped with a multi-range, four-beam pulsed LiDAR on its nacelle. This setup enables longitudinal velocity measurements at several fixed distances. This LiDAR corresponds to the one used in [10], measuring the wind speed at 10 distances from 50 to 200 m, similarly to a WindCube nacelle TC device. Figure 3 illustrates the considered measurement points in the wind farm. In the sequel, we assume that the velocity along the $x$ axis is known at all measurement points and is noise-free.

For the sake of completeness, we should add that we also applied the same closed-loop approach using only individual wind turbine power measurements. However, the performance results were not satisfactory and we reached the same conclusions as [12]: the closed-loop approach did not perform any better than the open-loop approach, in this case. These findings suggest that relying solely on power measurements may be insufficient to achieve a closed-loop system capable of addressing modeling uncertainties. This is why we based our approach on LiDAR measurements.

## 5 Closed-loop implementation

The wind farm modeled in FAST.Farm on which the closed-loop control is implemented consists of 3 aligned NREL-5MW turbines, spaced four diameters (126 m) apart as shown in Figure 3. The model used for control purposes is the one described in Section 2, with the parameter vector to be estimated: $x_k = [U_0, \sigma_0, k_d]$ and with $U_\infty$ known. The UKF uses LiDAR measurements as illustrated in Figure 3. The time step is set at 3 s. Finally, every $\tau_d$ seconds, the adapted model is used to compute, via Powell's BOBYQA algorithm [22], an updated set of yaw angles maximize the total power. The procedure is illustrated in Figure 2 and described in Algorithm 1.

## 6 Benchmark control methods

To benchmark the results of our method, we have performed additional simulations with alternative control methods, as shown in the following section. In addition to the trivial implementation of greedy
<figure><img src="image_8.png" /><figcaption>Figure 3: LiDAR measurement points in the considered wind farm in a layout consisting of 3 NREL-5MW turbines, each spaced 4 diameters apart.</figcaption></figure>

<table><caption>**Algorithm 1 Closed-loop implementation with FAST.Farm**</caption><tr><td>1:</td><td>γ<sub>CL</sub> ← argmax<sub>γ</sub> P<sub>farm</sub>(γ, x̂<sub>0</sub>)</td><td>▷ Yaw angles with the initial parameters guess</td></tr><tr><td>2:</td><td>for k = 1 → N<sub>init</sub> do</td><td>▷ Initialization phase</td></tr><tr><td>3:</td><td>Update FAST.Farm with the new yaws γ<sub>CL</sub></td><td></td></tr><tr><td>4:</td><td>end for</td><td></td></tr><tr><td>5:</td><td>for k = 1 → N do</td><td>▷ Main loop</td></tr><tr><td>6:</td><td>Update FAST.Farm with the new yaws γ<sub>CL</sub></td><td></td></tr><tr><td>7:</td><td>Get LiDAR measurements from FAST.Farm</td><td></td></tr><tr><td>8:</td><td>Estimate x̂<sub>k</sub> with the UKF</td><td></td></tr><tr><td>9:</td><td>t ← k × dt</td><td></td></tr><tr><td>10:</td><td>if mod(t, τ<sub>d</sub>) is 0 then</td><td>▷ Every τ<sub>d</sub> do</td></tr><tr><td>11:</td><td>γ<sub>CL</sub> ← argmax<sub>γ</sub> P<sub>farm</sub>(γ, x̂<sub>k</sub>)</td><td></td></tr><tr><td>12:</td><td>end if</td><td></td></tr><tr><td>13:</td><td>end for</td><td></td></tr></table>

control (which simply consists in setting all the yaw angles to zero), we have also considered a data-driven approach and an open-loop control strategy.

To assess how close the results of our method are to the maximum power the wind farm can deliver, we have implemented the data-driven algorithm presented in [3]: it is a reinforcement learning algorithm that uses an actor-critic approach with linear function approximation in a decentralized context. The resulting model-free controller operates on a trial-and-error basis, and is capable of achieving power outputs very close to the true maximum.

To compare to the industry state-of-the-art for wake steering control, we also report the power obtained via an open loop control approach based on a steady-state wind flow solver: the corresponding yaw angles are deduced from a default FLORIS configuration (the turbulence intensity corresponds to the one of the studied cases) and calculated using the Serial Refine algorithm described in [9].

Note that, in the following sections, we report only the final total power values for these different methods (greedy, data-driven, and open-loop control). They are represented by dashed lines of different colors in the various figures.

# 7 Results

## 7.1 Scenarios with stationary wind

To evaluate Algorithm 1 we first consider a scenario with stationary wind at a speed of 8 m s⁻¹. For this turbulence-free case, the yaw angle update period is τ<sub>d</sub> = 300 s. The results are presented in Figure 4a, which shows the evolution of yaws and total wind farm power, and Figure 4b, which illustrates the time evolution of the estimated model parameters.

After the initialization phase, the algorithm converges to the yaws [−30.9, −35.7, 0]° in about 3000 s, resulting in a total power output of 3433 kW, as shown in Figure 4a. The desired effect is clearly achieved:
<figure><img src="image_9.png" /><figcaption>Figure 4: Closed-loop control for stationary wind conditions at 8 m s⁻¹.</figcaption></figure>

we observe a significant increase in power of nearly 9.2% compared with the initial guess and more than 28.7% compared with greedy control where all turbines have a zero yaw angle. The final value obtained (after a long convergence period: more than 80 × 10³ s for the tested cases) by the data-driven approach, reported in Figure 4a, is observed to be very close to that obtained with our method. In Figure 4b, which shows the evolution of the estimated parameters, $U_0$ seems to converge more slowly than the other parameter. A more aggressive parameterization of the UKF should improve the method's convergence speed.

To test the method under different wind conditions, we now set the stationary free wind speed to 9 m s⁻¹. The results are presented in Figure 5. The observed performance is similar to that obtained previously: the yaws converge after about 3000 s, achieving an improvement of 22.4% compared to the greedy control strategy. Once again, the obtained power is very close to true maximum power. Thus, even under different wind conditions, the algorithm manages to significantly increase the total power of the wind farm.

<figure><img src="image_10.png" /><figcaption>Figure 5: Closed-loop control for stationary wind conditions at 9 m s⁻¹.</figcaption></figure>

## 7.2 Scenarios with turbulent wind

To create a scenario as realistic as possible, we now consider a turbulent wind flow with a hub-height speed of 8 m s⁻¹ and a turbulence intensity of 8%. A snapshot of this wind field is given in Figure 6.

In this case, we take $τ_d$ = 900 s. The results are shown in Figure 7. Note also that the power obtained through closed-loop control is averaged over 10 minutes for better readability. For these wind
<figure><img src="image_11.png" /><figcaption>Figure 6: Snapshot of the turbulent wind field simulated in FAST.Farm.</figcaption></figure>

conditions, the yaws converge to [−29.6, −29.8, 0]° after 6000 s, yielding an averaged total power of 3288 kW. As in the stationary case, the algorithm stabilizes well, with a clear increase in total power achieved through closed-loop control. We can observe that the closed-loop control strategy achieves significantly more power compared with the open-loop strategy, even though it is based on a much less accurate model, and it nearly reaches the true maximum obtained with the data-driven method.

<figure><img src="image_12.png" /><figcaption>Figure 7: Closed-loop control for turbulent wind conditions at 8 m s⁻¹ with a turbulence intensity of 8%. The power obtained through closed-loop control (blue on (a)) is averaged over 10 minutes.</figcaption></figure>

We conduct a final assessment under a scenario similar to the one previously introduced, but with a turbulent wind speed of 9 m s⁻¹ and a turbulence intensity of 5%. The results, depicted in Figure 8, exhibit a similar behavior to the previous turbulent case: convergence is achieved at around 6000 s and there is a noticeable increase in total power over time. Likewise, the closed-loop power is greater than the open-loop power and comes close to the true maximum. This demonstrates that the method can effectively adapt to different wind conditions.

## 8 Conclusions and perspectives

In this paper, we have implemented and tested an algorithm on FAST.Farm enabling complete closed-loop control of a wind farm. This two-step algorithm first adapts the model described in Section 2 in real-time using a UKF. The adapted model is then used to find a set of yaw angles that maximize the total power output. These angles are transmitted to FAST.Farm via a newly developed interface, which also allows to retrieve the LiDAR speed measurements that the UKF needs to adapt the model.

Two sets of scenarios were studied: one where the wind is stationary, and another, more realistic, where the wind field is turbulent. In all cases, we observed a significant increase in the total power delivered by the wind farm. The turbulent scenario, in particular, highlights the robustness of the method: even when tested on a more realistic simulator, a simple model with few parameters to be adapted can achieve good results in a closed-loop context. The studied cases have also shown that the power outputs through closed-loop control are very close to the true maximums found via a data-driven control approach, and that they systematically exceed the power outputs obtained through open-loop control.
<figure><img src="image_13.png" /><figcaption>Figure 8: Closed-loop control for turbulent wind conditions at 9 m s⁻¹ with a turbulence intensity of 5%. The Closed-loop control power (blue on (a)) is averaged over 10 minutes.</figcaption></figure>

For future work, several areas of improvement are envisioned to enhance the realism of simulations and align them more closely with real-world conditions. Firstly, a new LiDAR modeling approach could be developed. Currently, for ease of implementation, the LiDAR is considered fixed relative to the movements of the nacelle, so the measurements are not influenced by yaw angles. Future simulations will incorporate this dynamic aspect. Moreover, measurements are currently assumed to be perfect. It will be necessary to introduce realistic noise into the data and assess its impact on the method's performance.

The next step involves testing more realistic and dynamic wind conditions in the simulations. Until now, only wind conditions where characteristics such as speed, direction, and turbulence intensity remain constant over time have been studied. It is worth noting that assessing control methods under dynamic wind profiles represents a gap within the wind farm control research community, probably due to the difficulties in generating and accounting for such profiles. Furthermore, the approach should be extended to accommodate wind farms with a larger number of turbines.

Finally, the mechanisms driving the satisfactory performance achieved with a simplified model are not yet well understood. Fundamental research will be necessary to identify the key wake characteristics that need accurate estimation to determine the optimal yaw angles maximizing the cost function.

## Acknowledgements

This study has been carried out as part of the CAP project, supported under the France 2030 investment plan operated by ADEME, the French Agency for Ecological Transition.

## References

[1] Leif Erik Andersson et al. "Wind farm control - Part I: A review on control system concepts and structures". In: *IET Renewable Power Generation* 15.10 (2021-07), pp. 2085-2108. ISSN: 1752-1416, 1752-1424.

[2] R. J. Barthelmie et al. "Quantifying the Impact of Wind Turbine Wakes on Power Output at Off-shore Wind Farms". In: *Journal of Atmospheric and Oceanic Technology* 27.8 (2010-08), pp. 1302-1317. ISSN: 1520-0426, 0739-0572.

[3] Claire Bizon Monroc et al. "Actor Critic Agents for Wind Farm Control". In: *2023 American Control Conference (ACC)* (2023), pp. 177-183.

[4] Claire Bizon Monroc et al. "WFCRL: A Multi-Agent Reinforcement Learning Benchmark for Wind Farm Control". In: *38th Conference on Neural Information Processing Systems (NeurIPS)* (2025).

[5] E Bossanyi et al. "Description of the reference and the control-oriented wind farm models". In: *Technical Report No. D1. 2* (2018).
[6] Bart M. Doekemeijer, Daan Van Der Hoek, and Jan-Willem Van Wingerden. "Closed-loop model-based wind farm control using FLORIS under time-varying inflow conditions". In: *Renewable Energy* 156 (2020-08), pp. 719-730. ISSN: 09601481.

[7] Paul Fleming et al. "Field test of wake steering at an offshore wind farm". In: *Wind Energy Science* 2.1 (2017), pp. 229-239.

[8] Paul Fleming et al. "Initial results from a field campaign of wake steering applied at a commercial wind farm - Part 1". In: *Wind Energy Science* 4.2 (2019), pp. 273-285.

[9] Paul A. Fleming et al. "Serial-Refine Method for Fast Wake-Steering Yaw Optimization". In: *Journal of Physics: Conference Series* 2265.3 (2022), p. 032109. ISSN: 1742-6588.

[10] F. Guillemin et al. "Real-time three dimensional wind field reconstruction from nacelle LiDAR measurements". In: *Journal of Physics: Conference Series* 1037.3 (June 2018), p. 032037.

[11] Michael F. Howland. "Operating wind farm turbines collectively increases total energy production". In: *Nature Energy* 7.9 (2022), pp. 792-793.

[12] Michael F. Howland et al. "Optimal closed-loop wake steering - Part 1: Conventionally neutral atmospheric boundary layer conditions". In: *Wind Energy Science* 5.4 (2020-10-13), pp. 1315-1338. ISSN: 2366-7451.

[13] IFP Energies Nouvelles. WFCRL Github repository. https://github.com/ifpen/wfcrl-env.

[14] Angel Jiménez, Antonio Crespo, and Emilio Migoya. "Application of a LES technique to characterize the wake deflection of a wind turbine in yaw". In: *Wind Energy* 13.6 (2010-09), pp. 559-572. ISSN: 1095-4244, 1099-1824.

[15] Jason Mark Jonkman and Kelsey Shaler. FAST.Farm user's guide and theory manual. National Renewable Energy Laboratory Golden, CO, USA, 2021.

[16] S.J. Julier, J.K. Uhlmann, and H.F. Durrant-Whyte. "A new approach for filtering nonlinear systems". In: 1995 American Control Conference - ACC'95. Vol. 3. Seattle, WA, USA: American Autom Control Council, 1995, pp. 1628-1632. ISBN: 978-0-7803-2445-9.

[17] Ali C. Kheirabadi and Ryozo Nagamune. "A quantitative review of wind farm control with the objective of wind farm power maximization". In: *Journal of Wind Engineering and Industrial Aero-dynamics* 192 (2019), pp. 45-73. ISSN: 0167-6105.

[18] Gunner C. Larsen et al. "Wake meandering: a pragmatic approach". In: *Wind Energy* 11.4 (2008-07), pp. 377-395. ISSN: 1095-4244, 1099-1824.

[19] National Renewable Energy Laboratory NREL. OpenFAST Github repository. https://github.com/OpenFAST/openfast.

[20] NREL, National Renewable Energy Laboratory. FLORIS Github repository. https://github.com/NREL/floris.

[21] NREL, National Renewable Energy Laboratory. SOWFA Github repository. https://github.com/NREL/SOWFA.

[22] Michael JD Powell. "The BOBYQA algorithm for bound constrained optimization without derivatives". In: *Cambridge NA Report NA2009/06*, University of Cambridge, Cambridge 26 (2009), pp. 26-46.

[23] Carl R. Shapiro, Dennice F. Gayme, and Charles Meneveau. "Modelling yawed wind turbine wakes: a lifting line approach". In: *Journal of Fluid Mechanics* 841 (2018-04-25), R1. ISSN: 0022-1120, 1469-7645.

[24] Coen-Jan Smits et al. "A FAST.Farm and MATLAB/Simulink interface for wind farm control design". In: *Journal of Physics: Conference Series* 2626.1 (2023-10-01), p. 012069. ISSN: 1742-6588, 1742-6596.

[25] Rudolph Van Der Merwe. "Sigma-point Kalman filters for probabilistic inference in dynamic state-space models". In: *Oregon Health & Science University* (2004).