1. Introduction
In the past two decades, the world has witnessed a remarkable growth of wind energy development. According to the latest statistics from the Global Wind Energy Council (GWEC), the global cumulative installed wind capacity has increased from 23.9 GW in 2001 to 439.1 GW in 2017, representing an average annual increase by 20.4% [
1]. Although offshore wind is now attracting a lot of interests and has grown rapidly in recent years, especially in northern Europe, today it represents only 4.3% of the global installed capacity of wind energy [
2]. The dominance of onshore wind is mainly due to its longer development history, lower cost, and easier deployment.
As a result of the rapid growth of onshore wind, a lot of onshore wind farms have been built worldwide. Since many suitable sites in flat terrain have already been developed with wind farms, more and more wind farms are going to be built in complex terrain, especially for countries featured by a large percentage of topography covered with mountains, such as China.
Compared with a wind farm on flat terrain, a wind farm built on complex terrain benefits from the possible richer wind resource at certain locations (brought by the speed-up effect due to the terrain topography change), but it is also more likely to be exposed to more complex flow conditions, higher fatigue loads, more expensive installation, operation and maintenance costs, and other disadvantages [
3].
Designing wind farms in complex terrain is not a trivial task, mainly due to the complex interactions of the boundary layer flow with the complex terrain and wind turbine wakes, and also due to the multi-disciplinary nature of the wind farm design problem. This problem typically involves different design and engineering tasks, which may come from technical, logistical, environmental, economical, legal, and/or even social considerations.
For most industrial practitioners, the design of wind farms conventionally concerns mainly the micro-siting of wind turbines based on consideration of wind resource, i.e., determining the exact position for each turbine at a selected wind farm site [
4]. Typically, a wind farm developer/designer uses a wind resource assessment tool, such as WAsP [
5] (the industry-standard PC software for wind resource assessment, siting, and energy yield calculations for wind turbines and wind farms), to assess the wind resource of the wind farm site based on wind measurement data during a period [
6]. Then, the final design of the wind farm, mainly the layout of turbines, is determined for maximizing the annual energy production (AEP) while considering certain constraints, such as the proximity of wind turbines. This final layout is usually obtained by either manual adjustments or using some optimization techniques [
7]. After finding the turbine layout, other design tasks related to foundations, access roads, electrical system, and other components or systems are handled separately, often by specialized engineering consulting companies.
The general problem of modelling the wind flow over complex terrain has been an important research field for a very long time. Seventy years ago, Queney published a review of theoretical models of inviscid flow over hills and mountains [
8]. More recently, Wood gave a historical review of studies (until 2000) on wind flow over complex terrain [
9]. Similarly, in the wind energy community, the problem of wind resource assessment in complex terrain was investigated by many researchers over a long period [
10].
In contrast, wind farm design optimization has only become a hot research area quite recently and the majority of the published studies in this field deal with wind farms in flat terrain or offshore [
11]. Few studies investigated the wind farm design optimization problems in complex terrain. Song et al. [
12] proposed a bionic method for optimizing the turbine layout in complex terrain. In this study the objective was to maximize the power output, and the wake flow was simulated by using the virtual particle wake model. They also developed a new greedy algorithm for this problem in a later study [
13]. Feng and Shen [
14] considered the layout optimization problem for a wind farm on a 2D Gaussian hill, using computational fluid dynamics (CFD) simulations for the background flow field and an adapted Jensen wake model for the wake effect. They used the random search algorithm [
15,
16] to optimize the layout for maximizing the total power. Kuo et al. [
17] proposed an algorithm that couples CFD with mixed-integer programming (MIP) to optimize the layouts in complex terrain. In this study, the wind farm domain was discretized into cells to use the MIP method.
All the studies mentioned above aimed to maximize either the total power [
12,
13,
14] or the total kinetic energy [
17] of wind farm, with constraints on wind farm boundary and minimal distance requirements.
In this paper, we present an optimization framework for wind farm design in complex terrain, which was developed in the Sino-Danish research cooperation project, FarmOpt [
18]. This framework combines the state-of-the-art flow field solver, a fast engineering wake model, and an advanced optimization algorithm to solve the design optimization problem of wind farms in complex terrain. Various realistic objectives, constraints, and requirements that one might encounter in real life wind farm developments can be considered in this framework.
We will first introduce the modelling methodology in
Section 2. Then, the optimization framework is presented in
Section 3. Results of a real wind farm case study will be described and discussed in
Section 4.
Section 5 compares the performance of the Random Search (RS) algorithm with two popular algorithms, i.e., Particle Swarm Optimization (PSO) and the Genetic Algorithm (GA). Finally, conclusions are given in
Section 6.
4. Case Study and Results
As a demonstration, a case study for an anonymous wind farm in complex terrain using the proposed framework is presented here. This wind farm is located in Northwest China, and has a total capacity of 50 MW with 25 turbines. This wind farm has been studied in [
23,
32] to investigate the wake flow simulation in complex terrain using CFD, and the preliminary results of the layout optimization study of this wind farm have been presented in [
18]. Some of this wind farm’s site conditions have already been shown in
Figure 1. Its original layout is shown in
Figure 6 and the turbine characteristics are shown in
Figure 7. This type of turbine is variable speed, pitch regulated and has a rotor diameter of
and a hub height of
. The cut-in, rated, and cut-out wind speeds are 3 m/s, 12 m/s, and 25 m/s, respectively.
Note that constraints on inclusive and exclusive boundaries and bounds on parameters that are considered in this case study are shown in
Figure 3. Additionally, the minimal distance requirement used in Equation (14) is chosen as the minimal distance between the turbines in the original layout, which is
. The inclusive boundary shown with red line in
Figure 6 is set as the minimal convex polygon that covers all the turbines, and the exclusive boundary (the green line) is arbitrarily set to test the modelling capacity of the exclusive boundary of the framework. The choice of the inclusive boundary is to make sure the optimized wind farm occupies the same or a smaller area and the required cost of electrical cables and access roads that connect all turbines stays at the same level, so that the comparison of AEP with the original wind farm makes sense.
To find a good feasible initial design, the Heuristic Fill algorithm is applied in this wind farm, which obtains an initial design with
, as shown in
Figure 8.
Compared to the original wind farm, the design found by the Heuristic Fill algorithm obtains an impressive 1.72% increase of AEP (from 161.83 GWh to 164.61 GWh). Note that this increase is achieved by a deterministic filling process without any searching process, thus can be done in several seconds.
To show the performance of the proposed framework, multiple runs of Random Search with different settings of the optimization algorithm are carried out, i.e., optimization runs with different numbers of total evaluation number,
, and maximal step size,
. For each of these parameter combinations, 10 optimization runs are done to obtain the statistics. Cases starting from the original design (as shown in
Figure 6) and the initial design found by the Heuristic Fill algorithm (as shown in
Figure 8) are both tried. The results are summarized in
Table 2. Note that the percentages of AEP that increase in the optimized wind farm design compared to the original wind farm (161.83 GWh) are marked with underlines inside the parentheses, and the CPU time shown here is the mean value per run for 10 runs by a Python 3.6 implementation of the framework on a laptop with an Intel
® i5-2520M CPU @2.50 GHz.
As shown in
Table 2, allowing the optimization process to run longer, i.e., with a larger number of evaluations, generally obtains better results (see the last three rows in
Table 2). The other advantage for an optimization process is starting from a better initial design, as the results from the initial design obtained by the Heuristic Fill algorithm are much better than those from the original design using the same optimization setting (see the first and fourth rows of the results in
Table 2).
The maximal step size also has an effect on the results, as it controls the degree of change that can be made to the current best design in each step. As discussed in
Section 3.3, this parameter should be set large enough to explore the design space more thoroughly and thus find a better solution after a sufficient large number of evaluations. This is supported by the comparison of optimization runs with the same
, but different
, as shown in the second to fourth rows of
Table 2.
The best optimized design found by all the optimization runs summarized in
Table 2 is under the optimization setting:
,
, with the optimized AEP as 166.21 GWh, representing a 2.70% increase to the original wind farm design. This design is found by the Random Search algorithm starting from the initial design obtained by the Heuristic Fill algorithm, and shown in
Figure 9.
To better compare the performance of the original, initial, and optimized designs as shown in
Figure 6,
Figure 8 and
Figure 9, their gross and net AEP values are listed in
Table 3.
As
Table 3 shows, the initial design found by the Heuristic Fill algorithm has both higher gross AEP and higher net AEP than the original design. Although the wake loss is higher for the initial design than the original one (6.16% versus 4.67%), the larger increase (3.34%) of gross AEP thanks to the higher mean wind speed of the sites found by the Heuristic Fill algorithm compensates the higher wake loss and still yields a substantial increase (1.72%) of net AEP. Note that the higher wake loss of the initial design can also be seen from the layout shown in
Figure 8, as the turbines are placed much closer to each other than the original layout shown in
Figure 6.
Since the optimized design in
Figure 9 is obtained by the optimization run starting from the initial design in
Figure 8, we can also compare these two designs. Apparently, the optimization algorithm makes a small sacrifice in gross AEP, i.e., allowing the gross AEP to decrease by 0.28% from 175.42 GWh to 174.91 GWh, while decreasing the wake loss percentage from 6.16% to 4.97%. The combined effect allows the optimized design to gain a 0.97% increase of net AEP to the initial design (from 164.61 GWh to 166.21 GWh), representing a 2.70% increase of net AEP when compared to the original design (from 161.83 GWh to 166.21 GWh).
Examining the layout of the initial design in
Figure 8 and the layout of the optimized design in
Figure 9, we can see that the turbines are scattered away from each other while most of the turbines are still located at high elevation sites. This shows that the optimization algorithm tries to lower wake effects while not sacrifice too much on the gross AEP, as suggested by the net and gross AEP comparison. To show the performance of the framework in multiple runs, the evolution histories of the 10 runs under the optimization setting:
,
are shown in
Figure 10, which demonstrate the random nature of the RS algorithm.
As
Figure 10 shows, different runs of the optimization process yield different results. Thus, if it is possible, it is always advised to have multiple runs (10 or more) of the optimization process and use the best result. Also, it is shown for these 10 runs that the largest portion of the AEP increase is achieved in the first 2000 evaluations.
5. Comparison with Other Algorithms
To better show the effectiveness of the RS algorithm for wind farm design in complex terrain, we compare its performance with two widely used algorithms: Particle Swarm Optimization (PSO) and Genetic Algorithm (GA) [
33].
PSO is a population based meta-heuristic algorithm inspired by bird flocking, which maintains a population of solutions (called particles) and moves each particle in the design space according to the global best solution in the population and the local best solution found by each particle. In this study, the version of PSO used by Chowdhury et al. in [
34] is implemented in Python with the algorithm parameters set as recommended in
Table 4 of [
34]. Details of this algorithm are referred to in the paper [
34].
GA is also a nature inspired population based meta-heuristic algorithm for optimization problems. Various versions of GA have been applied to solve the wind farm layout optimization problem, most of which are binary coded [
33]. As a binary-coded GA makes restrictions on where to place turbines and thus limits the design space, we choose to implement a real-coded GA (RCGA) recently proposed by Chuang et al. [
35], which has no such restrictions. This version of RCGA was developed for constrained optimization based on three specially designed evolutionary operators, i.e., ranking selection, direction-based crossover, and dynamic random mutation, and showed a better performance than traditional versions of RCGA for a variety of benchmark constrained optimization problems [
35]. A Python version of this algorithm is implemented in this study using the parameters recommended by the authors of [
35]. Details of this algorithm can be found in [
35].
For the sake of simplicity, we consider the design optimization problem for the same wind farm as in the case study with only bounds on the design variables, i.e.,
and
coordinates of wind turbines. No constraints on wind resource, terrain parameters, and minimal distances are considered. The bounds are set as the boundary of the rectangle area shown in
Figure 6, i.e.,
and
. Following the recommendations in [
34,
35], the size of the population is set as 250 for both PSO and RCGA.
Two scenarios for setting the initial solution(s) are tested. In the random scenario, 250 initial layouts are generated randomly by putting 25 turbines randomly inside the bounds. These initial layouts are used in PSO and RCGA as the initial population, while the worst performing initial layout, i.e., the layout with lowest AEP, is used as the initial solution in RS.
As the initial solution(s) has influences on the optimization results obtained by meta-heuristics, there has been an effort on seeding good initial solution(s) for meta-heuristics in the field of wind farm layout optimization [
31]. We address this issue in the heuristic fill scenario. In this scenario, an initial layout is first obtained by using the Heuristic Fill algorithm described in
Section 3 with the minimal distance requirement set as four times of the rotor diameter. Then, a group of 124 layouts are generated by running RS 124 times with
and
from the initial layout found by Heuristic Fill. Thus, these 124 initial layouts have a higher or the same AEP as the one found by the Heuristic Fill, as they are improved better ones found by RS. After this process, we have 125 good initial layouts, which are then seeded in the initial populations of PSO and GA, while the remaining halves of the initial populations are filled with random layouts. In this way, the initial populations for both PSO and GA have some good quality initial solutions and some random initial solutions, thus they have a good degree of randomness, which is essential for the diversification. For RS, the worst performing layout among the 125 good initial layouts is used as the initial solution.
The performance of these three algorithms with a different number of evaluations (
) for both scenarios are summarized in
Table 4.
It is worth to note that in both scenarios, RS starts from the worst initial solution among the solutions seeded in the initial population for PSO and GA, thus with a disadvantage in terms of the quality of the initial solution(s). Despite this disadvantage, RS shows a much better performance than PSO and RCGA. As
Table 4 shows, RS with 10,000 evaluations obtains the best optimized layout in both scenarios. Compared with PSO and RCGA, RS with only 5000 evaluations largely outperforms PSO and RCGA with 50,000 evaluations (equivalent to 200 generations) in both scenarios, which clearly demonstrates the effectiveness of RS. To better visualize the difference between algorithms, the evolution histories of the best solutions in the different runs of PSO, RCGA, and RS are shown in
Figure 11.
Figure 11 shows that: (1) starting from good initial solutions makes PSO and RCGA converge to much better optimized solutions, while its benefit for RS is not so profound; (2) RCGA obtains better results than PSO after a sufficient number of evaluations (20,000); and (3) RS converges faster to a better solution than PSO and RCGA in both scenarios. Based on the results described above, it is natural to conclude that RS used in the current framework performs much better than PSO and RCGA for this case.
The best optimized design, which is found by RS with 10,000 evaluations in the random scenario, is shown in
Figure 12.
Without the limitation of inclusive and exclusive boundaries, the turbines in the optimized design in
Figure 12 are spread out in the whole rectangle area and mostly occupying high elevation sites. Note that these sites also have high mean wind speeds as shown in
Figure 1b. To place more turbines on the limited high elevation sites, some of the turbines are placed quite close (down to 170.44 m), which could cause problems on fatigue loads for certain turbines. Although the optimized wind farm has a much higher AEP (174.26 GWh), representing a 7.68% increase over the original wind farm, it should be interpreted with caution, as in one aspect, it occupies a much larger area and thus requires more investments on electrical cables and access roads, and in the other aspect, it places several turbines too close, thus it will have difficulty satisfying the requirements on fatigue loads.
6. Conclusions
Wind farm design in complex terrain is a crucial yet challenging task. In this work, we present an overall design optimization framework for tackling this task. This framework combines results from state-of-the-art wind resource assessment tools, such as WAsP CFD, a fast engineering wake model, and an advanced optimization algorithm, to solve the wind farm design optimization problem in complex terrain under various realistic constraints and requirements. This makes the framework a valuable tool that can be used by designers/developers who need to optimize wind farm designs in complex terrain under a real-life scenario.
While the framework in its default setting considers maximizing the total net AEP, its modular architecture makes it easy to be extended to consider other objective function(s). More constraints, requirements, and other optimization algorithms can also be easily implemented and added.
Other contributions of this work include: a terrain ruggedness index (TRI) to characterize the terrain feature and model constraints on the terrain ruggedness; and a fast and simple algorithm called Heuristic Fill to find good initial designs for wind farms in complex terrain, by using a deterministic process based on wind resource considerations and constraints.
The case study of a real wind farm in complex terrain demonstrates the effectiveness of the framework and the performance of proposed algorithms. An impressive increase of net AEP (up to 2.70%) is achieved by using the framework, while respecting realistic constraints on inclusive and exclusive boundaries, minimal mean wind speed, and maximal TRI, and minimal distance constraints between turbines. In comparison with two widely used algorithms (PSO and real-coded GA) for the same wind farm without any constraints, the Random Search algorithm also shows a much better performance in terms of convergence speed and optimization results. This of course demonstrates the advantages of the developed framework and proves the usefulness for wind farm designers/developers.
Although the wind farm design considered in the current framework concerns only the turbine layout, other design variables, such as number, hub height(s), and type(s) of turbines, foundations, access roads, and electrical systems, also play important roles for an overall design optimization of a wind farm. Our future works will investigate these problems and extend the framework in this direction.