A DATA-DRIVEN, COOPERATIVE APPROACH FOR WIND FARM CONTROL: A WIND TUNNEL EXPERIMENTATION

This paper discusses a data-driven, cooperative control strategy to maximize wind farm power production. Conventionally, every wind turbine in a wind farm is operated to maximize its own power production without taking into account the interactions between the wind turbines in a wind farm. Because of wake interference, such greedy control strategy can significantly lower the power productions of the downstream wind turbines and, thus, reduce the overall wind farm power production. As an alternative to the greedy control strategy, we study a cooperative wind farm control strategy that determines and executes the optimum coordinated control actions for maximizing the total wind farm power production. To determine the optimum coordinated control actions of the wind turbines, we employ a data driven optimization method that seeks to find the optimum control actions using only the power measurement data collected from the wind turbines in a wind farm. In particular, we employ the Bayesian Ascent (BA) algorithm, a probabilistic optimization method constructed based on Gaussian Process regression and the trust region concept. Wind tunnel experiments using 6 scaled wind turbine models are conducted to assess (1) the effectiveness of the cooperative control strategy in improving the power production, and (2) the efficiency of the BA algorithm in determining the optimum control actions of the wind turbines using only the input control actions and the output power measurement data. 1 Corresponding Author: jkpark11@stanford.edu


INTRODUCTION
As modern wind turbines now allow adjusting the blade angle, the yaw angle and the generator torque, this study investigates control strategies for maximizing the total power production of a wind farm. Conventionally, every individual wind turbine in a wind farm is operated to maximize its power production through adjusting its own operational conditions, i.e., control actions. Under this greedy control strategy, the wake formed by the upstream wind turbine would potentially lower the power productions of the downstream wind turbines due to reduced wind speed and increased turbulence intensity inside the wake. The wake interaction among wind turbines has been experimentally studied (Adaramolar et al., 2011;Dahlberg and Medici, 2003;Medici, 2005;Marathe et al., 2015). Realizing that the interactions among the wind turbines can affect their power productions, cooperative strategies that can coordinate the control actions to actively manipulate the wake interference pattern can increase the total power production of a wind farm.
To determine the optimum coordinated control actions of wind turbines, various approaches have been proposed. One approach is to formulate the wind farm control problem mathematically using an analytically derived wind farm power function, and to determine the optimum control actions by solving the formulated problem using a mathematical optimization method. For example, Park and Law (2015a) formulated the cooperative wind farm control problem using the wind farm power function calibrated using CFD simulation data and proposed to solve the control problem using sequential convex programming. As an alternative to constructing a wind farm power function, model-free optimization approaches have also been attempted to determine the control actions for maximizing the wind farm power. For examples, game theoretic search (Marden et al., 2013;Gebraad et al., 2014) and point tracking method (Gebraad and Wingerden, 2015) have been proposed to determine the optimum control actions using only the wind farm power output data. For model-free methods, the strategy is to iteratively find better control actions by executing trial actions and observing the consequent power outputs. The success of such model free control approaches strongly depends on the rate of convergence to an optimum and the robustness to deal with noisy data in optimizing the target system. In other words, a data driven control or optimization method should identify the optimum operational condition of a target system using a small set of measurement data that may be corrupted with noise.
Recently, efforts have been made to optimize a target system using scarce data by exploiting the expressivity of non-parametric regression model. For example, Bayesian Optimization (BO) iteratively determines the optimum of target system through a sequence of learning and sampling steps (Brochu, et al., 2010;Osborne, 2010). At each iteration, BO approximates the input and the output relationship of a target system using Gaussian Process (GP) regression (learning) and uses the approximated model to determine the next inputs that improve the target values (sampling). BO reaches the optimum using a small number of the input and output data points when comparing to other heuristic search methods, such as genetic algorithm, simulated annealing, etc., due to the use of regression model (Jones et al., 1998). To further expedite the convergence for finding the optimum control actions, Park and Law (2015b) have developed the Bayesian Ascent (BA) method that combines the strengths of Bayesian Optimization (BO) and gradient-free trust region methods. BA adapts the strategy of regulating the optimization scope, as used in the Trust Region method, into a Bayesian Optimization (BO) framework to ensure that the algorithm can monotonically increase a target value. With trust region constraint imposed on the sampling procedure, BA tends to increase the target value and results in rapid convergence towards the optimum.
In this study, we employ the Bayesian Ascent algorithm to determine the optimum coordinated control actions for wind farm power production by exploiting the power measurement data from the wind turbines. Numerical simulations using an analytically derived power function have demonstrated the potential of the BA algorithm for the control problem (Park and Law, 2015a). In this work, we focus on the implementation of the BA algorithm for real-time control of a physical system. We conduct experimental wind tunnel studies using 6 scaled wind turbines to investigate (1) the effectiveness of the cooperative control strategy in terms of increasing the total wind farm power production, and (2) the feasibility of using Bayesian Ascent (BA) algorithm in terms of deriving an optimum coordinated control actions for wind turbines (i.e., the optimum cooperative control strategy) using only the power measurement data. We employ the Bayesian Ascent algorithm to the scaled wind farm with different configurations and wind directions to gain insight on cooperative control using the BA algorithm. This paper is organized as follows: First, the cooperative wind farm control problem is formulated using the concepts of game theory. The procedure of deriving the optimum control actions for the cooperative wind farm control using the Bayesian Ascent algorithm is discussed. The wind tunnel experimental setups for employing the cooperative control strategy with the BA algorithm are then described in details. The results on the experimental studies are then presented. The paper concludes with a summary and a discussion on future works.

