Wind farm layout optimization is usually subjected to boundary constraints of irregular shapes. The analytical expressions of these shapes are rarely available, and, consequently, it can be challenging to include them in the mathematical formulation of the problem. This paper presents a new methodology to integrate multiple disconnected and irregular domain boundaries in wind farm layout optimization problems. The method relies on the analytical gradients of the distances between wind turbine locations and boundaries, which are represented by polygons. This parameterized representation of boundary locations allows for a continuous optimization formulation. A limitation of the method, if combined with gradient-based solvers, is that wind turbines are placed within the nearest polygons when the optimization is started in order to satisfy the boundary constraints; thus the allocation of wind turbines per polygon is highly dependent on the initial guess. To overcome this and improve the quality of the solutions, two independent strategies are proposed. A case study is presented to demonstrate the applicability of the method and the proposed strategies. In this study, a wind farm layout is optimized in order to maximize the annual energy production (AEP) in a non-uniform wind resource site. The problem is constrained by the minimum distance between wind turbines and five irregular polygon boundaries, defined as inclusion zones. Initial guesses are used to instantiate the optimization problem, which is solved following three independent approaches: (1) a baseline approach that uses a gradient-based solver; (2) approach 1 combined with the relaxation of the boundaries, which allows for a better design space exploration; and (3) the application of a heuristic algorithm, “smart-start”, prior to the gradient-based optimization, improving the allocation of wind turbines within the inclusion polygons based on the potential wind resource and the available area. The results show that the relaxation of boundaries combined with a gradient-based solver achieves on average

Wind farm layout design is usually subjected to geometric constraints, which can be dictated by seabed conditions, water depth, or local maritime routes in offshore projects, or by land ownership, presence of other infrastructure, or existence of humid areas and waterways in onshore projects

When irregular, disconnected, and non-convex-shaped polygons are involved, the wind farm layout optimization framework becomes challenging, as it is not straightforward to include analytical expressions of these areas in the problem formulation. Despite a lot of research work having been done in the field of wind farm layout optimization, less attention has been given to the implementation of complex-shaped boundaries.

Much of the prior work in optimizing wind farms with irregular boundaries has focused on discrete parameterization of the domain and polygon representation to handle the constraints.

A disadvantage of discretizing the domain is that there is a trade-off between the quality of the solution and the resolution of the grid. A thinner grid will lead to a higher-quality solution, whilst it will also increase the computational effort significantly

In this article, we propose a new methodology to integrate multiple irregular, non-convex, and disconnected boundary constraints into the wind farm layout optimization problem. This method relies on polygon representation, given by the vertices of the polygons. The distance from every wind turbine to the polygons can be efficiently calculated by a set of geometric formulas that determine the nearest boundary and the sign of the distance towards it. Based on the sign of this distance, it is always possible to identify if the wind turbine is inside or outside the considered polygon.

When this framework is used with gradient-based optimization, the wind turbines are placed within one of the inclusion zones around them within the first iterations, since the solver will try to satisfy all the constraints when the optimization is started. This means that the solution will be highly dependent on the initial positions. Additionally, if our inclusion zones consist of many polygons spread across the design space, conventional gradient-based optimization using multiple random starts may not be an effective approach to design wind farm layouts that fully utilize the available wind resource.

We have contemplated two possible solutions to overcome this challenge. The first solution is to introduce a term in the boundary constraint formulation that relaxes the problem by expanding or buffering the inclusion zone areas before the optimization is started. The use of larger inclusion zones means that more of the domain can be explored, and wind turbines can be placed around areas with better resources. During the optimization, the boundaries are “un-relaxed” linearly until they return to their true geometry. This is controlled with two parameters that model the offset per iteration and the number of optimization iterations in which the un-relaxation is applied. The second solution is the application of a heuristic algorithm, smart-start

The presented framework has been implemented in TOPFARM, the Technical University of Denmark's (DTU's) open-source software for wind farm optimization

The article is structured as follows: Sect.

Given a set of wind turbines,

