Turbine layout optimisation for large-scale offshore wind farms–A grid-based method

This study presents a new turbine layout optimisation approach using a grid-based problem formulation for improved design performance and computational efﬁciency for industrial-scale applications. A particle swarm optimisation algorithm is employed in the wind turbine layout optimisation, in which a micro-siting function is proposed to allow solutions 50 m of deviation while maximising energy capture without compromising maritime navigation or search and rescue operations. Solutions are assessed by a wind farm model, comprising the Larsen wake model, a multiple wake effect summation method, and a rotor-effective wind speed calculation. A novel look-up function is populated by on-the-ﬂy algorithm and is used to reduce the number of model evaluations by approximately 95%. A gigawatt scale hypothetical site is presented to test the model on a realistically complex scenario. A set of design solutions generated by the algorithm are compared to empirical designs, with the algorithm outperforming the empirical solutions by 7.55% on average, in terms of net-present-value of energy capture minus the capital cost of turbines. The numerical efﬁciency and design effectiveness are examined and further improvements discussed.


INTRODUCTION
field observation, this linear expansion-Gaussian deficit combinatorial approach was found to offer improved accuracy but maintain model simplicity [6] and was improved further by ensuring mass conservation and consideration of the pressure recovery region [7]. Pillai et al. [8] conducted a comparison of wake models considering accuracy and computational time that included the Jensen model, the Larsen model, the Ishihara model, and the Ainslie Eddy-Viscosity (AEV) model. It was found that, while the Jensen and AEV models were the most accurate for a few wind scenarios, the Larsen model by far offers the best trade-off between accuracy and computational time.
One of the earliest formulations of a wind farm layout optimisation study was proposed by Mosetti et al. [9], where a 10 × 10 grid is used for possible turbine positions. This 10 × 10 grid formulation has since been used in many wind farm layout problems [10][11][12]. In these studies, turbines are placed within the defined 100 discrete grid positions to maximise energy capture by assessing wake interactions across the site. While this is valuable to examine the efficacy of the algorithms, the test cases are far from representative of a real offshore wind farm site. Other studies design turbine positions in a variety of ways but result in layouts that are irregular and unstructured. Studies by the authors in [13][14][15][16] use many discrete positions as available turbine locations but prescribe no regular pattern constraint, resulting in irregular layouts. Lackner and Elkinton [17] and DuPont and Cagan [18] optimise turbine positions in continuous space (i.e. no pre-determined set of discrete possible turbine positions) but also do not require the solutions to be in the form of any discernible regular pattern. Irregular layouts can face difficulty and delays in the consenting process due to concerns on the negative impact on maritime navigation, search and rescue operations, and-when close to the shorevisual impact [19]. Therefore, these tools are not currently suitable for the design of large-scale offshore wind farms. A small number of studies utilise a grid-based problem formulation; however, these often leave the majority of grid spaces unoccupied resulting in layouts that appear to be essentially irregular [20] or are overly constrained in the solutions that they are able to generate, for example, requiring rows of turbines to be parallel [21]. Although some grid-based algorithms are capable of generating reasonable solutions, no deviation from the described grid positions is considered in those techniques [21,22] limiting the potential energy capture of the farm.
There are a wide variety of methods in the literature for wind farm layout optimisation [23], employing various searching methods for optimal solutions such as gradient-based algorithms [17], genetic algorithms (GAs) [9,20,24], and particle swarm optimisation (PSO) algorithms [25,26]. A review of layout optimisation algorithms by Kumar et al. [27] reveals yet more approaches that have been taken in solving this complex optimisation problem, including simulated annealing, antcolony optimisation, definite point selection, and binary artificial algae algorithm. Additionally, Wilson et al. [28] describe the top four methodologies of eight teams in the second edition of the Wind Farm Layout Optimisation Competition held at the 22nd Genetic and Evolutionary Computation Conference, where all teams employed evolutionary algorithms. Pillai et al. [29] compared a GA with a PSO algorithm and found that both methods perform well, with the PSO consuming less computational time and suggested this is due to the typically smaller population and a constant number of function calls per iteration.
Although there is clearly not yet a convergence on the best method for wind farm layout optimisation, there are several areas of interest that need development in future studies. Azlan et al. [1] highlight some of these as the need for developing an efficient optimisation approach for larger, more complex sites; the use of more accurate wake models; and a standard benchmark wind farm with data on the wind profile, turbines, and realistic boundary shape. This study aims to tackle these areas through adapting an efficient algorithm for large-scale sites, employing a more comprehensive wake model than is typically chosen in other studies, and development of a realistic hypothetical site to test the robustness of this and future algorithms.
This study outlines a grid-based turbine layout optimisation algorithm using a PSO technique. The problem formulation allows for a change of angle between rows (and columns) of turbines thus being capable of generating solutions for a larger range of sites, with the same number of design variables independent of the number of turbines. Further, up to 50 m of deviation is allowed for turbines to be positioned away from the initial grid positions to support fine-tuning of the layout and increase energy capture without affecting the safety of maritime operations. The wind farm model uses the Larsen wake model, which employs a Gaussian wake profile for more accurate modelling of the wind speed deficit in the wake-affected region. Additionally, an industrial-scale hypothetical offshore wind farm site is proposed on which the optimisation design is evaluated. Data of the hypothetical site is provided to enable reproducibility and allow for comparison with other future turbine placement methodologies.
The remainder of the paper includes the following: Section 2 presents the formulation and solution of the optimisation problem including the objective function, the constraints, the PSO algorithm, and novel improvements to the overall algorithm; Section 3 presents the validation of the wind farm model, the implementation of the PSO algorithm, and presents a real-world case study; Section 4 establishes the hypothetical site, including wind conditions and turbine parameters; Section 5 gives results and discussion on the effectiveness of the solution; Section 6 presents the conclusions. Key hypothetical wind farm data are provided in the Appendix.

