Hostname: page-component-66644f4456-rqm7l Total loading time: 0 Render date: 2025-02-13T11:00:41.522Z Has data issue: true hasContentIssue false

Optimal control of energy extraction in wind-farm boundary layers

Published online by Cambridge University Press:  27 February 2015

Jay P. Goit
Affiliation:
Department of Mechanical Engineering, KU Leuven, Celestijnenlaan 300A, B3001 Leuven, Belgium
Johan Meyers*
Affiliation:
Department of Mechanical Engineering, KU Leuven, Celestijnenlaan 300A, B3001 Leuven, Belgium
*
Email address for correspondence: johan.meyers@kuleuven.be
Rights & Permissions [Opens in a new window]

Abstract

In very large wind farms, the vertical interaction with the atmospheric boundary layer plays an important role, i.e. the total energy extraction is governed by the vertical transport of kinetic energy from higher regions in the boundary layer towards the turbine level. In the current study, we investigate optimal control of wind-farm boundary layers, considering the individual wind turbines as flow actuators, whose energy extraction can be dynamically regulated in time so as to optimally influence the flow field and the vertical energy transport. To this end, we use large-eddy simulations of a fully developed pressure-driven wind-farm boundary layer in a receding-horizon optimal control framework. For the optimization of the wind-turbine controls, a conjugate-gradient optimization method is used in combination with adjoint large-eddy simulations for the determination of the gradients of the cost functional. In a first control study, wind-farm energy extraction is optimized in an aligned wind farm. Results are accumulated over one hour of operation. We find that the energy extraction is increased by 16 % compared to the uncontrolled reference. This is directly related to an increase of the vertical fluxes of energy towards the wind turbines, and vertical shear stresses increase considerably. A further analysis, decomposing the total stresses into dispersive and Reynolds stresses, shows that the dispersive stresses increase drastically, and that the Reynolds stresses decrease on average, but increase in the wake region, leading to better wake recovery. We further observe also that turbulent dissipation levels in the boundary layer increase, and overall the outer layer of the boundary layer enters into a transient decelerating regime, while the inner layer and the turbine region attain a new statistically steady equilibrium within approximately one wind-farm through-flow time. Two additional optimal control cases study penalization of turbulent dissipation. For the current wind-farm geometry, it is found that the ratio between wind-farm energy extraction and turbulent boundary-layer dissipation remains roughly around 70 %, but can be slightly increased by a few per cent by penalizing the dissipation in the optimization objective. For a pressure-driven boundary layer in equilibrium, we estimate that such a shift can lead to an increase in wind-farm energy extraction of 6 %.

Type
Papers
Copyright
© 2015 Cambridge University Press 

1. Introduction

In large wind farms, the effect of turbine wakes and the accumulated local energy extraction from the atmospheric boundary layer (ABL) lead to a reduction in wind-farm efficiency, with power generated by turbines in a wind farm being lower than that of a lone-standing turbine by up to 50 % (see e.g. Barthelmie et al. (Reference Barthelmie, Pryor, Frandsen, Hansen, Schepers, Rados, Schlez, Neubert, Jensen and Neckelmann2010) and Hansen et al. (Reference Hansen, Barthelmie, Jensen and Sommer2011) for detailed measurements in the Horns Rev wind farm, in the North Sea, off the coast of Denmark). In very large wind farms or ‘deep arrays’, the interaction of the wind farms with the planetary boundary layer plays a dominant role in this efficiency loss. For such cases, Cal et al. (Reference Cal, Lebron, Castillo, Kang and Meneveau2010) and Calaf, Meneveau & Meyers (Reference Calaf, Meneveau and Meyers2010) demonstrated that the wind-farm energy extraction is dominated by the vertical turbulent transport of kinetic energy from higher regions in the boundary layer towards the turbine level. Later, this was further corroborated in a series of studies, relying on both simulations (see e.g. Lu & Porté-Agel Reference Lu and Porté-Agel2011; Yang, Kang & Sotiropoulos Reference Yang, Kang and Sotiropoulos2012; Abkar & Porté-Agel Reference Abkar and Porté-Agel2013; Andersen, Sørensen & Mikkelsen Reference Andersen, Sørensen and Mikkelsen2013; Meyers & Meneveau Reference Meyers and Meneveau2013) and wind-tunnel experiments (cf. Lebron, Castillo & Meneveau Reference Lebron, Castillo and Meneveau2012; Markfort, Zhang & Porté-Agel Reference Markfort, Zhang and Porté-Agel2012; Newman et al. Reference Newman, Lebron, Meneveau and Castillo2013). In the current study, we investigate the use of optimal control techniques combined with large-eddy simulations (LES) of wind-farm boundary-layer interactions for the increase of total energy extraction in very large ‘infinite’ wind farms. We consider the individual wind turbines as flow actuators, whose energy extraction can be dynamically regulated in time so as to optimally influence the flow field and the vertical turbulent energy transport, maximizing the wind-farm power. Note that, in contrast to control of conventional boundary layers with the aim of drag reduction (see e.g. Bewley, Moin & Temam Reference Bewley, Moin and Temam2001; Kim Reference Kim2003), wind-farm boundary-layer control does not benefit from large reductions of turbulence levels or relaminarization of the boundary layer, as the turbulent fluxes provide an important physical mechanism for transport of energy towards the turbines and the wake regions.

In practice, modern wind turbines are controlled by the generator torque, and by a blade pitch controller, which controls the aerodynamic torque by changing the angle of attack of the turbine blades. Above rated wind speed, these controls are used to limit the aerodynamic power extraction to the maximum generator power. Increasing power extraction in this operating regime is not relevant, as it is limited by design constraints. Below rated wind speed, generator torque control is used to keep the turbine at an optimal tip-speed ratio, while the blade pitch is kept at its optimal design value. For a lone-standing turbine, such an approach is aerodynamically optimal, and maximizes energy extraction (Burton et al. Reference Burton, Sharpe, Jenkins and Bossanyi2001; Manwell, McGowan & Rogers Reference Manwell, McGowan and Rogers2002; Pao & Johnson Reference Pao and Johnson2009). However, for wind turbines in a wind farm, this is not necessarily the case.

A lot of studies have considered optimization of wind-farm performance, many of them focusing on optimization of farm layout in both small farms (e.g. Kaminsky, Kirchhoff & Sheu Reference Kaminsky, Kirchhoff and Sheu1987; Kusiak & Song Reference Kusiak and Song2010; Chowdhury et al. Reference Chowdhury, Zhang, Messac and Castillo2012) and large arrays (e.g. Newman Reference Newman1976; Meyers & Meneveau Reference Meyers and Meneveau2012; Stevens Reference Stevens2015). Also farm control has received considerable attention, focusing on various aspects of wind-farm operation, such as reduction of structural loads, power regulation and grid support, or increasing energy extraction (Spruce Reference Spruce1993; Hansen et al. Reference Hansen, Sørensen, Iov and Blaabjerg2006; Johnson & Thomas Reference Johnson and Thomas2009; Soleimanzadeh, Wisniewski & Kanev Reference Soleimanzadeh, Wisniewski and Kanev2012; Fleming et al. Reference Fleming, Gebraad, van Wingerden, Lee, Churchfield, Scholbrock, Michalakes, Johnson and Moriarty2013). However, as far as wind farm–flow interactions are included in these studies, they are all based on fast heuristic models: e.g. models for wake interaction and merging such as presented by Lissaman (Reference Lissaman1979) and Jensen (Reference Jensen1983) or Rathmann, Frandsen & Barthelmie (Reference Rathmann, Frandsen and Barthelmie2007) (see also Sanderse, van der Pijl & Koren (Reference Sanderse, van der Pijl and Koren2011) for a review), or models for boundary-layer response in large farms (e.g. Frandsen Reference Frandsen1992; Calaf et al. Reference Calaf, Meneveau and Meyers2010; Meneveau Reference Meneveau2012). In the current work, we consider the optimal control of wind farms using LES of the wind-farm boundary layer as the state model, allowing for a detailed optimization of the dynamic interaction of the farm’s turbines with the boundary layer and its large-scale three-dimensional turbulent structures.

To date, the combination of optimal control techniques with time-resolved turbulent flow simulations such as direct numerical simulation (DNS) or LES has been mainly used for drag reduction in boundary layers (see e.g. Chang & Collis (Reference Chang and Collis1999) and Bewley et al. (Reference Bewley, Moin and Temam2001), among others), noise control in jets (Wei & Freund Reference Wei and Freund2006), control of wakes (Li et al. Reference Li, Navon, Hussaini and Le Dimet2003), or optimal nonlinear growth of mixing layers (Delport, Baelmans & Meyers Reference Delport, Baelmans and Meyers2009, Reference Delport, Baelmans and Meyers2011; Badreddine, Vandewalle & Meyers Reference Badreddine, Vandewalle and Meyers2014). All of these cases are (partial differential equation) PDE-constrained optimization problems with a large number of degrees of freedom in control space, and a huge number in the state space. For instance, in the current study, the number of degrees of freedom in control space is approximately 20 000, while the space–time state space has approximately 1.5 billion degrees of freedom. In such a case, the only viable optimization approach is gradient-based optimization in combination with an adjoint-based gradient method. In the current work, we follow the approach by Bewley et al. (Reference Bewley, Moin and Temam2001), and combine the nonlinear Polak–Ribière conjugate-gradient variant, with the Brent line-search algorithm (Press et al. Reference Press, Teukolsky, Vetterling and Flannery1996; Luenberger Reference Luenberger2005; Nocedal & Wright Reference Nocedal and Wright2006). Moreover, similar to Bewley et al. (Reference Bewley, Moin and Temam2001), we use optimal model-predictive control (or optimal receding-horizon control), where the model simply consists of the full LES equations. Such an optimal control framework is not practicable for real wind-farm control, as the LES model is by orders of magnitude too expensive for real-time control, further complicated by the need for a state estimation based on a limited number of wind measurements in the wind farm. However, the current work can serve as a benchmark framework for controller development. Results also yield new insights into limits to energy extraction from wind-farm boundary layers, and the related structure of the turbulent energy fluxes towards individual turbines.

In LES of wind-farm boundary layers, it is computationally not feasible to fully resolve blades and blade boundary layers on the mesh. Instead, simplified models are used that provide the turbine forces on the LES flow field. Most common is the actuator disk model (ADM), in which a uniform force in the turbine disk region is smoothed onto the LES grid (Mikkelsen Reference Mikkelsen2003; Jimenez et al. Reference Jimenez, Crespo, Migoya and Garcia2007; Ivanell et al. Reference Ivanell, Sørensen, Mikkelsen and Henningson2009; Calaf et al. Reference Calaf, Meneveau and Meyers2010; Meyers & Meneveau Reference Meyers and Meneveau2010). We employ such an ADM model, with a disk-based thrust coefficient that is dynamically controlled per turbine in time, representing possible turbine pitch and torque control actions (cf. further discussion in this paper). Furthermore, for the wind-farm boundary layer, only cases with neutral stratification are considered, and two important simplifications are made with respect to its representation. Firstly, following many of the studies in the field (e.g. Lu & Porté-Agel Reference Lu and Porté-Agel2011; Yang et al. Reference Yang, Kang and Sotiropoulos2012; Abkar & Porté-Agel Reference Abkar and Porté-Agel2013; Andersen et al. Reference Andersen, Sørensen and Mikkelsen2013; Meyers & Meneveau Reference Meyers and Meneveau2013), we consider the asymptotic limit of a very large ‘infinite’ wind farm in a fully developed wind-farm boundary layer, allowing the use of periodic boundary conditions, and fast pseudospectral discretization methods. As verified in wind-tunnel experiments by Chamorro & Porté-Agel (Reference Chamorro and Porté-Agel2011), for example, such a regime becomes relevant for wind farms with horizontal extents that exceed 10–20 times the height of the boundary layer. Secondly, we consider a neutral pressure-driven boundary layer (PBL) with symmetry conditions at the top, instead of a full conventionally neutral ABL that is driven by a geostrophic balance, includes free atmosphere stratification, a capping inversion layer between the ABL and the free atmosphere, etc. Such an approach is relatively common for simulations of near-surface features in ABLs, and has been used also in the context of wind-farm simulations by Calaf et al. (Reference Calaf, Meneveau and Meyers2010), Calaf, Parlange & Meneveau (Reference Calaf, Parlange and Meneveau2011), Yang et al. (Reference Yang, Kang and Sotiropoulos2012) and Andersen et al. (Reference Andersen, Sørensen and Mikkelsen2013). It presumes that the turbines are situated in the inner layer of the boundary layer (cf. Calaf et al. (Reference Calaf, Meneveau and Meyers2010) for a more detailed discussion). This working hypothesis is limited by the fact that our turbines are close to the upper limit of the inner layer, i.e. the hub height is 100 m, while the top tip height is 150 m, for a boundary layer height of 1 km. Nevertheless, we believe that such an approach is a good approximation for a first analysis of the optimal control of wind-farm boundary layers, and results are carefully discussed in view of differences from a real ABL.

The paper is further organized as follows. In § 2 LES of wind-farm boundary layers is introduced, and a number of ‘uncontrolled’ reference cases are presented. Subsequently, the optimal control methodology is discussed in § 3. In § 4, we present results for a first optimal control case. Two additional optimal control cases that include penalization of turbulent dissipation are presented in § 5. Finally, in § 6 the main conclusions and future research directions are discussed.

2. Large-eddy simulation of a wind-farm boundary layer

2.1. Governing equations and boundary conditions

We consider a thermally neutral PBL, with constant pressure gradient $\boldsymbol{{\rm\nabla}}p_{\infty }/{\it\rho}\equiv f_{\infty }\boldsymbol{e}_{1}$ (with $\boldsymbol{e}_{1}$ the unit vector in the streamwise direction). The governing equations are the filtered incompressible Navier–Stokes equations for neutral flows and the continuity equation, i.e. 

(2.1) $$\begin{eqnarray}\displaystyle & \boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}=0, & \displaystyle\end{eqnarray}$$
(2.2) $$\begin{eqnarray}\displaystyle & \displaystyle \frac{\partial \widetilde{\boldsymbol{u}}}{\partial t}+\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}}=-\frac{1}{{\it\rho}}\boldsymbol{{\rm\nabla}}\widetilde{p}+f_{\infty }\boldsymbol{e}_{1}+\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{M}+\boldsymbol{f}, & \displaystyle\end{eqnarray}$$
where $\widetilde{\boldsymbol{u}}=[\widetilde{u}_{1},\widetilde{u}_{2},\widetilde{u}_{3}]$ is the resolved velocity field, $\widetilde{p}$ is the remaining pressure field (after subtracting $p_{\infty }$ ), ${\bf\tau}_{M}$ is the subgrid-scale model, and the density ${\it\rho}$ is assumed to remain constant. Furthermore, $\boldsymbol{f}$ represents the forces (per unit mass) introduced by the turbines on the flow (see discussion in § 2.2). Since the Reynolds number in ABLs is very high, we neglect the resolved effects of viscous stresses in the LES.

The computational domain is schematically represented in figure 1. In the streamwise and spanwise directions, periodic boundary conditions are used (i.e. respectively on ${\it\Gamma}_{1}$ and ${\it\Gamma}_{2}$ ). At the top boundary ( ${\it\Gamma}_{3}^{+}$ ), symmetry conditions are imposed. At the ground surface ( ${\it\Gamma}_{3}^{-}$ ), impermeability is imposed in combination with Schumann’s (Reference Schumann1975) wall-stress boundary conditions and Monin–Obukhov similarity theory for neutral rough boundary layers. It relates the wall stress $[{\it\tau}_{w1},{\it\tau}_{w2}]$ to the wall-parallel velocity components $[\widetilde{u}_{1},\widetilde{u}_{2}]$ at the first grid point using (Moeng Reference Moeng1984; Bou-Zeid, Meneveau & Parlange Reference Bou-Zeid, Meneveau and Parlange2005)

(2.3) $$\begin{eqnarray}\displaystyle & \displaystyle {\it\tau}_{w1}=-\left(\frac{{\it\kappa}}{\ln (z_{1}/z_{0})}\right)^{2}\left(\overline{\widetilde{u}}_{1}^{2}+\overline{\widetilde{u}}_{2}^{2}\right)^{0.5}\overline{\widetilde{u}}_{1}, & \displaystyle\end{eqnarray}$$
(2.4) $$\begin{eqnarray}\displaystyle & \displaystyle {\it\tau}_{w2}=-\left(\frac{{\it\kappa}}{\ln (z_{1}/z_{0})}\right)^{2}\left(\overline{\widetilde{u}}_{1}^{2}+\overline{\widetilde{u}}_{2}^{2}\right)^{0.5}\overline{\widetilde{u}}_{2}, & \displaystyle\end{eqnarray}$$
where $z_{0}$ is the surface roughness of the wall, and $z_{1}$ is the vertical location of the first grid point. Furthermore, the bar on $\overline{\widetilde{u}}_{1}$ and $\overline{\widetilde{u}}_{2}$ represents a local average obtained by filtering the wall-parallel velocity $[\widetilde{u}_{1},\widetilde{u}_{2}]$ in directions parallel to the wall, avoiding an overestimation of the wall stresses (Bou-Zeid et al. Reference Bou-Zeid, Meneveau and Parlange2005). In the current work, we use two successive one-dimensional Gaussian filters with filter width $4{\it\Delta}$ (and ${\it\Delta}$ the grid spacing).

Figure 1. Computational domain ${\it\Omega}$ and boundaries ${\it\Gamma}$ .

In view of the complexity associated with the formulation of the adjoint equations and adjoint subgrid-scale model required for the optimal control (cf. § 3), we opt for a relatively simple subgrid-scale model, i.e. the Smagorinsky (Reference Smagorinsky1963) model with wall damping,

(2.5) $$\begin{eqnarray}{\bf\tau}_{M}=2\ell ^{2}(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}\unicode[STIX]{x1D64E},\end{eqnarray}$$

with $\unicode[STIX]{x1D64E}=(\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}}+(\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}})^{\text{T}})/2$ the resolved rate-of-strain tensor. The Smagorinsky length $\ell$ ( $=C_{s}{\it\Delta}$ far from the wall) is damped using Mason & Thomson’s (Reference Mason and Thomson1992) wall damping function, i.e.  $\ell ^{-n}=[C_{s}{\it\Delta}]^{-n}+[{\it\kappa}(z+z_{0})]^{-n}$ , with ${\it\kappa}=0.4$ the von Kármán constant, and where we take $n=3$ . Furthermore, ${\it\Delta}=({\it\Delta}_{1}{\it\Delta}_{2}{\it\Delta}_{3})^{1/3}$ is the local grid spacing, and $C_{s}$ is the Smagorinsky coefficient. We employ $C_{s}=0.14$ , consistent with the high-Reynolds-number Lilly value for cubical sharp cutoff filters (Meyers & Sagaut Reference Meyers and Sagaut2006). Note that some other works have used more advanced subgrid-scale models in LES of wind farms, such as the scale-dependent Lagrangian model of Bou-Zeid et al. (Reference Bou-Zeid, Meneveau and Parlange2005) (Calaf et al. Reference Calaf, Meneveau and Meyers2010, Reference Calaf, Parlange and Meneveau2011; Abkar & Porté-Agel Reference Abkar and Porté-Agel2013). In Calaf et al. (Reference Calaf, Meneveau and Meyers2010) a comparison was made between this model and the current Smagorinsky implementation, and the differences in mean velocity and Reynolds stress distributions were found to be small.

2.2. Actuator-disk model

Actuator-disk models add the axial forces exerted by the wind turbines on the flow to the Navier–Stokes equations. Tangential forces are usually neglected (given the tip-speed ratios at which turbines are operated, they are more than an order of magnitude smaller). In a validation study, comparing ADM with and without tangential forces (Wu & Porté-Agel Reference Wu and Porté-Agel2011), it was demonstrated that standard ADMs provide an accurate representation of the overall wake structures behind turbines except for the very near wake ( $x/D<3$ ). Moreover, also Reynolds stresses were found to be accurately predicted, thus yielding a good representation of the interaction of the wind farms with the boundary layer. Later, this was further corroborated by Meyers & Meneveau (Reference Meyers and Meneveau2013) in a detailed analysis of energy fluxes in wind farms, comparing models with and without tangential forces. In the current work, we employ a standard ADM. It corresponds to the version used by Calaf et al. (Reference Calaf, Meneveau and Meyers2010), Meyers & Meneveau (Reference Meyers and Meneveau2010) and Meyers & Meneveau (Reference Meyers and Meneveau2013), and is briefly reviewed below.

The axial force of a turbine $i~(=1,\dots ,N_{t})$ on the flow field can be expressed as

(2.6) $$\begin{eqnarray}F_{i}=-{\textstyle \frac{1}{2}}C_{T,i}^{\prime }{\it\rho}\widehat{V}_{i}^{2}A,\end{eqnarray}$$

with $C_{T,i}^{\prime }$ the disk-based thrust coefficient, $\widehat{V}_{i}$ the average axial flow velocity at the turbine rotor disk (see further below) and $A={\rm\pi}D^{2}/4$ the rotor-disk surface. The disk-based thrust coefficient $C_{T,i}^{\prime }$ results from integrated lift and drag coefficients over the turbine blades, taking design geometry and flow angles into account (cf. appendix A for a detailed formulation). For an ideal design, and in the absence of any drag forces, $C_{T,i}^{\prime }=2$ . Moreover, below rated wind speed, conventional turbines use generator torque control to keep the turbine at a constant optimal tip-speed ratio independent of wind speed, while the blade pitch is kept constant at its optimal design value. In an ADM, this corresponds to using a constant value for $C_{T,i}^{\prime }$ (see also (A 5) in appendix A).

