Advances in Wind Farm Layout Optimization: Wind Direction Robustness and Wake Induced Asymmetric Thrust Load
Carsten Croonenbroeck ^{1,*}, David Hennecke ^{2}

Rostock University, Environmental Science

Rostock University, Geodesy and Geoinformatics
* Correspondence: Carsten Croonenbroeck
Academic Editor: Andrés Elías Feijóo Lorenzo
Collection: Wind Energy
Received: July 20, 2021  Accepted: October 06, 2021  Published: October 25, 2021
Journal of Energy and Power Technology 2021, Volume 3, Issue 4, doi:10.21926/jept.2104044
Recommended citation: Croonenbroeck C, Hennecke D. Advances in Wind Farm Layout Optimization: Wind Direction Robustness and Wake Induced Asymmetric Thrust Load. Journal of Energy and Power Technology 2021; 3(4): 044; doi:10.21926/jept.2104044.
© 2021 by the authors. This is an open access article distributed under the conditions of the Creative Commons by Attribution License, which permits unrestricted use, distribution, and reproduction in any medium or format, provided the original work is correctly cited.
Abstract
In this study, we address the wind farm layout optimization (WFLO) problem and tackle the issue of optimal turbine placement by incorporating additional aspects of an economically driven target function. Firstly, we have analyzed the effect of wind direction on a given turbine arrangement. Based on the directiondependent wake pattern, practitioners sometimes shut down certain turbines on their farms. Our method computes which turbines should be shut down in which wake situation. On this basis, we have developed a method of finding new turbine setups that rarely require shutdowns and are, in a certain sense, “robust” against changes to the wind direction. Secondly, we have presented a partial coverage Jensen wake model in threedimensional space and have provided the tools for reducing or avoiding wakeinduced asymmetric thrust on the rotor disc of the turbine, which leads to reduced energy yield and accelerated wear. This aspect can also be used for finding new turbine setups that take partial coverage into account and avoid it if necessary. Overall, the application of the refinements suggested in this study will result in an increased yearly profit achieved from the produced energy in a wind farm. This is an aspect that decisionmakers, such as farm planners/operators, might depend on in a market that typically possesses narrow profit margins. Our methods find entrance into the opensource research framework that comes as the package wflo for the statistical software R.
Keywords
Wind energy; wind farm layout optimization (WFLO); R package; active wake control; partial coverage; wind direction; open data
1. Introduction
Finding the optimal spatial arrangement for the locations of turbines inside a wind farm is known in the literature as wind farm layout optimization (WFLO). Since turbine arrangements have an effect on the wake pattern of wind in the farm under investigation, downwind turbines are requested to avoid the wake that upwind turbines cause, as wake reduces the wind speed and therefore leaves less kinetic energy for the downwind turbine, rendering it less effective in energy harvesting. WFLO is a mathematically challenging task. Even minor changes in the location of one turbine can change the entire problem space, i.e., the wake pattern that all other turbines face when they are to be placed. WFLO is said to be nondeterministic polynomial time (NP)hard, which means that no algorithm exists that can find an optimal solution in nondeterministic polynomialtime.
Founding contributions by Mosetti et al. [1] and Grady et al. [2] made restrictive assumptions such as turbines can only be placed on a rather coarse grid of possible locations (discrete domain rather than a continuous domain), flat terrain, unique (or limited numbers of) wind directions and speeds, etc. Subsequent research successively relaxed these assumptions. For example, Wang et al. [3] discussed a continuous problem domain, and Quaeghebeur et al. [4] utilized (pseudo)gradients. Most approaches employed gradientfree methods, as these methods (e.g., metaheuristic algorithms such as genetic algorithms or simulated annealing) perform quite well at exploring the problem space, given that this space does not have too many dimensions. For example, Chen et al. [5], Park et al. [6], and Yang et al. [7] used these methods in their studies. However, higherdimensional spaces are the domain of gradientbased approaches, as Thomas and Ning [8] pointed out in their work.
Many researchers used wind farm efficiency or annual energy production (AEP) as their target function, e.g., see the studies by King et al. [9] and Park et al. [6]. However, a more realistic approach considers what wind farm operators are really pointed out, AEP maximization is not a meaningful goal. Thus, researchers recently have tended to consider economicallydriven target functions. Wu et al. [11] considered a profitdriven function which also enabled them to flexibly incorporate costor revenueinfluencing drivers of the optimization problem, e.g., innerfarm wiring. Profit is defined as revenue minus cost, and revenue is the sale price times the production quantity. Here, AEP takes the place of yearly production quantity, which leaves sale price and cost to vary spatially and/or temporally. As an alternative, Yang et al. [7] discussed the wake effect uniformity instead of AEP or profit maximization as an alternative target.
Our contribution to the wider WFLO scope, which has found only minor investigation in the literature so far, is twofold: Firstly, we take into account the fact that wind direction frequently changes in most realworld wind farms. Most WFLO approaches account for one major wind direction only (using the empirical mode inherent to the measured wind direction data, the polar coordinate system vector mean, or an arbitrary choice), or use a limited number of two, three, or four distinct wind direction regimes at each optimization run without interrelations between them. However, as an optimum (a distinct turbine arrangement setup) found for a given wind direction could be a bad choice if the wind direction changes by only a small amount, we state that the WFLO results are, in general, not robust to the changes in the wind direction in that sense: Given a certain farm setup (once turbines are erected, they can hardly be placed differently), only a faint wake scenario might manifest if the wind comes from the prevailing wind direction (say, from the East) since the turbine setup is optimized with respect to that wind direction. If now, instead, the wind comes from the North, strong wake patterns might occur. This could result in a drastic drop in energy production (and thus profit), even if the wind speeds from these two scenarios are comparable. If the profit from the first scenario is 100 and 50 in the second, such a turbine setup might not be robust. If a different scenario can be found that results in a profit of, say, 90 in the first scenario (wind from the East) and 85 in the second, that scenario is comparably robust against the changes in the wind direction. We address such a robust farm setup, not just for two wind directions but for 360°. This could result in a greater overall profit.
Feng and Shen [12,13] tackled the 360° problem and used bivariate Weibull distribution functions for the 360 sectors of a wind rose. They operated on a realworld dataset and utilized a genetic algorithm (GA) as well as random search for optimization. Their findings showed that taking the wind direction into account during the optimization process is crucial for achieving good quality results.
The studies by Quick et al. [14], Graf et al. [15], and the closely related study by Tingey et al. [16] deal with this type of problem. Changes in the wind direction can be modeled based on their probability of occurrence. A way to do so has been presented by Feng and Shen [17]. In this paper, we have developed a WFLO methodology that provides a robust turbine arrangement, i.e., a turbine setup that will compromise between wind directions and provide good energy harvesting results for any wind direction. Our methodology can be applied to almost all WFLO approaches, e.g., particle swarm optimization or GA approach for gradientfree optimization, gradientbased approaches, methods for discrete or continuous domains, and independently, from the wake model used.
Secondly, we have extended the famous Jensen model (see [18,19]) to detect whether downwind turbines are only partially covered by wake. The partial wake Jensen model has been introduced in a similar fashion by Chowdhury et al. [20] before. However, in this study, we have introduced a slightly different definition and implementation for the software framework (see below). Partial wake coverage might result in accelerated wear due to asymmetric physical stress on the blades, hub, or tower of a turbine, resulting from asymmetric thrust load. Since this can decrease the lifetime of the turbines or increase their maintenance cost, the partial wake can prove to be expensive (e.g., see [21]). On the other hand, if a downwind turbine is only partially covered by wake (instead of full coverage), this could lead to the downwind turbine generating more energy than expected from a wake model that (incorrectly) classifies that turbine as fully covered. As the Jensen model is a twodimensional model, the downwind “points” are either classified as either inside or outside the wake. Partial coverage is not taken into account. However, information about partial coverage could be important during the optimization stage. We have developed a simple implementation of a tool for identifying partial coverage. Wind farm planners might seek to avoid partial wake, i.e., to place downwind turbines in full wake (accepting an even decreased wind energy yield due to wake) or avoid wake altogether (accepting suboptimal microlocal windspeedrelated energy harvesting potential). At least, a wear forecast of partial wake situations is desirable before actually installing a wind farm. In all cases, a partial wake situation must be detectable in the mathematical model. Our contribution, in this case, is an interface to link between the rather simple geometric computations necessary for partial wake detection while keeping the major advantages of the Jensen model: its simplicity and fast computation.
All of our work can be run using the opensource wflo package for the statistical software R, and thus a maximum of comparability is ensured. The remainder of this article is structured as follows: Section 2 provides additional details, motivation, and context for the two topics discussed in the introduction. Our methods have been discussed in Section 3, and the results obtained from them have been presented in Section 4. Conclusions drawn from the study have been presented briefly in Section 5.
2. Contributions and Context
This section provides the details of the contributions of this study to the topic of WFLO. We discuss the wind direction robustness in WFLO (a 360° model) and the partial wake coverage model.
2.1 Wind Direction Robustness
The wflo package contains a benchmark solution embedded in a standard wind farm area, and a WFLO result obtained using heavy GA computations (see Croonenbroeck and Hennecke [22]). Similar approaches have been presented by Baker et al. [23] , Parada et al. [24], and Gualtieri [10]. Figure 1 shows the wake pattern of 20 turbines. The top view of the standard wind farm area with the turbines themselves are represented by golden points, consecutively numbered, and their computed Jensen wake cones have been shown as they are shed down by the prevailing wind direction at the respective points of location for each of the turbines positioned in the square domain (5 × 5 km).
Figure 1 Wake pattern of a wflo benchmark solution. The light gray arrows represent the prevailing wind direction, whereas the darker gray arrows denote its standard deviation.
Wind information, as a part of wflo, are rich as they provide the prevailing wind direction data not only once for the entire farm area but once per raster point. In other words, there are 14.3 M locations within the total covered area at which the prevailing wind directions and their respective standard deviations are provided. In valleys or around distinct mountains, the prevailing directions might change drastically within a rather small area. Within the standard wind farm area used in this study, spatial changes are only minor. However, one downside of this is that there is no full wind direction distribution for each of the points. Thus, no wind rose can be plotted and no weighting of wind directions dependent on their probability of occurrence (relative frequency) is possible. As we vary the wind directions in our approach, we must assume that all directions are equally probable. This is per se unrealistic. However, if the direction probability information is available, our general approach can be easily enriched by a probabilitytooccur weighting scheme.
Rather, the spatial wind direction information enables us to denote the directions using arrows, where, in the respective figures, the light gray arrows represent the prevailing wind directions at a selection of points (we choose a grid of 7 × 7 per figure), and the darker gray arrows denote the standard deviations from that major wind direction at each point. A similar spatial notation for the prevailing wind directions is common in meteorology. As can be seen from the arrow vector field in Figure 1, the wind is coming mostly from the EastNortheast, and some turbines are situated in the wake of others. For example, turbine 10 is in the wake of turbines 4 and 18 (multiwake effect).
Taking the changing wind directions into account during the WFLO stage dates back to the very beginning of WFLO. Grady et al. [2] used several wind direction scenarios and evaluated their impact on the optimization results. Most of the subsequent contributions proceeded similarly. Guo et al. [25] investigated the effect of wind direction fluctuations on wind turbines, whereas Liu et al. [26] used largeeddy simulations to analyze the environmental effects on the local wind direction. Sun et al. [27] performed an experimental study on the impact of wind direction on farm turbines, whereas Routray et al. [28] minimized the losses in a multiwake scenario. Feng and [29] accounted for the complex terrain and investigated WFLO on a Gaussian hill.
The first question that might arise is whether it will be beneficial in some cases to shut down several turbines. As shown in the example in Figure 1, turbine 4 casts its wake on turbines 10 and 18, and thus shutting down turbine 4 might allow for more energy production in turbines 10 and 18. Not the case in this example, but quite imaginable nonetheless is a situation in which a single turbine casts its wake on four, five, or any number of other turbines, depending on the wind direction and the setting of the turbine. Practitioners indeed used to control the influence of negative wake by limiting the power outputs of several turbines by even shutting down the selected turbines. This procedure is known as active wake control (see Kanev et al. [30] or Kanev [31]). Shutting down the wakeinducing turbine in such a case could enable the remaining turbines to harvest more energy from the wind as compared to the case without the shutdown. A thorough discussion on this topic can be found in the articles by Boersma et al. [32], Annoni et al. [33], Pedersen and Larsen [34], or Ogujuyigbe et al. [35]. Hence, firstly, we have developed a simple tool to investigate the shutdown of single turbines and to compute whether such a shutdown would be beneficial to the entire farm.
In the second step, we have used the developed tool to not only compute but also optimize a “shutdown pattern” based on a given wind direction in the farm area under investigation. The results are not an arbitrarily chosen shutdown plan but an optimized one, i.e., a turbine pattern that maximizes the farm profit. This procedure could then be applied to other wind directions. In effect, a catalog of precomputed optimized plans for 360° of wind directions can be built. Then, in practice, if the wind direction changes, such a database of precomputed optimizations (see [36] for a similar idea) can be used as a quick lookup table in order to augment the automatized wind farm control system by, if beneficial, shutting down certain turbines.
Thirdly, possible shutdowns of turbines might be beneficial in a given wind farm. Shutdowns are kind of a last resort, something to avoid if at all possible. Shutting down the precious turbines is not generally desirable. Instead, turbines should be positioned such that shutdowns are rarely necessary. This is the basic principle of WFLO: given a wind direction, the turbines should be arranged in a manner in which each of them produces maximum profit. However, as WFLO usually optimizes over only one wind direction, the found setup is also only valid for that given wind direction. Other directions might give strong wake patterns that again call for unwanted shutdowns. For example, Figure 2 presents the wake patterns that arise in the case of four wind directions (North, East, South, and West) in the benchmark turbine arrangement, where many undesirable wake situations are observed to arise. In this sense, we claim that the WFLO results are not robust against changes in the wind direction. Therefore, in this study, we have considered not just one but all 360° of wind directions into account and optimized the turbine setup that provides the best profits for all wind directions. The results might be less beneficial in comparison to an optimization based on only one wind direction, but they provide greater profit for wind directions that deviate from that.
Figure 2 Wake patterns of the four main wind directions in the wflo benchmark arrangement. Light gray arrows represent the prevailing wind directions, and darker gray arrows denote their standard deviations.
2.2 Wake Asymmetric Thrust Load
Shakoor et al. [37] and Abdulrahman and Wood [38] have discussed partial coverage in their studies. Scott et al. [39] used experimental setup to measure the impact of partial wake on the downwind turbines, whereas Howland et al. [40] provided partial wake statistics for a typical wind farm and showed the means, to a certain degree, to use the mechanical controls of turbines to avoid partial wake coverage (wake steering, see [21]). The physical aspects of fatigue load and the appropriate countermeasures have been vividly discussed in the literature recently, e.g., by Sajeer et al. [41], Rong et al. [42], and Huo and Huo and Tong [43]. The groundwork has been analyzed and presented in detail by Burton et al. [44]. However, in this study, we do not discuss the engineering part of this problem but provide the mathematical tools to detect a possible asymmetric thrust load wake position of turbines and to find turbine setups that are less prone to partial coverage.
Situations in which a downwind turbine is only partially covered by the wake of an upwind turbine are usually not modeled by most wake coverage models. However, even partial wake will reduce the amount of energy produced by the downwind turbine, and it imposes an asymmetric thrust force on the actuator disc of that turbine, resulting in fatigue load of the turbine and a probable reduction in its life span. Figure 3 shows the partial wake visualized in this study. Panel A (left) shows a fullwake situation. The downwind turbine is fully covered by the wake cast by the upwind turbine. Panel B presents a (most desirable) situation in which the downwind turbine is completely unaffected by the wake of the upwind turbine. Panels C and D show the partial wake condition in which the swept area of the rotor of the downwind turbine is partially covered by the wake cone emitted by the upwind turbine, but parts of the disc are outside the wake. The covered fractions of the discs (usually a biconvex (lensshaped) surface) are shown by red color.
Figure 3 Four states of wakeinduced load: (A) full wake, (B) no wake, (C) partial wake with center outside, and (D) partial wake with center inside.
Apart from additional turbulence and increased wear due to inconsistent turbine loading that is probably caused by changing wind directions, we propose a simple enhancement to the popular Jensen model to take partial wake into account during the WFLO stage. As a result, the partial wake can be quantified and penalized accordingly in the WFLO target function.
3. Methodology
In this study, we have worked with wflo and have either used or extended its builtin functionality. wflo is a recently published opensource package for the statistical software R. The wflo package (see [45]) provides a highresolution dataset as well as convenient functions to deal with WFLO problems. It implements the widely used Jensen wake model, provides an interface to allpurpose optimization procedures, and employs an economicallybased (i.e., profitoriented) target function, as according to Wu et al. [11], optimizing the energy yield or farm efficiency alone, as is done in many research contributions, is not always a meaningful goal. wflo provides standardized test conditions and thus works as a framework that ensures comparability among research contributions.
A typical WFLO result consists of a set of $n$ pairs of $x$ and $y$ values, possibly longitude and latitude coordinates, denoting the locations of turbines in the wind farm area under investigation. However, this result is based on either a single wind direction (and thus one direction of wake cast by the turbines) or various wind directions measured at several locations in the farm. The wind directions used in wflo are the prevailing directions at each raster cell of size 200 × 200 m and based on these, several turbines might be located within the wake of other turbines.
By default, wflo uses a standardized wind farm area in Germany of size 5 × 5 km, and as each raster cell is of 200 m edge length, the area consists of 25 × 25 cells. For each cell, information such as the wind direction, wind speed, and AEP are precomputed for the turbine type that is used by default in the wflo settings, and other variables, e.g., for topography, are available. AEP, as provided from the dataset, is computed based on the typical formula (e.g., see [46])
\[ \mathrm{AEP}=8766 \sum_{m=1}^{N} \int_{0}^{U_{\max } } \frac{1}{2} \rho A U^{3} C_{P}(U, \rho) p_{m} \mathrm{~d} U \tag{1} \]
where 8766 determines the number of hours in a year (adjusted for leap years), $N$ is the number of turbines in a wind farm, $\rho$ is the density of air, $A$ is area per turbine swept by the rotor, $U$ is wind speed, $C_{P}$ is the power coefficient, and $p_{m}$ is a probability density function that denotes the occurrence of wind speeds from $0$ to $U_{max}$. The integration over probabilities is replaced in the empiric pendant by the sum over the empirical relative frequencies of wind speeds in bins of width 0.5 m/s according to IEC 61400–12–1 (see https://webstore.iec.ch/publication/26603).
Although using raster data, for wflo, the WFLO problem is conceptualized in the standardized continuous square domain [0,1] x [0,1]. It should also be noted that similar to the present study, wflo operates on profit, where cost is assumed to be constant, so that optimizing profit is a monotonous transformation to optimizing AEP, i.e., an optimum found for profit is identical to an optimum for AEP.
3.1 Wind Direction Robustness
In wflo, the turbine location information is stored such that for $n$ turbines, the $x$ and $y$ coordinates are contained in a 2 x $n$ dimensional vector
\[ L=\left(x_{1}, y_{1}, x_{2}, y_{2}, \ldots, x_{n1}, y_{n1}, x_{n}, y_{n}\right)^{T} \tag{2} \]
To handle turbine patterns (i.e., a plan for possible shutdowns of certain turbines), we use a simple $n$dimensional bit mask. Here, a set bit (“1”) denotes an active turbine, whereas an unset bit (“0”) represents a turbine that has been shut down. For an arrangement of five turbines, if machines 1, 2, and 4 are to be kept operable and machines 3 and 5 are to be shut down, the bit mask would be $B = (1,1,0,1,0)^{T}$. A short function then processes $L$ and $B$: for each unset bit $i \in B$, the function removes the entries $2 \cdot i1$ and $2 \cdot i$ from $L$. The result is a new turbine location vector, $L^{'}$, not containing the turbines marked by the unset bits in $B$. With that, the WFLO target function is invoked. In the wflo package, this is by default the function Profit() that computes the (negative) economic profit of a given turbine setup, subject to revenue, cost, setup validity in terms of minimum distances, and wake (for details, see Croonenbroeck and Hennecke [22]). For example, the wflo benchmark solution consisting of $n$ = 20 turbines returns a profit of 11,622,939 €. Shutting down turbine 8 using $B$ = $(1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1)^{T}$ yields 11,072,611 €, showing that a shutdown of turbine 8 would not be beneficial. It should be noted that we rely on the profit function of the software as a target, which operates internally using a nonpartial Jensen wake model. An extension to partial wake, discussed in the second part of this article, is planned. Taking partial wake into account might lead to slightly different shutdown plans, a topic that we leave for future research.
For a setup of $n$ turbines, there are $2^{n}$ different possible permutations (shutdown patterns). A short loop program can iterate over these permutations, generate the respective patterns, compute their profit values, and store the respective best solution found. If, in the end, the best solution is a vector of $n$ ‘1’s, then having all the turbines operating is advised. Embedding the loop into a function that performs the described procedure for each of the 360° of wind directions will return the shutdown plans for each direction. Arranging them rowbyrow produces a 360 x $n$ dimensional matrix. If this matrix contains all ‘1’s, we assume that the turbine setup, $L$, is robust against changes to the wind direction and having all turbines running at each wind direction is advisable. However, if the rows contain ‘0’s, then shutting down turbines at several wind directions will be beneficial. In that case, the mentioned matrix can serve as a lookup table for shutdown patterns at each wind direction without having to recompute. This might be important information for automatized farm management systems.
Although this procedure needs to be performed only once for a given farm, it requires millions of profit computations and, therefore, can be slow. As each computation is independent of the others, parallel computing can be used. The supplemental material presents an R code that performs the discussed procedure in parallel.
The next step is to perform a wind direction robust WFLO. In the planning phase of a wind farm, the turbine arrangement can be optimized with respect to the robustness against changes in the wind direction. We do so by applying a minimal wrapper around the actual target function, i.e., farm profit subject to the energy sale price, AEP (see Eq. (1)), and cost. If $G \left(L, \psi \right)$ returns the target function value for any wind direction, $\psi$, and any location setup, $L$, (see Eq. (2)), then optimizing
\[ \sum_{i=1}^{360} G(L, i) \rightarrow \max _{L} \tag{3} \]
will, in the end, produce a turbine setup, $L$, that generates the best overall profit while taking all wind directions into account. The supplemental material contains a short code that implements Eq. (3) and optimizes it using genoud from the package rgenoud, a reliable GA implementation by Mebane and Sekhon [47].
3.2 Wake Asymmetric Thrust Load
Based on a given location of a turbine $P_{1}$, denoted (for now) in twodimensional space by the coordinates $x_{1}$ and $y_{1}$ and assuming a wind direction, $\psi_{1}$, at that location, the question is whether this turbine sheds wake that only partially covers another turbine, $P_{2}$, located at the coordinates $x_{2}$ and $y_{2}$. The algorithm starts by computing the Jensen wake model (see Figure 4). According to Jensen [18], for a sufficiently large downwind distance $x$(m) (we use the Euclidean distance between $P_{1}$ and $P_{2}$), the radius of the wake cone, $r$(m), is based on the rotor radius, $r_{0}$(m), and the dimensionless wake expansion factor, $\alpha$, such that
\[ r=r_{0}+\alpha x \tag{4} \]
where $\alpha$ depends on the hub height, $Z_{H}$(m), and the terrain roughness length, $Z_{0}$(m). The latter is usually assumed to be $z_{0}$ = 0.1, which is a fair estimate for typical onshore sites (see [48]). With
\[ \alpha=\frac{0.5}{\log \left(\frac{Z_{H}}{z_{0}}\right)} \tag{5} \]
$r$ can be computed immediately. In the Jensen model, one would then proceed to compute the downstream wind speed, $v$(m/s), based on the incoming wind speed, $u$(m/s), using the deduction factor
\[ p=1\frac{2}{3}\left(\frac{r_{0}}{\alpha x+r_{0}}\right)^{2} \tag{6} \]
and then applying
\[ v=u \cdot p \tag{7} \]
Figure 4 Schematic of the wake model given by Jensen (topview).
Once $x$, $r$, and $r_{0}$ are known, our algorithm uses trigonometry to compute the Jensen trapezoid defined by the points $A$, $B$, $C$, and $D$, as shown in Figure 4. As the wake cone is directed downstream from the turbine $P_{1}$ in the direction of the wind flow, we compute the rotor disc points $A^{'}$ and $B^{'}$ of the downstream turbine $P_{2}$(see Figure 5 for a realworld example). Again, using trigonometry, we compute the potential intersection points between lines $B$  $C$ and $A^{'}$  $B^{'}$ as well as between $A$  $D$ and $A^{'}$  $B^{'}$. We call these intersections $I_{1}$ and $I_{2}$. It should be noted that in twodimensional space, there are three possible cases: (a) None of the computed potential intersection points actually represent an intersection of lines. In such cases, there is either full wake (turbine 2 is fully covered by the wake of turbine 1) or no wake (turbine 2 is completely unaffected by the wake of turbine 1), (b) only one out of $I_{1}$ and $I_{2}$ is an actual intersection (as given by the example in Figure 5), which implies partial wake coverage, and (c) both points represent intersections. The latter is only possible if different turbine types are used and turbine 2 has a somewhat larger rotor radius than turbine 1. Since the cone radius is strictly larger than the rotor radius for equally sized turbines, case (c) is not possible for turbines of the same sizes. In the following, for simplicity but without loss of generality, we assume that both turbines under investigation share the same rotor radius.
Figure 5 Schematic showing the computation of partial coverage wake (topview).
Eventually, similar to the procedure performed by Feng and Shen [12], we compute the intersection area of two circles, one being the rotor disc of the downwind turbine and the other being the wake cone “disc” of the upwind turbine (the conceived section of the wake frustum cast by the upwind turbine) at the position of the downwind turbine. These circles are situated in threedimensional space, where the heights depend on the terrain elevations, $E_{1}$ and $E_{2}$, and the hub heights of the respective turbines, $H_{1}$ and $H_{2}$, at points $P_{1}$ and $P_{2}$, respectively. This suggests a “complex terrain” (i.e., various elevations), as tackled by Feng et al. [49]. We simplify in terms of the downstream wind flow and assume that $P_{1} = \left( x_{1},y_{1},z_{1} \right)^{T}$ with $z_{1} = E_{1} + H_{1} $ and $P_{2} = \left( x_{2},y_{2},z_{2} \right)^{T}$ with $Z_{2} = E_{2} + H_{2}$ . Projecting on a $y$  $z$ plane (i.e., with $x$ perpendicular to the plane of the paper), the problem can be sketched as in Figure 6. Here, $a$ is the radius of the wake cone and $b$ < $a$ is the radius of the rotor disc of the downwind turbine. As shown in the figure, $P_{2}$ is “lower” than $P_{1}$, and thus, it can be concluded that $z_{2}$ < $z_{1}$.
Figure 6 Front view of the wake cone disc at the position of the downwind turbine and its radius a, and radius b of the rotor disc of the downwind turbine.
The center of the wake cone at the position of the downwind turbine in twodimensional space can be computed using
\[ M=\frac{I_{1}+I_{2}}{2} \tag{8} \]
in the vector notation. $Z_{1}$ is taken to be the height of the downwind turbine to obtain $C = \left( M_{x}, M_{y}, Z_{1} \right)^{T}$, since the center of the wake frustum casts a straight line through threedimensional space, perpendicular to the tower of the upwind turbine. We now have the points $P_{1}$ and $P_{2}$ in threedimensional space, the radii
\[ a=\frac{\sqrt{\left(I_{1, x}I_{2, x}\right)^{2}+\left(I_{1, y}I_{2, y}\right)^{2}}}{2} \tag{9} \]
\[ b = r_{0} \tag{10} \]
and the distance
\[ d=\sqrt{\left(C_{x}P_{2, x}\right)^{2}+\left(C_{y}P_{2, y}\right)^{2}+\left(C_{z}P_{2, z}\right)^{2}} \tag{11} \]
To compute the area, S, we conveniently use two temporary variables
\[ \kappa=\frac{a^{2}b^{2}+d^{2}}{2 d} \tag{12} \]
and
\[ \lambda=\frac{b^{2}a^{2}+d^{2}}{2 d} \tag{13} \]
and compute
\[ S_{1}=\left(a^{2} \cdot \arccos \left(\frac{\kappa}{a}\right)\right)\left(\kappa \cdot \sqrt{a^{2}\kappa^{2}}\right) \tag{14} \]
and
\[ S_{2}=\left(b^{2} \cdot \arccos \left(\frac{\lambda}{b}\right)\right)\left(\lambda \cdot \sqrt{b^{2}\lambda^{2}}\right) \tag{15} \]
In the end, it turns out that
\[ S=S_{1}+S_{2} \tag{16} \]
$S$ represents the part of the rotor disc of the downwind turbine that is covered by wake. As the entire rotor disc area is $\pi \cdot b^{2}$, we compute the covered fraction by
\[ F=\frac{S}{\pi \cdot b^{2}} \in(0,1) \tag{17} \]
For the dimensionless wake deduction factor, $p$, according to Eq. (6), one can obtain a partial wake weight
\[ p_{\text {new }}=1(1p) \cdot F \tag{18} \]
Replacing $p$ (for the full overlap case, i.e., the Jensen model) by $p_{new}$ extends the Jensen model to a partial coverage version of the model. For the realworld example given in Figure 5, it turns out that the downwind turbine is somewhat more elevated than the wakeemitting turbine ( $P_{2,z} = 131$ m and $P_{1,z} = 85$ m). Thus, seen downstream from $P_{1}$, $P_{2}$ is not only shifted to the right but also somewhat above, as shown in Figure 7 ( $yz$ plane). In the example, the rotor radius is 45 m, and thus the downwind rotor disc area is $6,361.7$ $m^{2}$. The wake cone radius is $a$ = 82.9 m at a downwind distance of $x$ = 527.2 m, which yields a wake cone “disc” area of $21,590.3$ $m^{2}$. The wakecovered area, $S$, is $3,447.7$ $m^{2}$. Thus, $F$ = 0.5149, i.e., little more than half of the disc is covered by the wake. Since, $p$ = 0.8037 for this configuration, we obtain $p_{new}$ = 0.8936.
Figure 7 Front view of the wake cone disc at the position of the downwind turbine corresponding to a realworld example.
Note that the abovementioned three cases – (a) no intersection, and thus either full wake or no wake, (b) only one actual intersection, and thus partial wake, and (c) two intersections (not possible for identical turbines) – are valid for twodimensional space. In threedimensional space, two additional scenarios can arise. In the case (a), if $P_{2}$ is inside the wake cone (which can be tested using a pointinpolygon test such as the Jordan test (see [50])), full wake is not necessarily guaranteed. Instead, if the downwind turbineis much lower (due to uneven terrain or a lower tower) or higher (for analogous reasons), its rotor disc might be partially outside the wake frustum. In such a circumstance, even case (a) results in partial wake. In the case (a), if $P_{2}$ is outside the cone, it might still be possible that partial wake occurs. Given that $P_{2}$ is outside but close to the border of the wake frustum, the downwind turbine rotor disc might still be covered by the wake frustum. Such a situation is presented in Figure 3, panel C. However, we compute the ratio, $F$, of the intersecting area, which is simple and quick to do. Therefore, without even the need for elaborate casebycase analysis, we can conclude that if $F$ = 1 (100%), full wake is ensured, whereas, if $F$ = 0, the downwind turbine is unaffected by the upwind turbine. If $F \in (0,1)$ , partial wake is present and the corresponding deduction factor is computed.
4. Results
The wflo benchmark solution is the result of an extensive optimization achieved using the builtin Profit() function. The scenario of attaining profit from the turbine (i.e., for a given turbine setup) is computed based on revenue minus cost, where revenue depends on the sale price and production. Production is expressed by AEP (see Eq. (1)), whereas production also varies with the wake coverage, which itself has an impact on the power coefficient, $C_{p}$, and the perceived wind speed, $U$, at the location of any one turbine in the farm. Varying the turbine locations thus varies AEP. Finding the maximumprofit turbine locations for the 20 turbines within the bound area can be done by using GA: each turbine location is a tuple of $x$ and $y$ coordinates within the valid domain, leaving 40 data points that can be evaluated for “fitness” by the profit function. The GA maximizes fitness over the turbine locations. Details of the early work on GA and an elementary introduction to it have been provided by Holland [51], and additional details on the actual implementation used here can be found in the article by Croonenbroeck and Hennecke [22]. The AEPtiles within the farm (200 × 200 m, see above) are depicted in Figure 8. Blue shades of the tiles represent the AEP values, where the lighter blue shades represent higher values and darker shades represent lower values. In addition, the figure contains the AEP contour curves and an arrow field representing the wind direction. The goldencolored dots show the turbine locations.
Figure 8 wlfo benchmark solution for a wind farm arrangement of 20 turbines. The blue tiles and contour curves represent AEP. The light gray arrows represent the prevailing wind direction, and darker gray arrows denote its standard deviation.
4.1 Wind Direction Robustness
Iterating over 1,048,576 possible permutations for the shutdown plans for the wflo benchmark solution corresponding to the actual wind directions (mean wind direction of 255°, WestSouthwest) returns an optimum bit pattern of all ‘1’s, indicating that for this setup, all turbines should be enabled. Computing a set of shutdown plans for wind directions between 1° and 360° yields a 360 x 20 dimensional matrix. All values turn out to be 1. Under no circumstance is it beneficial to shut down any of the turbines. From this, we conclude that the benchmark solution is robust against changes in the wind direction. Depending on the 360 wind directions, the benchmark setup generates wake patterns at which different numbers of turbines are influenced by wake. The number of wakeinfluenced turbines varies between 4 and 13, with a mean value of 8.4. Figure 9 shows the least severe (four turbines influenced at 207° wind direction, left panel) and the most severe (13 turbines influenced at 147°, right panel) wake situations. Only the wakecausing and wakeaffected turbines are shown here.
Figure 9 Wake patterns corresponding to the benchmark setup for wind directions of 147° and 207°, respectively. Light gray arrows represent the prevailing wind directions, whereas the darker gray arrows denote their standard deviations.
The winddirectiondependent WFLO returns the turbine setup yielding a profit of 11,431,176 € at the actual wind direction^{1}. This is 191,763 € or 2% less than the benchmark solution, which generates a profit of 11,622,939 €. However, the sum of profits over 360°, computed according to Eq. (3), is 4,142,347,000 €, whereas, for the benchmark solution, only 3,971,326,542 € are attained, which is 4% less. This suggests that taking the wind direction robustness into account during the wind farm planning stage can be beneficial. The number of wakeinfluenced turbines now varies between 4 and 11 (i.e., the worst situations seem to be avoided), with a lower mean value of only 7.6. Figure 10 presents the resulting setup. Computing this result is quite timeconsuming. Our Intel Core i7, 3.4 GHz, took more than 100 days to obtain this using genoud(). However, GAbased optimizations are known to be computationally expensive. Other optimization strategies such as gradientbased algorithms might be faster.
Figure 10 Optimization result corresponding to the sum of profits over 360° of wind directions. The light gray arrows represent the prevailing wind direction, whereas the darker gray arrows denote its standard deviation.
The winddirection dependence of WFLO and an already present farm has also been analyzed. However, as they did not employ an economicallydriven target function (instead, they maximized AEP), they did not report the results in monetary units. Instead, they performed an indepth analysis of the impact minor changes in the wind direction from a certain benchmark direction (prevailing directions at four different sites) have on AEP (sensitivity analysis). They flipped the perspective around and provided a band within which the wind direction changes are tolerable (and outside which, they are not) and measured how wide or narrow this band is. In effect, they derived an optimal wake decay coefficient, $k$. Their model contribution named “Park2 model” is now part of WaSP (Wind Atlas Analysis and Application Program), the quasistandard industry software package.
4.2 Wake Asymmetric Thrust Load
The case study by Croonenbroeck and Hennecke [22] involves several WFLO runs for a problem involving 20 turbines and provides an overall best result as a benchmark. However, this result does not take partial wake into account (and is thus referred to as the “old model” henceforth). Thus, evaluating the provided setup by taking partial wake into account returns the wake pattern presented in Figure 11 (only wakecausing and wakeaffected turbines are shown). The original outcome amounts to a computed wind farm profit of 11,793,518 €, whereas taking partial wake into account returns 11,622,939 € (170,579 € less). The latter profit is lower since many turbines are now still outside the wake cones (incorrectly assumed to be uninfluenced by the wake at all in the old model), yet are partially influenced by wake; thus, reducing their profitability. In contrast, turbines that are fully wake penalized in the old model might now be only partially penalized. Table 1 shows the profit contribution given by each turbine to the total farm profit. The second column shows the profit contributions calculated using the old model, and the third column presents the contributions calculated using the new model. As can be seen from the table, the turbines 4, 5, 8, 10, 17, and 20 provide lower contributions for the new model compared to the old model.
Figure 11 Wake interdependence pattern for the benchmark solution, taking partial wake into account. The light gray arrows represent the prevailing wind direction, and darker gray arrows denote its standard deviation.
Table 1 Profit contribution from each turbine, including the benchmark result, obtained using the old and new model and the evaluation done using the old model and the new model, respectively.
The WFLO optimizer can now access additional information to obtain a turbine setup that efficiently avoids wake. Hence, a new optimization run was performed in this work. The genoud() function was used to search for an optimal solution for 375 h, 55 min, and 45 s (or almost 16 days) on an Intel Core i7, 3.4 GHz. The wake pattern resulting from this calculation is presented in Figure 12. Very few turbines are influenced by the wake. This new outcome provides a profit of 11,673,289 € as evaluated using the old wake model, but 11,673,324 € when evaluated using the new model (35 € more). Columns 4 and 5 in Table 1 show the profit contributions for the new results obtained using the old and the new models, respectively.
Figure 12 Wake interdependence pattern obtained as the solution from the new model on taking partial wake into account. The light gray arrows represent the prevailing wind direction and the darker gray arrows denote its standard deviation.
Chowdhury et al. [20], performing a similar study and obtained very similar results. However, as they had the advantage of having access to a wind tunnel experimental approach, they had the liberty to actually change the turbine placement and measure the outcome instead of having to compute the setting. This enabled them to also vary the number of turbines on the farm. We leave a similar comparison, based on computations instead of experiments, for future research because of its computational intensity.
Although the differences in our settings are very small, we can conclude that the additional partial wake information provided using our model helps in finding better turbine arrangement solutions that also might have their benefit concerning asymmetric wear.
5. Conclusion
This paper discusses the methods of either obtaining the winddirectiondependent shutdown plans for installed turbines or showing that a given turbine setup is robust against changes in the wind direction. For the latter, a WFLO procedure has been presented that purposely returns a winddirection robust turbine arrangement. The additional computation time might be worthwhile at locations that are known to possess a wide range of different wind directions, which could be different depending on the seasons. This aspect is usually analyzed by wind surveys and displayed by the typical wind rose plot.
Most WFLO procedures utilize the Jensen wake model. Commonly known in the literature is the straightforward extension of this model to encompass the multiwake phenomenon. However, incorporating partial wake in threedimensional space to account for the asymmetric thrust force on the actuator disc and to have a more realistic wind speed deduction factor at hand is somewhat more complicated. However, our method provides fast computation and is easy to handle.
Both methods discussed in this study are not just theoretical. They have already been implemented in free software, readytouse via the wflo package. However, in future research, robustness against wind direction could be extended to a finer resolution of directions (we use only integer steps but halfdegree steps or finer ones are also possible) or even to a continuous wind direction domain. Alternatively, it would be a straightforward extension to the 360° optimization procedure to weight profits for the respective wind directions by their probability and/or duration of occurrence. The data can be extracted from the usual empirical wind surveys or by wind direction density estimations.
A partial coverage Jensen wake model is still a Jensen model. Smooth Gaussian wake models or even computational fluid dynamics models using Reynolds averaged NavierStokes equations or large eddy simulations are extensions usually discussed in the literature. Future research can adapt our partial coverage features to those models.
Author Contributions
Carsten Croonenbroeck: Conceptualization, methodology, software, text writing. David Hennecke: Data curation, figures, methodology, text writing.
Competing Interests
The authors have declared that no competing interests exist.
References
 Mosetti G, Poloni C, Diviacco B. Optimization of wind turbine positioning in large windfarms by means of a genetic algorithm. J Wind Eng Ind Aerodyn. 1994; 51: 105116. [CrossRef]
 Grady SA, Hussaini MY, Abdullah MM. Placement of wind turbines using genetic algorithms. Renew Energy. 2005; 30: 259270. [CrossRef]
 Wang F, Liu D, Zeng L. Study on computational grids in placement of wind turbines using genetic algorithm. Proceedings of the 2009 World NonGridConnected Wind Power and Energy Conference; 2009 September 2426; Nanjing, China. New York: IEEE. [CrossRef]
 Quaeghebeur E, Bos R, Zaaijer MB. Wind farm layout optimization using pseudogradients. Wind Energ Sci. 2020: 138. doi: 10.5194/wes2020109. [CrossRef]
 Chen Y, Li H, Jin K, Song Q. Wind farm layout optimization using genetic algorithm with different hub height wind turbines. Energy Convers Manag. 2013; 70: 5665. [CrossRef]
 Park JW, An BS, Lee YS, Jung H, Lee I. Wind farm layout optimization using genetic algorithm and its application to Daegwallyeong wind farm. JMST Adv. 2019; 1: 249257. [CrossRef]
 Yang K, Kwak G, Cho K, Huh J. Wind farm layout optimization for wake effect uniformity. Energy. 2019; 183: 983995. [CrossRef]
 Thomas JJ, Ning A. A method for reducing multimodality in the wind farm layout optimization problem. J Phys Conf Ser. 2018; 1037: 042012. [CrossRef]
 King RN, Dykes K, Graf P, Hamlington PE. Optimization of wind plant layouts using an adjoint approach. Wind Energ Sci. 2017; 2: 115131. [CrossRef]
 Gualtieri G. A novel method for wind farm layout optimization based on wind turbine selection. Energy Convers Manag. 2019; 193: 106123. [CrossRef]
 Wu Y, Zhang S, Wang R, Wang Y, Feng X. A design methodology for wind farm layout considering cable routing and economic benefit based on genetic algorithm and GeoSteiner. Renew Energy. 2020; 146: 687698. [CrossRef]
 Feng J, Shen WZ. Modelling wind for wind farm layout optimization using joint distribution of wind speed and wind direction. Energies. 2015; 8: 30753092. [CrossRef]
 Feng J, Shen WZ. Solving the wind farm layout optimization problem using random search algorithm. Renew Energy. 2015; 78: 182192. [CrossRef]
 Quick J, Annoni J, King R, Dykes K, Fleming P, Ning A. Optimization under uncertainty for wake steering strategies. J Phys Conf Ser. 2017; 854: 012036. [CrossRef]
 Graf PA, King R, Dykes K, Quick J, Kilcher L, Rinker J. Temporal coherence importance sampling for wind turbine extreme loads estimation. Proceedings of the AIAA Scitech 2019 Forum; 2019 January 711; San Diego, California. [CrossRef]
 Tingey EB, Thomas JJ, Ning A. Wind farm layout optimization using sound pressure level constraints. Proceedings of the 2015 IEEE Conference on Technologies for Sustainability (SusTech); 2015 July 30 August 2; Ogden, UT, USA. New York: IEEE. [CrossRef]
 Feng J, Shen WZ. Wind farm power production in the changing wind: Robustness quantification and layout optimization. Energy Convers Manag. 2017; 148: 905914. [CrossRef]
 Jensen NO. Note on wind generator interaction. Denmark: Risoe National Lab; 1983; RISOM2411.
 Bokharaie VS, Bauweraerts P, Meyers J. Windfarm layout optimisation using a hybrid Jensen–LES approach. Wind Energ Sci. 2016; 1: 311325. [CrossRef]
 Chowdhury S, Messac A, Zhang J, Castillo L, Lebron J. Optimizing the unrestricted placement of turbines of differing rotor diameters in a wind farm for maximum power generation. Proceedings of the International Design Engineering Technical Conferences and Computers and Information in Engineering Conference; 2010 August 1518; Montreal, Quebec, Canada. [CrossRef]
 King J, Fleming P, King R, MartínezTossas LA, Bay CJ, Mudafort R, et al. Controlsoriented model for secondary effects of wake steering. Wind Energ Sci Discuss. 2020; 2020: 122. [CrossRef]
 Croonenbroeck C, Hennecke D. A comparison of optimizers in a unified standard for optimization on wind farm layout optimization. Energy. 2020; 216: 119244. [CrossRef]
 Baker NF, Stanley AP, Thomas JJ, Ning A, Dykes K. Best practices for wake model and optimization algorithm selection in wind farm layout optimization. Proceedings of the AIAA Scitech 2019 Forum; 2019 January 711; San Diego, California. [CrossRef]
 Parada L, Herrera C, Flores P, Parada V. Wind farm layout optimization using a Gaussianbased wake model. Renew Energy. 2017; 107: 531541. [CrossRef]
 Guo P, Chen S, Chu J, Infield D. Wind direction fluctuation analysis for wind turbines. Renew Energy. 2020; 162: 10261035. [CrossRef]
 Liu Z, Cao J, Yan B, Wang Y, Wang H. Study of winddirection effects on flow fields over twodimensional hills using large eddy simulations. J Wind Eng Ind Aerodyn. 2020; 204: 104285. [CrossRef]
 Sun H, Gao X, Yang H. Experimental study on wind speeds in a complexterrain wind farm and analysis of wake effects. Appl Energy. 2020; 272: 115215. [CrossRef]
 Routray A, Mistry KD, Arya SR. Wake analysis on wind farm power generation for loss minimization in radial distribution system. Renew Energy Focus. 2020; 34: 99108. [CrossRef]
 Feng J, Shen WZ. Wind farm layout optimization in complex terrain: A preliminary study on a Gaussian hill. J Phys Conf Ser. 2014; 524: 012146. [CrossRef]
 Kanev S, Savenije F, Engels W. Active wake control: An approach to optimize the lifetime operation of wind farms. Wind Energy. 2018; 21: 488501. [CrossRef]
 Kanev S. On the robustness of active wake control to wind turbine downtime. Energies. 2019; 12: 3152. [CrossRef]
 Boersma S, Doekemeijer BM, Gebraad PM, Fleming PA, Annoni J, Scholbrock AK, et al. A tutorial on controloriented modeling and control of wind farms. Proceedings of the 2017 American Control Conference (ACC); 2017 May 2426; Seattle, WA, USA. New York: IEEE. [CrossRef]
 Annoni J, Bay C, Johnson K, Dall’Anese E, Quon E, Kemper T, et al. A framework for autonomous wind farms: Wind direction consensus. Wind Energ Sci Discuss. 2018: 117. doi: 10.5194/wes201860. [CrossRef]
 Pedersen MM, Larsen GC. Integrated wind farm layout and control optimization. Wind Energ Sci. 2020; 5: 15511566. [CrossRef]
 Ogunjuyigbe A, Ayodele T, Bamgboje O. Optimal placement of wind turbines within a wind farm considering multidirectional wind speed using twostage genetic algorithm. Front Energy. 2021; 15: 240255. [CrossRef]
 Mendez Reyes H, Kanev S, Doekemeijer B, van Wingerden JW. Validation of a lookuptable approach to modeling turbine fatigue loads in wind farms under active wake control. Wind Energ Sci. 2019; 4: 549561. [CrossRef]
 Shakoor R, Hassan MY, Raheem A, Wu YK. Wake effect modeling: A review of wind farm layout optimization using Jensen׳ s model. Renew Sust Energ Rev. 2016; 58: 10481059. [CrossRef]
 Abdulrahman M, Wood D. Investigating the PowerCOE tradeoff for wind farm layout optimization considering commercial turbine selection and hub height variation. Renew Energy. 2017; 102: 267278. [CrossRef]
 Scott R, Viggiano B, Dib T, Ali N, Hölling M, Peinke J, et al. Wind turbine partial wake merging description and quantification. Wind Energy. 2020; 23: 16101618. [CrossRef]
 Howland MF, Lele SK, Dabiri JO. Wind farm power optimization through wake steering. Proc Natl Acad Sci U S A. 2019; 116: 1449514500. [CrossRef]
 Sajeer MM, Mitra A, Chakraborty A. Spinning finite element analysis of longitudinally stiffened horizontal axis wind turbine blade for fatigue life enhancement. Mech Syst Signal Process. 2020; 145: 106924. [CrossRef]
 Rong F, Xu X, Zhou S, Huang Y, Yang G. Optimized strategy for DFIG wind farm considering turbine fatigue. Int J Electr Power Energy Syst. 2020; 123: 106313. [CrossRef]
 Huo T, Tong L. An approach to windinduced fatigue analysis of wind turbine tubular towers. J Constr Steel Res. 2020; 166: 105917. [CrossRef]
 Burton T, Jenkins N, Sharpe D, Bossanyi E. Wind energy handbook. Hoboken, New Jersey: John Wiley & Sons; 2011. [CrossRef]
 Croonenbroeck C, Hennecke D. wflo: A new standard for wind farm layout optimization in R. 2020. Available from:http://cran.rapporter.net/web/packages/wflo/vignettes/wflo.pdf.
 HerbertAcero JF, Probst O, Réthoré PE, Larsen GC, CastilloVillar KK. A review of methodological approaches for the design and optimization of wind farms. Energies. 2014; 7: 69307016. [CrossRef]
 Mebane Jr WR, Sekhon JS. Genetic optimization using derivatives: The rgenoud package for R. J Stat Softw. 2011; 42: 126. [CrossRef]
 Organization WM. Guide to instruments and methods of observation. Geneva, Switzerland: World Meteorological Organization; 2018.
 Feng J, Shen WZ, Li Y. An optimization framework for wind farm design in complex terrain. Appl Sci. 2018; 8: 2053. [CrossRef]
 Alexander JW. A proof and extension of the JordanBrouwer separation theorem. Trans Am Math Soc. 1922; 23: 333349. [CrossRef]
 Holland JH. Adaptation in natural and artificial systems: An introductory analysis with applications to biology, control, and artificial intelligence. Ann Arbor, Michigan: University of Michigan Press; 1975.
 Lai CS, Jia Y, Xu Z, Lai LL, Li X, Cao J, et al. Levelized cost of electricity for photovoltaic/biogas power plant hybrid system with electrical energy storage degradation costs. Energy Convers Manag. 2017; 153: 3447. [CrossRef]
 Rathmann OS, Hansen BO, Hansen KS, Mortensen NG, Leon JP. The park2 wake modeldocumentation and validation. Peninsula Risø: DTU Wind Energy; 2018; E0160.