DESCRIPTION OF THE WIND FARM MODEL AND OPTIMISATION PROCESS
A grid-based layout of turbine positions is chosen in order to comply with the Maritime and Coastguard Agency Guidelines in the United Kingdom. Irregular layouts may be able to yield a greater annual energy capture but may also face difficulties in receiving consent in UK waters at least [19]. A grid layout with an allowed 50 m of micro-siting is proposed as a compromise, maintaining reasonable scope for optimising turbine positions to increase energy capture, while not compromising the effectiveness of possible search and rescue missions or maritime navigation. Details of the problem formulation are presented in Section 2.1.
The wind farm model comprised several established approaches including the Larsen wake model, for modelling individual turbine wakes (Section 2.2.1); a root-sum-square approach to aggregate multiple wake effects (Section 2.2.2); and a rotor-effective wind speed model, to calculate the wind speed experienced by a wind turbine rotor from point wind speed data (Section 2.2.3).
Description of the optimisation process (Section 2.3) is addressed in four major parts: selection and description of the optimisation algorithm; constraints; the objective function; and novel functions for the improvement of both computational efficiency and quality of the solutions.

Formulation of the grid-layout design problem
In this work, the grid for turbine positions is fully described by eight variables independent of the size of the site and the number of turbines. Compared to most other methods that have an (x, y) variable for each turbine, this formulation makes it much more efficient when scaling to larger, GW-scale wind farms due to the low number of variables included in modelling and optimisation. The eight variables are defined as follows: 1. m 1 -Angle of the central row of turbines (radians from north, clockwise). 2. ∆m 1 -Change in the angle of the rows of turbines (radians between adjacent rows, clockwise from north). 3. s 1 -Spacing between the rows of turbines along the central column (m). 4. m 2 -Angle of the central column of turbines (radians from north, clockwise). 5. ∆m 2 -Change in the angle of the columns of turbines (radians, between adjacent columns, clockwise from north). 6. s 2 -Spacing between the columns of turbines along the central row (m). 7.
x-x-coordinate of the crossing point of the central row and the central column (m from datum in coordinate system used to define the offshore site). 8. y-y-coordinate of the crossing point of the central row and the central column (m from datum in coordinate system used to define the offshore site). Figure 1(a) is a graphical representation of the eight variables with turbines placed at the intersection of the rows and columns, with the central row and column indicated by the thicker blue dashed lines. Turbines can be seen marked by the red, filled circles. Figure 1(b) and (c) show two layouts, one with no change in the angles between rows or columns (∆m1 = 0, ∆m2 = 0) and one with a change in angle between the columns of turbines (∆m1 = 0, ∆m2 = −0.1) respectively. The grid is generated with a sufficient number of rows and columns to cover the entire wind farm site being considered. Each grid point is checked to determine if it falls within the wind farm area, excluding those grid points within an obstacle (userdefined region(s) where turbines cannot be built). Only the grid points within the buildable area have turbines built at that location, which are then passed to the wind farm model to be evaluated.
This grid-based formulation allows for addressing large-scale optimisation problems with a fixed number of variables. Compared to other studies such as that by Serrano González et al. [21] with similar formulations, the set-up proposed here is suitable for wider wind farm sites and shapes given the inclusion of the two variables that describe the change in the angles of rows and columns.
In order to calculate the coordinates of individual grid points from the eight variables, the gradient (m) and the y-intercept (c) are calculated for each row and column line. A set of equations for the lines in the linear form of y = mx + c can then be solved simultaneously to yield the xand y-coordinates for each grid point at the intersection of row i and column j, Equations (1) and (2) respectively.
where the gradient of the line, m, can be found through m 1 ± k * ∆m 1 (or m 2 ± k * ∆m 2 ) with k equal to the number of rows (or columns) away from the central row (or column). That is, k = 0 for the central row, and k = 2 for a row two lines away from the central row. Grid points along the central row and the central column are equally spaced by s 1 and s 2 , respectively, and so these known positions can be used to calculate the y-intercept values (c i and c j ) of the remaining rows and columns.

