Design and analysis of a spatially heterogeneous wake

Methods of turbine wake modeling are being developed to more accurately account for spatially variant atmospheric conditions within wind farms. Most current wake modeling utilities are designed to apply a uniform flow field to the entire domain of a wind farm. When this method is used, the accuracy of power prediction and wind farm controls can be compromised depending on the flow-field characteristics of a particular area. In an effort to improve strategies of wind farm wake modeling and power prediction, FLOw Redirection and Induction in Steady State (FLORIS) was developed to implement 5 sophisticated methods of atmospheric characterization and power output calculation. In this paper, we describe an adapted FLORIS model that features spatial heterogeneity in flow-field characterization. This model approximates an observed flow field by interpolating from a set of atmospheric measurements that represent local weather conditions. The adaptations were validated by comparing the simulated power predictions generated from FLORIS to the actual recorded wind farm output from the Supervisory Control And Data Acquisition (SCADA) recordings. This work quantifies the accuracy of wind plant power 10 predictions under heterogeneous flow conditions and establishes best practices for atmospheric surveying for wake modeling.


Introduction
Low-fidelity wake modeling utilities such as FLOw Redirection and Induction in Steady State (FLORIS) are typically used for the estimation of wind farm power output or the implementation of wind farm controls that help improve the overall performance of a wind farm. This includes implementing real-time corrective strategies that aid in reducing stress-inducing 15 loads on turbines (Boersma et al., 2017), avoiding operational side effects like noise pollution (Leloudas et al., 2007) or shadow flicker (Clarke, 1991), and maximizing power output through methods of wake steering and power grid optimization (Fleming et al., 2017). FLORIS, and most other controls-oriented wake modeling utilities, implement advanced wake modeling algorithms that are capable of producing accurate results in a uniform set of atmospheric conditions. However, the accuracy of any wake model is highly dependent on its ability to recreate the characteristics present. It is important for these models 20 to be able to emulate the naturally occurring state of the wind farm as closely as possible for the controls processes and power-prediction functionalities to operate with reliable accuracy. Most current controls-oriented wake modeling utilities use a homogeneous approximation to characterize the initial state of the atmosphere. Requiring a homogeneous flow is a limitation in most engineering wake models. Error correction terms are proposed in Schreiber and Campagnolo (2019), where these correction terms are learned from operational data.
The consequences are particularly evident when observing the accuracy of power predictions for wind farms located within complex terrain, or wind farms that are otherwise subject to highly variant conditions in the atmosphere. Because these atmospheres are subject to dramatic changes in the velocity and direction of wind, it is difficult to anticipate how the resulting wakes will form and what kind of power output should be expected. With this uncertainty considered, the current version of FLORIS and many other wake model utilities are not constructed to accurately model fluid flow during these conditions. It 30 should be noted that there are existing wake models that incorporate elements of heterogeneous wake effects caused by varying atmospheric conditions. For example, one model presented in You et al. (2016) takes a statistical approach in representing heterogeneous power deficit caused by wind farm-flow interactions in variant weather conditions. Another method discussed in Shao et al. (2019) proposes an interaction model used for calculating the turbulence intensity of overlapping wakes, and represents the relative positions of wind turbines under arbitrary and variant wind direction conditions. Clustering methods 35 have also been implemented, such as Katic et al. (1986), where the turbines of a wind farm are sectioned into groups, assigning a differing atmospheric characteristic to each cluster of turbines to mimic the heterogeneous conditions observed in natural atmospheres.
The aforementioned models present many methods for approximating farm-flow interaction in heterogeneous conditions.
As a contribution to this area of research, this article will present a modified version of FLORIS that features an advantageous 40 capability in modeling wind farms with variant weather conditions and complex terrain. This adapted version of FLORIS presents several novel developments within the scope of controls-oriented wake modeling research: an interpolation algorithm is implemented, which allows the user to define a gradient of atmospheric characteristics across the flow field, based on several measurements within or adjacent to the wind farm; elements of spatially variant wind direction, wind speed, and turbulence intensity are integrated into wake calculations of the preexisting FLORIS model; and an additional method is introduced to 2.1 Turbine power-output model The operation and performance of a turbine is modeled with respect to the relationship between the thrust coefficient, C T , and power coefficient, C P . The dependence between these two terms characterizes a turbine's power output and wake propagation, therefore making the understanding of this relationship fundamental to the design and operation of wind farm controls. To model the performance behaviors of a given turbine, a table is constructed inside of FLORIS that tabulates C T and C P with 60 respect to wind speed. This table can be set to a user's self-obtained data, generated independently by NREL's FAST (Jonkman, 2010), or by integrating CCBlade (Ning, 2013) with FLORIS. The relationship between C T and C P can also be defined through the concept of actuator disk theory, where the turbine power output and thrust are linked through the axial induction factor, a: (1) From these values, the power can then be calculated for turbines under steady-state and yaw-misalignment conditions, using the following relationship provided by Burton et al. (2002): where ρ is the air density, A is the rotor-swept area, and u is the rotor-averaged wind speed.
Thus far, the turbine model discussed in this section does not consider the effects that turbulence may have on the relationship 70 between power output and wind speed. However, Sheinman and Rosen (1992) analyze the effects of turbulence intensity on wind farm power output. In this study, it is shown that turbine power output can be overestimated by more than 10% if turbulence intensity is not considered. Many empirical and machine-learning methods have been proposed to solve this issue.
However, a nonparametric statistical averaging model may be preferred, such as the model developed in Hedevang (2014).
In Section 3.5, a new method of implementing a turbulence-dependent correction to power will be discussed for FLORIS 75 applications.

