Wind Farm Layout Optimization with Loads Considerations

The objective of this paper is to improve the annual energy production of a wind farm by optimizing the layout of a wind farm, while considering fatigue loads on turbines. In this paper, the loads are estimated using the edgewise bending moment computed using CCBlade, a steady-state blade element momentum code. The edgewise bending moment is then used to calculate fatigue damage using Miner’s rule. The fatigue damage is used to constrain the layout optimization problem. We show that our method can predict blade root damage with similar trends to damage calculated with other methods, such as a complex, computationally expensive large-eddy simulation and unsteady aeroelastic code. We also optimize wind farm layouts and show that, for a simple problem with two wind directions and ten turbines, the fatigue damage can be constrained without sacrificing wind farm power production.


Introduction
Turbine manufacturers are seeking ways to extend the lifetime of turbines in a wind farm. This can be done through advanced control strategies or more sophisticated layouts where the objective is to minimize fatigue loads of turbines in a wind farm.
Several studies have been conducted to minimize loads at individual turbines. In particular, individual pitch control can be deployed to minimize loads at the turbine by individually pitching turbine blades based on their position within the rotor frame of reference [1,2,3]. More recently, research has been conducted at the wind farm level to reduce loads when a wind farm is asked by a grid operator to curtail its power [4]. Alternatively, several studies have looked at advanced wind farm control strategies [5], such as wake steering or axial-based control, that take into account the aerodynamic interactions to improve overall power output in a wind farm, while also minimizing loads [6,7,8].
In addition to controls, layout optimization has been gaining significant attention in recent years as a means to boost power production of a wind farm by minimizing aerodynamic interactions in the design phase [9,10,11]. These layout optimization techniques have been validated with high-fidelity, large-eddy simulation (LES) results to show that there is a benefit in power production when optimizing the wind farm layout [12]. Layout optimization studies have furthered this research by considering heterogeneous turbines in a wind farm [13,14,15,16] and advanced control strategies such that wind turbines can be spaced closer together to increase the power density of an area [17]. These layout optimization studies typically focus on increasing power production and do not study how increased partial waking could potentially cause increases in fatigue loads.
This paper presents a way to capture structural loading effects in a controls-oriented wake model that can be used for layout optimization, outlined in Section 2. The loads are used to calculate the overall damage to the turbine over the lifetime of the turbine (see Section 2.3). A layout optimization is performed for a 10-turbine case using the objective function shown in Section 2.5. Several optimizations were run with different constraints on the turbine damage. Results are shown in Section 3; Section 4 provides some conclusions and future work.

Wake Model
Wind speed deficits are predicted from turbine wakes with a modified version of the 2016 Bastankhah Gaussian wake model [18]. The original formulation of the model does not define the wake deficit in the near wake region, creating undefined regions. These undefined regions in the space make optimization difficult. To mitigate this issue, Thomas and Ning added a linear interpolation of the wake loss from the turbine up to where it is defined by the wake model, which is the version used in this paper [19]. The most important equation for this Gaussian wake model is shown in Eq. 1: where ∆ū/ū ∞ is the velocity deficit in the wake; C T is the thrust coefficient; γ is the yaw angle, which is assumed to be zero throughout this paper; y − δ and z − z h are the distances from the wake center and the point of interest in the cross-stream horizontal and vertical directions, respectively; and σ y and σ z are the standard deviations of the wake deficit, again in the crossstream horizontal and vertical directions, respectively. These standard deviations are defined in Eqs. 2 and 3.
where D is the diameter of the wind turbine creating the wake, x−x 0 is the distance downstream from the turbine to the point of interest, and k y and k z are unitless, and are functions of the freestream turbulence intensity: Because γ = 0 throughout this paper, cos(γ) = 1 meaning that σ y = σ z . Wakes were combined with a linear combination method, about which more details can be found in the cited literature [18,19].

Wind Turbine Model
In this paper, we used the open-source National Renewable Energy Laboratory (NREL) 5-MW reference wind turbine developed at NREL [20]. This defined the blade and tower geometry, aerodynamic properties, simulation and control, and the power generation for our simulations. Some of the general, most important turbine properties for this turbine are shown in Table 1. For more specific details, refer to turbine definition [20]. The turbine power curve is defined as: where P i is the power produced by a single turbine, V is the effective wind speed, P rated is the rated power, V rated is the rated wind speed, V cut-in is the cut-in wind speed, and V cut-out is the cut-out wind speed. The effective wind speed, V , was determined by averaging the wind speed calculated at 20 locations sampled across the swept rotor area in an evenly distributed sunflower seed pattern [21].