Wind farm model
The wind farm model considers only the effect of turbine wakes on the power production of the offshore wind farm, given the wind conditions described by a wind rose for the site. Several studies, including those by Pillai et al. [8] and Göçmen et al. [30] compare the accuracy and computational time of several wake models. Although slower than the more widely used Jensen wake model, the Larsen model more accurately predicts the wake behaviour and offers the best compromise between accuracy and computational time. The Larsen wake model [4] calculates a point wind speed as influenced by an upstream wake.
There is no one definitive method for the summation of multiple wake effects on a given point in space and so the well-known energy-balance method is used [30], also known as the root-sumsquare method [8]. Point wind speeds are evaluated in this way at multiple locations across the downstream rotor and are used to generate a rotor effective wind speed. This may then be used to generate the wake effect of the rotor on turbines further downstream.
It is desired and expected that the model not only be accurate in its assessment of wind farm power production but also be computationally efficient. This is because some optimisation methodologies require large numbers of iterations-and therefore many evaluations of the model-which can make the optimisation process very slow if each evaluation of the wind farm model is not sufficiently quick.

2.2.1
Larsen wake model The Larsen wake model was first proposed in [4] and is a simple and quick, yet efficient in wake calculation procedure. For this study, the wake model (Equations 3-9) was coded by the authors using Matlab R2018b. The model calculates a point wind speed at a downstream location that is impacted by the wake of an upstream rotor and is a function of the thrust coefficient of the upstream turbine, downstream distance, and radial distances from the centre of the wake. Improvements to the model were proposed in [31], which include a correction term for the ground effect on the wake using an empirically found relationship linked to ambient turbulence.
The main calculations of the Larsen wake model are described in this section. The wind speed, u, at a point, n, on a downstream rotor, i, within the wake of an upstream turbine, j, can be given by where u ∞ is the free-stream wind speed (m/s); C Tj is the thrust coefficient of turbine j; A i is the rotor swept area of turbine i (m 2 ); x is the distance between turbines, parallel to the wind direction (m); r is the distance between turbines, perpendicular to the wind direction (m); and x 0 and c 1 are parameters that describe the wake expansion, Equations (4) and (5), respectively, where d is the rotor diameter (m); R 9.5 is the radius of the wake at a distance of 9.5D downstream (m), Equation (6); and d eff is the effective rotor diameter (m), Equation (7).
To capture the ground effect on the wake, Equation (6) contains a correction term requiring the hub height, H, and an empirically found relationship linked to ambient turbulence, R nb , Equation (8): where I a is the ambient turbulence intensity. The wake effect at a downstream point need only be considered if it is within the area experiencing a wake effect from an upstream turbine. To evaluate if this is the case for a given point, the wake radius at the downstream distance must be calculated. Equation (9) describes the wake radius as a function of the downstream distance x, the thrust coefficient C t , the rotor area A i and the wake expansion factor c 1 .
For a given point, n, on a downstream rotor, i, if the distance, r, between the point and the centre of the wake is less than R w , then the point lies within the wake-affected region, and Equations (3)-(8) must be evaluated to determine the wind speed as a result of the wake effect. If r > R w , then the point lies outside of the wake and no wake effect needs to be calculated.

2.2.2
Summation of multiple wake effects For a given point, the summation of multiple wake effects can be achieved through the root-sum-square (or energy-balance) of the deficit factor, D, a non-dimensional description of the velocity deficit caused by the wake [3,30]. The deficit factor can be calculated for each point on the downstream rotor, for each of the wakes of upstream rotors, from the point wind speeds calculated by the Larsen wake model. Summing these using the energy balance equation [30], the resulting total deficit factor can be returned to a point wind speed as a fraction of the freestream wind speed [3].
The total deficit factor experienced by a point as a result of multiple wakes is: This can be returned to a point wind speed, now considering all wake effects, through: where the point wind speed, u in , is equal to the free stream wind speed, u ∞ , multiplied by one minus the total deficit factor, D in , experienced at the point, n.

Rotor effective wind speed
The rotor effective wind speed equation [32] is used to calculate the wind speed experienced by the rotor from the individual point wind speeds calculated by the Larsen wake model. As the power coefficient (C P ) varies along the blade, the distribution of C P must be known and used to weigh the influence on power production for each point wind speed. This captures the effects of tip losses and low power production from the root of the turbine blades. The rotor effective wind speed can then be used to look up the power and the thrust coefficient of the turbine, through the known power curve and thrust curve. These are then used to determine the wake effect of the current turbine on further downstream turbines. Sorting the turbines into upstream-to-downstream order (for each wind direction) and calculating the wind speeds as described allows the model to estimate the aggregate effect of all the wakes on all of the affected turbines.
Equation (13) integrates the point wind speed values with respect to radial distance, from the rotor centre (r = 0) to the blade tip (r = R), and with respect to the azimuth angle (from θ = 0 to θ = 2π).

Optimisation framework and implementation
This section provides more detail into the selection and implementation of the chosen algorithm and other key components in the optimisation process.