Velocity deficit
FLORIS provides an option to select particular models for wake velocity deficit and wake deflection separately to suit the user's performance needs. The variety in modeling capabilities reflects a range of trade-offs between computational efficiency and the number of detailed physics applications applied to calculations. If a model is more computationally expensive, it is 80 likely to implement more sophisticated algorithms as well, in hopes of achieving a more accurate result. These models all have a different approach to modeling turbine wake interactions, and offer different strengths and weaknesses in functionality. Most models can either be classified as a velocity deficit, or a wake deflection calculation, but there are also the Gaussian and Curl models that incorporate both calculations and extend further into the overall FLORIS wake modeling structure and control tools. For the purposes of this article, only the Gaussian wake model will be explained in-depth. See Annoni et al. (2018), The Gaussian Wake Model is comprised from a series of papers, including Bastankhah and Porté-Agel (2014); Abkar and Porté-Agel (2015); Niayifar and Porté-Agel (2015); Bastankhah and Porté-Agel (2016); Dilip and Porté-Agel (2017). This model is a method of calculation that is integrated into the structure of all FLORIS wake modeling and control tools . It 90 integrates the concepts of the Bastankhah and Porté-Agel wake deflection model, the self-similar velocity deficit model, and elements of atmospheric stability into one comprehensive method based off of the concept of a Gaussian wake (Pope, 2000). This section will describe the different concepts that are implemented in this model.

Self-Similar Velocity Deficit
The Gaussian model computes the streamwise velocity deficit at any point in a turbine's wake by using analytical formulations 95 of Reynolds-averaged Navier-Stokes (RANS) equations to an assumed Gaussian wake profile. The Gaussian wake is based on the self-similarity theory used for free shear flows (Pope, 2000). To calculate the velocity deficit, u(x,y,z), behind the rotor of a turbine: where U ∞ is the freestream velocity; x, y, z represent the spatial coordinates in the streamwise, spanwise, and vertical directions, respectively; and z h is the turbine hub height. C is the velocity deficit at the wake center; δ represents the wake deflection computed with equations from Bastankhah and Porté-Agel (2016); and σ denotes the wake width in the lateral (y), and vertical (z) directions. The subscript, "0," references a term's initial value at the start of the far wake.