Damage Modeling
Because the main contribution of this study is in considering how different waking conditions cause additional loads for wind turbines, an integral part of this study is the calculation of wind turbine fatigue damage in different situations. In this study, we consider only the loads from the root bending moment of the turbine blade caused by the edgewise loads. The edgewise load fluctuations are much larger than the flapwise loads and thus contribute much more to the fatigue. Edgewise loads alternate greatly with the gravitational loads on the blades as well as from the aerodynamic loads in different waking conditions. To find the stress of a turbine blade at a given azimuth angle and under a certain waking condition, first the velocity distribution is calculated along the blade using the wake model described in Section 2.1. After finding the velocity distribution, CCBlade, a blade element momentum code, is used to calculate the edgewise load along the blade [22]. Trapezoidal integration is used to calculate the root bending moment from the aerodynamic load on the blade. The aerodynamic moment is then added to the moment due to gravity. This process is repeated for several azimuth angles to determine a root bending moment history. An example moment history is shown in Fig. 1.
From the moment history, the damage accumulated by a wind turbine throughout its lifetime is calculated for the given load conditions. To calculate the damage, the moments are converted to stress values: where σ is the stress at the blade root, M is the root bending moment, r is the root radius, which is 0.5 meters, and I is the moment of inertia. The blade shell thickness at the root is assumed to be 8 cm [23]. A Goodman correction was applied to account for the mean loading effects: NAWEA  where σ er is the effective fully reversed stress amplitude, σ a is the stress amplitude, σ m is the mean stress, and σ U is the material ultimate stress, which was assumed to be 535 GPa [24].
The cycles to failure for each effective fully reversed load were then calculated with the same equations used in mLife, a wind turbine fatigue calculation code [25]: where N fail is the number of cycles to failure, SF is a safety factor for which we used 1.15, and m is the material dependent Wöhler exponent. For composite turbine blades, it is typically assumed that m = 10, which is the value used in this study [26]. One loading cycle for this steady-state application is one full rotation of the wind turbine, which includes both a positive maximum stress and a negative minimum stress. Miner's rule was then used to calculate the damage accumulated by a turbine over a 20-year lifespan, shown in Eq. 9: where d i is the damage accumulated by the blade for the given condition and N cycles is the number of cycles that the blade experiences at the given loading condition. This process was then repeated for each turbine and for each wind direction. The total damage accumulated by each turbine (Eq. 10) is represented as the sum of the damage from each loading condition. The turbine damage is a function of the flow field, which depends on the wind farm layout and wind direction: where D is the total damage accumulated by a turbine and nDirs is the number of wind directions considered in the analysis. For both the CCBlade aerodynamic force calculation and the number of cycles that a turbine experiences under a given loading condition, the rotation rate is needed. For this paper, the turbine rotation rate was obtained from the unsteady wind turbine aeroelastic code, FAST, which is discussed further in the subsequent section. For validation purposes, we had rotation rate data for several different wind inflow velocities. We found the average rotation rate for three different wind speeds from the FAST data (i.e., slow inflow, medium inflow, and fast inflow). We linearly interpolated the rotation rate between these wind speeds to get turbine rotation as a function of effective wind turbine inflow velocity. In future work, we will calculate the turbine rotation rate directly, which will be a function of the tip-speed ratio of the wind turbine.