Algorithm selection and implementation
The wind farm power calculated from the wind farm model can vary greatly for a small change in some or all of the eight variables. Non-uniform wind distribution, irregular wind farm boundaries, and obstacles all contribute to the irregular nature of the objective function values in the solution space. Further, constraints and/or penalties can create regions in the solution space with a step-change in the objective value (discussed further in Section 2.3.2). It is impractical to rely upon gradientbased search algorithms that require the objective function to be differentiable. An exhaustive search method could be used; however, to achieve a satisfactory level of accuracy would require the evaluation of an impractically large number of possible solutions. When hard constraints are used, some optimisation methods are able to take advantage of these to reduce the number of searches to find the optimal solution, either by searching along the vertex edges of the constrained solution space (simplex method) or by systematically applying 'cuts' (additional constraints) to the solution space (cutting plane method) [33]. However, the problem formulation suggests that an analytical solution is unlikely to exist on a vertex edge when constraints are used to define the feasible region. For example, if the variables s 1 (row spacing) and s 2 (column spacing) have a lower bound constraint applied for the minimum turbine spacing, the simplex method would evaluate solutions along these vertices. At these locations in the solution space, the wind farm power may be greater due to more turbines fitting into the site but may be reduced due to greater wake effects. As the row and column spacing increases, the wind farm power increases due to reduced wake effects; therefore, a better solution may be found at values not equal to the constraint value-and not on the vertex edge. For this reason, these algorithms may not be reliable in finding an optimal solution.
Evolutionary algorithms, such as GA or PSO, offer a promising alternative. These algorithms generate a range of solutions distributed within the solution space and-through different processes depending on the algorithm-move the initial solutions through the solution space to attempt to find increasingly better solutions. The GA method selects the best quality solutions from the population and, considering pairs at a time, 'breeds' the solutions by swapping some of their values (of the eight Algorithm 1 PSO Particles randomly distributed in solution space, ∈ R 8 while max( ) − min( ) > threshold do for Each particle, i do Output GB variables) to generate new potential solutions for the next 'generation'. Swapping variables in this way may lead to the generation of grids with highly acute angles and overly close positioned turbines. A PSO algorithm is analogous to a swarm of bees. Each particle-or solution-moves through the solution space via a combination of vectors: the direction of the individual's momentum, the direction to its previous personal best solution, and the direction towards the swarm's global best solution [34]. Balasubramanian et al. [35] found the that PSO algorithm requires simpler implementation and faster convergence than the GA algorithm. This could be due to the cooperative nature of the PSO algorithm whereby solutions share knowledge of the solution space and iteratively improve all solutions in the swarm as opposed to the competitively organised GA [26]. Therefore, the PSO method is chosen for this study. Algorithm 1 outlines the key processes taking place in the PSO, where φ is the set of independent variables, described later in Equation (14).

Constraints
Constraints-or limits-can be applied to the variables being considered in order to bound the solution space to create a region of feasible solutions resulting in a constrained optimisation problem. A reformulation of the objective function allows for these complex constraint equations to be considered in the objective function as implicit constraints through the implementation of Lagrange multipliers [36] (similar to the penalty function term, P distance , in Equation 15). In this style of formulation, the objective function may become infinite, or very large, when these inequality constraints are violated. The problem can then be solved as an unconstrained optimisation problem. These penalties can be thought of as a type of soft constraint that disincentivises solutions in these regions. In the case of a PSO algorithm, particles may enter this region but will be penalised in the objective function. As such, the particles are likely to move back towards the areas where good solutions have previously been found. This method has two major benefits: first, it avoids complex constraint equations and replaces these constraints with a simple evaluation of the specific solution; and second, it allows particles to enter a region that is penalised and re-enter the unpenalised region in a new location that might otherwise have been difficult or impossible to reach with hard constraints. This penalty approach is used in the optimisation process instead of keeping separate hard constraints. The constraint penalty applied in the objective function is described further in the following section. The problem is therefore an unconstrained optimisation problem. The PSO algorithm is seeded with an un-penalised solution to guarantee that there is a good quality global best solution for particles to move towards. This ensures that particles, even if initialised in a penalised region, will not deviate far from the un-penalised region. The seeding process is described in more detail in Section 2.3.4.

2.3.3
Objective function The objective function, Equation (15), is a function of the set of independent variables described previously, grouped in a vector as in Equation (14).
where J rev is the net present value of the lifetime revenue from wind farm energy capture; C turbines is the capital cost of wind turbines; and P distance is the penalty cost associated with turbines positioned less than a given proximity distance apart. The levelised cost of energy could also be used as an alternative objective function and is often used in similar studies [26,35,37]. Since the focus of this study is on maximising the energy capture, the objective function includes only the energy capture term and the cost of turbines, omitting the remaining complex cost functions required for LCOE for simplicity and clarity. The penalty function, P distance , is also included; however, this term will be equal to zero for all layouts that do not violate the proximity constraint, Equation (17). The optimisation problem can then be described by the following: where φ * is the set of values corresponding to the variables, φ, that result in the maximisation of the function J(φ). The three terms in Equation (15) cannot be directly written as functions of φ; however, all are dependent on all eight variables because the eight variables fully describe the grid of turbine positions. First, J rev requires the wind farm power from an evaluation of the wind farm model, the result of which is heavily dependent on the angles, spacing, and location of the grid. This wind farm power result is assumed to be approximately correct for all years of operation of the wind farm, multiplied by a defined cost of energy and summed over the lifetime of the project at a given discount rate.
Second, C turbines is the capital cost of turbines. This cost is dependent on the number of grid points that lie within the buildable area and is simply a multiplication of the number of applicable points by a specified turbine capital cost. Other costs, such as the cost of turbine transportation and installation could be included in this term, however, have not been considered in this study.
Finally, P distance is the constraint penalty function. As an alternative to a hard constraint formulation, the purpose of this penalty function, or Lagrange multiplier, is to disincentivise solutions where turbines are built too close to each other. During the evaluation of the wind farm model, turbine positions are recorded and the distances between the turbines and their respective nearest neighbours are calculated. If the distance between a pair of turbines is found to be below a defined minimum spacing (specific to the type of turbines), then a penalty cost is applied; otherwise, P distance = £0, Equation (17). The penalty cost applied for a violation of the minimum spacing is a large cost, which is a function of the size of the site and the size of the turbines. To avoid values of infinity, this algorithm defines the penalty cost to an arbitrary but sufficiently high penalty value, equal to the un-discounted annual revenue of a whole row of turbines.
where N is the maximum possible number of turbines in a row, for the given wind farm; Rev AEP is the revenue of one turbine operating at rated power continuously for 1 year; and i and j are real numbers representing each of the grid points to be considered in the set of T, where T is the subset of grid points containing turbines in the current solution. The distance between each turbine i and every other turbine j is measured for all grid points in the set T. The term P distance is the summation of the individual penalty costs considered for every pair of built turbines; however, one violation of the minimum turbine spacing should provide an effectively infinite disincentive. The exact value of the penalty cost is not critical providing it is relatively large, compared to the annual revenue of a row of turbines-the number of which will vary with the site dimensions. Formulating the penalty function in this way ensures that this will always be the case.