105
The wake width in the y and z directions, σ y and σ z , are determined by the ambient turbulence intensity, I 0 , and thrust coefficient, C T , and the wake expansion rate, which is parameterized by k y and k z : where D is the rotor diameter, u R is the velocity at the rotor, γ denotes the turbine's yaw offset, and u 0 represents the maximum 110 velocity deficit in the wake.
The findings of Abkar and Porté-Agel (2015) demonstrate that k y and k z grow at different rates, but in order to simplify the model, k y and k z are usually set as equal. The total velocity deficit at any point in the domain of fluid flow can then be calculated by combining the wakes using the sum-of-squares method described in Katic et al. (1986).
The Gaussian model also implements methods proposed by Abkar and Porté-Agel (2015); Niayifar and Porté-Agel (2015), which characterize the effects of atmospheric stability by analyzing the levels of veer, shear, and changes to turbulence intensity in the fluid flow. Stull (2012) discusses that an accurate representation of atmospheric stability requires the measurement of many other variables in the atmosphere; but without detailed recordings of elements such as temperature profiles and vertical flux, the three chosen parameters are able to give a rough idea of the state of the atmosphere in the FLORIS model.

120
To implement the effects of shear, α s , the power-log law of wind is used to define the initial wind speed in the flow field, where a high shear coefficient (α s > 0.2) is indicative of stable atmospheric conditions, and a low shear coefficient (α s < 0.2) characterizes an unstable atmosphere (Stull, 2012).

125
The Gaussian model was designed to avoid the inaccuracies caused by neglecting the effects of turbulence intensity by implementing methods introduced by Niayifar and Porté-Agel (2015). This also includes added turbulence caused by nearby turbine operation to more accurately calculate the rate of wake expansion. Many other linear-flow models use a constant parameter that defines the rate of wake expansion and has no dependency on the operating conditions of the turbine (Jensen (1983)). From the concepts of Niayifar and Porté-Agel (2015), the Gaussian model relates the rate of wake expansion in 130 the lateral and vertical directions directly to the ambient turbulence intensity present at a turbine and two tuned parameters, k a = 0.38371 and k b = 0.003678: For simplicity, k y and k z have been set as equal for this model. The turbulence intensity, I, is calculated by superimposing the initial ambient turbulence intensity (I 0 ) with the sum of the added turbulence caused by the operation of each influencing 135 upstream turbine, j and I + j . The following relationship is used in FLORIS to calculate the ambient turbulence intensity at a given turbine with respect to neighboring turbine wakes: N refers to the number of upstream turbines that create a wake that adds to the ambient turbulence intensity at a downstream turbine's location. In Niayifar and Porté-Agel (2015), this number was assumed to be one, and the closest turbine was only 140 taken into account because it would theoretically give the maximum amount of added turbulence. In the Gaussian model used in FLORIS, all turbines within a distance of 15D upstream and 2D in the spanwize (y) direction are included. This was shown to be a more accurate method of calculating added turbulence intensity in the findings of Chamorro and Porté-Agel (2011). This study states that turbulence intensity typically accumulates over two to three turbine rows, but then levels off to an equilibrium at this point. In Crespo and Hernández (1996), the following expression is presented to calculate the added turbulence due to upstream turbine j: where D j denotes the diameter of turbine j, and A overlap refers to the fraction of the rotor-swept area of the downstream turbine that intersects with the cross-sectional area of the wake from the upstream turbine.
3 Changes to the FLORIS model 150 Previously, FLORIS derived the initial wind speed, wind direction, and turbulence intensity by using one value to represent the entire flow-field domain. In this article, we describe the modifications to FLORIS to accommodate heterogeneous flows.
This section will explain the methods used to calculate wakes based on the gradient of values in the flow field. The motivation behind this development was to create a more detailed characterization of the initial state of the atmosphere, which leads to improvements in the power predictions of a wind farm.  (Virtanen et al., 2020). The packages used in this method include a piecewise linear interpolant and a nearest neighbour interpolant, which are combined to create an algorithm that calculates a unique value for each x and y coordinate within the flow field.
The process begins with implementing a piecewise linear interpolation method for all points within the region defined by the input coordinates. First, Delaunay triangulation is performed using the Quickhull algorithm discussed in Barber et al. (1996).