In the aforementioned optimization problem (Eq.

Definition of the polygon depending on the inclusion or exclusion attribute.

The main idea behind the method is to identify the nearest boundary edge from the wind turbine locations, calculate the distance to the nearest point on the respective boundary edge, and then compute the gradients of those distances with respect to the turbine locations to indicate the path that will lead them to the permitted areas. For this, a sequential approach is followed:

For each wind turbine, identify the nearest point on all boundary edges.

Compute the signed distances between each wind turbine and the identified nearest points, where positive distances mean inside an inclusion zone or outside an exclusion zone.

Identify the nearest edge (and polygon) by finding the minimum of the previously calculated signed distances, in absolute value.

Calculate gradients of the signed distance with respect to the wind turbine positions.

In addition, for each boundary edge, we define a normal unitary vector (a vector whose module is equal to the unit of length) that points inside the inclusion zone polygons and outside the exclusion zone polygons, as illustrated in Fig.

In order to mathematically formulate the method, we will demonstrate how to calculate the distance from a wind turbine

The first step is to identify the nearest point from the wind turbine on all boundary edges. For this purpose, we define

Depending on the relative position of the wind turbine with respect to the boundary edge

Once the nearest point on each boundary edge has been identified, the second step consists of computing the shortest signed distance between the wind turbine and the boundary edge. For case (2), this corresponds with the perpendicular distance,

The vector

Note, in the second case in Eq. (

Hereafter, we can proceed with the next step, which consists of identifying the nearest boundary edge (of the nearest polygon). This is done by

Note that

In general, the distances between the wind turbines and the boundaries are continuous and differentiable but not continuously differentiable. When the nearest edge with respect to a wind turbine switches from one edge to another, the gradient will make a discontinuous jump, but this does not seem to be an issue for the used solver (see details of the solver in Sect.

The gradient-based solver sequential least-squares programming described by

The described methodology to include multiple polygons in our optimization domain means that solvers, which seek to obtain a feasible solution immediately after the optimization is started, will try to satisfy the inequality constraint,

A potential solution for this is to relax the problem by expanding the boundary constraints for a certain number of iterations. This allows for a deeper exploration of the design space at the beginning of the optimization and thus a more suitable distribution of the wind turbines between the existing polygons. When the relaxation is applied, an initial maximum offset is added up to the inclusion zone boundaries. Once the optimization is started, this maximum offset is gradually removed (the problem is “un-relaxed”) at a constant rate. The un-relaxation is ruled by a linear expression that describes the relation between the relaxed distances,

The optimization boundary constraint is visualized for different optimization iterations when using the distance relaxation method in a hypothetical problem with

For a better understanding of the distance relaxation, its application has been illustrated in Fig.

When distance relaxation is applied, the nearest boundary is determined as

The distance relaxation allows for a better exploration of the design space. It can also be applied to escape from the local optimum or to allow transferring of wind turbines between polygons for a certain number of iterations.

Another method to solve the wind turbine allocation problem is to discretize the domain and place the wind turbines in the inclusion zone polygons before the optimization is launched. The smart-start algorithm, implemented in PyWake as in

Workflow visualization of the smart-start algorithm.

The algorithm takes a list of discretized potential wind turbine locations,

The algorithm has been extended with a randomness parameter

The

The performance of smart-start depends on the number of potential locations (grid resolution): a very high resolution grid will involve high computational effort, while a coarse resolution might lead to inefficient wind turbine allocation.

When a site has complex terrain, like mountains and valleys, the landscape creates changes in pressure that result in changes in the local wind speed. This section explains how the wind resource and the flow are modeled along the case study. The wind farm is modeled using a flow map describing the local wind conditions. The local directions and speeds are dependent on the spatial location; the freestream wind speed,

In this study, the objective function of the optimization is the annual energy production or AEP. For each set of inflow conditions, the individual turbine powers are summed according to the probability of

The wake effects are approximated using the Bastankhah Gaussian wake deficit model

In this study,

The resulting velocity deficit fields are calculated by adding up the deficits from the upstream wind turbines using a squared sum wake superposition model,

The wind turbine model used for this work is based on the Vestas V80-2.0, which has a rotor diameter of 80

In this section, we present a case study based on a fictitious site, Parque Ficticio, with complex terrain. The site is featured by a non-uniform wind resource and a terrain elevation map. The purpose of the study is to show a wind farm layout optimization using gradient-based methods and demonstrating the performance of the multi-polygon boundary constraint described in the prior section of this work. The results from three different optimization approaches are compared and assessed.

A wind farm consisting of 12 wind turbines is optimized following the formulation described in Eq. (

Parque Ficticio site is considered in this study. The elevation is shown with colors in contours. The inclusion zones are shown in thick dark lines. The illustrated wind rose shows the sector and wind speed frequency according to the freestream probabilities, which change locally due to orographic effects.

Parque Ficticio is a fictitious wind farm site pre-defined in PyWake, where the wind resource and terrain data are given as a dataset whose coordinates are

At the site, we have defined five potential inclusion zone polygons, as seen in Fig.

The wind farm is optimized following three independent approaches. The initial positions of the wind turbines are randomized using predetermined random number generator seeds to ensure that the results are reproducible. Altogether, 50 seeds (from 1 to 50) were run for each of the three approaches. For all approaches, the gradient-based solver SLSQP was used. The discretized wind directions and wind speeds for the optimizations were 1° and 1

The optimizations were run in an HPC cluster

The different approaches for optimization using gradient-based solvers and the implemented techniques are described below:

The idea behind using these different approaches is to (1) demonstrate that the nearest distance method succeeds in placing the wind turbines inside the inclusion zones in a wind farm layout optimization problem; (2) demonstrate how the distance relaxation is able to achieve higher-quality solutions by avoiding local optimum caused by the discontinuity of the boundaries; and (3) show the advantages of using the smart-start algorithm to initialize the wind farm layout optimization problem with multiple boundaries, as it efficiently allocates the wind turbines between the inclusion zones.

As described in Sect.

A parametric study was done in order to find a suitable combination of values that would lead to the higher potential yield for the case study. Four combinations of values for

Combinations 3 and 4 compare the impact of different un-relaxation speeds for fixed relaxation iterations with the idea of exploring the impact of the relaxation maximum offset (i.e., a low value against a high value of

AEP convergence as a function of the iteration number for each of the studied relaxation combinations. The multicolored lines correspond to the different seed numbers.

A total of 50 optimizations were run for each of the selected combinations. Some of the seeds were filtered as they resulted in constraint-violating solutions, as a local minimum is found before the un-relaxation finishes and the solver stops. More specifically, Table

Failed seeds for the relaxation study.

Figure

Relaxation study statistical summary. The violin plots illustrate the distribution of results from the 33 seeds. The black bars indicate the first and the third quantiles of the sample. The horizontal lines represent the means.

Based on this relaxation parametric study, it was decided that

In this section, the results from the optimizations that were run following the described approaches are presented. Despite the fact that most of the optimizations converged successfully, there were a few cases where they reached the maximum number of iterations before convergence; these were considered valid if all the wind turbines satisfied the boundary and the distance constraints. On the other hand, some seeds led to an infeasible solution for some of the approaches; in these cases, the seed was not considered for the final results. In total, eight seeds had to be removed from the results for this reason, as shown in Table

SLSQP showed constraint violations after reaching the maximum number of iterations in seeds 9, 21, 22, and 33. This means that the solver is not able to place all the wind turbines within the inclusion zones while complying with the spacing constraint at the same time.

In seeds 3 and 26, SLSQP

Approach 1 fails due to the incompatibility of inequality constraints before reaching the limit of iterations in seed 29. This means that the solver is not able to place all the wind turbines within the inclusion zones while complying with the spacing constraint at the same time. Also, it is not able to find new positions for the turbines that are violating the constraints.

Approach 2 fails in seed 41, as SLSQP fails to find a constraint-satisfying solution.

Failed seeds for the different approaches.

From the 42 remaining seeds, the first approach achieved an average AEP value of 95.55

AEP plotted as a function of the iteration number of each optimization approach examined. The multicolored lines correspond to the different seed numbers.

With the second approach, an AEP average value of 105.3

The third approach achieved an average AEP value of 115.17

Figure

Violin plots depicting the distribution of AEP found through the different optimization approaches using 42 random starting locations.

Final layouts, seed 11. The contour colors in the background indicate the mean wind speed over the site. The legend indicates the AEP for each of the resulting layouts for this seed. Approaches 2 and 3 succeed in placing more wind turbines over the yellow areas, where the mean wind speed is higher, leading to better solutions.

Figure

At first glance, it can be noticed that the allocation of wind turbines is better when the relaxation or smart-start is applied. In the layout achieved by approach 1 (left-hand plot in Fig.

The relaxation of boundaries skips this local optimal trap temporarily and, as a result, achieves an improvement in the farm AEP (middle plot in Fig.

The smart-start algorithm beats boundary discontinuity in a different way: the wind turbines are placed one by one in the positions with best resource, leading to an initial feasible solution which, despite not allowing wind-turbine transferring between the inclusion zones, already provides a good distribution of wind turbines within the available polygons. In this particular case, it can be seen how approach 3 (right plot in Fig.

In general, the use of smart-start to find a better initial layout before the optimization proved to achieve higher-quality solutions; the relaxation applied during a number of iterations when the optimization is started helps in getting higher values of AEP when compared to the use of SLSQP alone.

This article describes a new method to include multiple boundary constraints represented by polygons in wind farm layout optimization problems. The method relies on the nearest distance from the wind turbine positions to the polygons. The sign of the distance determines if the wind turbine is inside or outside of the polygon. A positive sign involves the wind turbine being inside an inclusion zone or outside an exclusion zone and vice versa for a negative sign. A new inequality constraint is introduced in the optimization formulation to force the wind turbines to stay within the desired polygons.

Despite a limitation of this methodology being identified, which relates to the correct allocation of wind turbines between polygons, two potential solutions are proposed: the implemented boundary constraints can be relaxed during a definite number of iterations to allow a better exploration of the domain and consequently find a better allocation of turbines; alternatively, a heuristic algorithm can provide a better initial guess that saves computational time and achieves higher-quality solutions.

To demonstrate the applicability of the method and the effectiveness of the proposed solutions to its limitation, a case study was presented. A wind farm consisting of 12 wind turbines at a site with non-uniform wind resource and elevation was optimized using three different approaches: approach 1 consisted of using a gradient-based solver, while approaches 2 and 3 were subsequent combinations of the same solver with the boundary relaxation and the smart-start algorithms, respectively. For the numerical computations, the open-source Python libraries developed by DTU Wind and Energy Systems, TOPFARM and PyWake, were used.

The results show that the distance method successfully respects the boundaries of the given irregularly shaped and disconnected polygons, although, for certain initial conditions, incompatibility between the spacing and the boundary constraints might lead to an unfeasible solution. A parametric study for the relaxation was carried out with four combinations of parameters to decide the most suitable values that would be used in the case study. This demonstrated that the speed of relaxation does not have a significant impact on the results, but there has to be enough time for the solver to place the wind turbines around the areas with higher resource. In general, the relaxation of boundaries proved helpful in finding a better optimum layout and wind turbine distribution between the inclusion zones. An average improvement of +10.2 % in the AEP gain was achieved by approach 2 with respect to the sole use of gradients to solve the optimization problem. Moreover, the combination of heuristic optimization methods such as the smart-start algorithm, with gradient-based solvers followed by approach 3, reached even higher-quality solutions while saving some computational time. The average improvement of approach 3 with respect to the other approaches was +20.53 % and 9.37 %, respectively.

In future work, the method should be tested under more realistic scenarios, with a higher number of inclusion zone polygons and wind turbines, which increase the computational cost substantially. We observe that the time taken by SLSQP to handle constraints becomes significantly longer around 10 000 constraints. Furthermore, the comparison of the described approaches could be investigated using different solvers.

The code used in this study is available on DTU Wind and Energy Systems' Gitlab (

JCR prepared the first draft, devised the idea for the case study, contributed to the relaxation implementation in the code, led the numerical computations, and analyzed the results; RVR contributed to the literature review, methodology, and experiment design and was involved in the numerical computations; JQ contributed to the literature review, problem formulation, methodology, experiment design, and the drafting of the article; MFM developed the methodology, implemented it in the software framework, and contributed to the problem formulation; MMP implemented smart-start and the automatic differentiation in the software and contributed to editing the article; PER contributed to the design experiment and the development of the methodology.

The contact author has declared that none of the authors has any competing interests.

Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.

The authors gratefully acknowledge the computational and data resources provided by the Sophia HPC cluster at the Technical University of Denmark, DOI:

This research has been supported by the Vestas.

This paper was edited by Michael Muskulus and reviewed by Michael Muskulus and one anonymous referee.