Additional improvements
Several improvements have been made in the implementation of optimisation design.
(1) Seeding of initial solutions: In order to initialise at least one particle in a region of the solution space containing reasonable solutions, a simple search procedure is employed prior to the PSO algorithm. The search procedure resembles a pattern search algorithm [18] and is described in Algorithm 2.
Here, θ is the angle in radians between the central row and central column of the grid (m 2 −m 1 ); dist min is the minimum allowable distance between turbines; and (x GC ,y GC ) are the coordinates of the geometric centre of the wind farm site. In a classical pattern search algorithm, particles move through the solution space in a user-defined set of pattern directions. Moves are screened for constraint violations, and if there is no violation, the move is accepted; otherwise, the step size is reduced and the process is repeated. In the approach used in this study, however, the spacing between turbines (variables s 1 and s 2 ) are fixed, so no constraints are required and therefore there is no change in the step size. In this way, the approach used here could also be considered as an exhaustive search of a set of discrete user-defined points in the solution space. The globally best solution found in this process is used to seed the position of the first particle in the PSO algorithm. The remaining particles in the swarm can be seeded with user-defined values based upon empirical knowledge and experience; otherwise, they are initialised randomly within the following ranges: 1. 0 ≤ m 1 ≤ π; 2. m 1 +0.45 π ≤ m 2 ≤ m 1 +0.55 π (for m 1 of the corresponding solution)L 3. −0.02π ≤ ∆m 1 , ∆m 2 ≤ 0.02π, 4. 0.75 dist min ≤ s 1 , s 2 ≤ 3 dist min, 5. x GC − dist min ≤ x ≤ x GC + dist min, 6. y GC − dist min ≤ y ≤ y GC + dist min , Update global best solution, GB = i end if Step by +0.02

end while
Step m 1 by +0.02 end while Output GB for seeding particle in PSO  Figure 2 presents a decision block in the algorithm that reduces the number of model evaluations to around 5% of the original number of iterations, reducing the computational load by around 95%. The decision in the block is made probabilistically as shown by the 'Yes' and 'No' conditions in Figure 2. The wind farm model is also evaluated in the condition that the number of turbines is outwith the range of the dataset created up to that point.
When the wind farm model is evaluated for a given solution, the wind farm power is recorded against the number of turbines present and appended to the look-up dataset. This is repeated for many solutions, resulting in a relationship as shown in Figure 3. For a given number of wind turbines, there may be a range of wind farm power values recorded already, and so the mean of these values is used for that given number of turbines.
For the remaining iterations, when an approximation is used, this dataset is used as a look-up table for wind farm power. This approximation method, allows the algorithm to quickly assess FIGURE 3 An example wind farm power dataset created by the optimisation process during a case study of the Lillgrund offshore wind farm site (for more information, see Section 3.3)