FORMULATION OF WIND FARM POWER MAXIMIZATION PROBLEM
Control strategies for wind farm power maximization depend on how the interactions among the wind turbines are modelled. The conventional approach is to have each wind turbine maximize its own power production without taking into consideration the effect on the other wind turbines. This greedy control strategy is analogues to a non-cooperative game. On the other hand, if the wind turbines cooperate with a common goal of maximizing the total wind farm power production, the control problem can be posed as a cooperative game. This section briefly describes the wind farm power maximization problem in the framework of the cooperative and non-cooperative games. For the formulation, we denote ! as the power production of wind turbine under the control actions = ( ! , … , ! , … , ! ) of the wind turbines in the wind farm. The control action ! of wind turbine may include adjustments on the yaw angle, blade angle or the generator (i.e., ! can be either a vector or a scalar depending on the number of control inputs for wind turbine ).
When each wind turbine tries to maximize its own power production without considering the power productions of other wind turbines, the non-cooperative wind farm control problem can be formulated as in which wind turbine maximizes its own power production ! with respect to its own control action ! regardless of the control actions !! = ( ! , … , !!! , !!! , … ! ) of the other wind turbines. For a noncooperative game, there exists an equilibrium point * = ( ! * , … , ! * ), called the Nash equilibrium, that satisfies (Nash, 1950) In other words, if all wind turbines except wind turbine hold the Nash equilibrium actions !! * , the control action of wind turbine deviated from ! * will decrease its own power production according to Eq. (1), which is the incentive for all the wind turbines to hold the Nash equilibrium strategy * = ( ! * , … , ! * ). The operational condition that individual wind turbine maximizes its own power production reflects a Nash equilibrium (Park and Law, 2015a).
When all wind turbines coordinate their control actions to achieve the common goal of maximizing the total wind farm power production, the cooperative wind farm control problem can be formulated as is defined as the wind farm power function. Furthermore, ! and ! are, respectively, the lower and the upper bounds on the wind turbine control actions for the wind turbines. While Eq. (1) is a decentralized control problem, Eq. (3) is a centralized control problem in that the control actions of all the wind turbines in the wind farm are determined simultaneously.

BAYESIAN ASECNT METHOD
For real-time, data-driven wind farm control, it is imperative that the control algorithm is designed to improve the total power production of the target wind farm by executing as few trial actions (and observing the corresponding responses) as possible. To achieve this goal, the Bayesian Ascent (BA) method is developed by incorporating into the Bayesian Optimization (BO) framework specific strategies to regulate the search region for the control actions (Park and Law, 2015b). The following briefly describes the optimization procedure using the BA algorithm, which will be used to solve the cooperative control problem posted in Eq. (3).
In the data driven approach, the function is assumed to relate the control actions of all the wind turbines in a wind farm and the total wind farm power production = . The expression for is not known; only the power measurement is obtained and used to infer about the target function . Figure  1 illustrates the procedure for solving the cooperative control problem using the BA algorithm. The BA algorithm iteratively searches the optimum control actions for all the wind turbines by executing a series of trial control actions for all the wind turbines and observing the corresponding wind farm power production. In other words, the learning about the target wind farm power function and the optimization procedure to select the next control actions for all the wind turbines are interwoven. Specifically, as shown in Figure 1, the following three steps are conducted at the th iteration: • Learning: the unknown wind farm power function is modelled by Gaussian Process (GP) regression using the historical data is the control actions for all the wind turbines in a wind farm at the th iteration, and ! is the corresponding total wind farm power output (i.e., the sum of the power outputs from all the wind turbines) measured at the th iteration.
• Optimization: the next trial control actions !!! for all the wind turbines are determined.
• Observation: the next trial control actions !!! are executed and the corresponding total wind farm power output !!! is obtained. The pair of the input and the output !!! , !!! will then be used to update the regression model for the target function in the next iteration.
The BA algorithm attempts to improve the total wind farm power production by executing the least number of trial actions.