In an ideal turbine design, the force $F_{i}$ is uniformly distributed over the disk area. Therefore, in an ADM, a uniform force (per unit mass) is distributed over the LES grid cells in the vicinity of the actuator disk using (Calaf et al. Reference Calaf, Meneveau and Meyers2010; Meyers & Meneveau Reference Meyers and Meneveau2010, Reference Meyers and Meneveau2013)

(2.7) $$\begin{eqnarray}\boldsymbol{f}^{(i)}=-{\textstyle \frac{1}{2}}C_{T,i}^{\prime }\widehat{V}_{i}^{2}\mathscr{R}_{i}(\boldsymbol{x})\boldsymbol{e}_{\bot },\end{eqnarray}$$

where $\boldsymbol{e}_{\bot }$ is the unit vector perpendicular to the turbine disk, and in (2.2) we employ $\boldsymbol{f}=\sum \boldsymbol{f}^{(i)}$ .

Further, $\mathscr{R}_{i}(\boldsymbol{x})$ is a geometrical smoothing function that distributes the uniform surface force of turbine $i$ over the surrounding LES grid cells. To this end, a Gaussian filter is used, leading to (Meyers & Meneveau Reference Meyers and Meneveau2010)

(2.8) $$\begin{eqnarray}\mathscr{R}_{i}(\boldsymbol{x})=\int _{{\it\Omega}}G(\boldsymbol{x}-\boldsymbol{x}^{\prime })\,{\it\delta}[(\boldsymbol{x}^{\prime }-\boldsymbol{x}_{i})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }]\,\text{H}(D/2-\Vert \boldsymbol{y}^{\prime }\Vert )\,\text{d}\boldsymbol{x}^{\prime },\end{eqnarray}$$

with $G(\boldsymbol{x})=[6/({\rm\pi}{\it\Delta}_{R}^{2})]^{3/2}\exp (-6\Vert \boldsymbol{x}\Vert ^{2}/{\it\Delta}_{R}^{2})$ the Gaussian filter kernel, with filter width ${\it\Delta}_{R}$ . Further, $\boldsymbol{x}_{i}$ is the coordinate of the turbine rotor centre, ${\it\delta}(x)$ the Dirac delta function, $\text{H}(x)$ the Heaviside function, and where $\boldsymbol{y}^{\prime }=(\boldsymbol{x}^{\prime }-\boldsymbol{x}_{i})-((\boldsymbol{x}^{\prime }-\boldsymbol{x}_{i})\boldsymbol{\cdot }\boldsymbol{e}_{\bot })\boldsymbol{e}_{\bot }$ is the projection of $(\boldsymbol{x}^{\prime }-\boldsymbol{x}_{i})$ on the rotor plane. Similar to earlier studies (Calaf et al. Reference Calaf, Meneveau and Meyers2010; Meyers & Meneveau Reference Meyers and Meneveau2010, Reference Meyers and Meneveau2013), we select ${\it\Delta}_{R}=3{\it\Delta}/2$ , with ${\it\Delta}$ the LES grid resolution. Finally, note that by construction $\int _{{\it\Omega}}\mathscr{R}_{i}(\boldsymbol{x})\,\text{d}\boldsymbol{x}^{\prime }=A$ .

In order to determine the axial disk-averaged velocity $\widehat{V}_{i}$ , first spatial averaging of the velocity is performed over the rotor disk using the geometrical rotor footprint $\mathscr{R}_{i}(\boldsymbol{x})$ , followed by a local time filter. Thus, first the disk-averaged velocity is defined as

(2.9) $$\begin{eqnarray}V_{i}(t)=\frac{1}{A}\int _{{\it\Omega}}\widetilde{\boldsymbol{u}}(\boldsymbol{x},t)\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\mathscr{R}_{i}(\boldsymbol{x})\,\text{d}\boldsymbol{x},\end{eqnarray}$$

and $\widehat{V}_{i}$ is obtained from $V_{i}$ using a first-order time filter, i.e. 

(2.10) $$\begin{eqnarray}\frac{\text{d}\widehat{V}_{i}}{\text{d}t}=\frac{1}{{\it\tau}}(V_{i}-\widehat{V}_{i}),\end{eqnarray}$$

with ${\it\tau}$ the filter time scale. In our simulations, this ordinary differential equation is discretized using an implicit Euler method, such that

(2.11) $$\begin{eqnarray}\widehat{V}_{i}^{n}=(1-{\it\alpha})\widehat{V}_{i}^{n-1}+{\it\alpha}V_{i}^{n},\end{eqnarray}$$

with ${\it\alpha}={\rm\Delta}t/({\it\tau}+{\rm\Delta}t)$ . We use ${\it\tau}=5~\text{s}$ ; combined with a time step ${\rm\Delta}t$ of $0.7~\text{s}$ (see § 2.3) this yields ${\it\alpha}\approx 0.12$ .

Finally, the power that is extracted from the boundary layer by all turbines is expressed as

(2.12) $$\begin{eqnarray}P=-\int _{{\it\Omega}}\boldsymbol{f}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}\,\text{d}\boldsymbol{x}=\int _{{\it\Omega}}\mathop{\sum }_{i=1}^{N_{t}}\frac{1}{2}C_{T,i}^{\prime }\widehat{V}_{i}^{2}\,\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\mathscr{R}_{i}(\boldsymbol{x})\,\text{d}\boldsymbol{x}=\mathop{\sum }_{i=1}^{N_{t}}\frac{1}{2}C_{T,i}^{\prime }\widehat{V}_{i}^{2}V_{i}\,A.\end{eqnarray}$$

This is not equivalent to the power $P_{ax}$ that is extracted at the turbine axle, which is related to the torque and rotational velocity of the turbine. The drag forces on the turbine blade increase the thrust force, but reduce the torque. Similar to $C_{T,i}^{\prime }$ , a disk-based power coefficient $C_{P,i}^{\prime }$ may be defined that is based on projected forces in the tangential direction. In the absence of drag, $C_{T,i}^{\prime }=C_{P,i}^{\prime }$ (cf. appendix A for details). In the current work, we focus on increasing $P$ by controlling $C_{T,i}^{\prime }$ (cf. § 3), and do not explicitly take $C_{P,i}^{\prime }$ into account. We just presume that $C_{T,i}^{\prime }/C_{P,i}^{\prime }$ is roughly constant, so that the extracted power from the boundary layer is representative of the mechanical power at the turbine axle. Such an approximation does not take into account deleterious effects that increased turbulence levels may have on local blade lift and drag coefficients, in particular, as a result of increased occurrences of stall. However, as further shown in §§ 4 and 5, in the considered optimal control cases, turbulence levels do not increase in front of the turbines, so that the above working assumption is reasonable. A more involved representation that more accurately models the effect of turbulence levels on blade performance is a subject for further research (see also discussion in § 6).

2.3. Discretization and case set-up

Simulations are performed in SP-Wind, an in-house research code that was developed in a series of earlier studies on LES and wind-farm simulations, and flow optimization (see e.g. Meyers & Sagaut Reference Meyers and Sagaut2007; Delport et al. Reference Delport, Baelmans and Meyers2009; Meyers & Meneveau Reference Meyers and Meneveau2010). SP-Wind uses a pseudospectral discretization in the horizontal directions. The nonlinear convective terms and the subgrid-scale stress are dealiased using the $3/2$ rule (Canuto et al. Reference Canuto, Hussaini, Quarteroni and Zang1988). Message passing interface (MPI) is used to run the simulations in parallel mode, and the FFTW library is employed for Fourier transforms (Frigo & Johnson Reference Frigo and Johnson2005). In the vertical direction, a fourth-order energy-conservative finite-difference discretization is used (Verstappen & Veldman Reference Verstappen and Veldman2003), while time integration is performed using a classical four-stage fourth-order Runge–Kutta scheme.

We focus on the simulation and optimal control of an aligned wind farm, i.e. turbines are aligned in rows that are parallel to the wind direction. Details of the case set-up are summarized in table 1 using typical orders of magnitude that are relevant for a wind farm. We take a boundary-layer height of $H=1~\text{km}$ , and use a domain size of $L_{x}\times L_{y}\times H=7~\text{km}\times 3~\text{km}\times 1~\text{km}$ . Fifty turbines with diameter $D=100~\text{m}$ are arranged in a $10\times 5$ matrix, with streamwise spacing $S_{x}=7D$ and spanwise spacing $S_{\text{y}}=6D$ . As routinely done, the set-up can also be non-dimensionalized with turbine hub height or boundary-layer height, and with friction velocity $(\,f_{\infty }H)^{1/2}$ ( $=1~\text{m}~\text{s}^{-1}$ here). The computational grid corresponds to $N_{x}\times N_{y}\times N_{z}=256\times 192\times 80$ . For dealiasing, this is extended to $384\times 288\times 80$ for all operations in real space.

Table 1. Summary of the simulation set-up and the turbine arrangement parameters.

The resulting case resembles earlier aligned wind-farm simulations (cf. case A3 in Calaf et al. (Reference Calaf, Meneveau and Meyers2010), and case 1 in Meyers & Meneveau (Reference Meyers and Meneveau2013)), but we slightly altered the wind-farm parameters, so that the turbine spacings are integer multiples of the rotor diameter, while keeping the ground surface per turbine roughly the same ( $S_{x}\times S_{y}=7.85D\times 5.23D$ in the earlier studies, with $8\times 6$ turbines). Furthermore, we also used a slightly finer mesh spacing. We refer the reader to Calaf et al. (Reference Calaf, Meneveau and Meyers2010) and Meyers & Meneveau (Reference Meyers and Meneveau2013) for the effects of domain size and grid refinement studies. Finally, for the time integration, we use a fixed time step of 0.7 s, which corresponds to a Courant–Friedrichs–Lewy (CFL) number of approximately 0.4.

For conventional simulations, i.e. those discussed in § 2.4, we first start from an initial logarithmic velocity profile to which a set of random perturbations are added. After an initial spin-up period of 16 h (corresponding to approximately 85 through-flow times), during which the velocity profile and turbulence statistics evolve into statistical equilibrium, we accumulate averaged flow properties for a time window of 21 h. Subsequent simulations (for parameter variations, cf. § 2.4) start from an earlier statistically stationary field, and use a spin-up period of 6 h (30 through-flow times).

In figure 2, a snapshot of the instantaneous velocity fields is shown. In the horizontal plane, we observe typical meandering of the turbine wakes. At the same time, patches of high-speed wind can also be seen passing through the spaces between turbine columns.

Figure 2. (a) Snapshot representing an instantaneous streamwise velocity field. (b) Zoom on a subset of four turbines. The horizontal plane is taken at hub height, and turbines are represented by small white disks.

2.4. Boundary-layer response and optimal energy extraction using standard turbine control

In the current subsection, we study the response of a wind-farm boundary layer to static changes in $C_{T}^{\prime }$ , while keeping the $C_{T}^{\prime }$ value the same for all turbines. This will help in defining a reference case, as well as a starting point for the dynamic optimization in § 3.

In order to discuss this further, we first introduce some concepts related to fully developed wind-farm boundary layers with wind turbines situated in the inner layer. In such boundary layers, a double log layer is observed (Frandsen Reference Frandsen1992; Calaf et al. Reference Calaf, Meneveau and Meyers2010), one below the turbine level, characterized by the friction velocity $u_{{\it\tau}l}=({\it\tau}_{w}/{\it\rho})^{1/2}$ , and the other above the turbine level, characterized by the total friction induced by the ground surface and the turbines. Thus with friction velocity (Calaf et al. Reference Calaf, Meneveau and Meyers2010)

(2.13) $$\begin{eqnarray}u_{{\it\tau}h}^{2}=u_{{\it\tau}l}^{2}+\frac{1}{N_{t}}\sum \frac{1}{2}{\it\rho}\mathop{\widehat{V}}_{i}^{2}\frac{C_{T,i}^{\prime }\,A}{S_{x}S_{y}},\end{eqnarray}$$

with $A={\rm\pi}D^{2}/4$ the turbine rotor area. In a PBL, integration of the momentum balance over the full height of the boundary layer further yields $u_{{\it\tau}h}^{2}=f_{\infty }H$ .

When considering a single turbine in idealized conditions, the optimal operating condition of the turbine corresponds to $C_{T}^{\prime }=2$ (cf. appendix A), corresponding to the Betz limit. However, in an infinite wind-farm boundary layer, the boundary layer responds to the surface roughness induced by the wind farm, and the wind velocity at turbine hub height depends on parameters such as turbine spacing and thrust coefficient. Therefore, when comparing different control cases, it is important to normalize the total power extraction of the farm $P$ by a correct reference value that itself is not dependent on the control and remains constant in real conditions. The logical reference to use for a wind farm in the ABL is the geostrophic wind $G$ in the free atmosphere above the ABL. This approach was followed by Meyers & Meneveau (Reference Meyers and Meneveau2012), for example, when investigating optimal turbine spacing for large wind farms, thus optimizing $P_{ABL}^{+}=P/G^{3}$ .

An issue is that the boundary layer considered in the current study is a regular PBL. However, we can use the main working hypothesis that the wind turbines are in the inner layer of the boundary layer (cf. discussion in the introduction), and thus their overall effect on the outer layer is characterized by the friction velocity $u_{{\it\tau}h}$ . By further using basic momentum and energy conservation laws for an Ekman spiral, it is then possible to obtain a simple heuristic relation between $u_{{\it\tau}h}$ and $G$ , i.e. (cf. appendix B for a derivation)

(2.14) $$\begin{eqnarray}G=u_{{\it\tau}h}\sqrt{A^{2}+\left(\frac{\mathscr{D}+\mathscr{ P}}{u_{{\it\tau}h}^{3}}\right)^{2}},\end{eqnarray}$$

with $\mathscr{D}$ the total turbulent dissipation per unit wind-farm area, and $\mathscr{P}$ the average turbine power extraction per unit farm area (i.e.  $\mathscr{P}=\overline{P}/(L_{x}L_{y})$ , with $\overline{P}$ the time average of $P$ ). Furthermore, $A\approx 12$ is an empirical constant that depends on the outer-layer behaviour of the ABL.

The response of the boundary layer to changes in $C_{T}^{\prime }$ is now investigated. We do not yet consider optimal coordinated control of $C_{T}^{\prime }$ at farm level (cf. § 3 below), but instead keep $C_{T}^{\prime }$ constant in time, and the same for all turbines. Thirteen different cases are considered, with $0.02\leqslant C_{T}^{\prime }\leqslant 3.5$ . Results for the averaged total power extraction are shown in figure 3. We show two normalizations, i.e. one using $\mathscr{P}_{PBL}^{+}=\mathscr{P}/u_{{\it\tau}h}^{3}$ , which is the standard normalization for a PBL, and the other using $\mathscr{P}_{ABL}^{+}=\mathscr{P}/G^{3}$ , as relevant for ABLs. For the second normalization, (2.14) is used to determine $u_{{\it\tau}h}/G$ . These two normalizations reflect the different reactions of a PBL and an ABL to a changing load. In figure 3, it is appreciated that the extracted power depends strongly on the disk-based thrust coefficient. Furthermore, the selected normalization leads to quite different optimal values for $C_{T}^{\prime }$ : using the maximum of $\mathscr{P}/u_{{\it\tau}h}^{3}$ leads to much lower optimal $C_{T}^{\prime }$ values than using $\mathscr{P}_{ABL}^{+}=\mathscr{P}/G^{3}$ . Thus, presuming a constant pressure gradient, independent of the wind-farm load, does not lead to the same optimum as presuming constant geostrophic wind.

Figure 3. Mean power output of an uncontrolled wind farm as a function of $C_{T}^{\prime }$ . Power $\mathscr{P}^{+}$ is normalized by either $u_{{\it\tau}h}$ (red circles), geostrophic wind $G$ (green squares), or driving power (blue triangles). Curves are further normalized by their maximum values of  $\mathscr{P}^{+}$ .

In figure 3, we also consider a third normalization that is based on the total driving power of the PBL, i.e.  $\mathscr{P}_{DRP}^{+}=\mathscr{P}/(\,f_{\infty }U_{b}H)$ , with $U_{b}$ the total bulk velocity. Thus, such a normalization presumes a constant driving power in the boundary layer, which is independent of the wind-farm load. It is observed that this third normalization leads to an optimal $C_{T}^{\prime }$ value that is close to the one found for $\mathscr{P}/G^{3}$ , with $C_{T}^{\prime }\approx 1.33$ .

2.4.1. Discussion

As observed in figure 3, the optimal setting of $C_{T}^{\prime }$ and the maximum normalized wind-farm power output depend strongly on the impedance of the driving force. The logical approach for wind farms is to use $\mathscr{P}_{ABL}^{+}=\mathscr{P}/G^{3}$ to determine the maximum power that can be extracted from an ‘uncontrolled’ wind farm with static $C_{T}^{\prime }$ values. This maximal power can serve as a logical reference that optimal control (cf. § 3) should improve upon. However, the results for $\mathscr{P}_{ABL}$ in figure 3 are based on a heuristic relation for the ABL response (2.14). For instance, the empirical constant $A$ (cf. (B 9)) may itself depend in subtle ways on the wind-farm loading, etc. Also, the evaluation of $\mathscr{D}$ in (2.14) requires the integration of total dissipation in the inner as well as the outer layer. The latter is not the same in PBLs and ABLs.

In order to avoid these issues, and keep the approach internally consistent with the idea of a PBL, we choose for the ‘uncontrolled’ reference in our work the case with constant driving power that maximizes $\mathscr{P}_{DRP}^{+}$ , i.e. with $C_{T}^{\prime }\approx 1.33$ . As observed in figure 3, this maximum is close to that for $\mathscr{P}_{ABL}^{+}$ . Moreover, the physical interpretation as to how gains in power extraction are achieved is straightforward. In a statistically stationary system, we find that

(2.15) $$\begin{eqnarray}f_{\infty }U_{b}H=\mathscr{P}+\mathscr{D},\end{eqnarray}$$

with $f_{\infty }U_{b}H$ the total driving power per unit farm area. Thus, given constant total driving power in a PBL, the only way that wind-farm output may be increased is by increasing the ratio $\mathscr{P}/\mathscr{D}$ , and reducing turbulent dissipation. In figure 4, $\mathscr{P}/(\,f_{\infty }U_{b}H)$ and $\mathscr{D}/(\,f_{\infty }U_{b}H)$ are shown as functions of $C_{T}^{\prime }$ . For the current wind farm and turbine arrangement, we observe that at the optimal point $C_{T}^{\prime }=1.33$ only 40 % of the total power input is actually harvested by the wind farm, while 60 % is dissipated by turbulence.

Figure 4. Mean power output (blue triangles) and dissipation (red circles) as functions of $C_{T}^{\prime }$ for uncoordinated cases. Both power and dissipation are normalized by the driving power.

Finally, we remark that power optimization in a real ABL may involve more than simply improving the ratio of wind-farm extraction to turbulent dissipation. In particular, the entrainment at the top of the boundary layer may play an important role in the total power that is available. For boundary layers that are thick compared to the size of the wind turbines, we expect this to be a secondary effect. However, for boundary layers that are shallow, or for internal boundary layers developing over finite wind farms, entrainment will play an important role in the total power available, and may be strongly influenced by the wind farm itself. Capturing this type of effect in detail is beyond the scope of the current work, but may be interesting for future research.

3. Optimal coordinated control: problem formulation, methodology and case set-up

The optimal control approach used in the current study is now discussed. We consider an optimal control problem in which the disk-based thrust coefficients can dynamically change as a function of time and per turbine in the farm, and are optimized to increase the overall energy extraction. Thus, we do not directly include in our optimal control model the actual generator torque and blade pitch control actions that would in reality determine the disk-based thrust coefficient. We just presume that these actions are performed sufficiently fast for the required dynamical changes to the thrust coefficient in the optimal control. As further shown in the paper, these dynamic changes occur over time scales that are larger than 10 s, so that this is a reasonable approximation. We employ a receding-horizon control approach (further discussed in § 3.1) that splits the control problem into a number of optimal control subproblems. The problem formulation of these subproblems is introduced in § 3.2. Optimization is performed using a gradient-based approach, as further presented in § 3.3. The determination of the gradients based on an adjoint approach is elaborated in § 3.4. The final computational set-up is presented in § 3.5.

3.1. Receding-horizon approach

We employ a receding-horizon optimal control approach for the control of wind-farm boundary layer interaction. This essentially follows the standard paradigm of model-predictive control (Rawlings & Mayne Reference Rawlings and Mayne2008), but where the model in our case consists of the full LES equations (2.1) and (2.2), and where we do not have a state estimation problem, i.e. in our simulations the flow state is perfectly known at each time step. In the context of DNS-based and LES-based optimal control, a similar setting was employed by Chang & Collis (Reference Chang and Collis1999) and Bewley et al. (Reference Bewley, Moin and Temam2001).

In a receding-horizon optimal control approach, time is split into a number of control windows with length $T$ , also called the time horizon – a schematic overview is presented in figure 5. Starting with the first time horizon, an optimization problem is formulated (cf. § 3.2) in which the control parameters are optimized as a function of time. To that end, an iterative gradient-based optimization approach is used (cf. § 3.3) requiring several LES, combined with adjoint simulations for the determination of the gradients (cf. § 3.4). Once a set of optimal controls is found for the interval $[0,T]$ , they are effectively used as control inputs to advance the system over a time window $T_{A}$ (see figure 5). Subsequently, a new optimization problem is formulated that optimizes the controls for the time window $[T_{A},T_{A}+T]$ , and so forth.

Figure 5. Receding horizon optimal control approach.

In standard receding-horizon optimal control, $T_{A}$ often just corresponds to the control time step, so that with every time step a control optimization problem is solved, leading to an optimization time horizon that smoothly moves forward with the control inputs. In the context of DNS-based or LES-based optimal control, this is not done, as every optimization problem itself requires very large computational resources. Bewley et al. (Reference Bewley, Moin and Temam2001) used $T_{A}=T$ to limit computational cost, though this led to non-smooth transitions between time windows. They also looked at one case with $T_{A}=T/2$ ; and in a similar study, Collis et al. (Reference Collis, Chang, Kellogg and Prabhu2000) also explored $T_{A}=3T/4$ and $T_{A}=T/4$ . In the current work, we choose $T_{A}=T/2$ as an ad hoc balance between computational cost and control smoothness, and we will refer to time windows $T_{A}$ as the control windows.