FIGURE 4
Flowchart of the key optimisation processes the wind farm power, including wake effects (specific to the site, turbines, and wind profile), without simulation of the full wind farm model.
The probability of the full model being evaluated is shown in Figure 2 as where iter is the iteration number. This formulation ensures that the first five iterations are used to sufficiently populate the dataset and that the probability of the full model being evaluated decreases as the algorithm progresses and the dataset is increasingly well-described. Additionally, the full model is evaluated for solutions that are outwith the existing range of the dataset to ensure that the full range of solutions is described by the look-up curve.
(3) Micro-siting function: This function allows for up to 50 m of micro-siting of turbines away from their 'designated' gridbased position. This allows for two major benefits: (1) turbines that are placed less than 50m outside of the wind farm boundary can be moved inside the boundary to be built, and (2) the built turbines can be spread apart to reduce the wake losses and increase energy capture. To reduce the computational complexity of the micro-siting function, two assumptions are made in line with the above, (1) a greater number of turbines will increase the wind farm power, and (2) increasing the distance between turbines will reduce the wake losses.
The function assesses each of the grid positions of possible turbine locations (including those outside of the wind farm area) to determine whether it is within 50 m of the buildable area. If yes, then a new possible turbine location is considered, which is up to 50 m away from the initial grid position. Positions are considered along the vector, from the grid point being considered, in the direction of the average position of the grid point's nearest neighbours. If a new position is found that is within the buildable area, then this position is used to build a turbine. If no valid position is found then no turbine is built for that grid point and the next grid position is considered. These movements move turbines just outside of the wind farm (<50 m) into it to be built. Once all grid positions have been assessed in this way, turbines are selected randomly to be moved away from their nearest neighbours by up to 50 m. Incremental distances of <<50 m are used at each iteration. This process is repeated such that each turbine is visited on average 10 times. This second movement phase increases the spacing between turbines reducing the wake effect. Figure 4 shows the key processes within the optimisation. Boundaries of the PSO algorithm and objective function have been outlined to highlight the procedures involved in these sections. The particle seeding method, look-up approximation method, and micro-siting function have all been included to demonstrate where they fit into the whole optimisation design. An initial particle is seeded at a suitable point in the eightdimensional solution space, and the remaining solutions are randomly seeded. Velocity vectors of the particles are randomly generated and the positions are updated by moving the particles along these vectors. The grid of turbine positions is created from the variables for each of the proposed solutions in the swarm as described in Section 2.1. A decision is made to evaluate the wind farm model or to look up an approximation, as described previously, providing a value of the lifetime energy capture of the site. This is summed with the cost of turbines (negative cost), and the turbine spacing penalty cost (negative cost). The record of the personal best and the global best solutions of the swarm are updated where applicable, and the particle velocities are updated. The velocities of the particles are generated from three components: the particle's current direction of travel, towards its personal best solution, and towards the swarm's global best solution. This process then repeats from updating the particle positions until the particles converge and/or the velocities have reduced to a sufficiently small value. On the final set of solutions, the micro-siting function is evaluated to improve energy capture and the best solution of the swarm is kept.

VALIDATION AND TESTING
This section outlines the validation of the wind farm model and verification of the implementation of the optimisation process. First, the wind farm model was given a set of real turbine positions and the calculated wind farm power was compared against the known, real-world, power of the wind farm. Second, the operation of the PSO algorithm was investigated to determine if it operates as desired and producing increasingly good quality solutions over iterations. Finally, the optimisation process was applied to a case study of a real-world site. The solution was compared against the actual turbine positions to determine if the optimisation process can generate reliable solutions.

Wind farm model validation
Prior to evaluating the whole wind farm model, it was important to establish a number of point wind speeds to calculate per rotor in order to achieve a sufficiently accurate rotor-effective wind speed. A sensitivity study was carried out by changing the resolution of the points per rotor and evaluating the rotoreffective wind speed over the range from 8 to approximately 13,700 points per rotor. It was assumed that a greater resolution of points across the rotor swept area will result in a more accurate rotor-effective wind speed with the wake model. Indeed, it was found that with an increasing number of points per rotor, the rotor-effective wind speed approaches the high-resolution result. The quality of solutions with a low number of points was also sufficient, however. The rotor effective wind speed calculated using 8 points per rotor was 8.438 m/s. This increased slightly as the resolution was increased, resulting in 8.446 m/s rotor-effective wind speed with 13,700 points per rotor. Since the computational time is directly proportional to the number of points per rotor to be assessed, and the error in wind speed between the lower and higher resolution cases was ignorable, 8 wind speed points per rotor were chosen as sufficient for the model calculation. The wind farm model was provided with the real turbine positions of the Lillgrund offshore wind farm (measured from the Vattenfall report 'Technical Description Lillgrund Wind Power Plant' [38]) and the wind conditions of the site (from 'Meteorological Conditions at Lillgrund' report [39]). The real turbine positions at Lillgrund can be seen in the left plot in Figure 5. Also indicated, is the North bearing, and one of the significant wind directions, at 222.7 • , which is parallel to the angle of the columns of turbines. The right-hand plot of Figure 5 shows the average capacity factor of the three highlighted turbines (highlighted in Figure 5, left) for both the model evaluation and the real site supervisory control and data acquisition (SCADA) data [40]. The data was 'binned' into four groups based on the power of the upstream turbines: 300-600 kW, 700-1000 kW, 1100-1400 kW, and 1500-1800 kW.
It is clear from Figure 5 that the model was able to estimate wake effects close to that observed in the real-world data, by a depression in the capacity factor of similar magnitude. However, there is an offset between the angles of the peak wake effect of the two datasets of approximately 4 • . In the model, the angle of the wind direction was defined, and the model was evaluated at 1 • increments and does not consider wake deviation or any wind direction changes through the site. The wind direction in the real data was recorded as the median yaw angle of the three upstream turbines (those to the South-West of the three highlighted turbines in Figure 5, left). The average errors, for the four power bins, between the real dataset and the model predictions are given in Table 1, for both the capacity factor error and the difference in energy capture in the segment (190 • −240 • ). Also, included is the average error in capacity factor when the SCADA data was shifted by 3.7 • to account for possible measurement inaccuracy. Errors between the model and the real data range from 25.65%-31.82%, in large part due to the angle shift mentioned previously. Shifting the real data by +3.7 • to remove any possible yaw-measurement inaccuracy reduces the errors to the range of 7.12%-13.15%. The energy capture achieved in the segment, 190 • −240 • , closely matches that recorded by the real-world data with error in the range of 0.98%-4.97% (see Table 1). Figure 6 shows the capacity factor of the whole Lillgrund wind farm [30] and the model prediction across the full 360 •  range. Including all turbines in the wind farm and all possible wind directions allow for the effectiveness of the summation of multiple wake effects to be assessed. Data for the 360 • efficiency of the wind farm is also available in [40]; however, as seen in Figure 5, there was a misalignment between the data and the geometric positions of the turbines, and so this was not used for comparison. The error between the capacity factor of the real site and the model, Figure 6, was reasonably small, averaging 5.58% using 15 • wind direction bins. The error in annual energy capture was even lower, at 0.72%, showing a close matching of power generation between the model and the real data.
As mentioned previously, wake models can tolerate large errors (>8% [8]) depending on the width of the bins used to group wind directions. As such, errors demonstrated by the combination of the models shown here in the range of 5.58% are acceptable for use in the optimisation algorithm. Further, the assessment of the fitness of solutions generated by the optimisation algorithm is measured by the annual energy capture, as a function of wind farm power output, which showed an error  Figure 7 shows the range of objective function values found by the particles in the swarm, for a case study problem described in the following section. The maximum, mean, and minimum values are shown, from top to bottom. It can be seen that all of these improves and converges over iterations and proves the functionality of the PSO algorithm. For an optimisation problem such as this with approximately 48-50 turbines, 360 wind conditions (wind speed and direction combinations), and ∼500 iterations, the computational time was approximately 35 min on a standard desktop PC (3.4GHz Intel Core i7-6700, 16GB RAM).