Model Validation using SOWFA and FAST
To validate our damage calculation, we used the large-eddy simulation code SOWFA, and unsteady aeroelastic code FAST. The Simulator fOr Wind Farm Applications (SOWFA) is an LES model [27] that was used to generate the flow fields that were used to evaluate the turbine under different loading conditions. A SOWFA simulation was run for a single turbine, operating in 8 m/s wind speeds with turbulence intensities of 5.6% and 11%. Full wind speed data was extrated from the flow field at different cross-stream planes: 2 rotor diameters upstream of the turbine, and 4, 7, and 10 rotor diameters downstream of the turbine. The wind speed data at each plane were saved every 1 s.
These planes were then used as an inflow to FAST, an the open-source, unsteady aeroelastic code. FAST is commonly used to calculate loads on a turbine [28]. The different planes of time resolved velocity data were used with FAST to determine the time history of the loads on a turbine at different distances downstream of the waking turbine. For each FAST simulation, the turbine was placed at different downstream distances (-2D, 4D, 7D, and 10D). Additionally, a range of spanwise offsets from -1D to +1D in increments of 0.25D were considered to calculate the loading on the turbine for different amounts of partial waking. The turbine edgewise moment histories from the full SOWFA plus FAST simulations were then used to calculate the lifetime damage of the turbine under different waking conditions. The damage from these simulations was also done with Eqs. 7-10. Because the moment histories with the unsteady simulations were more noisy that the CCBlade data, we also used rainflow counting to find the amplitudes and mean values of all of the noisy cycles. Figure 2 shows comparisons between the damage from full SOWFA and FAST simulations compared to the simpler CCBlade model. The data in this figure shows the damage for the downstream turbine in the simple two-turbine used in the FAST simulations. The downstream turbine is offset such that different amounts of partial waking are achieved. The three different subfigures from left to right represent downstream turbines that are 4, 7, and 10 rotor diameters downstream of the waking turbine. The subfigures on the top show the damage with a freestream turbulence intensity of 11%, while those on the bottom show a freestream turbulence intensity of 5.6%.
The figures show similar trends between the analytic wake and CCBlade model and the higher-fidelity simulations. Both predict similar damage behavior for a turbine that is in different waking conditions, for different distances downstream of the waking turbine. There are a few differences between the simpler model and the higher-fidelity simulations. First, the higherfidelity simulations predict higher average damage values than the simpler model. We expect that this is because of small fluctuations in the loading caused by turbulence that we are not fully capturing in the simpler model, some larger fluctuations due to wake meandering, and the influence of aero-elastic coupling on loads. Second, the higher-fidelity simulations predict higher peaks of damage when the downstream turbine is partially waked. We hypothesize that this is becuase of the induced swirl in the wake, which is not captured in the lower-fidelity model. Further testing will be needed to confirm this. Finally, the SOWFA and FAST damage decays slower than our lower-fidelity simulation for the high-turbulence case. The wake model we use expects the wake to be almost fully decayed 10 diameters downstream of the waking turbine, meaning any change in damage from partial waking is minimal. The higher-fidelity model shows that even in the high-turbulence case, the partial waking damage difference is appreciable for the 10-diameters-downstream case. We used the presented lower-fidelity method to calculate fatigue damage in this study, but plan to improve our methods to better match the high-fidelity data in future work. Figure 2 shows constant edgewise damage when the turbine is unwaked, as is expected for the simple damage calculated from the analytic wake model. Damage from the higher-fidelity model may actually vary slightly compared to the freestream value we show because of freestream turbulence. The figure shows that partial waking on one side of the turbine experiences a fatigue damage increase, while on the other side there is a fatigue decrease. To some, this fatigue decrease may be unexpected as partial waking is generally associated with increased fatigue.   aerodynamic loads oppose gravity, while on the other side they are in the same direction. When the turbine is partially waked on one side (shown in the middle subfigure), the aerodynamic loads in the wake are relatively small and do not provide much resistance to the gravitational loads. This leads to larger fluctuations in the stress at the blade root and higher fatigue damage. When the turbine is partially waked on the other side (shown in the bottom subfigure), the freestream aerodynamic loads provide a large resistance to gravity, while the aerodynamic loads in the wake are small and do not add much to the downward loads. This causes smaller stress fluctuations and reduced damage compared to freestream.