3.2. Optimization problem formulation

We consider the optimal control of a wind-farm boundary layer. The control parameters correspond to all disk-based turbine thrust coefficients ${\bf\varphi}\equiv [C_{T,1}^{\prime }(t),C_{T,2}^{\prime }(t),\dots ,C_{T,N_{t}}^{\prime }(t)]$ (with $N_{t}$ the total number of turbines). The state variables in the optimal control problem are $\boldsymbol{q}\equiv [\widetilde{\boldsymbol{u}}(\boldsymbol{x},t),\widetilde{p}(\boldsymbol{x},t),\widehat{\boldsymbol{V}}(t)]$ , i.e. corresponding to the LES velocity field, pressure field and the time-filtered turbine-disk velocity fields $\widehat{\boldsymbol{V}}\equiv [\widehat{V}_{1},\dots ,\widehat{V}_{N_{t}}]$ .

The optimal control problem is formulated as a minimization problem in which we employ the following cost functional:

(3.1) $$\begin{eqnarray}\displaystyle \mathscr{J}({\bf\varphi},\boldsymbol{q}) & = & \displaystyle \int _{0}^{T}-P(t)\,\text{d}t+{\it\gamma}\int _{{\it\Omega}}[e(0)-e(T)]\,\text{d}\boldsymbol{x}\nonumber\\ \displaystyle & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\mathop{\sum }_{i=1}^{N_{t}}-\frac{1}{2}C_{T,i}^{\prime }\widehat{V}_{i}^{2}\,\mathscr{R}_{i}(\boldsymbol{x})\widetilde{\boldsymbol{u}}(\boldsymbol{x},t)\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\text{d}\boldsymbol{x}\,\text{d}t\nonumber\\ \displaystyle & & \displaystyle +\,\frac{1}{2}{\it\gamma}\int _{{\it\Omega}}[\widetilde{\boldsymbol{u}}(\boldsymbol{x},0)\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}(\boldsymbol{x},0)-\widetilde{\boldsymbol{u}}(\boldsymbol{x},T)\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}(\boldsymbol{x},T)]\,\text{d}\boldsymbol{x}.\end{eqnarray}$$

The first term corresponds to the amount of energy extracted from the boundary layer by the wind turbines over the optimization time horizon $T$ . The second term is a penalization term ( $0\leqslant {\it\gamma}<1$ ) that is related to penalization of the total dissipation $\mathscr{D}L_{x}L_{y}$ , but formulated in an alternative way that simplifies implementation. Details are discussed in § 5, where results for ${\it\gamma}>0$ are presented. In § 4, ${\it\gamma}=0$ is discussed.

The optimal control problem under consideration is a PDE-constrained optimization problem that corresponds to

(3.2) $$\begin{eqnarray}\displaystyle & & \displaystyle \min _{{\bf\varphi},\boldsymbol{q}}~\mathscr{J}({\bf\varphi},\boldsymbol{q})\end{eqnarray}$$
(3.3) $$\begin{eqnarray}\displaystyle & & \displaystyle \text{s.t.}\nonumber\\ \displaystyle & & \displaystyle \left\{\begin{array}{@{}ll@{}}\displaystyle \frac{\partial \widetilde{\boldsymbol{u}}}{\partial t}+\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}}=-\frac{1}{{\it\rho}}\boldsymbol{{\rm\nabla}}\widetilde{p}+f_{\infty }\boldsymbol{e}_{1}+\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{M}+\boldsymbol{f}+{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3}){\bf\tau}_{\boldsymbol{w}}\quad & \text{in}~{\it\Omega}\times (0,T],\\ \boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}=0\quad & \text{in}~{\it\Omega}\times (0,T],\\ \displaystyle \frac{\text{d}\widehat{\boldsymbol{V}}}{\text{d}t}=\frac{1}{{\it\tau}}(\boldsymbol{V}-\widehat{\boldsymbol{V}})\quad & \text{in}~(0,T].\end{array}\right.\end{eqnarray}$$
In (3.3), the wall-stress model is explicitly added to the momentum equation using the Dirac delta function ${\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3})$ with $z_{1}$ the location of the first grid point near the wall, and where ${\bf\tau}_{\boldsymbol{w}}=[{\it\tau}_{w1},{\it\tau}_{w2},0]$ , with ${\it\tau}_{w1}$ and ${\it\tau}_{w2}$ defined by (2.3) and (2.4). For the sake of further use, the state constraints (3.3) are written in short-hand notation as $\boldsymbol{B}({\bf\varphi},\boldsymbol{q})=0$ , representing LES momentum and continuity equations, and the time filter of the disk velocity.

Finally, we remark that we add some additional box constraints on the controls, i.e.  $0\leqslant C_{T,i}^{\prime }(t)\leqslant 4$ . These are trivial to add, and are not formally included here so as not to further complicate the equations. See § 3.5 for further discussion on these constraints.

3.3. Optimization method

In the current work, we do not solve the PDE-constrained optimization problem written in its standard form (3.2) and (3.3), where the PDE is explicitly formulated as a constraint. Though it is possible and sometimes beneficial to do this for smaller problems (see e.g. Hinze & Kunisch (Reference Hinze and Kunisch2001) for a discussion), the size of the space–time state space in our optimal control problem (of the order of 1 billion degrees of freedom) does not allow such an approach. Instead, we reformulate the problem in a reduced form, with a reduced cost functional, i.e. 

(3.4) $$\begin{eqnarray}\min _{{\bf\varphi}}~\widetilde{\mathscr{J}}({\bf\varphi})\equiv \mathscr{J}({\bf\varphi},\boldsymbol{q}({\bf\varphi})),\end{eqnarray}$$

where $\boldsymbol{q}({\bf\varphi})$ is the solution to the state equations given the control inputs ${\bf\varphi}$ , implicitly defined by $\boldsymbol{B}({\bf\varphi},\boldsymbol{q}({\bf\varphi}))\equiv 0$ . Thus, in its reduced form the problem is unconstrained, but at every step of the optimization algorithm the state constraints need to be explicitly satisfied. The size of the optimization space in this reduced formulation corresponds to the number of degrees of freedom on ${\bf\varphi}$ , which is approximately $2\times 10^{4}$ in this study.

To solve (3.4) the same approach is followed as first used by Bewley et al. (Reference Bewley, Moin and Temam2001) for DNS-based optimal control, i.e. the combination of a Polak–Ribière conjugate-gradient method and the Brent line-search algorithm (Press et al. Reference Press, Teukolsky, Vetterling and Flannery1996; Luenberger Reference Luenberger2005; Nocedal & Wright Reference Nocedal and Wright2006). It is an iterative method for solving unconstrained optimization problems. Given an intermediate estimate of the optimum ${\bf\varphi}^{(k)}$ , a search direction ${\it\delta}{\bf\varphi}^{(k)}$ is determined using the Polak–Ribière conjugate-gradient direction

(3.5) $$\begin{eqnarray}{\it\delta}{\bf\varphi}^{(k)}=-\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k)}+{\it\beta}_{k}{\it\delta}{\bf\varphi}^{(k-1)},\end{eqnarray}$$

where $\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k)}$ is the gradient of the cost functional (cf. § 3.4 for its determination based on the adjoint equations), and ${\it\beta}_{k}$ is given by

(3.6) $$\begin{eqnarray}{\it\beta}_{k}=\frac{(\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k)}-\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k-1)})\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k)}}{\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k-1)}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}^{(k-1)}}.\end{eqnarray}$$

Using the search direction ${\it\delta}{\bf\varphi}^{(k)}$ , a new estimate of the optimum is obtained from

(3.7) $$\begin{eqnarray}{\bf\varphi}^{(k+1)}={\bf\varphi}^{(k)}+{\it\alpha}\,{\it\delta}{\bf\varphi}^{(k)},\end{eqnarray}$$

where ${\it\alpha}$ is the result of a line search that minimizes $\widetilde{\mathscr{J}}({\bf\varphi}^{(k)})$ in the direction ${\it\delta}{\bf\varphi}^{(k)}$ . To that end, an iterative gradient-free line-search method is used that is based on the mnbrak and Brent algorithms (Press et al. Reference Press, Teukolsky, Vetterling and Flannery1996). Details on the implementation used in our work can be found in Delport et al. (Reference Delport, Baelmans and Meyers2009).

3.4. Gradient of the reduced cost functional and adjoint equations

An important element in the conjugate-gradient algorithm discussed above is the determination of the gradient of the reduced cost functional $\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}$ for a given set of controls ${\bf\varphi}$ . The use of a simple finite difference approach is not feasible if the design space ${\bf\varphi}$ is large, since this requires an evaluation of the state equations for every possible dimension in ${\bf\varphi}$ . Instead, a mathematically equivalent formulation for the determination of the gradient can be used that requires once the solution of an additional set of partial differential equations, i.e. the adjoint equations, with a cost that is roughly equivalent to that of the original state equations.

The derivation of the gradient of the reduced cost functional in terms of the adjoint solution is straightforward, but lengthy. It follows standard approaches as discussed in Tröltzsch (Reference Tröltzsch2010) and Borzi & Schultz (Reference Borzi and Schultz2012), for example. We refer the reader to appendix C for a detailed derivation. Here, we summarize the most important results that are used in our optimization algorithm. First of all, the gradient of the reduced cost functional may be expressed as (Borzi & Schultz Reference Borzi and Schultz2012)

(3.8) $$\begin{eqnarray}\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}=\frac{\partial \mathscr{J}}{\partial {\bf\varphi}}+\left[\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}\right]^{\ast }\boldsymbol{q}^{\ast },\end{eqnarray}$$

with $[\partial \boldsymbol{B}/\partial {\bf\varphi}]^{\ast }$ the adjoint of $\partial \boldsymbol{B}/\partial {\bf\varphi}$ (cf. § C.1) and $\boldsymbol{q}^{\ast }=({\bf\xi},{\rm\pi},{\bf\chi})$ the solution of the adjoint equations (see further below). For the current cost functional (3.1), this leads to

(3.9) $$\begin{eqnarray}\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}=\frac{\partial \mathscr{J}}{\partial {\bf\varphi}}+\frac{1}{2}\int _{{\it\Omega}}\widehat{\boldsymbol{V}}^{\circ 2}\circ \displaystyle \pmb{\mathscr{R}}(\boldsymbol{x})\,[{\bf\xi}\boldsymbol{\cdot }\boldsymbol{e}_{\bot }]\,\text{d}\boldsymbol{x}=\frac{1}{2}\int _{{\it\Omega}}\widehat{\boldsymbol{V}}^{\circ 2}\circ \displaystyle \pmb{\mathscr{R}}(\boldsymbol{x})\,[(-\widetilde{\boldsymbol{u}}+{\bf\xi})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }]\,\text{d}\boldsymbol{x},\end{eqnarray}$$

with $\textstyle \pmb{\mathscr{R}}\equiv [\mathscr{R}_{1},\dots ,\mathscr{R}_{N_{t}}]$ , and where $\circ$ is used to denote the entry-wise product (or Hadamard product), and $\widehat{\boldsymbol{V}}^{\circ 2}$ is the entry-wise square of $\widehat{\boldsymbol{V}}$ . Furthermore, ${\bf\xi}(\boldsymbol{x},t)$ is the adjoint velocity field that is obtained by solving the adjoint equations.

The derivation of the adjoint equations for the standard transient Navier–Stokes equations is well documented in the literature (see e.g. Choi, Hinze & Kunisch (Reference Choi, Hinze and Kunisch1999), Bewley et al. (Reference Bewley, Moin and Temam2001), Wei & Freund (Reference Wei and Freund2006) and Delport et al. (Reference Delport, Baelmans and Meyers2009), among others). The main extension here is the addition of adjoints for the Smagorinsky model and wall-stress model, and the adjoint of the ADM. The reader is referred to appendix C for details of their derivation. The resulting adjoint equations correspond to

(3.10) $$\begin{eqnarray}\displaystyle \left.\begin{array}{@{}c@{}}\displaystyle -\frac{\partial {\bf\xi}}{\partial t}-\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}{\bf\xi}-(\boldsymbol{{\rm\nabla}}{\bf\xi})^{\text{T}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}=-\frac{1}{{\it\rho}}\boldsymbol{{\rm\nabla}}{\rm\pi}+\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{M}^{\ast }+\boldsymbol{f}^{\ast }+{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3}){\bf\tau}_{\boldsymbol{w}}^{\ast },\\ \boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\xi}=0,\\ \displaystyle -\frac{\text{d}{\it\chi}_{i}}{\text{d}t}=\frac{1}{{\it\tau}}\left[-{\it\chi}_{i}+C_{T,i}^{\prime }\widehat{V}_{i}\int _{{\it\Omega}}\mathscr{R}_{i}(\boldsymbol{x})\,(\widetilde{\boldsymbol{u}}-{\bf\xi})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\text{d}\boldsymbol{x}\right],\quad \text{for }i=1,\dots ,N_{t},\end{array}\right\} & & \displaystyle\end{eqnarray}$$

and with

(3.11) $$\begin{eqnarray}\displaystyle & \displaystyle \boldsymbol{f}^{\ast }=\mathop{\sum }_{i=1}^{N_{t}}\left(\frac{1}{2}C_{T,i}^{\prime }\widehat{V}_{i}^{2}+\frac{{\it\chi}_{i}}{A}\right)\mathscr{R}_{i}(\boldsymbol{x})\boldsymbol{e}_{\bot }, & \displaystyle\end{eqnarray}$$
(3.12) $$\begin{eqnarray}\displaystyle & \displaystyle {\it\tau}_{w,i}^{\ast }=-\left[\frac{{\it\kappa}}{\log (z_{1}/z_{0})}\right]^{2}\overline{\left\{\left(\overline{\widetilde{u}}_{1}^{2}+\overline{\widetilde{u}}_{2}^{2}\right)^{1/2}{\it\xi}_{i}+\frac{\overline{\widetilde{u}}_{1}{\it\xi}_{1}+\overline{\widetilde{u}}_{2}{\it\xi}_{2}}{\left(\overline{\widetilde{u}}_{1}^{2}+\overline{\widetilde{u}}_{2}^{2}\right)^{1/2}}\overline{\widetilde{u}}_{i}\right\}},\quad \text{for }i=1,2 & \displaystyle\end{eqnarray}$$
and ${\bf\tau}_{\boldsymbol{w}}^{\ast }=[{\it\tau}_{w,1}^{\ast },{\it\tau}_{w,2}^{\ast },0]$ . Further
(3.13) $$\begin{eqnarray}{\bf\tau}_{M}^{\ast }=2\ell _{s}^{2}\left(\frac{2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E}^{\ast }}{(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}}\unicode[STIX]{x1D64E}+(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}\unicode[STIX]{x1D64E}^{\ast }\right),\end{eqnarray}$$

where $\unicode[STIX]{x1D64E}^{\ast }=(\boldsymbol{{\rm\nabla}}{\bf\xi}+(\boldsymbol{{\rm\nabla}}{\bf\xi})^{\text{T}})/2$ .

The spatial boundary conditions of the adjoint equations are equivalent to those of the forward equations. In the $x_{1}$ and $x_{2}$ directions, periodic boundary conditions are required. In the normal direction, impermeability is required at the top and bottom walls, and symmetry boundary conditions at the top wall. For the ‘initial conditions’, it is important to realize that the adjoint equations are solved backwards in time (cf. the sign of the time derivatives), so that the ‘initial’ conditions should be provided at $t=T$ . They correspond to

(3.14) $$\begin{eqnarray}\displaystyle & {\bf\xi}(\boldsymbol{x},T)={\it\gamma}\widetilde{\boldsymbol{u}}(\boldsymbol{x},T), & \displaystyle\end{eqnarray}$$
(3.15) $$\begin{eqnarray}\displaystyle & {\it\chi}_{i}(T)=0\quad \text{for }i=1,\dots ,N_{t}. & \displaystyle\end{eqnarray}$$

The adjoint equations (3.10) show some similarity to the flow equations of the forward problem, e.g. time derivatives and convective terms can be recognized (though with different signs), continuity looks the same, and there is also an adjoint pressure variable. Therefore, much of the discretization of the forward problem can be reused, with the same pseudospectral discretization in the horizontal directions, in combination with a fourth-order energy-conservative discretization in the vertical direction. For the time integration, a fourth-order Runge–Kutta method is also used. Note that the adjoint equations follow from a linearization of the governing equations around a state $(\widetilde{\boldsymbol{u}},\widetilde{p},\widehat{\boldsymbol{V}})$ . In the adjoint equations, this state is also required (cf. (3.10)). To this end, the nonlinear forward problem is solved first, and the full space–time state is stored on disk. Subsequently, it is used during the solution of the adjoint equations.

Finally, for the discretization of the filter equation, we choose a time discretization that is equivalent to the discrete adjoint of the discrete forward filter equation (2.11). This corresponds to

(3.16) $$\begin{eqnarray}{\it\chi}_{i}^{n-1}=(1-{\it\alpha}){\it\chi}_{i}^{n}+{\it\alpha}C_{T,i}^{\prime }\widehat{V}_{i}^{n-1}\int _{{\it\Omega}}\mathscr{R}_{i}(\boldsymbol{x})\;(\widetilde{\boldsymbol{u}}-{\bf\xi})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\text{d}\boldsymbol{x}.\end{eqnarray}$$

3.5. Computational set-up

The geometrical set-up, grid, time step, etc., remain the same as in § 2.3 (cf. table 1). The optimal control is started from a statistically stationary field of an ‘uncontrolled’ wind farm with $C_{T,i}^{\prime }=1.33$ , and ${\bf\varphi}^{(0)}=1.33$ is used for the starting value of the optimization algorithm.

As already introduced in § 3.2, we use box constraints on the controls, i.e.  $0\leqslant C_{T,i}^{\prime }(t)\leqslant 4$ . The lower constraint prevents the turbine from starting to operate as a fan, even if the optimization algorithm would ask for this. For the upper boundary, we do not a priori want to limit $C_{T}^{\prime }$ to the Betz limit ( $C_{T}^{\prime }=2$ ), but at the same time we cannot leave it free, as $C_{T}^{\prime }\rightarrow \infty$ is not very practicable from a turbine construction point of view. Therefore, we selected an ad hoc limit of $C_{T}^{\prime }=4$ , which corresponds to a wind turbine that is constructed with double blade chord lengths compared to Betz-optimal blade design (cf. § A.2 for details). Moreover, we have further investigated an extra case with optimal control over one control window without box constraints on $C_{T}^{\prime }$ (and using ${\it\gamma}=0$ ). For this case, we found that $C_{T}^{\prime }$ fluctuates between $-19$ and $+24$ , but compared to the case with box constraints this leads to no significant additional energy extraction (i.e. 17.7 % extra energy for the case without versus 17.66 % for the case with box constraints, averaged over the first control window).

For the optimal receding-horizon control cases considered here, we select an optimization time horizon $T=280~\text{s}$ . This corresponds approximately to 0.4 times the through-flow time, or the average convection time for the flow to pass four rows of turbines. In this way, we avoid any interaction between the optimal control approach and the periodicity of the streamwise boundary conditions. Once the optimization of the controls is converged, they are used for $T_{A}=140~\text{s}$ , before the next optimization problem is started. This process is repeated for a total of 25 control windows, totalling 3500 s (approximately 1 h) of wind-farm operation.

Finally, in order to limit computational costs, we do not fully converge the conjugate-gradient algorithm or the line-search algorithms. Instead, we stop after five conjugate-gradient iterations, and use a maximum of eight forward function evaluations per line search. This leads to a maximum of 45 PDE simulations per control window (40 forward and five adjoint), or 1125 PDE simulations in total, where one PDE simulation takes approximately 90 min of wall time on 32 processors.

In figure 6, we show a typical convergence history of an optimization (using ${\it\gamma}=0$ ) for three different control windows. On the $x$ axis the number of subsequent PDE simulations during the iterative conjugate-gradient optimization algorithm is shown. Closed symbols refer to standard LES, while open symbols refer to adjoint simulations. It is appreciated that the cost function does not decrease monotonically with the number of simulations. This is related to the line-search algorithm (cf. § 3.3), which sometimes overshoots the optimal step length along a conjugate-gradient search direction. In figure 6 it is appreciated that cost functionals decrease significantly during the optimization, but optimization is stopped after five conjugate-gradient iterations, so they are not formally converged to $\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}=0$ .

Figure 6. Typical convergence history of the conjugate-gradient optimization for three different control windows $[(n-1)T_{A},(n-1)T_{A}+T]$ : ▪, control window $n=1$ ; ▴, control window $n=13$ ; ●, control window $n=20$ . Open symbols (○, ▫, ▵) correspond to adjoint simulations required for gradient evaluations, and are plotted at the same cost-functional level as the previous forward simulation.

4. Case 1: optimal control without penalization of turbulent dissipation ( ${\it\gamma}=0$ )

In this section, we present the optimal control results for the wind-farm control case in which we do not penalize turbulent dissipation, i.e.  ${\it\gamma}=0$ in (3.1). First, we show some characteristics of the adjoint solution, and the controls in § 4.1. Subsequently, a detailed analysis of energy budgets in the wind-farm boundary layer is presented in §§ 4.2 and 4.3. Flow statistics are presented in § 4.4 and compared to the uncontrolled case. Finally, in § 4.5, the results are further discussed.

4.1. Adjoint fields and optimal controls