165
This method forms triangular connections between input points, based on their relative coordinates, and defines each triangle by ensuring its circumcircle remains empty. The result of this triangulation generates a mesh of triangular elements called a simplicial complex. Further details on the concept of Delaunay triangulation are explained in-depth in Shewchuk (1999) and Barber et al. (1996).
The next step in determining the interpolated values is to use the established triangular elements to perform barycentric  This combination of interpolation and extrapolation methods was chosen because it defines a feasible relationship between input measurements and does not attempt to extrapolate using a formula derived from a curve-fitting or trend-predictive algorithm. Many other extrapolation methods attempt to predict a rate of change outward of the interpolation domain by implementing a function that approximates a predicted progression of extrapolated values. It was found that the extrapolation performed 185 by these algorithms often produced results that were outside the range of possible values for the atmospheric characteristic being defined. Because of this issue of infeasible outputs, these methods were consequently avoided for this purpose.
When solving for the interpolated and extrapolated values for turbulence intensity and wind speed, values are easily computed because they are defined by values on a noncyclical scale. Because wind direction is represented using angles in degrees, the interpolation and extrapolation methods must be circular. The issue of interpolating circular data was addressed by simply 190 computing the interpolation twice for each angle of wind direction, Φ: once for the cosine component, α, and again for the sine component, β. The wind direction in a wind farm, Φ, can be defined as: Where α = cos Φ, and β = sin Φ. After Φ is computed, the wind direction interpolation can then be defined for the entire wind farm.

Heterogeneous wind direction
Similar to wind speed, an interpolation of wind direction is initially established across the flow-field grid through the methods of interpolation discussed in Section 3.1. The input values of wind direction are defined so that 270 degrees represents wind movement from west to east (see Fig. 4a), then once FLORIS begins computations with these wind directions, the values are 210 converted so that 0 degrees represents the wind traveling from west to east (see Fig. 4b). Using these wind direction values, the turbine coordinates are rotated about the center of the flow field at these angles, as exemplified in Fig. 4.
9 https://doi.org/10.5194/wes-2020-57 Preprint. Discussion started: 17 March 2020 c Author(s) 2020. CC BY 4.0 License. Figure 4. A depiction of the initial processes before calculation of wakes. Figure 4a shows the result of interpolation, and Fig. 4b shows the process used to define the location of the rotated turbine map.
Using the rotated turbine map shown in Fig. 4b for reference, the flow field is adjusted to calculate each turbine wake independently, starting with the turbine that is the furthest upstream. To initiate the rotation of the flow-field grid, the grid points are rotated to the angle that is defined at the given turbine. This initial step is exemplified in Fig. 5.
215 Figure 5. Depiction of the process performed in FLORIS to align the flow-field grid with the location and wind direction of a given turbine.
Next, to calculate the velocity deficit caused by each turbine's wake, all of the grid points in the flow field are rotated to replicate the effects of changing wind direction. These rotated grid points represent the redirection of the flow in response to changing wind direction within the flow field (see Fig. 6a). Once the velocity deficit has been calculated using the rotated grid 10 https://doi.org/10.5194/wes-2020-57 Preprint. Discussion started: 17 March 2020 c Author(s) 2020. CC BY 4.0 License.
points, the grid points are rotated back to their original positions in the flow field. Fig. 6b shows the product of the final step, where the calculated velocity deficit is subtracted from the initial free-stream velocity at each flow-field grid point to reveal the 220 resulting shape of the wake. deficit is calculated using the grid points in the fully rotated position (Fig. 6a), and then applied to the free-stream velocity defined at the grid points in their original non-rotated location (Fig. 6b).
As discussed in Section 2.2, there is a minor computational expense in simulating the flow field independently for each turbine in the wind farm. This is because FLORIS determines a unique set of rotated grid points relative to the wind direction and coordinates of each turbine separately. The grid spacing in the streamwise (x) direction relative to the direction of flow is kept uniform throughout each iteration of the rotated grid, but the spanwise (y) spacing is adjusted with respect to the local  The grid point spacing in the x direction must be kept constant to avoid elongation or distortion of wake propagation and placement. Because the grid spacing in the y direction is not kept uniform, it must be noted that this capability of emulating a gradual change in wind direction may prevent the model from conserving momentum in some situations. Methods of enforcing 230 uniform spacing in the y direction for each individual turbine wake have been developed, but are not currently implemented because doing so limits the model's ability to create a gradient of wind directions within the flow field. In future work, methods of enforcing momentum conservation in this algorithm will be further investigated.
It is important to consider that this model was not designed to calculate the effects of changes in wind direction that are greater than 90 degrees. Though these flow conditions may not be typical of most wind farms, a change in wind direction 235 that is too drastic results in an overlapping of portions of the rotated flow-field grid points. This effect causes an erroneous assignment of velocity deficit to the overlapped points of the flow-field grid.
Although it may be possible for the wind direction within a wind farm to change this drastically, these conditions often involve multiple adjacent domains of flow that are separated by a boundary, which are difficult to represent in this model.
These weather conditions are also most often observed in instances of lower wind speeds, and therefore can be considered 240 not as lucrative in regards to power production. Plans for future developments to FLORIS involve designing a more inclusive model that is capable of mitigating issues with large shifts in wind direction.