Optimization
The purpose of this paper is to compare the effect and benefits of including load constraints in wind farm layout optimization. In each case, the objective function of the optimization was to maximize the annual energy production (AEP) of the wind farm, shown in Eq. 11: where 8760 is the number of hours in a year, nDirs is the number of wind directions, P is the wind farm power production, φ is the wind direction, and f i is the wind direction probability. The design variables were the x and y locations of each turbine in the wind farm. In each optimization, turbine spacing constraints and boundary constraints were applied. The turbine hub locations were constrained to be greater than or equal to two rotor diameters away from any other turbine. The turbine (x,y) locations were also constrained to be within the defined wind farm boundary. Finally, we performed each optimization with a two-step approach. First, we optimized the wind farm layout for maximum AEP with no additional constraints. Then, starting from this layout, we again optimized the layout to maximize AEP, but constrained the damage accumulated by each turbine throughout its lifetime by some threshold value, forcing a final solution that met the desired damage constraints. A damage value of 1.0 indicates failure at the expected turbine lifetime, however damage could be constrained to some value lower than this to allow for some margin of safety. The two-step process ensures that we are near a high AEP solution and that the optimizer does not avoid better solutions for easy-to-find, low-power-producing layouts that satisfy the constraints. This optimization is expressed as: maximize AEP w.r.t.
x j , y j (j = 1, . . . , nTurbines) subject to boundary constraints spacing constraints D j < D max (j = 1, . . . , nTurbines) step 2 only (12) We used the gradient-based optimizer SNOPT in this study, which is well suited for large-scale nonlinear problems such as this one [29]. One major difficulty of gradient-based optimization is the tendency to converge to local solutions. The wind farm layout optimization problem is particularly challenging because of the large number of local solutions [30]. In order to search the design space well, we optimized wind farms 100 times, each time with different randomly generated turbine starting locations. Although this in no way guarantees that our best solutions are the global best turbine layouts, it does lend confidence that they are good solutions. In this study, we used central-difference gradients. In future development of this research we will implement exact, analytic gradients in these optimizations. This will speed up the optimization process and lead to better convergence.  . Optimal wind farm results for several different turbine-damage constraints. Onehundred optimizations with randomly initialized turbine layouts were run for each damage constraint. The normalized AEP is plotted against the maximum turbine damage for every optimized wind farm.

Results and Discussion
In order to visualize and discuss the benefits of considering turbine loading and fatigue damage, this paper uses a relatively small and simple wind farm to discuss the results of the optimization and develop an intuition when adding additional loading constraints to the layout optimization problem. This wind farm has 10 wind turbines, two wind directions with equal probability from due north and due west, and a circular wind farm boundary. The boundary is small with an average spacing of only three rotor diameters between turbines throughout the farm. This close spacing exaggerates the results of the study for clearer explanation. All optimizations in these results were run with 11% freestream turbulence intensity, which determines the wake spreading in our model, and corresponds to the bottom plot in Fig. 2. Figure 4 shows optimization results for several different values of D max in the damage constraint. For each value of D max we ran 100 optimizations with randomly initialized turbine starting locations. In Figure 4, the optimal AEP is plotted against the maximum turbine damage accumulated by the turbines in the wind farm. Each AEP value has been normalized by the maximum AEP across all cases. Shown are results with no damage constraint and where the maximum damage is constrained to 1.0, 0.98, and 0.96.
There are several interesting observations to be made from Figure 4. First, focusing on the results of the optimizations with no damage constraints, the spread in optimal AEP is relatively small. Most of the optimal wind farm AEP values are within a 4% spread. The maximum turbine damage in the wind farm, however, is much more varied. With no consideration of turbine loads and fatigue damage, the worst turbine damage in the wind farm varies wildly, from around 0.98-1.4. These trends are explained by the extreme multimodality of the wind farm design space. From an optimization standpoint, the multimodality is detrimental and makes it hard to find the best solution. However, because there are so many different layouts with high power production, we can leverage the multimodality of the problem to find a layout that has a high AEP and constrained damage.
When the turbine damage is constrained, there are two important observations. First, the  highest AEP for the unconstrained and the constrained cases are almost exactly the same. In other words, the wind farms that produce the highest AEP do not need to come at the cost of high turbine damage. This has impactful implications not only for wind farm layout optimization, but also for wind farm controls. Simply by including it as a constraint, the fatigue damage can be controlled with minimal to no sacrifice to the power production. In this paper, we consider a simple problem, with only two wind directions, a single wind speed, and a single turbulence intensity. Although we expect a similar response for more realistic wind conditions and additional wind farm constraints, further study is needed to verify this for more complicated wind farm problems. Second, the optimal AEP of wind farms constrained by turbine damage have a similar spread of AEP to the unconstrained wind farms, while the maximum damage distribution is much tighter when damage is constrained. Figure 5 shows a histogram of the AEP and maximum turbine damage from the wind farms with no damage constraint and with the damage constraint, D max = 1.0. Figure 5 further reinforces the principle from above: turbine blade fatigue can be constrained without sacrificing power. Not only is the best solution very similar, but the distribution of the optimal AEP values are similar both when the turbine damage is strictly constrained and when it is not. In this case, the mean AEP for the wind farms optimized with the damage constraint is just slightly lower than those optimized without the constraint. Contrasted with the AEP, the maximum turbine damage is greatly spread when damage is unconstrained, but has much less variance when it is constrained.
To demonstrate the layout characteristics of wind farms that lead to different performance and damage, Figures 6 and 7 show example layouts and flow fields of two of the optimized wind farms. These figures also show the damage contributions to each turbine from each wind direction. Each total turbine damage is the sum of the two wind directions. Figure 6 shows a wind farm that has high AEP but also has a turbine with high fatigue damage. The turbines are spaced approximately in a staggered grid. This is a logical layout for high energy production. For a large part, the turbines avoid wakes or are as far downstream as possible if they are forced to be in a wake. However, because this optimization did not consider the turbine loads, a lot of turbines are partially waked. The worst-case turbine, shown in red, is partially waked in each wind direction on the side that increases the load fluctuations in the turbine blade (refer to Figures 2 and 3). Now contrast Figure 6 with Figure 7. Again this layout has a high AEP, but the worstcase damage accumulated in this layout is relatively low. There are still many partially waked  Figure 6. An example optimized wind turbine layout with high AEP but a high maximum turbine damage. The damage accumulated by each turbine for each wind direction is shown above each turbine. The turbine with the maximum damage accumulated for both wind directions is shown in red. Figure 7. An example optimized wind turbine layout with high AEP and low maximum turbine damage. The damage accumulated by each turbine for each wind direction is shown above each turbine. The turbine with the maximum damage accumulated for both wind directions is shown in red. turbines in this layout. However, they are either partially waked on the side that is beneficial to fatigue damage (again refer to Figs. 2 and 3), or they are partially waked on both sides, balancing out the loads as the blade rotates. The turbines with the highest damage are actually in freestream conditions, meaning that all the turbines downstream on average get a damage reduction from the partial waking. It is interesting to note that the freestream damage is high compared to many of the turbines that are fully waked or partially waked on the detrimental side. This can occur because the freestream turbines spin faster than waked ones, meaning they go through more cycles.