In figure 7, snapshots of the instantaneous adjoint fields are shown. Unlike the flow field, the adjoint equations evolve backwards in time, and propagate in the upstream direction. The adjoint field depends strongly on the definition of the cost functional, and the forward flow state around which the equations are linearized. The fields that are shown in figure 7 belong to the first adjoint equations in the optimization sequence of the first optimal control time horizon (see figure 5): at this point, the equations are linearized around a flow state that is obtained for initially constant controls at all turbines with $C_{T,i}^{\prime }(t)=1.33~(i=1,\dots ,N_{t})$ . The initial condition for the adjoint equations (with ${\it\gamma}=0$ ) corresponds to ${\bf\xi}(\boldsymbol{x},T)=0$ . This is also visible in the first snapshot at $T-t=14$ (figure 7 a), where the field is still largely zero.

Figure 7. Contours of instantaneous streamwise adjoint fields: (a $T-t=14~\text{s}$ ; (b $T-t=70~\text{s}$ ; (c $T-t=174~\text{s}$ ; (d) zoom of (b). Horizontal planes are taken at hub height.

The adjoint equations are driven by the cost function of the optimization problem (i.e.  $\partial \mathscr{J}/\partial \boldsymbol{q}$ in (C 13)). They essentially express where possible changes in the cost function $\mathscr{J}$ may be originating from (thus the equations evolve backwards in time and in the reverse flow direction). When looking at the first two snapshots in figure 7 (at $T-t=14$ and $70$ ), we see that changes to the cost functional in the last time interval of the optimal control time horizon originate from a tube upstream of the turbine rotors. At this point, only changes to the flow velocity in this region affect the later energy extraction at the turbine rotor. When looking earlier in time ( $T-t=174$ ), the ‘tube’ observed in figure 7(b) has ‘hit’ the previous row of turbines, so that upstream turbines have the potential to influence the energy extraction of their downstream neighbours. Looking at figure 7(c) (at $T-t=174$ ), it is observed that the adjoint field has become fully turbulent in the whole domain. This shows that it is the full interaction with the boundary layer that influences the wind-farm energy extraction.

In figure 8 the behaviour of the optimal thrust coefficient is shown for one of the turbines in the controlled wind farm. Approximately 1 h of time is shown, corresponding to subsequent optimal control in 25 control windows. It is appreciated that $C_{T}^{\prime }$ is strongly changing in time, but remains limited by the box constraints used during the optimization (cf. § 3.5). A further zoom in the figure reveals that the changes in $C_{T}^{\prime }$ are well resolved in time; no additional smoothing of the gradients used in the optimization was required for this. Moreover, typical time scales with which the controls change remain above 10 s.

Figure 8. Time evolution of the thrust coefficient of one of the turbines in the farm.

4.2. Optimized power output

In the current subsection, the energy balance and power extraction are discussed in detail. In figure 9 the total wind-farm power extraction per unit wind-farm area $\mathscr{P}_{{\it\Omega}}$ ( $=P/(L_{x}L_{y})$ ) and the total gains and losses per unit area are shown. To this end, the total kinetic energy equation is horizontally averaged and integrated over the boundary layer height, leading to

(4.1) $$\begin{eqnarray}\frac{\text{d}E_{{\it\Omega}}}{\text{d}t}\equiv \frac{\text{d}}{\text{d}t}\int _{0}^{H}\frac{1}{2}\langle \widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}\rangle _{{\it\Gamma}}\,\text{d}x_{3}=f_{\infty }U_{b}H-\mathscr{P}_{{\it\Omega}}-\mathscr{D}_{{\it\Omega}},\end{eqnarray}$$

where we use $\langle \cdots \rangle _{{\it\Gamma}}$ to denote horizontal averages, and the subscript ${\it\Gamma}$ to indicate that averages are taken over a finite-domain horizontal plane ${\it\Gamma}\subset {\it\Omega}$ . In contrast to $\mathscr{P}$ and $\mathscr{D}$ in § 2.4, $\mathscr{P}_{{\it\Omega}}$ and $\mathscr{D}_{{\it\Omega}}$ are not averaged in time, so that they still fluctuate significantly from one time step to another (i.e. the horizontal extent of our domain is not large enough to obtain statistical convergence based on horizontal averaging only).

Figure 9. Time evolution of (a) total wind-farm power output and (b) gains and losses:   , driving power by pressure force; —— (grey), rate of change of kinetic energy; —— (black), farm power; - $\cdot$ - $\cdot$ -, dissipation.

In figure 9(a) the power extraction is shown before control ( $t<0$ ) and after the start of the optimal model predictive control. It is seen that overall the power extraction increases, but starts to fluctuate significantly more than before coordinated optimal control. On average, a gain in energy extraction of 16 % is achieved (integrated between $t=0$ and $t=3500~\text{s}$ ). In figure 9(b) gains and losses to the boundary layer are shown. Here, the wind-farm power is plotted as a loss term, together with the dissipation $\mathscr{D}_{{\it\Omega}}$ . We observe that the increase in power extraction is mainly balanced by an overall deceleration of the flow. In addition, also the dissipation $\mathscr{D}_{{\it\Omega}}$ increases (recall that dissipation is not penalized, i.e.  ${\it\gamma}=0$ ).

In figure 9(b) the driving power $f_{\infty }U_{b}H$ is also plotted. It is observed that the driving power slowly decreases during the optimal control. This is directly related to the fact that $f_{\infty }$ is kept constant during the optimization, while the flow slowly decelerates. Returning to the discussion in § 2.4, we remark here that $f_{\infty }U_{b}H$ is not explicitly kept constant during optimization. This would require adding a non-trivial state constraint to (3.2), requiring the solution of an additional set of adjoint equations for every gradient evaluation. However, it is appreciated that changes in the driving power remain small. Moreover, we also remark that the average level of $C_{T}^{\prime }$ in the optimal control moves to higher values, and thus away from the constant $C_{T}^{\prime }$ optimum observed in figure 3 for the constant-forcing case. This clearly indicates that the optimal controls found here do not lead to a statistically stationary optimal situation, but instead purely exploit transient boundary-layer deceleration.

4.3. Energy balance in the turbine region

The energy balances in the wind farm are further investigated. To smooth the results, they are additionally integrated per control window $T_{A}$ . Next to the balance integrated over the whole height of the computational domain ${\it\Omega}$ (cf. (4.1)), we also look at the balance in the turbine region, i.e. integrated from $z_{h}-D/2$ to $z_{h}+D/2$ , and we denote this horizontal slab of the computational domain with ${\it\Omega}_{D}$ (note that, for numerical evaluation, we take the integration bounds slightly wider, to ensure that all filtered turbine forces (cf. (2.7)) are included in ${\it\Omega}_{D}$ ).

The following notation is used for the horizontal and time average (here for $\widetilde{\boldsymbol{u}}$ )

(4.2) $$\begin{eqnarray}\overline{\langle \widetilde{\boldsymbol{u}}\rangle }_{{\it\Gamma}}^{T_{A}}=\frac{1}{T_{A}L_{x}L_{y}}\int _{nT_{A}}^{(n+1)T_{A}}\!\!\int _{0}^{L_{y}}\!\!\int _{0}^{L_{x}}\widetilde{\boldsymbol{u}}\,\text{d}x_{1}\,\text{d}x_{2}\,\text{d}t,\end{eqnarray}$$

using $\overline{\,\cdot \,}^{T_{A}}$ to denote the time average over a time window with length $T_{A}$ . Moreover, define $\widetilde{\boldsymbol{u}}^{\prime \prime }=\widetilde{\boldsymbol{u}}-\overline{\langle \widetilde{\boldsymbol{u}}\rangle }_{{\it\Gamma}}^{T_{A}}$ , $e=\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}/2$ and $e^{\prime \prime }=e-\overline{\langle e\rangle }_{{\it\Gamma}}^{T_{A}}=\widetilde{\boldsymbol{u}}^{\prime \prime }\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}^{\prime \prime }/2+\widetilde{\boldsymbol{u}}^{\prime \prime }\boldsymbol{\cdot }\overline{\langle \widetilde{\boldsymbol{u}}\rangle }_{{\it\Gamma}}^{T_{A}}$ . The energy balance for ${\it\Omega}_{D}$ is then expressed as

(4.3) $$\begin{eqnarray}\displaystyle \frac{{\rm\Delta}E_{{\it\Omega}_{D}}}{T_{A}} & \equiv & \displaystyle \int _{z_{h}-D/2}^{z_{h}+D/2}\overline{\langle \text{d}e/\text{d}t\rangle }_{{\it\Gamma}}^{T_{A}}\,\text{d}x_{3}\nonumber\\ \displaystyle & = & \displaystyle \underbrace{\left.-\overline{\langle \widetilde{u}_{3}^{\prime \prime }(e^{\prime \prime }+p^{\prime \prime }/{\it\rho})\rangle }_{{\it\Gamma}}^{T_{A}}\right|_{z_{h}-D/2}^{z_{h}+D/2}}_{\overline{T}^{\prime \prime }(z+D/2)-\overline{T}^{\prime \prime }(z-D/2)}+\underbrace{\int _{z_{h}-D/2}^{z_{h}+D/2}f_{\infty }\overline{\langle \widetilde{u}_{1}\rangle }_{{\it\Gamma}}^{T_{A}}\,\text{d}x_{3}}_{\mathscr{F}_{{\it\Omega}_{D},T_{A}}}\nonumber\\ \displaystyle & & \displaystyle \underbrace{+\,\int _{z_{h}-D/2}^{z_{h}+D/2}\overline{\langle \,\boldsymbol{f}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}\rangle }_{{\it\Gamma}}^{T_{A}}\,\text{d}x_{3}}_{\mathscr{P}_{{\it\Omega}_{D},T_{A}}=\mathscr{P}_{{\it\Omega},T_{A}}}~\underbrace{-\int _{z_{h}-D/2}^{z_{h}+D/2}\overline{\langle {\bf\tau}_{\boldsymbol{M}}\,\boldsymbol{ : }\,\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}}\rangle }_{{\it\Gamma}}^{T_{A}}\,\text{d}x_{3}}_{\mathscr{D}_{{\it\Omega}_{D},T_{A}}}.\end{eqnarray}$$

Here we have also further introduced the following notation: turbulent (and dispersive) transport $\overline{T}^{\prime \prime }$ , driving power $\mathscr{F}_{{\it\Omega}_{D},T_{A}}$ , wind-farm power extraction $\mathscr{P}_{{\it\Omega},T_{A}}$ and dissipation $\mathscr{D}_{{\it\Omega}_{D},T_{A}}$ , all per unit farm area. The terms of (4.3) are plotted in figure 10(b). For reference, in figure 10(a) the same terms are shown integrated for the whole domain: this corresponds to the balance shown in figure 9(b), but in addition averaged in time per control window.

Figure 10. Gains and losses per unit wind-farm area averaged over control windows for (a) the whole computation domain ${\it\Omega}$ and (b) the disk region ${\it\Omega}_{D}$ : ♦, rate of change of kinetic energy ${\rm\Delta}E_{{\it\Omega}}/T_{A}$ ; ▪, driving power $\mathscr{F}_{{\it\Omega},T_{A}}$ ; ▴, wind-farm power extraction $\mathscr{P}_{{\it\Omega},T_{A}}$ ; ●, dissipation $\mathscr{D}_{{\it\Omega},T_{A}}$ ; $+$ , total transport $\overline{T}^{\prime \prime }(z+D/2)-\overline{T}^{\prime \prime }(z-D/2)$ .

Looking at figure 10(b), it is observed that the turbine region is in equilibrium for $t\geqslant 5T_{A}$ , i.e. in this region ${\rm\Delta}E_{{\it\Omega}_{D}}(t)$ is approximately zero. The farm power extraction is the largest sink in this region, followed by the dissipation, which amounts to 37 % of the dissipation in the whole boundary layer. The main source of energy is the turbulent transport $\overline{T}^{\prime \prime }(z+D/2)$ at the top boundary of the region.

The results in figure 10 suggest that the inner region of the boundary layer has found a new statistical equilibrium after roughly five control windows (which is roughly equivalent to one through-flow time), and only the outer layer is decelerating. Moreover, the energy is transported from the outer region towards the turbine region by increased turbulent and dispersive transport. This is further investigated next.

4.4. Flow profiles in the controlled wind farm

In the current subsection, we investigate time-averaged and horizontally averaged profiles. First of all, we look at the streamwise velocity profile averaged over five different time windows, i.e. corresponding to the windows $[5(n-1)T_{A},5nT_{A}]$ with $n=1,\dots ,5$ . Results are shown in figure 11, together with the velocity profile for the uncontrolled case. For all cases, we observe two distinct logarithmic regions, one above and one below the turbines. This is consistent with observations by Cal et al. (Reference Cal, Lebron, Castillo, Kang and Meneveau2010) and Calaf et al. (Reference Calaf, Meneveau and Meyers2010) for uncontrolled wind farms. The control in the current work does not change these features. It is further observed in figure 11 that the velocity profile for the controlled cases are lower than for the uncontrolled case. When looking at the inner layer ( $z/H<0.15$ ), it is seen that the velocity profiles of the middle three averages cluster around a new equilibrium position (see inset in figure). The first average $[0,5T_{A}]$ is found to be somewhat higher (closer to the uncontrolled case), while the last average $[20T_{A},25T_{A}]$ , is somewhat lower than the three previous averages. For the current case, we pushed the optimal control a bit further, i.e. up to 33 control windows (results not shown in the plots), and this further confirms that the inner layer starts to decelerate again after about 20 to $25T_{A}$ . When looking higher up in the wind-farm boundary layer and close to the top, it is appreciated that the velocity profiles keep decreasing in all control windows. This is consistent with the observations in figure 10. Therefore, for analysis of higher-order moments, we will mainly show averages over the middle time window $[5T_{A},20T_{A}]$ , which extends over 35 min of wind-farm operation, during which we presume that the flow is in statistical equilibrium in the inner layer.

Figure 11. Streamwise mean velocities: ——, uncontrolled case; - $\cdot$ - $\cdot$ -, optimal control case averaged over the time interval $[0,5T_{A}]$ ;    (see also inset), averaged over later intervals.

In figure 12 the total, dispersive and Reynolds stresses are shown for the different cases. Recall that these stresses are constructed based on horizontal averages over a domain that is horizontally periodic, but not homogeneous. We first look at the total shear stress in figure 12(a), averaged over different windows in the controlled case, and for the uncontrolled case. For the latter it is seen that $-\langle \overline{\widetilde{u}_{1}^{\prime \prime }\widetilde{u}_{3}^{\prime \prime }}\rangle =(1-z/H)f_{\infty }H$ above the turbines, as can be expected from the plane-averaged momentum balance in a conventional channel-flow boundary layer. Below the turbine level, the turbine forces and subgrid-scale stresses (close to the wall) take over the role of the turbulent shear stress in the total balance.

Figure 12. Vertical profiles of (a) total stresses and (be) total stresses, Reynolds and dispersive components. In panel (a): —— (black), uncontrolled case; - $\cdot$ - $\cdot$ - (blue),    (black) and —— (green), controlled case, respectively averaged over time windows $[0,5T_{A}]$ , $[5T_{A},20T_{A}]$ and $[20T_{A},25T_{A}]$ . In panels (be): —— (black), —— (orange) and —— (cyan), respectively the total stresses, Reynolds stresses and dispersive stresses for the uncontrolled case;    (black),    (orange) and    (cyan), respectively the total stresses, Reynolds stresses and dispersive stresses for the controlled case averaged over $[5T_{A},20T_{A}]$ .

Figure 13. Vertical profiles of horizontally averaged mean-flow kinetic energy flux. Uncontrolled case: —— (black), total kinetic energy flux; —— (orange), flux due to Reynolds stress; —— (cyan), flux due to dispersive stress. Optimal control case averaged over time window $[5T_{A},20T_{A}]$ :    (black), total kinetic energy flux;    (orange), flux due to Reynolds stress;    (cyan), flux due to dispersive stress.

Looking at the total shear stresses $\langle \overline{\widetilde{u}_{1}^{\prime \prime }\widetilde{u}_{3}^{\prime \prime }}\rangle$ for the controlled cases in figure 12(a), the picture changes. Now the boundary layer is no longer in equilibrium, so that $u_{{\it\tau}h}\neq f_{\infty }H$ , but rather

(4.4) $$\begin{eqnarray}u_{{\it\tau}h}=f_{\infty }H-\frac{\text{d}U_{b}}{\text{d}t},\end{eqnarray}$$

with $-\text{d}U_{b}/\text{d}t$ the deceleration of the bulk flow. Since $\text{d}U_{b}/\text{d}t$ is roughly constant for $t\in [5T_{A},20T_{A}]$ (cf. figure 10), we can expect $u_{{\it\tau}h}$ also to be roughly constant in this region, but higher than $f_{\infty }H$ . This is observed in figure 12(a) for the average over the interval $[5T_{A},20T_{A}]$ . Note that for this case the deceleration mainly takes place in the outer layer of the boundary layer, while the inner layer ( $z/H<0.15$ ) is in a new equilibrium (cf. discussion above). For the average over $[0,5T_{A}]$ , this is not yet the case, and this is also apparent from figure 12(a).

In figure 12(be) we further decompose the total stresses (both the shear stress and the normal stresses) into dispersive stresses ( $\langle \overline{\widetilde{u}}_{i}^{\prime \prime }\overline{\widetilde{u}}_{j}^{\prime \prime }\rangle$ ) and plane-averaged Reynolds stresses ( $\langle \overline{\widetilde{u}_{i}^{\prime }\widetilde{u}_{j}^{\prime }}\rangle$ ), averaged over the time window $[5T_{A},20T_{A}]$ , i.e. (e.g. following Calaf et al. Reference Calaf, Meneveau and Meyers2010) $\langle \overline{\widetilde{u}_{i}^{\prime \prime }\widetilde{u}_{j}^{\prime \prime }}\rangle =\langle \overline{\widetilde{u}}_{i}^{\prime \prime }\overline{\widetilde{u}}_{j}^{\prime \prime }\rangle +\langle \overline{\widetilde{u}_{i}^{\prime }\widetilde{u}_{j}^{\prime }}\rangle$ , with $\widetilde{u}_{i}^{\prime }=\widetilde{u}_{i}-\overline{\widetilde{u}}_{i}$ . First of all, in figure 12(b), it is very interesting to notice that the increase in total stress is caused by an increase of dispersive shear stresses, which are roughly doubled, while the plane-averaged Reynolds stresses decrease. The same trends are observed in figure 12(c) for the streamwise stresses: dispersive stresses increase significantly, but Reynolds stresses decrease. For the spanwise and vertical stresses, we observe that dispersive stresses also increase significantly, while Reynolds stresses remain largely unchanged, except in the turbine-tip region, where they slightly increase.

Looking at fluxes of horizontally averaged mean-flow energy in figure 13, the same trends are observed. It is seen that the energy flux at the top of the farm ( $z=z_{h}+D/2$ ) is considerably higher for the controlled case than for the uncontrolled case. Below the farm, the inverse is observed. Here the energy flux towards the flow below the farm is decreased compared to the uncontrolled case. Thus, as a result of the optimal control, the energy flux towards the farm increases, while at the same time this energy is better captured by the turbines. We further also looked at total kinetic energy fluxes (not shown here), which contain additional elements of triple dispersive correlations, and turbulent and pressure diffusion, but these are minor effects, and the differences from the fluxes in figure 13 are small.

Figure 14. (ad) Contours of mean streamwise velocity field averaged over control windows and turbine elements: (a,b) in a horizontal plane through the hub; (c,d) in a vertical plane through the turbine. (e,f) Contours of $\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ in a vertical plane through the turbine. (a,c,e) Uncontrolled case; (b,df) the optimal control case averaged over time window $[5T_{A},20T_{A}]$ .

In order to further understand the increase of dispersive stresses and decrease of Reynolds stresses observed above, we first look at elements of the dispersive stress in figure 14 averaged in time and over the $10\times 5$ turbine subdomains (each with horizontal size $S_{x}\times S_{y}$ ). First of all, in figure 14(a,b) the mean streamwise velocity is shown in a horizontal plane at hub level. It is appreciated that the inflow velocities of the turbines in the controlled and uncontrolled cases are more or less equal. However, the wake velocity in the controlled case is much lower than for the uncontrolled case, which is clearly related to the fact that more energy is extracted in the controlled case. In spite of the lower wake velocity in the controlled case, the wake recovers faster than the uncontrolled wake. This is also visible in figure 14(c,d), where the streamwise velocity is shown in a vertical streamwise plane through the turbine centre. Here it is appreciated that, over the rotor height, the turbine inflow in the controlled case is even a bit higher than for the uncontrolled case. In figure 14(ef) a vertical streamwise plane of $-\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ is shown, which contributes to the dispersive shear stress (i.e.  $-\langle \overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }\rangle$ ) when averaged over horizontal planes. It is observed that positive $-\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ regions increase in strength for the controlled case, while negative regions are not much altered. Given the distribution of the horizontal velocity in figure 14(c,d), it is clear that these positive $-\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ regions are associated with a correlation of low mean streamwise velocity with upward mean motion. In the high-speed channels between the turbines, we also observe (not shown here) increased positive $-\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ correlations in the controlled case, which is here associated with high mean streamwise velocity transported downwards by mean negative vertical motion.

In figure 15, the Reynolds stresses are further investigated in a turbine subdomain. In figure 15(a,b) the Reynolds shear stresses are shown in a horizontal plane through the turbine rotor tip (this is the region where the Reynolds stresses are largest in figure 12). We observe that, in the controlled case, the Reynolds shear stresses increase significantly above the turbine-wake region, which can explain the faster wake recovery observed in figure 14(b). On average, the increased effect of Reynolds shear stresses is compensated by lower shear stresses in the regions between the turbine rows when comparing controlled and uncontrolled cases, leading to lower horizontally averaged values (cf. figure 12 b). Also, in a vertical plane (figure 15 c,d), it is appreciated that Reynolds shear stresses increase significantly in the wake region for the controlled case. However, they do not increase in front of the turbine.