Heterogeneous turbulence intensity
The geographic distribution of turbulence intensity is established for the initial state of the flow field through the interpolation methods discussed in section 3.1. This strategy of defining a more detailed variation of turbulence intensity in the flow field 245 makes approximation of wake dissipation and deflection more accurate, therefore improving the estimation of the effect of nearby turbine operation within a wind farm. During the calculation of wakes, the ambient turbulence intensity that is initially defined at each turbine location is continuously recalculated to account for added turbulence intensity resulting from turbine wakes up to 15D upstream, as previously discussed in Section 2.3.2 and in Niayifar and Porté-Agel (2015). In the interest of conserving computational efficiency, calculations for evaluating the rate of wake expansion and recovery are only dependent 250 on the updated turbulence intensity at the location of the turbine creating the wake. A horizontal plane of a FLORIS simulation featuring heterogeneous turbulence intensity can be observed in Fig. 8.

Turbulence correction
In addition to the heterogeneous features, developments were also made to reduce inaccuracies in power-output predictions caused by turbulent operating conditions. As mentioned in Section 2.1, the accuracy of the zero-turbulence power curve is 255 compromised in conditions of varying turbulence intensity. The revised power calculation, presented in this section, includes a parameter that approximates the effect of turbulence intensity on the power output of a turbine in a wind farm.
Specifically, this approach adjusts the power output with respect to the level of turbulence intensity at a turbine. The adjusted power is calculated by using distribution of the wind-speed fluctuations at the turbine, based on calculations that consider the original wind speed and the standard deviation in wind speed. The first step in this algorithm is to create a normalized 260 probability density function, f (x), of wind speeds, x, evenly distributed within the domain of one standard deviation from the mean wind speed, µ. The standard deviation, σ, is determined by multiplying the turbulence intensity at the turbine by the mean wind speed, µ. Wind speeds that are greater than the cutout wind speed are omitted.
The value of the power coefficient, C P , in the power table is also determined at each wind speed, x i , and at the original wind speed (µ). The ratio of the adjusted power (P adj ) to the original value of power (P 0 ) is referred to as the turbulence parameter,

265
Λ. The turbulence parameter can be calculated by summing the weighted adjusted values of power in the following expression, for each wind speed, x i , in the domain of the probability density function, f (x i ): 13 https://doi.org/10.5194/wes-2020-57 Preprint. Discussion started: 17 March 2020 c Author(s) 2020. CC BY 4.0 License.
where the integral of f (x i ) is approximated by taking 100 samples of the f (x i ). The resulting power curves depending on turbulence intensity are shown in Fig. 9. As the turbulence intensity increases, the power output increases in Region 2 and 270 decreases across Region 3. Figure 9. Adjusted power curve for the NREL 5-MW reference turbine for different turbulence intensities. The dashed lines denote the cut-in, rated, and cut-out wind speeds, and also represent the boundaries of the first, second, and third regions, respectively.
The following expression may be used to calculate the final value of adjusted power output, P adj , with respect to the current turbulence intensity at a turbine: Where γ is the yaw angle of the turbine, and Λ represents the turbulence parameter.