Real site case study
Having demonstrated the wind farm model and the functionality of the optimisation algorithm, a final test was conducted to examine whether the generated solutions are useful, practical solutions for a real site design. The Lillgrund offshore wind farm site was also used for this case study. Figure 8 shows both the Lillgrund turbine layout (left) and the model result (right). The wind farm boundary is outlined and the obstruction where no turbines may be built, in the middle of the wind farm, is indicated by the shaded red region. In order to make a fair comparison, the model was restricted to generate solutions with a minimum row and column spacing of 3.3 and 4.3 times the rotor diameter as is seen in the real site; however, it was free to determine the orientation of the rows and columns. The real site has 48 turbines and generates an average wind farm power output of 33.6 MW. The optimised layout gives 52 turbines and generates an average of 36.0 MW. Although the losses due to wake effects increase in the optimised site due to the presence of four more turbines, the net present value of lifetime energy capture increased by £17.98 M and the increase in the capital cost of turbines increased by £9.2 M leading to a net gain of £8.78 M (net-present-value) over the lifetime of the project (25 years). This demonstrates that the algorithm is capable of generating reliable solutions, and in this case, has been shown to outperform the real site of the case study.

HYPOTHETICAL OFFSHORE WIND FARM STUDY
This section presents an updated hypothetical wind farm test case that is more representative of large-scale real-world offshore wind farms, covering the site description, wind

Site description
The proposed hypothetical site has an irregular shape including a concave edge, Figure 9, and covers a large area sufficient to contain GW-scale projects. Two obstacles are included of different shapes, sizes, and positions, marked by the red shaded regions. Turbines are restricted from 'overhanging' the wind farm boundary and so cannot be built within one rotor radius of the wind farm boundary. These aspects are included in order to provide realistic constraints and complications to the model being tested. Coordinates for the wind farm region and the two obstacle regions can be found in the Appendix, Table A1.

Wind conditions
To make a comparison with other wind farm optimisation studies, the wind conditions used in this work are taken from those described first by Mosetti et al. [9]. In their study, the authors propose three sets of wind conditions: (1) a single-direction, single-wind speed case, (2) multiple-direction, single-wind speed case, and (3) non-uniform distribution of wind speed and direction. This study used wind Scenario 3, shown in Figure 10, as it is the most representative of real wind conditions. The wind rose data can be found in the Appendix, Table A2.

Turbine description
The turbine used was an 8 MW reference wind turbine by Desmond et al. [41]. Some of the key turbine parameters are: rotor diameter 164 m, hub height 110 m, Cp max 0.44, minimum spacing of five times the rotor diameter, and turbine cost £8 M. More complete data can be found in the referenced study [41] including power coefficient and thrust coefficient plots used by the wake model.

RESULTS AND DISCUSSION
Ten intuitively designed layouts were created by manually adjusting the grid variables to generate good quality layouts, through intuition and engineering experience. This, rather