Figure 15. Contours of Reynolds stresses averaged over control windows and turbine elements: (a,b) horizontal plane at the turbine-tip level; (cj $x$ $z$ planes through the rotor centre. (a,c,e,g,i) Uncontrolled case; (b,df,hj) the optimal control case averaged over time window $[5T_{A},20T_{A}]$ .

In figure 15(ej), the normal Reynolds stresses are shown in a vertical plane. All normal stresses increase significantly in the wake region for the controlled case. When looking $1D$ upstream of the turbine, we observe that the streamwise stresses $\overline{\widetilde{u}_{1}^{\prime }\widetilde{u}_{1}^{\prime }}$ decrease in the controlled case compared to the uncontrolled case. This is possibly beneficial for reducing turbine loading and local blade stall (cf. also discussion at end of § 2.2). The spanwise stresses $\overline{\widetilde{u}_{2}^{\prime }\widetilde{u}_{2}^{\prime }}$ remain roughly unchanged in front of the turbine, while the vertical stresses $\overline{\widetilde{u}_{3}^{\prime }\widetilde{u}_{3}^{\prime }}$ slightly increase. Nevertheless, overall, compared to the uncontrolled case, the turbulent kinetic energy $\overline{\widetilde{u}_{i}^{\prime }\widetilde{u}_{i}^{\prime }}/2$ in the controlled case decreases by almost 9 % in front of the turbines (measured $1D$ upstream). We should remark that our simulations do not resolve turbulent fluctuations of the size of the turbine blade chord. It has been demonstrated experimentally that the energy exchange is dominated by turbulent scales with size of the rotor diameter (Hamilton et al. Reference Hamilton, Kang, Meneveau and Cal2012). However, smaller scales can be very relevant for the local blade performance, e.g. having an effect on local blade stall. In a classical turbulent energy cascade, it is expected that such smaller scales follow the larger scales (that are here resolved), but this has to be further established using better turbine representations (e.g. using actuator line models) and finer resolutions. This is subject of further research (cf. discussion in § 6).

Given the fact that the turbulence levels decrease in front of the turbines, the increased fluctuations in power output observed in figure 9 all result from fluctuations in the control $C_{T}^{\prime }$ . It is possible to make a Reynolds decomposition of the extracted power, using (2.12), and defining $C_{T,i}^{\prime }\equiv \overline{C_{T,i}^{\prime }}+{\it\Delta}[C_{T,i}^{\prime }]$ and $\widehat{V}_{i}^{2}V_{i}\equiv \overline{\widehat{V}_{i}^{2}V_{i}}+{\it\Delta}[\widehat{V}_{i}^{2}V_{i}]$ . Thus,

(4.5) $$\begin{eqnarray}P=\mathop{\sum }_{i=1}^{N_{t}}\frac{1}{2}\,\overline{C_{T,i}^{\prime }}\,\overline{\widehat{V}_{i}^{2}V_{i}}\,A+\mathop{\sum }_{i=1}^{N_{t}}\frac{1}{2}{\it\Delta}[C_{T,i}^{\prime }]{\it\Delta}[\widehat{V}_{i}^{2}V_{i}]A.\end{eqnarray}$$

In the uncontrolled case, the second term on the right-hand side is zero. In the controlled case, we find that $C_{T}^{\prime }$ is slightly anticorrelated with $\widehat{V}_{i}^{2}V_{i}$ , leading to a negative value for the second term, with an observed magnitude that is approximately 6 % of the total extracted power $P$ (the first term on the right-hand side is 106 % of $P$ ). Consequently, the second term is a source in the turbulent kinetic energy equation. This may explain the locally increased turbulence levels observed in the turbine wakes above.

4.5. Discussion

As shown above, the average power extraction by the wind farm increases by 16 % averaged over $[0,25T_{A}]$ , corresponding to 1 h of wind-farm operation. This results directly from a large increase of vertical transport of energy by dispersive stresses, together with a local increase of Reynolds stresses in the wake region of the turbines.

In the current set-up, the increased transport of energy towards the inner layer cannot be sustained by the driving power, and the outer layer is decelerating. Thus, it is clear that it will not be possible to sustain these increased levels of power extraction indefinitely. However, for boundary layers that are characterized by a top boundary condition with entrainment, such as developing internal boundary layers above finite farms, or shallow ABLs, the situation may be entirely different. In such cases, entrainment is typically proportional to $u_{{\it\tau}h}^{2}$ , such that increased levels of inner-layer vertical transport may well be sustained by higher entrainment levels at the boundary layer top. Note, for instance, that, for a finite farm with an extent of 20 km, the characteristic through-flow time at a wind speed of $10~\text{m}~\text{s}^{-1}$ corresponds approximately to 30 min, which is of the same order of magnitude as the sustained inner-layer equilibrium realized in our current case, so that boundary-layer entrainment may not even need to fully compensate increased wind-farm extraction. This discussion is very speculative, but, given the current results, it points to very promising tracks for future research.

Finally, even in a boundary-layer context without entrainment at the top, a temporary increase of power extraction by 16 % over a period of 1 h as covered in figure 9 is potentially quite relevant in the context of ancillary services for the power grid, where reserve power is often required for similar time spans. Moreover, for a shorter time interval covering the first 12 min only ( $[0,5T_{A}]$ ), which is also relevant for ancillary services, power extraction increases even by 19 %.

5. Cases 2 and 3: optimal control with penalization of turbulent dissipation

In this section, we present the optimal control results for a wind-farm optimal control case where turbulent dissipation is penalized, i.e.  ${\it\gamma}\neq 0$ in (3.1). Given the fact that the total energy difference in (3.1) also corresponds to the sum of dissipation and power extraction, we can rewrite the cost functional as

(5.1) $$\begin{eqnarray}\mathscr{J}({\bf\varphi},\boldsymbol{q})=(1-{\it\gamma})\int _{0}^{\text{T}}-P(t)\,\text{d}t+{\it\gamma}\mathscr{D}_{{\it\Omega}}L_{x}L_{y}.\end{eqnarray}$$

Thus ${\it\gamma}>0$ leads to an optimization problem that penalizes $\mathscr{D}_{{\it\Omega}}$ . Moreover, ${\it\gamma}<1$ is required, as ${\it\gamma}=1$ leads to a cost functional that reduces dissipation, but has no impact any more on wind-farm energy extraction, while ${\it\gamma}>1$ starts penalizing wind-farm energy extraction.

As observed in the previous section for ${\it\gamma}=0$ , optimal control leads to a deceleration of the boundary layer, and over the length of our optimal control wind-farm simulations (i.e.  $t\in [0,25T_{A}]$ ) we did not converge to a new statistical equilibrium. Moreover, even if we would do so by continuing the procedure further in time, we do not expect that the problem formulation with ${\it\gamma}=0$ leads to good optima for such a new stationary equilibrium. To that end, the length of our optimal control time horizon $T$ , which is limited by practical restrictions (cf. § 3.5), is much too short compared to the slow dynamics of the boundary layer. Therefore, in the current section, we penalize turbulent dissipation with the aim to trigger different overall energy balances that possibly force the flow much faster into a new equilibrium, while also improving the ratio $\mathscr{P}/\mathscr{D}$ . Two different penalties ${\it\gamma}=1/2$ and ${\it\gamma}=2/3$ are used. From (5.1) it is seen that ${\it\gamma}=1/2$ corresponds to giving an equal weight to decreasing dissipation and increasing power extraction, while ${\it\gamma}=2/3$ gives a double weight to decreasing dissipation.

Below, first some features of the adjoint solution and the optimal controls are presented in § 5.1. Subsequently, energy balances are discussed in § 5.2, and mean profiles are presented in § 5.3.

5.1. Adjoint solutions and optimal controls

In figure 16, a snapshot of an instantaneous adjoint field is shown for ${\it\gamma}=2/3$ . Different from the adjoint fields for the unpenalized case (cf. figure 7), in the current case, the initial condition for the adjoint equations differs from zero, and corresponds to ${\bf\xi}(\boldsymbol{x},T)=2/3\boldsymbol{u}(\boldsymbol{x},T)$ instead. This is visible in figure 16 early in the adjoint simulation.

Figure 16. Contours of instantaneous streamwise adjoint field for ${\it\gamma}=2/3$ , obtained from the first gradient calculation in control window 1: (a $T-t=14~\text{s}$ : (b $T-t=174~\text{s}$ . Horizontal planes are taken at the hub height.

Figure 17 shows the behaviour of the thrust coefficient for one of the turbines in the controlled wind farm. Both ${\it\gamma}=1/2$ and ${\it\gamma}=3/2$ cases show strong response to the turbulent flow field. However, in comparison to figure 8, the changes are less extreme. It can also be seen from this figure that $C_{T}^{\prime }$ mostly stays within the lower and upper limits, i.e. 0 and 4, although occasionally it still hits the upper bound.

Figure 17. Time evolution of the thrust coefficient of one of the turbines in the farm: (a ${\it\gamma}=1/2$ ; (b ${\it\gamma}=2/3$ .

5.2. Discussion of energy balances

Figure 18(a,b) show the time series of the total instantaneous gains and losses in the boundary layer for ${\it\gamma}=1/2$ and ${\it\gamma}=2/3$ , respectively. It can be appreciated for both cases that the overall deceleration of the boundary layer remains limited, and the optimal control case with ${\it\gamma}=2/3$ even slightly accelerates for $t>1000$ . Also, compared to figure 9, it is observed that now dissipation does not increase much in the controlled case.

Figure 18. Time evolution of gains and losses, for (a ${\it\gamma}=1/2$ and (b ${\it\gamma}=2/3$ :    (grey), driving power by pressure force; —— (grey), rate of change of kinetic energy; —— (black), farm power; - $\cdot$ - $\cdot$ - (black), dissipation.

In order to assess the precise gains and losses for the different cases, we assemble the time-integrated gains and losses in tables 2 and 3. Time averaging is performed from $[0,20T_{A}]$ , i.e. the time window for which the inner layer of the ${\it\gamma}=0$ case remains in equilibrium. The uncontrolled case is averaged over the same time window. First of all, in table 2, gains and losses are normalized with the total power extracted from the system by the wind farm and dissipation (i.e.  $\mathscr{P}+\mathscr{D}$ ). Looking at the results in the table, it is observed that the respective contributions of $\mathscr{P}$ and $\mathscr{D}$ to the total energy extraction from the boundary layer shift only slightly for the different cases. For the ${\it\gamma}=0$ case, which does not penalize dissipation, the ratio $\mathscr{P}/\mathscr{D}\approx 0.65$ deteriorates compared to the uncontrolled case for which $\mathscr{P}/\mathscr{D}\approx 0.68$ . For ${\it\gamma}=1/2$ and ${\it\gamma}=2/3$ , the ratios slightly improve, i.e.  $\mathscr{P}/\mathscr{D}\approx 0.72$ for both cases. We remark that for ${\it\gamma}=2/3$ the ratio is slightly lower than for ${\it\gamma}=1/2$ (cf. table 2), even though ${\it\gamma}=2/3$ penalizes dissipation more. However, given the limited averaging time, this difference is probably not significant. Moreover, the cost functional (5.1) does not directly optimize the ratio $\mathscr{P}/\mathscr{D}$ .

Table 2. Overview of gains and losses averaged over $[0,20T_{A}]$ of different control cases normalized by total power extracted from the system (i.e. by $\mathscr{P}+\mathscr{D}$ ). As a result of normalization, both the sum of the left two columns, as well as the sum of the right two columns, add up to 100 %.

Table 3. Overview of control gains, expressed as differences from the uncontrolled reference case, and averaged over $[0,20T_{A}]$ . Each difference is normalized by its respective uncontrolled property (e.g.  $(\mathscr{P}-\mathscr{P}_{ref})/\mathscr{P}_{ref}$ ).

In table 3, the relative gains (changes) compared to the uncontrolled reference case are listed. It can be seen that all three cases increase wind-farm power extraction compared to the uncontrolled reference. Also dissipation increases for the three cases, but much less for ${\it\gamma}=1/2$ and ${\it\gamma}=2/3$ . Any increase in $\mathscr{P}+\mathscr{D}$ (compared to the reference) leads to an equal increase in the sum of power input and energy balance – the latter is also listed in table 3. Only for the optimal control case with ${\it\gamma}=2/3$ does the total power extracted from the system remain close to that of the uncontrolled reference. The gain in wind-farm power extraction in this case is limited to 6 %. Note that, if we were to assume a system that remains perfectly in equilibrium, then a change of $\mathscr{P}/\mathscr{D}$ from 0.68 to 0.72 (cf. above) would be equivalent to an increase of wind-farm power extraction of 5.8 %.

Finally, we remark that the order of magnitude of statistical errors in the discussion above is approximately 1 % – this is appreciated from $\text{d}E/\text{d}t\neq 0$ for the uncontrolled case in table 2.

5.3. Averaged flow profiles

Similar to the case without penalization, it is observed here that the inner region of the boundary layer is in statistical equilibrium after a short transition period. To assess averaged flow profiles in the current section, we will simply use the same averaging window $[5T_{A},20T_{A}]$ as proposed for ${\it\gamma}=0$ .

Average velocity profiles are shown in figure 19. Only the uncontrolled case and the averages over $[5T_{A},20T_{A}]$ are shown for ${\it\gamma}=1/2$ and ${\it\gamma}=2/3$ . We observe that the wind at turbine level decelerates a bit compared to the uncontrolled case, but now the outer layer slightly accelerates. This results from the fact that overall the driving power in these cases remains approximately constant (cf. figure 18), so that, with constant driving force, also the bulk velocity remains constant.

Figure 19. Streamwise mean velocities: ——, uncontrolled case;   , ${\it\gamma}=1/2$ ; - $\cdot$ - $\cdot$ -, ${\it\gamma}=2/3$ . The optimal control cases are averaged over the time window $[5T_{A},20T_{A}]$ .

In figure 20, we further look at total, Reynolds and dispersive stresses. In contrast to the unpenalized case, the peaks of total shear stresses in figure 20(a) (just above the wind farm) remain close to the uncontrolled case. For ${\it\gamma}=1/2$ it is a little higher, and for ${\it\gamma}=2/3$ a little lower, than the uncontrolled case, but this difference is statistically not significant in view of the limited temporal averaging time. Similar to before, dispersive stresses increase while Reynolds stresses decrease. When looking at the normal stresses in figure 20(bd), some further differences are observed compared to optimal control with ${\it\gamma}=0$ . First of all, similar to ${\it\gamma}=0$ (cf. figure 12), all dispersive stresses increase compared to the uncontrolled case (though not as much as for ${\it\gamma}=0$ ). However, in contrast to ${\it\gamma}=0$ , the streamwise total stresses decrease compared to the uncontrolled case as a result of a significant decrease in streamwise Reynolds stresses. Looking at the vertical transport in the penalized cases (figure not shown here), we observe that the total transport remains largely unchanged, but is carried more by dispersive stresses (i.e. by mean flow transport) and less by turbulent stresses.

Figure 20. Vertical profiles of total, Reynolds and dispersive stresses: —— (black), —— (orange) and —— (cyan) respectively total stresses, Reynolds stresses and dispersive stresses for the uncontrolled case;    (black),    (orange) and    (cyan) respectively total stresses, Reynolds stresses and dispersive stresses for the controlled case with ${\it\gamma}=1/2$ averaged over $[5T_{A},20T_{A}]$ ; - $\cdot$ - $\cdot$ - (black), - $\cdot$ - $\cdot$ - (orange) and - $\cdot$ - $\cdot$ - (cyan) same for case with ${\it\gamma}=2/3$ .

When further analysing the spatial distribution of mean velocity profiles and Reynolds stresses (not further shown here), we observe again important changes between the controlled cases and the uncontrolled cases. Similar to ${\it\gamma}=0$ , the turbine inflow improves, with a slightly higher mean velocity, and lower turbulence intensity. However, the wake deficit is much less pronounced as less energy is extracted. Now, Reynolds stresses only slightly increase in the wake regions, but they significantly decrease between the turbine rows.

6. Conclusions

In the current study, we investigated optimal control of wind-farm boundary layers in LES with the aim to increase wind-farm energy extraction. In order to simplify the problem, the asymptotic limit of an ‘infinite’ wind farm in a PBL was considered, allowing the use of periodic boundary conditions and pseudospectral discretization of the LES equations. Wind turbines are modelled using an ADM. For the optimal control, individual turbines were considered to be flow actuators, whose energy extraction can be dynamically regulated in time so as to optimally influence the flow field in the boundary layer. Using the ADM, this is consistent with dynamically controlling the turbine thrust coefficients in time, and per wind turbine.

We considered a wind-farm boundary layer that is well documented (Calaf et al. Reference Calaf, Meneveau and Meyers2010; Meyers & Meneveau Reference Meyers and Meneveau2013), and consists of an aligned wind farm, with $10\times 5$ turbines on a $7~\text{km}\times 3~\text{km}\times 1~\text{km}$ simulation domain. For the optimal control, a receding-horizon approach was employed, in which the turbine thrust coefficients were optimized over a time horizon of 280 s, and then used during the first half of that period, before continuing with the next optimization window. This led to a series of PDE-constrained optimization problems (one per control window) with approximately 20 000 degrees of freedom in the control space, and 1 billion in the space–time LES solution space. These optimization problems were solved with a nonlinear conjugate-gradient method, where adjoint LES equations were used for the identification of cost-functional gradients. In order to limit computational costs, the number of PDE simulations per optimization problem was limited to 45, and optimal control was performed for 25 consecutive optimal control problems, leading to 1 h of accumulated wind-farm operation.

A first optimal control case focused on direct maximization of wind-farm energy extraction. We found that energy extraction increases up to 16 % (for 1 h) or even 19 % (for 12 min), but overall the boundary layer decelerates, and also dissipation levels increase. The increased energy extraction is directly related to an increase of vertical fluxes of kinetic energy. A detailed decomposition of stresses in dispersive and Reynolds stresses revealed that dispersive stresses (and fluxes) increase drastically, while Reynolds stresses decrease overall, but increase locally in the wake region, inducing better wake recovery. A further analysis of the inner layer and turbine region of the boundary layer showed that boundary-layer deceleration mainly occurred in the outer layer, while the inner layer remained more or less in equilibrium. For the current PBL, the driving power is not sufficient to keep the system in balance given the increase of power extraction. In other types of boundary layers, e.g. the internal boundary layer above a finite farm, boundary-layer entrainment may change this picture. This is an interesting topic for further research.

Two more optimal control problems looked into maximizing power extraction, but at the same time penalizing turbulent dissipation, with the aim to trigger different overall energy balances with lower levels of vertical turbulent fluxes. We found that, depending on the penalization level, total gains in energy extraction decrease, and so do vertical fluxes of energy. For a pressure-driven boundary layer in equilibrium, we estimate that increases in energy extraction are of the order of 6 %. This is related to a small shift in the ratio of wind-farm power extraction to total turbulent dissipation from 68 % to 72 %. Currently, these are estimates based on accumulated operation of 1 h. Further research is warranted, with longer averaging, and with different types of penalization. For instance, boundary-layer deceleration may be directly penalized, and adaptive penalization may be considered to keep acceleration or deceleration within acceptable bands, etc.

The current study presented optimal wind-farm boundary-layer control, demonstrating considerable gains in energy extraction. Nevertheless, many challenges remain before this can be translated to real wind-farm application. First of all, it will be interesting to investigate optimal control of finite farms in real ABLs that include Coriolis forcing and a capping inversion layer. Moreover, the effects of boundary layer stratification will also be important. Further, different wind-farm topologies are of interest, including possible terrain effects, or effects of propagating waves in offshore farms (see e.g. Yang, Meneveau & Shen Reference Yang, Meneveau and Shen2014a ,Reference Yang, Meneveau and Shen b ). Also, the turbine representation in the large-eddy simulation can be refined, e.g. using an actuator line model with finer simulation resolutions. This allows for a better representation of turbulence effects on blade performance, and may further include dynamic stall models (cf. e.g. Larsen, Nielsen & Krenk Reference Larsen, Nielsen and Krenk2007) to describe blade lift and drag coefficients as functions of time-varying local flow conditions. Next to that, details of the control description should be refined, using a formulation in terms of generator torque and blade pitch control, which takes into account rotor and blade pitch inertia. The inclusion of turbine yaw settings, which can be used to change the direction of wakes (Soleimanzadeh et al. Reference Soleimanzadeh, Wisniewski and Kanev2012), may also be relevant. The optimal control methodology can also be further developed, for example, using more efficient gradient-based approaches (see e.g. Badreddine et al. Reference Badreddine, Vandewalle and Meyers2014), investing more computational resources in converging the optima, and including multiple starting points in the optimization algorithms to explore possible multiple local optima. Finally, the current optimal control approach allows one to benchmark control potential, but is not practicable for use as a real-time controller. Development of real-time controllers that approximate the performance of our idealized optimal control is an interesting future challenge.

Acknowledgements

The authors acknowledge support from the European Research Council (FP7-Ideas, grant no. 306471), the Flemish Science Foundation (FWO, grant no. G.0376.12) and BOF KU Leuven (grant no. IDO/11/012). Simulations were performed on the computing infrastructure of the VSC Flemish Supercomputer Center, funded by the Hercules Foundation and the Flemish Government.

Appendix A. Blade element analysis of turbine-disk thrust coefficient

In the current appendix, we briefly relate the disk-based thrust coefficient $C_{T}^{\prime }$ to the turbine-blade characteristics using blade element analysis (§ A.1). In addition, this relationship is further used to estimate a reasonable order of magnitude for the upper bound on $C_{T}^{\prime }$ used in the optimal control (§ A.2).

A.1. Blade element analysis

Given the disk-based velocity $V_{d}$ and the turbine rotation speed ${\it\omega}$ , the local velocity triangles around the turbine blades can be constructed – see figure 21. This corresponds to the conventional velocity triangles in blade element momentum theory (see e.g. Burton et al. Reference Burton, Sharpe, Jenkins and Bossanyi2001), but based here on disk velocity. Thus

(A 1a,b ) $$\begin{eqnarray}\sin {\it\phi}=\frac{V_{d}}{W}\quad \text{and}\quad \cos {\it\phi}=\frac{{\it\omega}r(1+a_{t})}{W},\end{eqnarray}$$

with $W$ the relative velocity to the blade and $a_{t}$ the tangential induction factor (further details follow). Moreover,

(A 2) $$\begin{eqnarray}W=\{V_{d}^{2}+[{\it\omega}r(1+a_{t})]^{2}\}^{1/2}=V_{d}\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2},\end{eqnarray}$$

where ${\it\lambda}^{\prime }={\it\omega}R/V_{d}$ (the tip-speed ratio based on disk velocity) and ${\it\mu}=r/R$ (with $R$ the turbine radius).

Figure 21. Velocity and force components at a cross-section of a blade element.

Given an annular ring with thickness $\text{d}r$ (cf. figure 21), the force exerted on the flow in this ring by $N$ blades with chord $c$ corresponds to

(A 3) $$\begin{eqnarray}\displaystyle {\it\delta}F & = & \displaystyle {\textstyle \frac{1}{2}}{\it\rho}W^{2}Nc(c_{L}\cos {\it\phi}+c_{D}\sin {\it\phi})\,\text{d}r,\end{eqnarray}$$
(A 4) $$\begin{eqnarray}\displaystyle & = & \displaystyle {\textstyle \frac{1}{2}}{\it\rho}V_{d}^{2}Nc\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2}[c_{L}{\it\lambda}^{\prime }{\it\mu}(1+a_{t})+c_{D}]R{\it\delta}{\it\mu},\end{eqnarray}$$
where $c_{L}(r)$ and $c_{D}(r)$ are the lift and drag coefficients of the blade profiles.

By definition $C_{T}^{\prime }\equiv 2F/({\it\rho}V_{d}^{2}A)$ . Thus, we can integrate ${\it\delta}F$ along the radius to obtain

(A 5) $$\begin{eqnarray}C_{T}^{\prime }=\int _{0}^{1}\frac{Nc}{{\rm\pi}R}\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2}[c_{L}{\it\lambda}^{\prime }{\it\mu}(1+a_{t})+c_{D}]\,\text{d}{\it\mu}.\end{eqnarray}$$

This expression depends only on the turbine blade geometry, the blade lift and drag coefficients, and the selected tip-speed ratio ${\it\lambda}^{\prime }$ at which the turbine is operated. A further unknown is the tangential induction factor $a_{t}$ , but this is straightforward to express in terms of the same parameters, as shown next.

The torque exerted by the turbine on the flow in the same annular ring with thickness $\text{d}r$ (cf. figure 21) can be similarly expressed as

(A 6) $$\begin{eqnarray}{\it\delta}T={\textstyle \frac{1}{2}}{\it\rho}V_{d}^{2}Nc\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2}[c_{L}-c_{D}{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]R^{2}{\it\mu}\,\text{d}{\it\mu}.\end{eqnarray}$$

This torque induces a change of angular momentum of the flow passing through the annular ring, leading to a difference in tangential velocity ${\rm\Delta}V_{{\it\theta}}$ before and after the turbine. Thus the change in angular momentum corresponds to ${\it\delta}M=2{\rm\pi}r\,\text{d}r\,{\it\rho}V_{d}{\rm\Delta}V_{{\it\theta}}r=4{\rm\pi}{\it\rho}V_{d}{\it\omega}a_{t}r^{3}\,\text{d}r$ , where by convention $a_{t}\equiv {\rm\Delta}V_{{\it\theta}}/(2{\it\omega}r)$ . Since ${\it\delta}M={\it\delta}T$ , we find an implicit expression for $a_{t}({\it\mu})$ , i.e. 

(A 7) $$\begin{eqnarray}8{\it\lambda}^{\prime }{\it\mu}^{2}a_{t}=\frac{Nc}{{\rm\pi}R}\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2}[c_{L}-c_{D}{\it\lambda}^{\prime }{\it\mu}(1+a_{t})],\end{eqnarray}$$

that also depends only on blade geometry, aerodynamic coefficients and tip-speed ratio.

Finally, since $C_{P}^{\prime }\equiv 2T{\it\omega}/({\it\rho}V_{d}^{3}A)$ , and integrating (A 6) over the radius, we find

(A 8) $$\begin{eqnarray}C_{P}^{\prime }=\int _{0}^{1}\frac{Nc}{{\rm\pi}R}\{1+[{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]^{2}\}^{1/2}[c_{L}-c_{D}{\it\lambda}^{\prime }{\it\mu}(1+a_{t})]{\it\lambda}^{\prime }{\it\mu}\,\text{d}{\it\mu}.\end{eqnarray}$$

The ratio $C_{P}^{\prime }/C_{T}^{\prime }<1$ . For the ideal case that $c_{D}=0$ , and that no swirl is added to the wake ( $a_{t}=0$ ), it is readily seen that $C_{T}^{\prime }=C_{P}^{\prime }$ . For the idealized case of the Betz limit, we know that $V_{d}=2V_{\infty }/3$ (Burton et al. Reference Burton, Sharpe, Jenkins and Bossanyi2001), so that further $C_{T}^{\prime }=C_{P}^{\prime }=2$ .

A.2. Estimate of an upper value for $C_{T}^{\prime }$

In the current section, we estimate a reasonable upper value for $C_{T}^{\prime }$ that can be used as a constraint in the optimal control algorithm. Given a turbine design, it is straightforward to decrease $C_{T}^{\prime }$ by pitching the blades. However, increasing $C_{T}^{\prime }$ beyond its original design value is simply not possible without losing a lot of efficiency (e.g. by stall). Nowadays, turbines are designed to have $C_{T}^{\prime }$ values that are maximum around 2. Higher values do not make sense, as these are above the optimal Betz value. However, for the optimal control in the current work, we do not want to restrict $C_{T}^{\prime }$ a priori to a maximum of 2. Here we briefly investigate how $C_{T}^{\prime }$ relates to design choices such as the turbine blade chord, and the operational tip-speed ratio for a real turbine.

As a reference, we consider the specifications (geometry, tabulated lift and drag coefficients, etc.) of the ‘NREL offshore 5 MW baseline wind turbine’ (Jonkman et al. Reference Jonkman, Butterfield, Musial and Scott2009). Using (A 5) and (A 7), $C_{T}^{\prime }$ is calculated for a range of tip-speed ratios ${\it\lambda}^{\prime }$ and chord lengths $c$ , keeping all other parameters unchanged. The results are shown in table 4. Given those results, we choose a maximum value for $C_{T}^{\prime }$ of 4 in the optimal control. This value is arbitrary, but is merely intended to give an order of magnitude of what could be technically feasible.

Table 4. Blade element evaluation of $C_{T}^{\prime }$ for a range of ${\it\lambda}^{\prime }$ and $c$ values, using the NREL 5 MW turbine (Jonkman et al. Reference Jonkman, Butterfield, Musial and Scott2009) as a baseline.

Appendix B. Geostrophic wind

In the current appendix, we derive a relation between $u_{{\it\tau}h}$ and the geostrophic wind speed $G$ for ‘infinite’ wind-farm ABLs, partly inspired by the work of Zilitinkevich (Reference Zilitinkevich1989). The ABL is driven by the geostrophic balance above the boundary layer, where, in the absence of any friction terms, the pressure gradient is balanced by Coriolis forces, i.e. (Tennekes & Lumley Reference Tennekes and Lumley1972; Stull Reference Stull1988)

(B 1a,b ) $$\begin{eqnarray}\frac{1}{{\it\rho}}\frac{\partial p_{\infty }}{\partial x_{1}}=f_{c}G\sin {\it\alpha}\quad \text{and}\quad \frac{1}{{\it\rho}}\frac{\partial p_{\infty }}{\partial x_{2}}=-f_{c}G\cos {\it\alpha},\end{eqnarray}$$

with $f_{c}$ the Coriolis parameter, $G$ the magnitude of the geostrophic wind and ${\it\alpha}$ the angle between the geostrophic wind and the wind in the surface layer (which is in the $x_{1}$ direction).

The Navier–Stokes momentum equations with Coriolis forces now correspond to

(B 2) $$\begin{eqnarray}\frac{\partial \boldsymbol{u}}{\partial t}+\boldsymbol{u}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\boldsymbol{u}=-\frac{1}{{\it\rho}}\boldsymbol{{\rm\nabla}}(p+p_{\infty })+f_{c}\boldsymbol{u}\times \boldsymbol{e}_{3}+{\it\nu}{\rm\nabla}^{2}\boldsymbol{u}+\boldsymbol{f},\end{eqnarray}$$

where $p$ represents the remaining part of the pressure (after removing $p_{\infty }$ ), ${\it\nu}$ is the kinematic viscosity and $f_{c}$ is the Coriolis parameter.

Multiplying (B 2) with $\boldsymbol{u}$ , averaging over horizontal planes and integrating over the height of the ABL yields the total energy balance. For statistically stationary boundary layers, and using (B 1) and continuity, this leads to

(B 3) $$\begin{eqnarray}\displaystyle \int _{0}^{H}f_{c}(-G\sin {\it\alpha}\,\langle u_{1}\rangle +G\cos {\it\alpha}\,\langle u_{2}\rangle )\,\text{d}x_{3} & = & \displaystyle \int _{0}^{H}{\it\nu}\langle \boldsymbol{{\rm\nabla}}\boldsymbol{u}\,\boldsymbol{ : }\,\boldsymbol{{\rm\nabla}}\boldsymbol{u}\rangle \,\text{d}x_{3}-\int _{0}^{H}\langle \,\boldsymbol{f}\boldsymbol{\cdot }\boldsymbol{u}\rangle \,\text{d}x_{3},\end{eqnarray}$$
(B 4) $$\begin{eqnarray}\displaystyle & = & \displaystyle \mathscr{D}+\mathscr{P},\end{eqnarray}$$
where $\langle \cdots \rangle$ is used to denote horizontal averages (statistically converged over ‘infinite’ horizontal planes). Furthermore, $\mathscr{D}$ is the total dissipation by turbulence per unit wind-farm area, and $\mathscr{P}$ is the average turbine power extraction per unit farm area.

The left-hand side of (B 4) can be further elaborated by horizontal averaging and integrating of the $u_{1}$ and $u_{2}$ momentum equations (B 2). For $u_{1}$ , this leads to

(B 5) $$\begin{eqnarray}\displaystyle -f_{c}G\sin {\it\alpha}\,H+\int _{0}^{H}f_{c}\langle u_{2}\rangle \,\text{d}x_{3} & = & \displaystyle {\it\tau}_{w}-\int _{0}^{H}\langle \,\boldsymbol{f}\boldsymbol{\cdot }\boldsymbol{e}_{1}\rangle \,\text{d}x_{3},\end{eqnarray}$$
(B 6) $$\begin{eqnarray}\displaystyle & = & \displaystyle u_{{\it\tau}h}^{2}\quad (\text{using (2.13)}).\end{eqnarray}$$
For $u_{2}$ , we obtain
(B 7) $$\begin{eqnarray}f_{c}G\cos {\it\alpha}\,H-\int _{0}^{H}f_{c}\langle u_{1}\rangle \,\text{d}x_{3}=0.\end{eqnarray}$$

(Recall that $x$ is aligned with the flow direction in the surface layer, so that the wall stress has no average component in the integrated $y$ -momentum equation.)

Equations (B 6) and (B 7) are now used in (B 4) to eliminate $\langle u_{1}\rangle$ and $\langle u_{2}\rangle$ , leading to

(B 8) $$\begin{eqnarray}G\cos {\it\alpha}\,u_{{\it\tau}h}^{2}=\mathscr{D}+\mathscr{P}.\end{eqnarray}$$

Finally, the angle ${\it\alpha}$ can be further eliminated by using a similarity relation for the wind profile, i.e. following Tennekes & Lumley (Reference Tennekes and Lumley1972)

(B 9) $$\begin{eqnarray}\frac{G\sin {\it\alpha}}{u_{{\it\tau}h}}=-A,\end{eqnarray}$$

where $A\approx 12$ is an empirical constant (Tennekes & Lumley Reference Tennekes and Lumley1972; Frandsen Reference Frandsen1992). Combining this with (B 8) yields

(B 10) $$\begin{eqnarray}G=u_{{\it\tau}h}\sqrt{A^{2}+\left(\frac{\mathscr{D}+\mathscr{ P}}{u_{{\it\tau}h}^{3}}\right)^{2}}.\end{eqnarray}$$

Appendix C. Derivations of gradient of the reduced cost functional and adjoint equations

In the current appendix, we derive the gradient of the cost functional, and the adjoint equations that can be used for the determination of the gradient. To that end, first some definitions are introduced, i.e. a proper definition of inner products, a definition of the gradient of a functional, the linearization of the state equations and the adjoint of a linear operator.

C.1. Some definitions

First of all, define the inner product between state variables $\boldsymbol{q}_{1}$ and $\boldsymbol{q}_{2}$ and control variables ${\bf\varphi}_{1}$ and ${\bf\varphi}_{2}$ (all in suitable Hilbert spaces ${\mathcal{H}}$ ) as

(C 1) $$\begin{eqnarray}\displaystyle & \displaystyle (\boldsymbol{q}_{1},\boldsymbol{q}_{2})=\int _{0}^{T}\!\!\int _{{\it\Omega}}\widetilde{\boldsymbol{u}}_{1}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}_{2}\,\text{d}\boldsymbol{x}\,\text{d}t+\int _{0}^{T}\!\!\int _{{\it\Omega}}\widetilde{p}_{1}\widetilde{p}_{2}\,\text{d}\boldsymbol{x}\,\text{d}t+\int _{0}^{T}\widehat{\boldsymbol{V}}_{1}\boldsymbol{\cdot }\widehat{\boldsymbol{V}}_{2}\,\text{d}t, & \displaystyle\end{eqnarray}$$
(C 2) $$\begin{eqnarray}\displaystyle & \displaystyle ({\bf\varphi}_{1},{\bf\varphi}_{2})=\int _{0}^{T}{\bf\varphi}_{1}\boldsymbol{\cdot }{\bf\varphi}_{2}\,\text{d}t. & \displaystyle\end{eqnarray}$$
Using these definitions of inner products, and the associated functional spaces, the gradient of a differentiable functional is now defined as the Riesz representation of its derivative (see e.g. Tröltzsch Reference Tröltzsch2010; Borzi & Schultz Reference Borzi and Schultz2012). Thus, for the reduced cost functional and using the definition of the Gateau derivative in the direction ${\it\delta}{\bf\varphi}$ this leads to
(C 3) $$\begin{eqnarray}\widetilde{\mathscr{J}}_{{\bf\varphi}}({\it\delta}{\bf\varphi})\equiv \left.\frac{\text{d}}{\text{d}{\it\alpha}}\widetilde{\mathscr{J}}({\bf\varphi}+{\it\alpha}{\it\delta}{\bf\varphi})\right|_{{\it\alpha}=0}=(\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}},{\it\delta}{\bf\varphi})\quad \forall ~{\it\delta}{\bf\varphi}\in {\mathcal{H}}.\end{eqnarray}$$

Since the derivative is a linear functional, the Riesz representation theorem ensures that the form on the right-hand side can always be found.

The state equations $\boldsymbol{B}({\bf\varphi},\boldsymbol{q})=0$ can be linearized around $({\bf\varphi},\boldsymbol{q})$ in a direction $({\it\delta}{\bf\varphi},{\it\delta}\boldsymbol{q})$ , leading to a set of linear (partial) differential equations,

(C 4) $$\begin{eqnarray}\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}+\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}{\it\delta}\boldsymbol{q}=0,\end{eqnarray}$$