275
Although it was not explored for the purpose of this article, this turbulence-correction model could be improved by implementing a similar consideration of the thrust coefficient, C T . Because rotor thrust is calculated from an equation that is also dependent on wind speed, it may be possible to create a similar correction model to improve FLORIS estimates in the future.

Results
A series of simulations were performed to analyze the effectiveness of the changes implemented in FLORIS. A large wind 280 farm located within complex terrain was chosen for this study because it is often subject to unpredictable and dramatic shifts in weather conditions. The motivation behind performing these simulations was to quantify the effect of the recent developments to FLORIS in reducing the error in power-output predictions for wind farms in complex terrain.
FLORIS simulations were performed using heterogeneous inputs of wind direction, turbulence intensity, and wind speed, which were taken from the wind farm's SCADA records. These inputs include five wind measurement values for each atmo-

Performance results
This section presents the results from all FLORIS simulations and analyzes the accuracy of power predictions from each test case with respect to the actual-to-power output of the wind farm recorded from the SCADA system. Fig. 10   Although these visualizations do not give direct estimates of power prediction, they are helpful in translating the input measurements into a form that characterizes the general behavior of wind farm dynamics for the interpretation of the observer.
The cut plane visualization is helpful in performing qualitative analysis of turbine wake interactions, and is more useful when 300 displaying the estimated weather conditions characteristic of each location in the flow field, as shown in the heterogeneous model.
When comparing the performance of the simulations, the calculated power output was tabulated and compared, for accuracy.
In Fig. 11 and Fig. 12, the sum of wind farm power output from each FLORIS simulation is normalized and plotted with respect to the recorded SCADA output. This approach highlights any weaknesses in each model relative to the overall performance of 305 the others. Two different 24-hour periods were chosen to demonstrate how the models performed under different conditions. Figure 11 shows a day with relatively variant weather conditions and many large shifts in power output, whereas Fig. 12 shows the performance of the models on a day showing a more gradual shift in weather conditions. These days are referred to as Day A and Day B, respectively.  It is evident from the plots of Figures 11 and 12 that the heterogeneous models are predicting the power output during these 2 310 days more accurately than the homogeneous model. The trend line of the heterogeneous simulations consistently follows closer to the line representing the power output recorded from SCADA data. Additionally, the heterogeneous simulation that included turbulence-intensity corrections showed an extra advantage in estimating turbine performance, following closely to the trend line of the heterogeneous simulation, and also reliably contributing error-reducing improvements to the heterogeneous model.
While this juxtaposition is effective in ranking each model's ability to estimate total farm power output, it should be noted 315 this comparison only indicates the accuracy of a calculation for the entire wind farm power output as a sum of its individual turbines.
It is possible for wake models to overpredict the power output of some turbines, and underpredict others, in a way that produces a total wind farm power estimate that seems accurate, but is not using reliable and precise methods of calculation.
To verify that the recent additions to FLORIS have improved the power-predicting capabilities, it must be confirmed that the where n is the number of turbines in the wind farm, P actual,i is the measured power output of turbine i, and P model,i is the predicted power output of turbine i from a given FLORIS model. The results of each FLORIS model were calculated and plotted on the same set of axes in Figures 13 and 14.  To ensure these same trends of accuracy persist over the entire two-month period, the percent error of the total wind farm power output was calculated at each time-step iteration using the following equation.

340
where P actual is the measured power output of the wind farm, and P model is the power output of the wind farm predicted by a given FLORIS model. The results of these calculations were grouped into three separate domains: wind speeds of less than 5 m/s, wind speeds in the range of 5 to 11 m/s, and wind speeds greater than 11 m/s. Time iterations when wind speed was less than the cut-in wind speed (2.5 m/s) were considered negligent in regards to power production and therefore omitted from the data set. A histogram of the percent error in wind-speed domain was computed over the entire time series to display the 345 distribution of error with respect to each simulation (Fig. 15). Although the plots for the wind-speed domains vary slightly in distribution, it is clear that each histogram exemplifies a trend toward accuracy in simulations that incorporate heterogeneity and turbulence-correction calculations. It is important to note that only the data points shown in the percent-error range of each histogram were used to calculate the respective binned averages. The outliers were omitted because they tend to skew the presentation of the data set in a way that obscures the actual 350 trend of data.
The mean absolute percent error (MAPE) of all time-step iterations are also tabulated in Table 1. The data for this table was calculated by evaluating the percent error of FLORIS power predictions for the full wind farm at each time step, and then solving for the mean over the entire time series. This calculation is expressed as:

355
where n is the number of time steps in the total simulation, P actual,i is the recorded power output of the wind farm at time step i, and P model,i denotes the predicted power output from the FLORIS model at time step i. When comparing the MAPE values in Table 1 with the histograms of Fig. 15, an increase in MAPE is observed in Table 1 for lower wind speeds of simulations that implemented heterogeneous and turbulence correction models. This is a trend that is not characteristic of the histograms depicted in Fig. 15b. In reference to this observation, is important to note that the metric 360 of MAPE penalizes overpredictions with more weight than underpredictions. Furthermore, MAPE calculates mean with equal weight for all time steps in the data set, which allows the resulting average to be susceptible to the influence of outliers caused by instances of low power output. With these factors in mind, a reported increase in MAPE with lower wind speeds may be an indication that the heterogeneous and turbulence intensity correction models tend to cause more frequent overpredictions in power output in conditions where wind speeds are near the cut-in speed.

365
Although MAPE is an informative metric for analyzing the average percent error relative to a specific power output range, methods that use unweighted averaging are sometimes misleading in the analysis of overall power prediction accuracy. The relative error during time-step iterations with lower power output can seem large, even when the absolute error is insignificant in comparison to the magnitude of total farm output.
A more comprehensive representation of relative model accuracy is presented in the following table, where the mean absolute 370 error (MAE) is evaluated for total wind farm output. This was calculated by evaluating the absolute error at each time step, and then taking the mean of these error values. This calculation is expressed in the following equation.
where all variables are defined similar to Eq. 16.
By taking an average of absolute errors instead of relative errors, MAE is a more effective metric in representing the overall 375 accuracy of total wind farm power prediction. The resulting MAE values are shown in Table 2, where a clear trend of increased accuracy is observe for models that implement heterogeneity and turbulence-adjustment calculations. Intensity Correction As noted in Section 3.3, the implementation of methods utilized to simulate gradually varying wind direction cause the heterogeneous model to be less efficient in computation. To quantify this increased computational cost, each simulation was timed in this study. These time recordings showed that, on average, the simulations using the heterogeneous model took less 380 than 10% longer to compute than those using the homogeneous model. The choice to sacrifice computational efficiency in the heterogeneous model was seen as a necessary trade-off to achieve greater detail and accuracy in simulations of more dynamic environments. Future developments to FLORIS will attempt to optimize the efficiency of this model, and reduce the time necessary to simulate the effects of changing wind direction.

385
This article introduces a method to include heterogeneous flow fields into the FLORIS simulation tool, as well as a turbulence correction to the power reported at each turbine. To analyze the developed model's improvements in accuracy, several FLORIS simulations with and without these changes were compared to SCADA data from a utility-scale wind farm. The results of the FLORIS simulations indicate that these two modifications improve power predictions of the wind farm at the turbine and wind farm level. The increased accuracy of this model's power-prediction capabilities show that this method is more precise in 390 predicting farm-flow interaction in heterogeneous and turbulent environments, which previous versions of FLORIS were not able to simulate.
Overall, the heterogeneous and turbulence-intensity correction modifications presented in this article showed a positive effect on the accuracy of FLORIS capabilities. This improved model provides a more detailed quantitative and qualitative analysis of wind farm flow, including the demonstration of heterogeneous flow in cut-plane velocity plots, and improved accuracy in 395 power prediction at individual turbines as well as total wind farm power output.
These modifications to FLORIS have outlined a framework for a wake model that features atmospheric heterogeneity and turbulence-intensity corrections to the power curve and provides a platform for further developments in this area of research.
Although wind farm controls applications have not been tested using this algorithm, this model shows promise in enhancing the performance of FLORIS's existing wind farm optimization controls. In future work, a study of the effectiveness of this