Learning
In the learning phase of the th iteration for BA, we have the different combinations of control actions !:! = { ! , … , ! } executed and the corresponding observations on the total wind farm power production !:! = { ! , … , ! }. Using this historical data ! = ! , ! | = 1, … , , the unknown target wind farm power function ( ) is modelled using a Gaussian Process (GP) regression.
In GP regression, the true function values !: corresponding to the sequence of trial actions !:! = { ! , … , ! } are treated as latent random variables. The unknown function values !:! are inferred from the observed sequence of wind farm power outputs !:! = { ! , … , ! }. GP regression puts prior on the function values !:! using Gaussian Process as • and •,• are, respectively, the mean and the covariance function (Rasmussen and Williams, 2006). In addition, GP regression assumes that the observation of wind farm power output ! is measured with Gaussian noise, i.e., where ! ! is the variance for the noisy component that is assumed to exist in the observation. Based on the prior and the noise (i.e., observation) model, the total wind farm power output = for the unseen control actions and the observed wind farm power outputs !:! = { ! , … , ! } follow a multivariate Gaussian distribution (Rasmussen and Williams, 2006): where K is the covariance matrix (kernel matrix) whose ( , )th entry is !" = ! , ! , and ! = ! , , . . . , ! , . The value of the covariance function ! , ! quantifies the similarity between the two control actions ! and ! ; the more the two control actions differ, the closer the value of the covariance becomes zero, meaning that they are not correlated in terms of their function values. The noise variance ! ! in Eq. (4) is estimated to quantify the level of noise in the observed wind farm power We use a squared exponential covariance function whose evaluation between the two control inputs ! and ! is expressed as (Neal, 1996): which is described by the hyperparameters ! and . The term ! ! is referred to as the signal variance that quantifies the overall magnitude of the covariance value. The hyperparameters = ! , … ! is referred to as the characteristic length scales to quantify the relevancy of the input features in for predicting the response . The noise variance ! ! in Eq. (4) is often treated together with ! and as hyperparameters, i.e., = ! , , ! . The optimum values for the hyperparameters are determined at each iteration as ones that maximize the (marginal) log-likelihood of the historical data (Rasmussen and Williams, 2006) to accurately describe the structure (smoothness) of the target function.
With the hyperparameters optimized, the posterior distribution on the wind farm power output for the unseen control actions for all the wind turbines given the historical data ! = ! , ! | = 1, … , can be expressed as an 1-D Gaussian distribution ~| ! , ! | ! with the mean and variance functions expressed, respectively, as (Rasmussen and Williams, 2006): Here, | ! and ! | ! are treated as the functions for evaluating, respectively, the mean and the variance of the hidden wind farm power output corresponding to the unseen control input . Thus, the unknown target function is probabilistically represented as ~ | ! , ! | ! .

Optimization
In the optimization phase of th iteration for BA, the next control actions !!! for all the wind turbines are determined to learn more about the unknown target wind farm power function as well as to improve the wind farm power output at the same time. In Bayesian Optimization (BO), the next control input is being selected as one maximizing an acquisition function that incorporates both the aspects of exploration and the exploitation (Brochu et al., 2010;Osborne 2010). Likewise, the BA algorithm selects the next set of control actions as one that maximizes the expected improvement E max 0, − !"# , the acquisition function that has been proposed by Mockus et al (1978). Additionally, the BA algorithm imposes the trust region on the scope of next set of control actions to ensure that the control actions !!! is chosen near the best control actions !"# = ! !"# , … , ! !"# observed so far in an attempt to monotonically increase the total wind farm power output. This optimization phase of BA algorithm is posed as a constrained optimization problem described as (Park and Law 2015b): where the trust region is defined as a hypercube with its center being !"# that produces the maximum wind farm power output is being chosen next. Thus, the vector controls the overall size of the hypercube trust region where the exploration takes place. The strategy employed in the BA algorithm is similar to imposing a trust region constraint in mathematical optimization (Nocedal and Wright, 2000).