where $\partial \boldsymbol{B}/\partial {\bf\varphi}$ and $\partial \boldsymbol{B}/\partial \boldsymbol{q}$ are linear operators.

Finally, the adjoints of these linear operators can be defined. For the operator $\partial \boldsymbol{B}/\partial \boldsymbol{q}$ , the adjoint is defined through

(C 5) $$\begin{eqnarray}\left(\boldsymbol{q}^{\ast },\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}{\it\delta}\boldsymbol{q}\right)\equiv \left(\left[\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}\right]^{\ast }\boldsymbol{q}^{\ast },{\it\delta}\boldsymbol{q}\right)+\mathit{BT}_{1},\end{eqnarray}$$

where $[\partial \boldsymbol{B}/\partial \boldsymbol{q}]^{\ast }$ is typically found using integration by parts (cf. further below for practical derivations), and $\mathit{BT}_{1}$ are boundary terms that arise as a result of this. Similarly,

(C 6) $$\begin{eqnarray}\left({\bf\varphi}^{\ast },\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}\right)\equiv \left(\left[\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}\right]^{\ast }{\bf\varphi}^{\ast },{\it\delta}{\bf\varphi}\right)+\mathit{BT}_{2}.\end{eqnarray}$$

This second identity is usually trivial. In the current work, it is easily found that $\partial \boldsymbol{B}/\partial {\bf\varphi}=[\partial \boldsymbol{B}/\partial {\bf\varphi}]^{\ast }$ and $\mathit{BT}_{2}=0$ . Further elaboration follows in § C.2.

C.2. Gradient of the reduced cost functional

Using (C 3) and (3.4), the gradient of the reduced cost functional can be expressed as

(C 7) $$\begin{eqnarray}(\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}},{\it\delta}{\bf\varphi})=\left(\frac{\partial \mathscr{J}}{\partial {\bf\varphi}},{\it\delta}{\bf\varphi}\right)+\left(\frac{\partial \mathscr{J}}{\partial \boldsymbol{q}},\frac{\partial \boldsymbol{q}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}\right)=\left(\frac{\partial \mathscr{J}}{\partial {\bf\varphi}},{\it\delta}{\bf\varphi}\right)+\left(\frac{\partial \mathscr{J}}{\partial \boldsymbol{q}},{\it\delta}\boldsymbol{q}\right).\end{eqnarray}$$

However, straightforwardly using this formulation leads to very expensive gradient evaluations, as ${\it\delta}\boldsymbol{q}$ requires the solution of (a linearized version of) the governing partial differential equations (i.e. given by (C 4)) for every possible direction ${\it\delta}{\bf\varphi}$ represented in the gradient. Instead, an adjoint-based approach is usually followed for the gradient calculation. This has long been established in problems related to aerodynamic design (see Pironneau Reference Pironneau1974; Jameson Reference Jameson1988), and has also been adapted to transient Navier–Stokes simulations (see Choi et al. (Reference Choi, Hinze and Kunisch1999) and Bewley et al. (Reference Bewley, Moin and Temam2001), among others).

To formulate the gradient of the reduced cost functional $\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}$ using an adjoint formulation, we follow the formal Lagrangian method (see e.g. Tröltzsch Reference Tröltzsch2010; Borzi & Schultz Reference Borzi and Schultz2012). To this end, we first introduce the Lagrangian associated with the problem formulation used in (3.2) and (3.3). Introducing a set of Lagrange multipliers $\boldsymbol{q}^{\ast }=({\bf\xi},{\rm\pi},{\bf\chi})$ for each state constraint, with state variables $\boldsymbol{q}=(\widetilde{\boldsymbol{u}},\widetilde{p},\widehat{\boldsymbol{V}})$ , this leads to

(C 8) $$\begin{eqnarray}\displaystyle \mathscr{L}({\bf\varphi},\boldsymbol{q},\boldsymbol{q}^{\ast }) & = & \displaystyle \mathscr{J}({\bf\varphi},\boldsymbol{q})+(\boldsymbol{q}^{\ast },\boldsymbol{B}({\bf\varphi},\boldsymbol{q}))\end{eqnarray}$$
(C 9) $$\begin{eqnarray}\displaystyle & \equiv & \displaystyle \mathscr{J}({\bf\varphi},\boldsymbol{q})+\int _{0}^{T}\!\!\int _{{\it\Omega}}{\rm\pi}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\widetilde{\boldsymbol{u}}\,\text{d}\boldsymbol{x}\,\text{d}t+\int _{0}^{T}\left[{\it\tau}\frac{\text{d}\widehat{\boldsymbol{V}}}{\text{d}t}-(\boldsymbol{V}-\widehat{\boldsymbol{V}})\right]\!\boldsymbol{\cdot }{\bf\chi}\,\text{d}t\nonumber\\ \displaystyle & & \displaystyle +\,\int _{0}^{T}\!\!\int _{{\it\Omega}}\left[\frac{\partial \widetilde{\boldsymbol{u}}}{\partial t}+\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}\widetilde{\boldsymbol{u}}+\frac{1}{{\it\rho}}\boldsymbol{{\rm\nabla}}\widetilde{p}-f_{\infty }\boldsymbol{e}_{1}-\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{M}\right.\nonumber\\ \displaystyle & & \displaystyle \left.\vphantom{\frac{\partial \widetilde{\boldsymbol{u}}}{\partial t}}-\,\boldsymbol{f}-{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3}){\bf\tau}_{\boldsymbol{w}}\right]\!\boldsymbol{\cdot }{\bf\xi}\,\text{d}\boldsymbol{x}\,\text{d}t.\end{eqnarray}$$

If we now consider the reduced optimization problem, we trivially find (see e.g. Borzi & Schultz Reference Borzi and Schultz2012)

(C 10) $$\begin{eqnarray}\widetilde{\mathscr{J}}({\bf\varphi})=\mathscr{L}({\bf\varphi},\boldsymbol{q}({\bf\varphi}),\boldsymbol{q}^{\ast })=\mathscr{J}({\bf\varphi},\boldsymbol{q}({\bf\varphi}))+(\boldsymbol{q}^{\ast },\boldsymbol{B}({\bf\varphi},\boldsymbol{q}({\bf\varphi}))),\end{eqnarray}$$