FIGURE 10
Non-uniform distribution of wind speed and direction [9].
(North 0/360 degrees, east 90 degrees) manual approach, is a common practice in the early design phase work of offshore wind farms, and several hours were spent on the generation of these to ensure good quality solutions were found. No additional micro-siting (deviation from the defined grid points) was considered for these layouts. A further 10 layouts were created by the proposed optimisation algorithm. Figure 11 shows the turbine layouts of the best solution of each of these sets of solutions, with the best intuitively designed result in the left plot and the best optimisation results in the right plot. The process of generating solutions manually requires an appreciation of the trade-offs inherent in the problem, including but not limited to: -achieving an orientation relative to the predominant wind direction beneficial for energy capture, whilst ensuring net energy capture from other wind directions isn't reduced by a greater amount, -increasing the spacing between turbines to reduce wake effects and increase energy capture, without 'pushing' turbines outside of the wind farm boundary, and -orienting the grid to optimise the use of the space available (i.e. placing turbines near the wind farm boundary), without compromising energy capture or reducing turbine numbers.
Although manually generating turbine layouts can be quicker, these complications mean that generating good quality solutions can be very difficult and can often be outperformed by solutions created by the design optimisation algorithm. This can be seen in the objective function values of the two sets of solutions in Table 2. Figure 12, shows a box plot of the fitness of the two sets of solutions, the manually generated layouts and the optimisation algorithm layouts as assessed by the objective function, Equation (15). The intuitively created solutions have an objective function value, or fitness, in the range of £1,041-£1165 M and a mean value of £1117.8 M (see Table 2). The layouts generated by the optimisation algorithm have values of £1198-£1204 M and a mean value of £1202.3 M. It is clear from Figure 12 that the optimisation results not only outperform the intuitively designed solutions in every instance but are also more consistent. It can be seen in Table 2 that the intuitively designed solutions are within 11.02% of the mean value of the

FIGURE 12
Box plot of the fitness of two sets of solutions generated manually and by the optimisation algorithm set, whereas the optimised solutions all occur within 0.52% of the mean value of the set, which highlights the advantages of layout design optimisation considering the aforementioned trade-offs. From Table 2 it can be seen that the mean fitness of the optimised solutions is £1202.3 M relative to the mean of the intuitive solutions at £1117.8 M, which is an increase of 7.55%. This corresponds to an increase in the net present value of £84.4 M as assessed by the objective function. The optimisation solutions were generated on a standard desktop PC (3.4GHz Intel Core i7-6700, 16GB RAM) in an average time of 39,495 s (approximately 11 h). Although this is far longer than the time required to create and assess manually generated solutions (< 1 h), it is considered a relatively small investment of computational time and resources for an important design phase study. The proposed algorithm can also be used as a practical design tool for sensitivity analysis.
As the turbine placement optimisation algorithm comprises two main functions, the PSO algorithm and the micro-siting function, solutions are also assessed between these two phases to determine the relative contribution of each. It was found that the solutions, after the completion of the PSO algorithm, had an average fitness of 6.44% greater than the average intuitively designed solution. The micro-siting function, which took an average of 3484 s (approximately 1 h), increased this by a further 1.11%.

CONCLUSION
A new approach for turbine layout optimisation of GW-scale offshore wind farms has been proposed using a combination of existing models and methods. The formulation of the problem improves on previous grid-based layout studies that often have many empty grid spaces [20] or do not allow for the rows or columns of turbines to spread out by changing the angle between them [21]. The addition of two novel components, an on-the-fly look-up dataset and micro-siting function, provided further benefits in both computational resource and the quality of solutions. Creating and using the look-up dataset of average wind farm power output reduces the number of evaluations of the wind farm model by 95%, reducing the computational time commensurately. The micro-siting function, which further improves the final solutions of the PSO, increased the quality of solutions by an additional1.11%. A comparison of the wake model against real data from the Lillgrund offshore wind farm shows that the model can correctly predict the average wake effect of a single turbine to an error range within 7.12%-13.15% and the energy capture of the downwind turbine to an error range within 0.98%-4.84%. When considering all turbines in the Lillgrund wind farm, and therefore the summation of multiple wake effects, the wind farm model predicted wind farm capacity factor for different wind directions to an error range within 5.93%-11.63% on average, with an energy capture error of 0.17%. The optimisation algorithm, on a case study of the Lillgrund site, has been shown to produce good quality solutions increasing the net present value of the site by £8.78 M.
A hypothetical GW-scale site was proposed, and a set of 10 intuitively designed solutions were compared against 10 results generated by the optimisation algorithm. Compared to the average fitness of the intuitively designed results, the optimisation algorithm was able to produce solutions with an average fitness of 7.55% higher. The proposed algorithm showed consistency in the quality of results, with all solutions within 0.52% of the mean, compared to the more variable solutions created intuitively with a range of 11.02% of the mean value. The computational resource required for the optimisation algorithm was considered minimal for such an important design phase study (approximately 11 h on a standard desktop PC), and so this approach could be used as a practical design engineering tool.
Several aspects of this study could be explored further to improve the design process and possibly the quality of solutions. First, the micro-siting function was only used on the final set of PSO solutions; however, this could also be evaluated throughout all iterations of the PSO algorithm. If computational resource and time are not a consideration, this may yield improvements to the quality of solutions-but at the price of a large increase in computational time. Second, generating solutions intuitively and evaluating the micro-siting function only, would likely lead to better solutions with respect to manually generated solutions alone. Although it is expected that the solutions would not be as good as those generated by the proposed algorithm, it could provide a method for the quick creation of reasonable quality solutions. Finally, additional costs such as the capital expenditure of the required electrical infrastructure could be considered. The model shows diminishing returns for every additional turbine placed in the site (Figure 3), therefore including a more complete set of cost considerations may lead to solutions with fewer turbines or affect the spacing and positioning of turbines.