Observation
In the observation phase, the selected control actions !!! for all the wind turbines are executed and the corresponding wind farm power output !!! is observed. The collected new data point !!! , !!! is then appended to the historical data set as !!! = ! , ! | = 1, … , + 1 , which is then used to update the regression model for the target wind farm power function ( ) in the learning phase of the next iteration.
Algorithm 1 summarizes the BA algorithm (Park and Law, 2015b). In addition to expedite the convergence rates, the BA algorithm adjusts the size of the trust region depending on the improvement in the observed wind farm power output. Let's denote the solution of Eq. (8) as !!! . The BA algorithm checks whether !!! sufficiently improves the target wind farm power production. With the measured wind farm power output !!! , if the observed increase !!! − !"# with respect to the previously estimated maximum target wind farm power !"# is larger than a certain threshold ratio of the average increase 1 ( !"# − ! ), where ! is the initial measurement of the wind farm power output, the control actions !!! will be updated as the best control actions !"# observed so far, and the trust region is expanded as !!! = ! , with > 1 to expedite the convergence rate. Otherwise, the trust region will be reset as !!! = ! , where ! is the size of initial trust region. Imposing a trust region and adjusting its size are to ensure a monotonic increase in the wind farm power productions and gradual convergence to an optimum with a high probability.

WIND TUNNEL EXPERIMENTAL SETUPS
Wind tunnel experiments with 6 scaled wind turbines are designed to validate (1) the effectiveness of the cooperative wind farm control strategy for improving the total wind farm power, and (2) the capability of the BA algorithm for finding the optimum coordinated control actions using only the power measurement data observed from the wind turbines. This section describes the experimental setups and procedure.

Wind turbine model and control mechanisms
The scaled wind turbine, shown in Figure 2, is made of three aluminum blades with a length of 70 cm. The rotor diameter is 150 cm. The tower is made of a steel tube with a height of 100 cm. The blade pitch angles are controlled by a servomotor (Dynamixel-64T). As shown in Figure 2(b), the rotation of the servomotor is transformed into a linear motion to rotate the blade angles through a mechanical linkage. The rotation angles of the servomotor range from 0° to 70° which correspond to the blade pitch angles varying from 0° to 20° (albeit they are not related in a linear fashion). We use the rotation of the servomotor, instead of the actual blade pitch angle, as the control variable for optimization. The rotational change of the servomotor is easy to track using the encoder in the servomotor, which is also used to acknowledge the executed control actions. As shown in Figure 2(b), the yaw angle is controlled by the same type of servomotor through a mechanical gear system. With a one-to-one gear ratio, the rotational angle of the servomotor is the same as the actual rotation of the yaw of the wind turbine. The angles of the two servomotors are then defined as the control actions of each wind turbine. The range of the first servomotor (for blade pitch control) is from 0° to 70° and the range of the second servomotor (for yaw control) is −40° to 40°, which are incorporated to the constraint on the control inputs ! ≤ ≤ ! . An AC generator, shown in Figure 2(b), is used to convert the mechanical energy into electrical energy. Figure 2. Scaled wind turbine model Figure 3 shows the local control unit designed to measure the electrical power output from the wind turbine and to execute the control actions to adjust the blade and yaw angles of the wind turbine. The AC voltage output from the generator is converted into DC voltage by the rectifier. The rectified voltage and the associated current flowing through the load resistance are then measured using voltage and current sensors, from which the instantaneous power is computed. The microcontroller (Arbotix-M) continuously samples the instantaneous power and compute the average power (using a moving average technique). The microcontroller then transmits the computed average power over an one-minute time interval to the central control unit, shown in Figure 4, via the XBee radio. The central controller collects the averaged powers from the local units and determines the next control actions by executing the BA algorithm. The determined control actions are then wirelessly transmitted to each wind turbine through the central XBee node shown in Figure 4(b). Upon receiving the new control actions, the local control unit changes the yaw and the blade pitch angles. After one-minute of stabilizing time, the time that is required for the disturbed wake to be stabilized after the changes in the operational condition of the wind turbines, each local control unit starts to measure the power production by the wind turbine again.   Figure 5 shows six scaled wind turbines arranged in the test section of the KOCED's Wind Tunnel, located at Chonbuk National University in Korea. The wind tunnel test section is 12 m wide and 40 m long. The height of the test section is 2.2 m at the front and increases to 2.5 m at the end of the test section allowing longitudinal pressure gradient to be zero. Due to the varying height of the test section, the wind speed also varies along the test section. A constant wind speed of 4 m/s (measured at a distance of 32 m from the front of the test section) is used throughout the experiments to ensure that the scaled wind turbines are operated safely without having excessive vibrations. The layout shown in Figure 5 is one example of the wind farm configurations used in the experimental studies.