since by definition the implicit relation $\boldsymbol{q}({\bf\varphi})$ is equivalent to $\boldsymbol{B}({\bf\varphi},\boldsymbol{q}({\bf\varphi}))\equiv 0$ . Thus, applying the chain rule of differentiation, and using the Riesz representation theorem, this leads to

(C 11) $$\begin{eqnarray}\displaystyle (\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}},{\it\delta}{\bf\varphi}) & = & \displaystyle \left(\frac{\partial \mathscr{J}}{\partial {\bf\varphi}},{\it\delta}{\bf\varphi}\right)+\left(\boldsymbol{q}^{\ast },\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}\right)+\left(\frac{\partial \mathscr{J}}{\partial \boldsymbol{q}},\frac{\partial \boldsymbol{q}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}\right)+\left(\boldsymbol{q}^{\ast },\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}\frac{\partial \boldsymbol{q}}{\partial {\bf\varphi}}{\it\delta}{\bf\varphi}\right)\nonumber\\ \displaystyle & & \displaystyle\end{eqnarray}$$
(C 12) $$\begin{eqnarray}\displaystyle & = & \displaystyle \left(\frac{\partial \mathscr{J}}{\partial {\bf\varphi}},{\it\delta}{\bf\varphi}\right)+\left(\left[\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}\right]^{\ast }\boldsymbol{q}^{\ast },{\it\delta}{\bf\varphi}\right)+\left(\left\{\frac{\partial \mathscr{J}}{\partial \boldsymbol{q}}+\left[\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}\right]^{\ast }\boldsymbol{q}^{\ast }\right\},{\it\delta}\boldsymbol{q}\right)+\mathit{BT}_{1}.\nonumber\\ \displaystyle & & \displaystyle\end{eqnarray}$$
Now, provided that
(C 13) $$\begin{eqnarray}\mathscr{L}_{\boldsymbol{q}}({\it\delta}\boldsymbol{q})=\left(\frac{\partial \mathscr{L}}{\partial \boldsymbol{q}},{\it\delta}\boldsymbol{q}\right)=\left(\left\{\frac{\partial \mathscr{J}}{\partial \boldsymbol{q}}+\left[\frac{\partial \boldsymbol{B}}{\partial \boldsymbol{q}}\right]^{\ast }\boldsymbol{q}^{\ast }\right\},{\it\delta}\boldsymbol{q}\right)+\mathit{BT}_{1}=0,\end{eqnarray}$$

which defines the adjoint equations, and boundary conditions (cf. further § C.3), we can identify the gradient of the cost functional as

(C 14) $$\begin{eqnarray}\boldsymbol{{\rm\nabla}}\!\widetilde{\mathscr{J}}=\frac{\partial \mathscr{L}}{\partial {\bf\varphi}}=\frac{\partial \mathscr{J}}{\partial {\bf\varphi}}+\left[\frac{\partial \boldsymbol{B}}{\partial {\bf\varphi}}\right]^{\ast }\boldsymbol{q}^{\ast }.\end{eqnarray}$$

This can be evaluated at the cost of one adjoint LES simulation, and does not need a direct evaluation of ${\it\delta}\boldsymbol{q}$ . Using (C 14), (C 9), (3.1) and (2.7), this leads to (3.9).

C.3. Derivation of the adjoint equations

From (C 13), it is clear that the adjoint equations can be found by expressing $\mathscr{L}_{\boldsymbol{q}}({\it\delta}\boldsymbol{q})=0$ in its Riesz representation form $(\partial \mathscr{L}/\partial \boldsymbol{q},{\it\delta}\boldsymbol{q})=0$ . Thus, based on (C 9), we express

(C 15) $$\begin{eqnarray}\displaystyle \mathscr{L}_{\boldsymbol{q}}({\it\delta}\boldsymbol{q}) & = & \displaystyle \mathscr{L}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})+\mathscr{L}_{\widetilde{p}}({\it\delta}\widetilde{p})+\mathscr{L}_{\widehat{\boldsymbol{V}}}({\it\delta}\widehat{\boldsymbol{V}})\end{eqnarray}$$
(C 16) $$\begin{eqnarray}\displaystyle \hphantom{\mathscr{L}_{\boldsymbol{q}}({\it\delta}\boldsymbol{q})} & = & \displaystyle \underbrace{\begin{array}[t]{@{}l@{}}\mathscr{J}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})+\displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}(\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\it\delta}\widetilde{\boldsymbol{u}}){\rm\pi}\,\text{d}\boldsymbol{x}\,\text{d}t-\int _{0}^{T}\boldsymbol{V}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})\boldsymbol{\cdot }{\bf\chi}\,\text{d}t\\ \qquad +\displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\left[\frac{\partial {\it\delta}\widetilde{\boldsymbol{u}}}{\partial t}+(\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}){\it\delta}\widetilde{\boldsymbol{u}}+({\it\delta}\widetilde{\boldsymbol{u}}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}})\widetilde{\boldsymbol{u}}\right.\\ \qquad \qquad \left.\phantom{\displaystyle \frac{\partial {\it\delta}\boldsymbol{u}}{\partial t}}-\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }({{\bf\tau}_{M}}_{\widetilde{\boldsymbol{u}}}({\it\delta}\boldsymbol{u}))-{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3}){{\bf\tau}_{\boldsymbol{w}}}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})\right]\!\boldsymbol{\cdot }{\bf\xi}\,\text{d}\boldsymbol{x}\,\text{d}t\end{array}}_{\mathscr{L}_{\widetilde{\boldsymbol{u}}}({\it\delta}\boldsymbol{u})}\nonumber\\ \displaystyle & & \displaystyle +\,\underbrace{\int _{0}^{T}\!\!\int _{{\it\Omega}}{\bf\xi}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}{\it\delta}\widetilde{p}\,\text{d}\boldsymbol{x}\,\text{d}t}_{\mathscr{L}_{\widetilde{p}}({\it\delta}\widetilde{p})}\nonumber\\ \displaystyle & & \displaystyle +\,\underbrace{\mathscr{J}_{\widehat{\boldsymbol{V}}}({\it\delta}\widehat{\boldsymbol{V}})-\int _{0}^{T}\!\!\int _{{\it\Omega}}\boldsymbol{f}_{\widehat{\boldsymbol{V}}}({\it\delta}\widehat{\boldsymbol{V}})\boldsymbol{\cdot }{\bf\xi}\,\text{d}\boldsymbol{x}\,\text{d}t+\int _{0}^{T}\left[{\it\tau}\frac{\text{d}({\it\delta}\widehat{\boldsymbol{V}})}{\text{d}t}+{\it\delta}\widehat{\boldsymbol{V}}\right]\!\boldsymbol{\cdot }{\bf\chi}\,\text{d}t,}_{\mathscr{L}_{\widehat{\boldsymbol{V}}}({\it\delta}\widehat{\boldsymbol{V}})}\end{eqnarray}$$
further taking $\mathscr{J}_{\widetilde{p}}({\it\delta}\widetilde{p})=0$ (cf. (3.1)).

Casting (C 16) in the form $(\partial \mathscr{L}/\partial \boldsymbol{q},{\it\delta}\boldsymbol{q})=0$ is now a matter of exchanging ${\it\delta}\boldsymbol{q}$ and $\boldsymbol{q}^{\ast }$ by partial integration, and similar algebraic manipulations. The adjoint equations are then identified with $\partial \mathscr{L}/\partial \boldsymbol{q}$ , and boundary conditions are defined by the requirement that the boundary terms originating from partial integration are equal to zero. This procedure is well known, and for details regarding the derivation of the adjoint equations for the standard Navier–Stokes equations, we refer the reader to Choi et al. (Reference Choi, Hinze and Kunisch1999), Bewley et al. (Reference Bewley, Moin and Temam2001) and Delport et al. (Reference Delport, Baelmans and Meyers2009), among others. Here, we only discuss the derivation of the adjoints with respect to the additional terms that do not appear in the standard DNS adjoint equations, i.e. the adjoint forcing term $\boldsymbol{f}^{\ast }$ ((3.10) and (3.11)), the adjoint time-filtered velocity, the adjoint wall-stress model and the adjoint Smagorinsky model.

C.3.1. Adjoint forcing term

The adjoint forcing term $\boldsymbol{f}^{\ast }$ is identified from (using (C 16), (3.1) and (2.9))

(C 17) $$\begin{eqnarray}\displaystyle (-\boldsymbol{f}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}}) & = & \displaystyle \mathscr{J}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})-\int _{0}^{T}\boldsymbol{V}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}})\boldsymbol{\cdot }{\bf\chi}\,\text{d}t\end{eqnarray}$$
(C 18) $$\begin{eqnarray}\displaystyle & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\mathop{\sum }_{i=1}^{N_{t}}-\frac{1}{2}C_{T,i}^{\prime }\widehat{V}_{i}^{2}\,\mathscr{R}_{i}(\boldsymbol{x})\,\boldsymbol{e}_{\bot }\boldsymbol{\cdot }{\it\delta}\widetilde{\boldsymbol{u}}\,\text{d}\boldsymbol{x}\,\text{d}t\nonumber\\ \displaystyle & & \displaystyle -\,\int _{0}^{T}\mathop{\sum }_{i=1}^{N_{t}}\left(\frac{1}{A}\int _{{\it\Omega}}{\it\chi}_{i}\,\mathscr{R}_{i}(\boldsymbol{x})\boldsymbol{e}_{\bot }\boldsymbol{\cdot }{\it\delta}\widetilde{\boldsymbol{u}}\,\text{d}\boldsymbol{x}\right)\,\text{d}t.\end{eqnarray}$$
Thus, (3.11) follows.

C.3.2. Adjoint of the time-filtered velocity

The adjoint of the velocity time filter corresponds to $\partial \mathscr{L}/\partial \widehat{\boldsymbol{V}}=0$ , and follows from expressing the Riesz representation of $\mathscr{L}_{\widehat{\boldsymbol{V}}}({\it\delta}\widehat{\boldsymbol{V}})$ . Thus, substituting for $\mathscr{J}$ and $\boldsymbol{f}$ yields

(C 19) $$\begin{eqnarray}\displaystyle \left(\frac{\partial \mathscr{L}}{\partial \widehat{\boldsymbol{V}}},{\it\delta}\widehat{\boldsymbol{V}}\right) & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\mathop{\sum }_{i=1}^{N_{t}}C_{T,i}^{\prime }\widehat{V}_{i}\,\mathscr{R}_{i}(\boldsymbol{x})(-\widetilde{\boldsymbol{u}}+{\bf\xi})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }{\it\delta}\widehat{V}_{i}\,\text{d}\boldsymbol{x}\,\text{d}t\nonumber\\ \displaystyle & & \displaystyle +\,\int _{0}^{T}\mathop{\sum }_{i=1}^{N_{t}}\left[{\it\tau}\frac{\text{d}{\it\delta}\widehat{V}_{i}}{\text{d}t}+{\it\delta}\widehat{V}_{i}\right]\cdot {\it\chi}_{i}\,\text{d}t\nonumber\\ \displaystyle & = & \displaystyle \int _{0}^{T}\mathop{\sum }_{i=1}^{N_{t}}\left\{-{\it\tau}\frac{\text{d}{\it\chi}_{i}}{\text{d}t}+{\it\chi}_{i}+C_{T,i}^{\prime }\widehat{V}_{i}\int _{{\it\Omega}}\mathscr{R}_{i}(\boldsymbol{x})(-\widetilde{\boldsymbol{u}}+{\bf\xi})\boldsymbol{\cdot }\boldsymbol{e}_{\bot }\,\text{d}\boldsymbol{x}\right\}{\it\delta}\widehat{V}_{i}\,\text{d}t\nonumber\\ \displaystyle & & \displaystyle +\,\mathop{\sum }_{i=1}^{N_{t}}{\it\tau}\left[{\it\delta}\widehat{V}_{i}\cdot {\it\chi}_{i}\right]_{0}^{T}.\end{eqnarray}$$

This identifies the adjoint time filter (cf. (3.10)). The boundary term $[{\it\delta}\widehat{V}_{i}\cdot {\it\chi}_{i}]_{0}^{T}$ vanishes provided that ${\it\chi}_{i}(T)=0$ (at $t=0$ , ${\it\delta}\widehat{V}_{i}(0)=0$ is given). This yields the boundary condition for the adjoint time filter in (3.15).

C.3.3. Adjoint of the wall-stress boundary condition

The wall-stress model (2.3) and (2.4) has two wall-parallel components, while the third component equals zero. Starting from (C 16), the adjoint can be identified through

(C 20) $$\begin{eqnarray}({\bf\tau}_{\boldsymbol{w}}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}})=\int _{0}^{T}\!\!\int _{{\it\Omega}}\left[\frac{{\it\kappa}}{\ln (z_{1}/z_{0})}\right]^{2}\left\{\Vert \widetilde{\boldsymbol{u}}\Vert _{12}\overline{{\it\delta}\widetilde{u}}_{i}{\it\xi}_{i}+\frac{\overline{\widetilde{u}}_{i}\overline{{\it\delta}\widetilde{u}}_{i}\left(\overline{\widetilde{u}}_{1}{\it\xi}_{1}+\overline{\widetilde{u}}_{2}{\it\xi}_{2}\right)}{\Vert \widetilde{\boldsymbol{u}}\Vert _{12}}\right\}{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3})\,\text{d}\boldsymbol{x}\,\text{d}t,\end{eqnarray}$$

using the Einstein summation convention over repeated indices ( $i=1,2$ ), and the short-hand notation $\Vert \widetilde{\boldsymbol{u}}\Vert _{12}=(\overline{\widetilde{u}}_{1}^{2}+\overline{\widetilde{u}}_{2}^{2})^{1/2}$ . Furthermore, the wall-parallel filtering is defined as

(C 21) $$\begin{eqnarray}\overline{\widetilde{u}}_{i}=\iint _{{\it\Omega}}G(\boldsymbol{x}-\boldsymbol{x}^{\prime })\,\widetilde{u}_{i}(x_{1}^{\prime },x_{2}^{\prime },x_{3})\,\text{d}x_{1}^{\prime }\,\text{d}x_{2}^{\prime },\end{eqnarray}$$

with $G(\boldsymbol{x}-\boldsymbol{x}^{\prime })=[6/({\rm\pi}{\it\Delta}^{2})]\exp (-6\Vert \boldsymbol{x}-\boldsymbol{x}^{\prime }\Vert _{12}^{2}/{\it\Delta}^{2})$ .

Further elaboration of (C 20) requires the transfer of wall-parallel filter operations from ${\it\delta}\widetilde{u}_{i}$ to ${\it\xi}_{i}$ . This is straightforward, since the selected Gaussian filter is self-adjoint, i.e. for any two fields ${\bf\psi}$ and ${\bf\phi}$ ,

(C 22) $$\begin{eqnarray}\displaystyle (\overline{{\bf\psi}},{\bf\phi}) & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\overline{{\bf\psi}}\boldsymbol{\cdot }{\bf\phi}\,\text{d}\boldsymbol{x}\,\text{d}t\nonumber\\ \displaystyle & = & \displaystyle \int _{0}^{T}\!\!\iiint _{{\it\Omega}}\left(\iint _{{\it\Omega}}G(\boldsymbol{x}-\boldsymbol{x}^{\prime })\,{\bf\psi}(x_{1}^{\prime },x_{2}^{\prime },x_{3})\,\text{d}x_{1}^{\prime }\,\text{d}x_{2}^{\prime }\right)\boldsymbol{\cdot }{\bf\phi}(\boldsymbol{x})\,\text{d}x_{1}\,\text{d}x_{2}\,\text{d}x_{3}\,\text{d}t\nonumber\\ \displaystyle & = & \displaystyle \int _{0}^{T}\!\!\iiint _{{\it\Omega}}\left(\iint _{{\it\Omega}}G(\boldsymbol{x}-\boldsymbol{x}^{\prime })\,{\bf\phi}(\boldsymbol{x})\,\text{d}x_{1}\,\text{d}x_{2}\right)\boldsymbol{\cdot }{\bf\psi}(x_{1}^{\prime },x_{2}^{\prime },x_{3})\,\text{d}x_{1}^{\prime }\,\text{d}x_{2}^{\prime }\,\text{d}x_{3}\,\text{d}t\nonumber\\ \displaystyle & = & \displaystyle ({\bf\psi},\overline{{\bf\phi}}).\end{eqnarray}$$

Using this in (C 20) leads to

(C 23) $$\begin{eqnarray}({\bf\tau}_{\boldsymbol{w}}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}})=\int _{0}^{T}\!\!\int _{{\it\Omega}}\left[\frac{{\it\kappa}}{\ln (z_{1}/z_{0})}\right]^{2}\left\{\overline{\Vert \widetilde{\boldsymbol{u}}\Vert _{12}{\it\xi}_{i}}\,{\it\delta}\widetilde{u}_{i}+\overline{\left(\frac{\overline{\widetilde{u}}_{1}{\it\xi}_{1}+\overline{\widetilde{u}}_{2}{\it\xi}_{2}}{\Vert \widetilde{\boldsymbol{u}}\Vert _{12}}\overline{\widetilde{u}}_{i}\right)}\,{\it\delta}\widetilde{u}_{i}\right\}{\it\delta}(\boldsymbol{x}-z_{1}\boldsymbol{e}_{3})\,\text{d}\boldsymbol{x}\,\text{d}t,\end{eqnarray}$$

yielding the adjoint wall stress in (3.12).

C.3.4. Adjoint of the subgrid-scale model

The adjoint of the subgrid-scale stresses are identified through (cf. (C 16) and (2.5))

(C 24) $$\begin{eqnarray}\displaystyle (\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{\boldsymbol{M}}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}}) & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }({{\bf\tau}_{M}}_{\widetilde{\boldsymbol{u}}}({\it\delta}\widetilde{\boldsymbol{u}}))\boldsymbol{\cdot }{\bf\xi}\,\text{d}\boldsymbol{x}\,\text{d}t\end{eqnarray}$$
(C 25) $$\begin{eqnarray}\displaystyle & = & \displaystyle \int _{0}^{T}\!\!\int _{{\it\Omega}}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\left(2\ell ^{2}\left[\frac{(2\unicode[STIX]{x1D64E}\,\mathbf{:}\,{\it\delta}\unicode[STIX]{x1D64E})\unicode[STIX]{x1D64E}}{(2\unicode[STIX]{x1D64E}\,\mathbf{:}\,\unicode[STIX]{x1D64E})^{1/2}}+(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}{\it\delta}\unicode[STIX]{x1D64E}\right]\right)\boldsymbol{\cdot }{\bf\xi}\,\text{d}\boldsymbol{x}\,\text{d}t,\qquad\end{eqnarray}$$
with ${\it\delta}\unicode[STIX]{x1D64E}=(\boldsymbol{{\rm\nabla}}{\it\delta}\widetilde{\boldsymbol{u}}+(\boldsymbol{{\rm\nabla}}{\it\delta}\widetilde{\boldsymbol{u}})^{\text{T}})/2$ . Using integration by parts on (C 25), and the fact that $\unicode[STIX]{x1D64E}$ and ${\it\delta}\unicode[STIX]{x1D64E}$ are symmetric tensors, leads to
(C 26) $$\begin{eqnarray}(\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{\boldsymbol{M}}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}})=\int _{0}^{T}\left\{\mathit{BT}-\int _{{\it\Omega}}\left(2\ell ^{2}\left[\frac{(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,{\it\delta}\unicode[STIX]{x1D64E})\unicode[STIX]{x1D64E}}{(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}}+(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}{\it\delta}\unicode[STIX]{x1D64E}\right]\right)\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E}^{\ast }\,\text{d}\boldsymbol{x}\right\}\text{d}t,\end{eqnarray}$$

with $\unicode[STIX]{x1D64E}^{\ast }=(\boldsymbol{{\rm\nabla}}{\bf\xi}+(\boldsymbol{{\rm\nabla}}{\bf\xi})^{\text{T}})/2$ . The boundary term $\mathit{BT}=0$ , since $\ell$ equals zero at $x_{3}=0$ , $\unicode[STIX]{x1D64E}$ equals zero at the top boundary, and periodic boundary conditions are used in the other directions. A second integration by parts yields

(C 27) $$\begin{eqnarray}(\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\tau}_{\boldsymbol{M}}^{\ast },{\it\delta}\widetilde{\boldsymbol{u}})=\int _{0}^{T}\left\{\mathit{BT}^{\prime }+\int _{{\it\Omega}}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\left(2\ell ^{2}\left[\frac{(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E}^{\ast })\unicode[STIX]{x1D64E}}{(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}}+(2\unicode[STIX]{x1D64E}\,\boldsymbol{ : }\,\unicode[STIX]{x1D64E})^{1/2}\unicode[STIX]{x1D64E}^{\ast }\right]\right)\boldsymbol{\cdot }{\it\delta}\widetilde{\boldsymbol{u}}\,\text{d}\boldsymbol{x}\right\}\text{d}t.\end{eqnarray}$$

The boundary term $\mathit{BT}^{\prime }=0$ , provided that $\unicode[STIX]{x1D64E}^{\ast }=0$ at the top boundary (consistent with a symmetry boundary condition), and periodic boundary conditions are used for ${\bf\xi}$ in wall-parallel directions. Then (C 27) identifies the adjoint subgrid-scale stresses (3.13).

References

