Optimizing Wind Farm Layouts With Genetic Algorithms _____________ A Computer Science Paper Presented to Junior Science, Engineering and Humanities Symposium University of Missouri-St. Louis _____________ by Logan Gilbert Sophomore Camdenton High School P.O. Box 1409 Camdenton, MO 65020 August 18, 2010-February 10, 2011 Mr. Chris Reeves and Mrs. Kim Griggs Science Research Instructors Camdenton, MO 65020 1 NAME: HOME ADDRESS: SCHOOL: SPONSOR/TEACHER: TITLE: Logan Gilbert 285 Fox Ridge Road Montreal, MO 65591 Camdenton High School Mr. Christopher Reeves Optimizing Wind Farm Layouts With Genetic Algorithms As traditional sources of energy are becoming more expensive and less accessible, alternative energies are becoming an integral part of the energy infrastructure. One of these alternative sources is wind power, but its price advantage remains too insignificant to encourage large-scale development of wind farms in favor of coal mines and oil wells. The purpose of this study was to optimize the placement of a given number of wind turbines for maximum energy capture within a wind farm of a given area. Layouts were optimized through the use of genetic algorithms and were tested with a wind simulation program, similar to the work performed by Kusiak and Song (2009). It was found that traditional optimization techniques produce results which are very consistent even given varying initial conditions. 2 Contents Purposes 4 Hypotheses 5 Variables 6 Introduction 7 Method 8 Discussion of Results 11 Tables and Figures 12 Statistical Analyses 13 Future Studies and Applications 16 Acknowledgements 17 Bibliography 18 3 Purposes The purpose of this study was to: 1. Determine the consistency of traditional algorithms in wind turbine placement. 2. Apply a genetic algorithm to the problem of wind turbine placement. 3. Compare the efficiency and effectiveness of the traditional algorithm and the genetic algorithm. 4 Hypotheses It was hypothesized that: 1. The traditional algorithm would generate inconsistent results. 2. The genetic algorithm would generate consistent results. 3. The genetic algorithm would reach a solution similar to the best solution reached by the traditional algorithm but in fewer iterations. 5 Variables 1. The independent variable in this study was the type of algorithm used to place the wind turbines. 2. The dependent variables were the energy produced by the most productive wind farm layout achieved and the number of iterations it took to reach this layout. 3. The controlled variables were the virtual landscape on which the turbines were being placed and the software used to measure the resulting energy produced. 6 Introduction The United States accounts for about 19% of all carbon dioxide emissions produced around the world (EPA, 2008). However, the United States contains only about 4% of the world’s people. This disproportionate burning of fossil fuels cannot be sustained forever. Alternative sources of energy must become an integral part of our energy infrastructure. Wind power is readily accessible everywhere but requires large amounts of space to be useful on a commercial scale. One way to make wind power more practical is to make wind farms more efficient, thus reducing the size of a commercially viable farm. Inefficiencies exist in each step of the power production process. Still, the overall power production can be increased without tediously examining turbine designs, analyzing losses in transport, or finding only the windiest sites. Instead, one can improve the process by which wind turbines are originally placed in the field. The current process involves monitoring wind conditions for about a year and then feeding the information gathered into wind farm software. The software uses an optimization technique to find the optimal placements for the wind turbines. However, the optimization technique used is taken for granted. Many other optimization techniques exist, including an evolutionbased “genetic” algorithm. It is the purpose of this study to examine the effectiveness of the genetic algorithm on wind turbine placement because it has been successful in many other contexts (Koza, 2003). 7 Method Traditional Algorithm: After contacting Chris Ziesler and Peter Young, engineers at Wind Capital Group, it was decided to use openWind as the software which would provide the traditional algorithm and would generate energy capture reports for all wind farm layouts. openWind’s optimizer follows the following process: The optimizer attempts to find a new legal position for each turbine. If the turbine made a good move last iteration, it will attempt the same direction this time. Otherwise, it adds a gaussianly distributed random value to the turbine’s x and y coordinates. If the new position is not a legal position or it obstructs another turbine’s new position, then a new random change is made until all turbines have new legal positions (turbines cannot be placed too close to one another or to various land features). The optimizer then calculates the captured energy (including wake effects) and accepts the new layout as a whole if the captured energy is greater than the energy captured by the turbines in their previous positions. The optimizer then repeats this process. If, however, the new layout was not accepted as a whole, then the optimizer looks at each turbine individually. If a particular turbine captured less than its benchmark energy, then the change is discarded and the turbine is returned to its previous position. The optimizer then sums the total captured energies from the turbines and accepts the new positions and energies as the new benchmark energies and returns to the beginning if it is equal to or greater than the benchmark energy. If not, then the changes are discarded and the optimizer returns to the beginning. (adapted from the openWind website) 8 To test openWind’s algorithm, 7 tests of its optimizer were run. For each test, openWind generated an initial random layout of windmills in a simulated plot of land. Based on industry norms as described by Wind Capital, the turbines were constrained to a minimum separation of 3 rotor diameters apart along the y axis and 10 rotor diameters apart along the x axis. They were also prevented from being placed too closely to roads, power lines, and other land features. Its optimizer was then run until 100 iterations of the algorithm no longer yielded at least a 1% increase in energy captured by the windmills. This typically took about 4500 iterations. After completion of the optimization process, openWind generated an energy capture report detailing the energy captured by each turbine and by the layout as a whole, which allowed analysis of supposedly optimal turbine placements. Genetic Algorithm: After reviewing the appropriate literature and researching various optimization techniques, it was determined that a genetic algorithm would generate results competitive with the traditional algorithm. This is because turbines that are placed in locally optimal locations have no way to move to better local maxima or to the global maximum; they remain stuck in the local maxima. However, a genetic algorithm approach avoids this problem by combining aspects of many different layouts. As long as one of the turbines in one of the many layouts is originally placed close to the global maximum, it is very likely that the wind farm layout produced in the end will also have a turbine stationed in that position. 9 Genetic algorithms follow an evolutionary process: A large number of random “individuals” (in this case, wind farm layouts) are generated. These individuals are then combined using a method known as crossover: the coordinates of one turbine in Layout 1 might be swapped with the coordinates of another turbine in Layout 17. This allows good turbine positions to be spread to other layout. After crossover, the layouts are mutated: the coordinates of some of the turbines are randomly changed by a small amount. Mutation prevents premature conversion on a solution and adds diversity to the population of layouts. Finally, the layouts are tested and the best are selected to go through the cycle again. It was decided that the Evolving Objects codebase would provide this functionality. However, the Evolving Objects program needed to be interfaced with openWind so that the layouts produced by the genetic algorithm could be tested. Evolving Objects Specifics: Based on prior research, it was determined that the initial set of wind farms would contain 500 random layouts. The least productive 10% of the wind farms would be discarded from the evolutionary process after each testing in openWind. The crossover operator would randomly select pairs of layouts for crossover with probability .8. Mutation of a turbine’s x or y coordinate would also be done randomly with probability .2. 10 Discussion of Results Traditional Algorithm: It was found that the traditional algorithm produced layouts with very consistent power production capacities (p=6.64E-23). Additionally, variances among individual turbine power outputs and among end turbine locations were negligible. Among turbines that were in the same relative locations in their respective trials, a small variance in position was not correlated with large amounts of power produced by the turbine. That is, the most productive turbines were not also the turbines that were the most precisely placed. This suggests that openWind cannot place turbines in the windiest locations more accurately or consistently than it can place turbines in somewhat windy locations. This reinforces the idea that a genetic algorithm- based optimizer may have the ability to access wind energy better than the traditional method. See figure 1. Genetic Algorithm: Work on interfacing EO and openWind is underway to further determine the differences between the efficiency and effectiveness of the two optimizers. 11 Tables and Figures Figure 1: Turbine productivity and variance in position 12 Statistical Analyses Table 1: Wind Farm Layout Output Anova: Single Factor SUMMARY Groups Net Yield (GWH) Array Efficiency ANOVA Source of Variation Between Groups Within Groups Total Count 7 7 SS 1643.99265 0.424152357 Sum Average Variance 540.442234 77.20603 0.066567 692.152145 98.87888 0.004125 df MS F P-value F crit 1 1643.993 46511.38 6.64E-23 4.747225 12 0.035346 1644.416802 13 13 Table 2: Individual Turbine Output Anova: Single Factor SUMMARY Groups Row 1 Row 2 Row 3 Row 4 Row 5 Row 6 Row 7 Row 8 Row 9 Row 10 Row 11 Row 12 Row 13 Row 14 Row 15 Row 16 Row 17 Row 18 Row 19 Count 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 ANOVA Source of Variation Between Groups Within Groups SS 6578896 2644582 Total 9223479 Sum 27190.09 27300.36 27291.39 27218.43 28466.87 27679.79 28053.78 27963.38 27703.2 27681.98 27791.27 27715.52 28404.57 30541.04 33811.46 28470.86 28047.69 28795.13 30392.86 df Average 3884.299 3900.052 3898.77 3888.347 4066.696 3954.256 4007.682 3994.769 3957.6 3954.569 3970.181 3959.361 4057.796 4363.006 4830.209 4067.266 4006.813 4113.589 4341.837 Variance 39.75615 270.9309 287.5741 115.9192 37421.33 9283.747 24227.33 15411.52 975.3354 286.9464 1012.845 1617.06 62777.42 171758.2 7868.696 64868.22 1548.141 16294.42 24698.36 MS F P-value F crit 18 365494.2 15.75536 4.26E-23 1.695025 114 23198.09 132 14 Table 3: Individual Turbine Placement Anova: Single Factor Output SUMMARY Groups Row 1 Row 2 Row 3 Row 4 Row 5 Row 6 Row 7 Row 8 Row 9 Row 10 Row 11 Row 12 Row 13 Row 14 Row 15 Row 16 Row 17 Row 18 Row 19 Count 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 ANOVA Source of Variation Between Groups Within Groups SS 1348.636 50.83742 Total 1399.473 Sum 39221.71 39214.96 39209.17 39204.09 39201.59 39199.75 39198.25 39196.21 39194.84 39193.9 39192.63 39190.77 39186.42 39181.29 39178.75 39173.01 39158.85 39141.67 39134.05 df Average 5603.102 5602.137 5601.31 5600.584 5600.227 5599.965 5599.749 5599.459 5599.263 5599.129 5598.947 5598.682 5598.06 5597.328 5596.964 5596.145 5594.122 5591.667 5590.579 Variance 0.343049 0.006647 0.494643 0.101038 0.125483 0.055211 0.031658 0.062909 0.026902 0.012279 0.080453 0.103669 0.262022 0.246007 0.000969 0.184917 2.294894 0.737267 3.302886 MS F P-value F crit 18 74.92421 168.0133 3.23E-73 1.695025 114 0.445942 132 15 Future Studies and Applications This research could provide a basis for future studies that would: 1. Use different selection, crossover, and/or mutation operators. 2. Test the effectiveness of other optimization techniques at placing windmills. 3. Compare optimization techniques with respect to computing power used. 4. Compare a generalized version of openWind’s algorithm to the genetic algorithm in other problem areas. This research could also be used in industry to improve wind farm layouts and awareness of the impact of a single turbine on an entire wind farm, allowing more energy to be produced per acre of land used. 16 Acknowledgments Dr. Lee Spector, Professor of Computer Science at Hampshire College - Inspired the project and guided its beginnings Mr. Chris Ziesler and Mr. Peter Young, Engineers at Wind Capital Group - Provided insightful information about the industry Mr. Chris Reeves and Mrs. Kim Griggs, Science Research Instructors - Provided support and guidance throughout the year Mrs. Sarah Rolf - Made science research seem like a great alternative to grammar Mom and Dad - Motivated me to get things done 17 Bibliography Emami, P. Noghreh (2010). “New Approach on Optimization in Placement of Wind Turbines Within Wind Farm by Genetic Algorithms.” Renewable Energy 35: 1559-1564. Retrieved September 28, 2010 from www.elsevier..com/locate/renene. J.Castro Mora et al. (2007). “An Evolutive Algorithm for Wind Farm Optimal Design.” Neurocomputing 70: 2651-2658. Retrieved September 28, 2010 from www.sciencedirect.com. Koza, John (2003). “Human-Competitive Applications of Genetic Programming.” Advances in Evolutionary Computing. Kusiak, Andrew, and Zhe Song (2010). “Design of Wind Farm Layout for Maximum Wind Energy Capture.” Renewable Energy 35: 685-694. Retrieved September 28, 2010 from www.elsevier.com/locate/renene. K. Matous et al. (2000). “Applying Genetic Algorithms to Selected Topics Commonly Encountered in Engineering Practice.” Computer Methods in Applied Mechanics and Engineering 190: 1629-1650. Retrieved September 28, 2010 from www.elsevier.com/locate/cma. Poli, Riccardo, and W.B. Langdon (2010). “On the Search Properties of Different Crossover Operators in Genetic Programming.” Proceedings of Genetic Programming. Retrieved September 16, 2010 from cswww.essex.ac.uk/staff/poli/papers/Poli-GP1998.pdf. S.A. Grady et al. (2005). “Placement of Wind Turbines Using Genetic Algorithms.” Renewable Energy 30: 259-270. Retrieved September 28, 2010 from www.sciencedirect.com. 18