Figure 5. Wind tunnel section
Cooperative control using the BA algorithm is applied to the scaled wind farm with different arrangements of the wind turbines and different wind conditions. For each arrangement, the yaw angles of the wind turbines are initially set to be perpendicular to the wind direction, which corresponds to the optimum control actions for a wind turbine to maximize its own power production. In addition, for comparison of performance efficiency, we measure two power parameters by a single wind turbine: • ! ! : Freestream maximum power of wind turbine that can be produced at a given location when there is no wake interference. ! ! for = 1, … , is individually determined by iteratively changing the pitch angle of wind turbine located at its designated position in the wind tunnel. The reason why we measure ! ! of all the wind turbines is that the wind flow conditions (i.e., wind speed and turbulence intensity) are different depending on the location in the wind turbine. The measured power ! normalized by ! ! then represents the power efficiency for the wind turbine . The total wind farm power is computed where is the number of wind turbines considered. The maximum total wind farm power will be used to normalize the cooperative control results for comparing the relative improvement over the greedy control strategy.
• ! ! : Greedy maximum power of wind turbine that can be produced at a given location when the upstream wind turbines are producing their maximum powers. ! ! for the first upstream wind turbine is same as ! ! . For a downstream wind turbine , = 2, … , , ! ! is individually determined by iteratively changing the blade pitch angle of wind turbine when the upstream wind turbines are operated with their greedy control strategy. The wind farm power efficiency for the greedy control strategy is then computed as Starting from the identified greedy control strategy ! = ! ! , … , ! ! that produces the greedy maximum power ! = ! ! , … , ! ! , the BA algorithm proceeds to find the optimum coordinated control actions ! = ! ! , … , ! ! that maximizes the sum of powers produced by the wind turbines. Denoting the powers produced by the coordinated actions ! as ! = ! ! , … , ! ! , the wind farm power efficiency for the cooperative control strategy is then computed as

WIND TUNNEL EXPERIMENT RESULTS
For different numbers of wind turbines and wind directions, we study the effectiveness of cooperative control by the BA algorithm for finding the optimum coordinated control actions. The improvement in the total wind farm power by the cooperative control strategy can be quantified as the relative gain , when comparing to the greedy control strategy. The convergence rate to the maximum cooperative power ! ! ! !!! reflects the performance of the BA algorithm. It should be noted that the exact optimum strategy for the cooperative control is not known. Starting initially with the greedy control strategy, the goal of BA algorithm is to improve the wind farm power production by cooperatively adjusting the wind turbines for a common gain.

Scenario 1: Effects of the number of wind turbines
Scenario 1 is designed to study the influence of the number of wind turbines (i.e., dimension of the optimization variables) on the effectiveness of the cooperative control and the convergence rate of the BA algorithm. We consider 2, 3 and 4 wind turbines (i.e., = 2, 3 and 4) when the wind turbines are initially facing the wind direction ! = 0°, as shown in Figure 6. For each case, the last downstream wind turbine operates at its greedy control actions since the deviation from the greedy control actions would only decrease power production of the wind turbine. Figure 6. Influence of the number of wind turbines Figure 7 shows the trajectories of individual power efficiency ! / ! ! and the associated control actions of the wind turbines as the BA algorithm executes the cooperative actions. In addition, Figure 8 shows the improvement in the total wind farm power efficiency obtained by the BA algorithm compared to the greedy wind farm power efficiency. In terms of the effectiveness of the cooperative control, the following trends are observed: • As shown in Figure 7, for cooperative control, the wind turbines collectively adjust their control actions determined by the BA algorithm to increase the total wind farm power production.
• As shown in Figure 7, the cooperative control actions lower the power production for the first upstream wind turbine but significantly increase the power productions of the downstream wind turbines. As a result, power produced by the wind turbines are more evenly distributed after the coordination, which could be beneficial for maintaining the wind turbines since the electrical and structural components experience similar level of loads.
• As the number of wind turbine increases, as shown in Figure 8, the initial (greedy) wind farm power efficiency decreases because more downstream wind turbines are affected by wake interference. Furthermore, as the number of wind turbines increases, the relative improvement by the cooperative control actions increases.
In terms of the capability of the BA algorithm in improving the target wind farm power, the following trends are observed: • As shown in Figure 8, BA increases the wind farm power efficiency almost monotonically by gradually changing the control actions of the wind turbine.
• As the number of the wind turbine considered for the cooperative control increases, more iterations are required for the BA algorithm to converge to the (local) optimum.