Conclusions and Future Work
In this paper, we have presented a method to incorporate load considerations into wind farm layout optimization and shown that the model follows similar trends and relative magnitudes as much more complex and computationally expensive models. Our damage model suggests that partially waked turbines acquire more fatigue damage if waked on one side, but have decreased damage if waked on the other side. This could have important implications in future wind farm layout design and in layout controls. In addition, we have demonstrated a two-step process to optimize a wind farm layout with fatigue damage constraints.
Step one is to maximize the wind farm AEP with no damage constraints; step two is to use this optimized layout as a starting point and again maximize the AEP while constraining the damages. Our results have shown that a wind farm layout with a high AEP does not need to come at the cost of high turbine damage. We can leverage the multimodality of the wind farm layout optimization problem to find a layout that has both high AEP and constrained damage.
Future work will continue in this direction but will include improvements to this approach. First, we will include a model of the flapwise bending moment as well as the edgewise. While in many cases the edgewise fatigue loads may dominate, there may be cases where the flapwise is not negligible. Second, we will include some consideration of the freestream turbulence and its effect on damage. This may make up for the difference between our damage model and the damage predicted by the full SOWFA and FAST simulations. Third, we will investigate adding in a swirl factor to our wake model. If appropriate, we will add this into our damage calculation with the hope of making the partially waked damage peaks from our model match the higher-fidelity simulation. Fourth, we will investigate better fatigue prediction models. In this paper, we have assumed that fatigue failure would occur in the blade. In reality, the load fluctuations along the blade will likely affect other turbine components more than they directly affect the blade. This is a scenario we will explore further. Fifth, we will scale up the study to consider wind farms with more turbines and more complex wind direction and speed distributions. More complex distributions in the wind resources we consider may lead us to situations where there is some trade-off in AEP required to meet damage constraints. Critical to this step will be implementing exact analytic gradients in our optimization, which was previously discussed. Lastly, we will explore how damage considerations affect wake steering through wind turbine yaw control. As we found, partial wakes are detrimental to turbine fatigue on one side, but beneficial on the other. With this in mind, turbine control schemes could be improved.