Abkar, M. & Porté-Agel, F. 2013 The effect of free-atmosphere stratification on boundary-layer flow and power output from very large wind farms. Energies 6, 23382361.Google Scholar
Andersen, S. J., Sørensen, J. N. & Mikkelsen, R. 2013 Simulation of the inherent turbulence and wake interaction inside an infinitely long row of wind turbines. J. Turbul. 14, 4, 124.Google Scholar
Badreddine, H., Vandewalle, S. & Meyers, J. 2014 Sequential quadratic programming (SQP) for optimal control in direct numerical simulation of turbulent flow. J. Comput. Phys. 256, 116.CrossRefGoogle Scholar
Barthelmie, R. J., Pryor, S. C., Frandsen, S. T., Hansen, K. S., Schepers, J. G., Rados, K., Schlez, W., Neubert, A., Jensen, L. E. & Neckelmann, S. 2010 Quantifying the impact of wind turbine wakes on power output at offshore wind farms. J. Atmos. Ocean. Technol. 27, 13021317.CrossRefGoogle Scholar
Bewley, T. R., Moin, P. & Temam, R. 2001 DNS-based predictive control of turbulence: an optimal benchmark for feedback algorithms. J. Fluid Mech. 447, 179225.Google Scholar
Borzi, A. & Schultz, V. 2012 Computational Optimization of Systems Governed by Partial Differential Equations. SIAM.Google Scholar
Bou-Zeid, E., Meneveau, C. & Parlange, M. B. 2005 A scale-dependent Lagrangian dynamic model for large eddy simulation of complex turbulent flows. Phys. Fluids 17, 025105.Google Scholar
Burton, T., Sharpe, D., Jenkins, N. & Bossanyi, E. 2001 Wind Energy Handbook. Wiley.CrossRefGoogle Scholar
Cal, R. B., Lebron, J., Castillo, L., Kang, H. S. & Meneveau, C. 2010 Experimental study of the horizontally averaged flow structure in a model wind-turbine array boundary layer. J. Renew. Sustain. Energy 2, 013106.Google Scholar
Calaf, M., Meneveau, C. & Meyers, J. 2010 Large eddy simulation study of fully developed wind-turbine array boundary layers. Phys. Fluids 22, 015110.Google Scholar
Calaf, M., Parlange, M. B. & Meneveau, C. 2011 Large eddy simulation study of scalar transport in fully developed wind-turbine array boundary layers. Phys. Fluids 23, 126603.CrossRefGoogle Scholar
Canuto, C., Hussaini, M. Y., Quarteroni, A. & Zang, T. A. 1988 Spectral Methods in Fluid Dynamics. Springer.Google Scholar
Chamorro, L. P. & Porté-Agel, F. 2011 Turbulent flow inside and above a wind farm: a wind-tunnel study. Energies 4, 19161936.CrossRefGoogle Scholar
Chang, Y. & Collis, S. S.1999 Active control of turbulent channel flows based on large eddy simulation. In Proceedings of the 1999 ASME/JSME Joint Fluids Engineering Conference, FEDSM99-6929.Google Scholar
Choi, H., Hinze, M. & Kunisch, K. 1999 Instantaneous control of backward-facing step flows. Appl. Numer. Maths 31, 133158.Google Scholar
Chowdhury, S., Zhang, J., Messac, A. & Castillo, L. 2012 Unrestricted wind farm layout optimization (UWFLO): investigating key factors influencing the maximum power generation. J. Renew. Energy 38, 1630.Google Scholar
Collis, S. S., Chang, Y., Kellogg, S. & Prabhu, R. D.2000 Large eddy simulation and turbulence control. In Proceedings of the 2000 AIAA Fluids Conference, AIAA-2000-2564.Google Scholar
Delport, S., Baelmans, M. & Meyers, J. 2009 Constrained optimization of turbulent mixing-layer evolution. J. Turbul. 10, 18,1–26.Google Scholar
Delport, S., Baelmans, M. & Meyers, J. 2011 Maximizing dissipation in a turbulent shear flow by optimal control of its initial state. Phys. Fluids 25, 045105.Google Scholar
Fleming, P., Gebraad, P., van Wingerden, J., Lee, S., Churchfield, M., Scholbrock, A., Michalakes, J., Johnson, K. & Moriarty, P.2013 The SOWFA super-controller: a high-fidelity tool for evaluating wind plant control approaches. In Proceedings of the EWEA 2013, 4–7 February 2013, Vienna, Austria, pp. 1–12. EWEA.Google Scholar
Frandsen, S. 1992 On the wind speed reduction in the center of large clusters of wind turbines. J. Wind Engng Ind. Aerodyn. 39, 251265.CrossRefGoogle Scholar
Frigo, M. & Johnson, S. G. 2005 The design and implementation of FFTW3. Proc. IEEE 93 (2), 216231; Special issue on ‘Program Generation, Optimization, and Platform Adaptation’.CrossRefGoogle Scholar
Hamilton, N., Kang, H. S., Meneveau, C. & Cal, R. B. 2012 Statistical analysis of kinetic energy entrainment in a model wind turbine array boundary layer. J. Renew. Sustain. Energy 4, 063105.Google Scholar
Hansen, K. S., Barthelmie, R. J., Jensen, L. E. & Sommer, A. 2011 The impact of turbulence intensity and atmospheric stability on power deficits due to wind trubine wakes at Horns Rev wind farm. Wind Energy 15, 183196.CrossRefGoogle Scholar
Hansen, A. D., Sørensen, P., Iov, F. & Blaabjerg, F. 2006 Centralised power control of wind farm with doubly fed induction generators. J. Renew. Energy 31, 935951.Google Scholar
Hinze, M. & Kunisch, K. 2001 Second order methods for optimal control of time-dependent fluid flow. SIAM J. Control Optim. 40, 925946.CrossRefGoogle Scholar
Ivanell, S., Sørensen, J. N., Mikkelsen, R. & Henningson, D. 2009 Analysis of numerically generated wake structures. Wind Energy 12, 6380.Google Scholar
Jameson, A. 1988 Aerodynamic design via control theory. J. Sci. Comput. 3, 233260.Google Scholar
Jensen, N. O.1983 A note on wind generator interaction. Tech. Rep. Risø-M-2411. Risø National Laboratory, Roskilde, Denmark.Google Scholar
Jimenez, A., Crespo, A., Migoya, E. & Garcia, J. 2007 Advances in large-eddy simulation of a wind turbine wake. J. Phys.: Conf. Ser. 75, 012041.Google Scholar
Johnson, K. E. & Thomas, N. 2009 Wind farm control: addressing the aerodynamic interaction among wind turbines. In American Control Conference, 2009. ACC’09, pp. 21042109. IEEE.CrossRefGoogle Scholar
Jonkman, J., Butterfield, S., Musial, W. & Scott, G.2009 Definition of a 5-MW reference wind turbine for offshore system development. Tech. Rep. NREL/TP-500-38060. National Renewable Energy Laboratory, Golden, CO.CrossRefGoogle Scholar
Kaminsky, F. C., Kirchhoff, R. H. & Sheu, L.-J. 1987 Optimal spacing of wind turbines in a wind energy power plant. Solar Energy 39, 467471.CrossRefGoogle Scholar
Kim, J. 2003 Control of turbulent boundary layers. Phys. Fluids 15, 10931105.Google Scholar
Kusiak, A. & Song, Z. 2010 Design of wind farm layout for maximum wind energy capture. J. Renew. Energy 35, 685694.Google Scholar
Larsen, J. W., Nielsen, S. R. K. & Krenk, S. 2007 Dynamic stall model for wind turbine airfoils. J. Fluids Struct. 23, 959982.Google Scholar
Lebron, J., Castillo, L. & Meneveau, C. 2012 Experimental study of the kinetic energy budget in a wind turbine stream-tube. J. Turbul. 13 (43), 122.Google Scholar
Li, Z. J., Navon, I. M., Hussaini, M. Y. & Le Dimet, F. X. 2003 Optimal control of cylinder wakes via suction and blowing. Comput. Fluids 32 (2), 149171.Google Scholar
Lissaman, P. B. S.1979 Energy effectiveness of arbitrary arrays of wind turbines. In Proceedings of the 17th AIAA Aerospace Sciences Meeting, New Orleans, LA, AIAA-1979-114.Google Scholar
Lu, H. & Porté-Agel, F. 2011 Large-eddy simulation of a very large wind farm in a stable atmospheric boundary layer. Phys. Fluids 23, 065101.Google Scholar
Luenberger, D. G. 2005 Linear and Nonlinear Programming, 2nd edn. Kluwer Academic.Google Scholar
Manwell, J. F., McGowan, J. G. & Rogers, A. L. 2002 Wind Energy Explained: Theory, Design and Application. Wiley.CrossRefGoogle Scholar
Markfort, C. D., Zhang, W. & Porté-Agel, F. 2012 Turbulent flow and scalar transport through and over aligned and staggered wind farms. J. Turbul. 13 (33), 136.Google Scholar
Mason, P. J. & Thomson, T. J. 1992 Stochastic backscatter in large-eddy simulations of boundary layers. J. Fluid Mech. 242, 5178.Google Scholar
Meneveau, C. 2012 The top-down model of wind farm boundary layers and its applications. J. Turbul. 13, 7,1–12.Google Scholar
Meyers, J. & Meneveau, C.2010 Large eddy simulations of large wind-turbine arrays in the atmospheric boundary layer. In Proceedings of the 48th AIAA Aerospace Sciences Meeting, Including the New Horizons Forum and Aerospace Exposition, Orlando, FL, AIAA-2010-827.Google Scholar
Meyers, J. & Meneveau, C. 2012 Optimal turbine spacing in fully developed wind-farm boundary layers. Wind Energy 15, 305317.Google Scholar
Meyers, J. & Meneveau, C. 2013 Flow visualization using momentum and energy transport tubes and applications to turbulent flow in wind farms. J. Fluid Mech. 715, 335358.Google Scholar
Meyers, J. & Sagaut, P. 2006 On the model coefficients for the standard and the variational multi-scale Smagorinsky model. J. Fluid Mech. 569, 287319.Google Scholar
Meyers, J. & Sagaut, P. 2007 Evaluation of Smagorinsky variants in large-eddy simulations of wall-resolved plane channel flows. Phys. Fluids 19, 095105.Google Scholar
Mikkelsen, R.2003 Actuator disc methods applied to wind turbines. PhD dissertation, Department of Mechanical Engineering, Technical University of Denmark.Google Scholar
Moeng, C.-H. 1984 A large-eddy simulation model for the study of planetary boundary-layer turbulence. J. Atmos. Sci. 41, 20522062.2.0.CO;2>CrossRefGoogle Scholar
Newman, B. G. 1976 The spacing of wind turbines in large arrays. Energy Convers. 16, 169179.Google Scholar
Newman, J., Lebron, J., Meneveau, C. & Castillo, L. 2013 Streamwise development of the wind turbine boundary layer over a model wind turbine array. Phys. Fluids 25, 085108.Google Scholar
Nocedal, J. & Wright, S. J. 2006 Numerical Optimization, 2nd edn. Springer.Google Scholar
Pao, L. Y. & Johnson, K. E. 2009 A tutorial on the dynamics and control of wind turbines and wind farms. In Proceedings of the 2009 American Control Conference, pp. 20762089. IEEE.Google Scholar
Pironneau, O. 1974 On optimum design in fluid mechanics. J. Fluid Mech. 64, 97110.Google Scholar
Press, W. H., Teukolsky, S. A., Vetterling, W. T. & Flannery, B. P. 1996 Numerical Recipes in FORTRAN77: The Art of Scientific Computing, 2nd edn. Cambridge University Press.Google Scholar
Rathmann, O., Frandsen, S. & Barthelmie, R.2007 Wake modelling for intermediate and large wind farms. In European Wind Energy Conference and Exhibition, Milan, Italy, BL3.199.Google Scholar
Rawlings, J. B. & Mayne, D. Q. 2008 Model Predictive Control: Theory and Design. Nob Hill.Google Scholar
Sanderse, B., van der Pijl, S. P. & Koren, B. 2011 Review of computational fluid dynamics for wind turbine wake aerodynamics. Wind Energy 14, 799819.CrossRefGoogle Scholar
Schumann, U. 1975 Subgrid scale model for finite difference simulations of turbulent flows in plane channels and annuli. J. Comput. Phys. 18, 376404.Google Scholar
Smagorinsky, J. 1963 General circulation experiments with the primitive equations: I. The basic experiment. Mon. Weath. Rev. 91 (3), 99165.2.3.CO;2>CrossRefGoogle Scholar
Soleimanzadeh, M., Wisniewski, R. & Kanev, S. 2012 An optimization framework for load and power distribution in wind farms. J. Wind Engng Ind. Aerodyn. 107–108, 256262.CrossRefGoogle Scholar
Spruce, C. J.1993 Simulation and control of windfarms. PhD dissertation, Department of Engineering Science, University of Oxford.Google Scholar
Stevens, R. J. A. M. 2015 Dependence of optimal wind-turbine spacing on wind-farm length. Wind Energy 1–9 (submitted).Google Scholar
Stull, R. B. 1988 An Introduction to Boundary Layer Meteorology. Kluwer.Google Scholar
Tennekes, H. & Lumley, J. L. 1972 A First Course in Turbulence. MIT Press.CrossRefGoogle Scholar
Tröltzsch, F. 2010 Optimal Control of Partial Differential Equations: Theory, Methods, and Applications. American Mathematical Society.Google Scholar
Verstappen, R. W. C. P. & Veldman, A. E. P. 2003 Symmetry-preserving discretization of turbulent flow. J. Comput. Phys. 187, 343368.Google Scholar
Wei, M. & Freund, J. B. 2006 A noise-controlled free shear flow. J. Fluid Mech. 546, 123152.CrossRefGoogle Scholar
Wu, Y.-T. & Porté-Agel, F. 2011 Large-eddy simulation of wind-turbine wakes: evaluation of turbine parametrisations. Boundary-Layer Meteorol. 138, 345366.Google Scholar
Yang, X., Kang, S. & Sotiropoulos, F. 2012 Computational study and modeling of turbine spacing effects in infinite aligned wind farms. Phys. Fluids 24, 115107.CrossRefGoogle Scholar
Yang, D., Meneveau, C. & Shen, L. 2014a Effect of swells on offshore wind energy harvesting – a large-eddy simulation study. J. Renew. Energy 70, 1123.CrossRefGoogle Scholar
Yang, D., Meneveau, C. & Shen, L. 2014b Large-eddy simulation of off-shore wind farm. J. Renew. Energy 26, 025101.Google Scholar
Zilitinkevich, S. S. 1989 Velocity profiles, the resistance law and the dissipation rate of mean flow kinetic energy in a neutrally and stably stratified planetary boundary layer. Boundary-Layer Meteorol. 46 (4), 367387.Google Scholar
Figure 0

Figure 1. Computational domain ${\it\Omega}$ and boundaries ${\it\Gamma}$.

Figure 1

Table 1. Summary of the simulation set-up and the turbine arrangement parameters.

Figure 2

Figure 2. (a) Snapshot representing an instantaneous streamwise velocity field. (b) Zoom on a subset of four turbines. The horizontal plane is taken at hub height, and turbines are represented by small white disks.

Figure 3

Figure 3. Mean power output of an uncontrolled wind farm as a function of $C_{T}^{\prime }$. Power $\mathscr{P}^{+}$ is normalized by either $u_{{\it\tau}h}$ (red circles), geostrophic wind $G$ (green squares), or driving power (blue triangles). Curves are further normalized by their maximum values of $\mathscr{P}^{+}$.

Figure 4

Figure 4. Mean power output (blue triangles) and dissipation (red circles) as functions of $C_{T}^{\prime }$ for uncoordinated cases. Both power and dissipation are normalized by the driving power.

Figure 5

Figure 5. Receding horizon optimal control approach.

Figure 6

Figure 6. Typical convergence history of the conjugate-gradient optimization for three different control windows $[(n-1)T_{A},(n-1)T_{A}+T]$: ▪, control window $n=1$; ▴, control window $n=13$; ●, control window $n=20$. Open symbols (○, ▫, ▵) correspond to adjoint simulations required for gradient evaluations, and are plotted at the same cost-functional level as the previous forward simulation.

Figure 7

Figure 7. Contours of instantaneous streamwise adjoint fields: (a$T-t=14~\text{s}$; (b$T-t=70~\text{s}$; (c$T-t=174~\text{s}$; (d) zoom of (b). Horizontal planes are taken at hub height.

Figure 8

Figure 8. Time evolution of the thrust coefficient of one of the turbines in the farm.

Figure 9

Figure 9. Time evolution of (a) total wind-farm power output and (b) gains and losses:   , driving power by pressure force; —— (grey), rate of change of kinetic energy; —— (black), farm power; -$\cdot$-$\cdot$-, dissipation.

Figure 10

Figure 10. Gains and losses per unit wind-farm area averaged over control windows for (a) the whole computation domain ${\it\Omega}$ and (b) the disk region ${\it\Omega}_{D}$: ♦, rate of change of kinetic energy ${\rm\Delta}E_{{\it\Omega}}/T_{A}$; ▪, driving power $\mathscr{F}_{{\it\Omega},T_{A}}$; ▴, wind-farm power extraction $\mathscr{P}_{{\it\Omega},T_{A}}$; ●, dissipation $\mathscr{D}_{{\it\Omega},T_{A}}$; $+$, total transport $\overline{T}^{\prime \prime }(z+D/2)-\overline{T}^{\prime \prime }(z-D/2)$.

Figure 11

Figure 11. Streamwise mean velocities: ——, uncontrolled case; -$\cdot$-$\cdot$-, optimal control case averaged over the time interval $[0,5T_{A}]$;   (see also inset), averaged over later intervals.

Figure 12

Figure 12. Vertical profiles of (a) total stresses and (be) total stresses, Reynolds and dispersive components. In panel (a): —— (black), uncontrolled case; -$\cdot$-$\cdot$- (blue),   (black) and —— (green), controlled case, respectively averaged over time windows $[0,5T_{A}]$, $[5T_{A},20T_{A}]$ and $[20T_{A},25T_{A}]$. In panels (be): —— (black), —— (orange) and —— (cyan), respectively the total stresses, Reynolds stresses and dispersive stresses for the uncontrolled case;    (black),    (orange) and    (cyan), respectively the total stresses, Reynolds stresses and dispersive stresses for the controlled case averaged over $[5T_{A},20T_{A}]$.

Figure 13

Figure 13. Vertical profiles of horizontally averaged mean-flow kinetic energy flux. Uncontrolled case: —— (black), total kinetic energy flux; —— (orange), flux due to Reynolds stress; —— (cyan), flux due to dispersive stress. Optimal control case averaged over time window $[5T_{A},20T_{A}]$:   (black), total kinetic energy flux;    (orange), flux due to Reynolds stress;    (cyan), flux due to dispersive stress.

Figure 14

Figure 14. (ad) Contours of mean streamwise velocity field averaged over control windows and turbine elements: (a,b) in a horizontal plane through the hub; (c,d) in a vertical plane through the turbine. (e,f) Contours of $\overline{\widetilde{u}}_{1}^{\prime \prime }\overline{\widetilde{u}}_{3}^{\prime \prime }$ in a vertical plane through the turbine. (a,c,e) Uncontrolled case; (b,df) the optimal control case averaged over time window $[5T_{A},20T_{A}]$.

Figure 15

Figure 15. Contours of Reynolds stresses averaged over control windows and turbine elements: (a,b) horizontal plane at the turbine-tip level; (cj$x$$z$ planes through the rotor centre. (a,c,e,g,i) Uncontrolled case; (b,df,hj) the optimal control case averaged over time window $[5T_{A},20T_{A}]$.

Figure 16

Figure 16. Contours of instantaneous streamwise adjoint field for ${\it\gamma}=2/3$, obtained from the first gradient calculation in control window 1: (a$T-t=14~\text{s}$: (b$T-t=174~\text{s}$. Horizontal planes are taken at the hub height.

Figure 17

Figure 17. Time evolution of the thrust coefficient of one of the turbines in the farm: (a${\it\gamma}=1/2$; (b${\it\gamma}=2/3$.

Figure 18

Figure 18. Time evolution of gains and losses, for (a${\it\gamma}=1/2$ and (b${\it\gamma}=2/3$:   (grey), driving power by pressure force; —— (grey), rate of change of kinetic energy; —— (black), farm power; -$\cdot$-$\cdot$- (black), dissipation.

Figure 19

Table 2. Overview of gains and losses averaged over $[0,20T_{A}]$ of different control cases normalized by total power extracted from the system (i.e. by $\mathscr{P}+\mathscr{D}$). As a result of normalization, both the sum of the left two columns, as well as the sum of the right two columns, add up to 100 %.

Figure 20

Table 3. Overview of control gains, expressed as differences from the uncontrolled reference case, and averaged over $[0,20T_{A}]$. Each difference is normalized by its respective uncontrolled property (e.g. $(\mathscr{P}-\mathscr{P}_{ref})/\mathscr{P}_{ref}$).

Figure 21

Figure 19. Streamwise mean velocities: ——, uncontrolled case;   , ${\it\gamma}=1/2$;-$\cdot$-$\cdot$-,${\it\gamma}=2/3$. The optimal control cases are averaged over the time window $[5T_{A},20T_{A}]$.

Figure 22

Figure 20. Vertical profiles of total, Reynolds and dispersive stresses: —— (black), —— (orange) and —— (cyan) respectively total stresses, Reynolds stresses and dispersive stresses for the uncontrolled case;    (black),    (orange) and    (cyan) respectively total stresses, Reynolds stresses and dispersive stresses for the controlled case with ${\it\gamma}=1/2$ averaged over $[5T_{A},20T_{A}]$;-$\cdot$-$\cdot$- (black),-$\cdot$-$\cdot$- (orange) and -$\cdot$-$\cdot$- (cyan) same for case with ${\it\gamma}=2/3$.

Figure 23

Figure 21. Velocity and force components at a cross-section of a blade element.

Figure 24

Table 4. Blade element evaluation of $C_{T}^{\prime }$ for a range of ${\it\lambda}^{\prime }$ and $c$ values, using the NREL 5 MW turbine (Jonkman et al.2009) as a baseline.