Scenario 2: Influences of the wind direction
Scenario 2 is designed to study the influence of the wind direction on the effectiveness of the cooperative control and the convergence rate of the BA algorithm. Since the wind flow direction is fixed in the wind tunnel, as shown in Figure 9, the wind direction is emulated by changing the relative locations of the wind turbines. The yaw angles of the wind turbines are initially set to be perpendicular to the wind direction. The BA algorithm is employed to optimize the coordinated control actions of 4 wind turbines for three cases of wind directions, ! = 0°, ! = 3° and ! = 6°, For each case, the last downstream wind turbine operates at its greedy control actions since any deviation from the greedy control actions only decreases the power production of the wind turbine. Figure 9. Influence of the number of wind turbines In terms of the effectiveness of the cooperative control, the following trends are observed: • As shown in Figure 10(a), when the wind direction ! is set at 0° where the wake is perfectly aligned with the wind turbine array, the initial power production by the downstream wind turbines, WT 2, WT 3 and WT 4, is only a small fraction of the power produced by the upstream wind turbine in the front. As the wind direction ! deviates from 0°, the downstream wind turbines are affected less by the wakes formed by the upstream wind turbines and produce more power initially, as shown in Figures  10(b) and 10(b).
• As shown in Figure 11, the wind farm power efficiency with the greedy control strategy increases as the wind direction deviates from 0°. For example, when ! = 6°, the wind farm power efficiency is above 80% even before executing the cooperative control strategy. When the cooperative control strategy is employed, the wind farm power efficiency further increases. Note that the differences between the optimum power output and the initial (greedy) power production of the four wind turbines become smaller as the wind direction ! increases.
In terms of the effects of the wind direction on the capability of the BA algorithm, the following trends are observed: • As in scenario 1, the BA algorithm effectively increases the wind farm power efficiency using a small number of trial actions.
• When ! = 0°, the direction of yaw offset angle is not critical to improve the total wind farm power. However, when ! = 3° and ! = 6°, only the yaw offset angle in counterclockwise (negative) can increase the wind powers of the downstream wind turbines due to asymmetric configuration of the wind turbine layout. If the yaw-offset angle of the upstream wind turbine is imposed in the opposite direction, the wake generated by the upstream wind turbine will be skewed toward the downstream wind turbines, which will reduce the powers of the downstream wind turbines.
• When ! = 6°, more iterations is required for the BA algorithm to converge to the local optimum. This is because the effects of changing control actions on the total wind farm power is not significant as for the cases ! = 0° and 3°. Such small increases in the control effects make it difficult for the BA algorithm to reliably estimate the ascending direction. Figure 10. Control actions and power efficiencies for different wind directions. Figure 11. Improvement on power production using cooperative control for different wind directions.

Scenario 3: Grid wind farm layout
Scenario 3 is designed to study the effectiveness of the cooperative control and the BA algorithm when the wind turbines are arranged in a grid configuration. As shown in Figure 12, a total of 6 wind turbines are arranged in two lines separated by a lateral distance 2 . The downstream inter distance between the two wind turbines is fixed at 7 . The BA algorithm is employed to maximize the total power production for three different wind farm configurations with = 0 m, 1.5 m and 3 m. For each case, the blade pitch angle and the yaw offset angle of WT 6 is fixed at its greedy control strategy because WT 6 is the last wind turbine in the array. In total, 10 control variables, yaw and the blade pitch (servo) angles for wind turbines WT1~5, are optimized by the BA algorithm. For the three cases considered, Figure 13 shows the trajectories of the control actions and the power efficiencies of the 6 wind turbines. Figure 14 shows the improvements for the total wind farm power efficiency obtained by executing the BA algorithm. In terms of the effectiveness of the cooperative control, the following trends are observed: • As shown in Figure 13, the two upstream wind turbines WT 1 and WT 2, shown in Figure 12, produce the powers that are comparable to the maximum free stream powers. When the cooperative control is employed, these two upstream wind turbines offset their yaw angles the most (when comparing to other wind turbines) so that the power productions of the downstream wind turbines and thus the total power production increase.
• It is interesting to note that WT 1 and WT 3 offset the yaw angles in clockwise direction while WT 2 and WT 4 offset in counter clockwise direction such that the wakes are diverted away from the downstream wind turbines.
In terms the capability of the BA algorithm, the following trends are observed: • As shown in the Figure 14, the lateral distance does not dramatically influence the wind farm power efficiencies for both the greedy and the cooperative control strategies. This result implies that the cooperative control strategy would still be effective to a wind farm where wind turbines are placed closely together.
• When = 3 m, the convergence rate of the BA algorithm is slower than the other cases. The BA algorithm requires a large number of trail actions initially before finally converging to the local optimum.  Figure 14. Improvement on power production using cooperative control for different wind directions.

DISCUSSIONS AND CONCLUDING REMARKS
Power production of a wind farm often significantly decreases due to the wake interference among the wind turbines. To mitigate the wake interference and thus to increase the total wind farm power production, we have formulated the cooperative wind farm control problem. In this approach, the optimum coordinated control actions that maximize the total wind farm power is determined and executed. As a method to determine the optimum coordinated control actions, we use the Bayesian Ascent (BA) algorithm previously developed by the authors (Park and Law, 2015b). As a data driven optimization algorithm, the BA algorithm iteratively finds the optimum of the target system by using the input (control actions of the wind turbines) and the output (power measurements from the wind turbines) data collected from the target (wind farm). Using 6 scaled wind turbines in a wind tunnel laboratory, this study experimentally investigates (1) the effectiveness of the cooperative control in improving the total wind farm power, and (2) the capability of BA algorithm in finding the optimum coordinated control actions using only the input and the resultant power measurement data.
For the cooperative control strategy, the upstream wind turbine acts to deflect the wake trajectory away from the downstream wind turbines. As a result, the downstream wind turbines produce more power, which leads to higher power output for the wind farm as a whole. The improvements in the power production depend on the wind farm configurations and the wind direction. Relative to the greedy control strategy, the improvement in the total wind farm power by the cooperative control strategy is greater when a large number of wind turbines are considered and the wind direction is aligned to the wind turbine array. In other words, when the influence of the wake on the downstream wind turbines is severe, the cooperative control can achieve significant improvement in the total wind farm power. This observation implies that the cooperative control can be potentially beneficial when a large number of wind turbines is placed in a limited wind farm area.
The BA algorithm is employed to determine optimum coordinated control actions of the wind turbines that maximize the total power production. Due to the trust region constraints, the BA algorithm increases almost monotonically the target wind farm power by gradually chaining the control actions of the wind turbines. The number of trial actions required for the convergence increases when the number of wind turbines increase, but the increasing trend is moderate. In addition, when the wake interference is not severe, it becomes difficult for the BA algorithm to reliably identify the ascending direction and requires more trial actions before reaching convergence. It should be noted that the true optimum is generally unknown for the cooperative control, the role of BA algorithm is not to identify the exact optimum, but to improve the wind farm power as quickly as possible compared to the initial strategy.
Lastly, for the wind tunnel test set up, the wind conditions do not change during the execution of the BA algorithm for finding the optimum coordinated control actions. In a real wind farm, the wind speed and wind direction are constantly changing. In the future study, we will explore two strategies to employ the BA algorithm under varying wind conditions. First is to run multiple BA algorithms in parallel, each of which is designated to maximize the total wind farm power for a certain wind condition; each BA algorithm can be freely interrupted and reinitiated during the variation of wind condition because GP regression model can memorize the learned target function. Another approach is to treat the wind conditions, i.e., wind speed and wind direction, as random variables and to construct GP regression model on both the action (wind turbine control inputs) and the context (wind condition). The kernel functions for the wind turbine control actions space and for the wind condition space can be constructed separately and combined to a generalized kernel function for the paired variables between the wind turbine control actions and wind conditions. Among the challenges also involve experimental design to test and validate the control strategies.