Thursday, May 24, 2018

Using Artificial Intelligence to Design a Solar Farm

Everyone loves to maximize the return of investment (ROI). If you can effortlessly find a solution that pays a higher profit -- even only a few dollars more handsomely, why not? The problem is that, in many complicated engineering cases in the real world, such as designing a solar farm, we often don't know exactly what the optimal solutions are. We may know how to get some good solutions based on what textbooks or experts say, but no one in the world can be 100% sure that there aren't any better ones waiting to be discovered beyond the solution space that we have explored. As humans, we can easily get complacent and settled with the solutions that we feel good about, leaving the job (and the reward) of finding better solutions to another time or someone else.

Artificial intelligence (AI) is about to change all that. As design is essentially an evolution of solutions, AI techniques such as genetic algorithms (GA) are an excellent fit to the nature of many design problems and can generate a rich variety of competitive designs in the same way genetics does for biology (no two leaves are the same but they both work). These powerful tools have the potential to help people learn, design, and discover new things. In this article, I demonstrate how GA can be used to design a photovoltaic (PV) solar farm. As always, I first provide a short screencast video in which I used the daily output or profit as the objective function to speed up the animation so that you can see the evolution driven by GA. The actual assessments are based on using the annual output or profit as the objective function, presented in the text that follows the video. Note that the design process is still geared towards a single objective (i.e., the total output in kWh or the total profit in dollars over a given period of time). Design problems with multiple objectives will be covered later.


In GA, the solution depends largely on the choice of the objective function (or the fitness function), which specifies how the main goal is calculated. For example, if the main goal is to generate as much electricity as possible on a given piece of land without the concern of the cost of the solar panels, a design in which the solar panels are closely packed may be a good choice. On the other hand, if the main goal is to generate as much electricity as possible from each individual solar panel because of their high price, a design in which rows of solar panels are far away from one another would be a good choice. Unsurprisingly, in the case shown in the video, a single row of solar panels was found as the best solution. Aiming at maximizing the profit, the real-world problems always lie between these two extremes, which is why they must be solved using the principles of engineering design. The video above clearly illustrates the design evolution driven by GA in the three cases (the two extremes and an intermediate).

Figure 1. An Energy3D model of an existing solar farm in Massachusetts.
To test the usefulness of the GA implementation in Energy3D for solving real-world problems, I picked an existing solar farm in Massachusetts (Figure 1) to see if GA could find better solutions. A 3D model of the solar farm had been created in the Virtual Solar Grid based on the information shown on Google Maps and its annual output calculated using Energy3D. Because I couldn't be exactly sure about the tilt angle, I also tweaked it a bit manually and ensured that an optimal tilt angle for the array be chosen (I found it to be around 32° in this case). The existing solar farm has 4,542 solar panels, capable of generating 2,255 MWh of electricity each year, based on the analysis result of Energy3D. [I must declare here that the selection of this site was purely for the purpose of scientific research and any opinion expressed as a result of this research should be viewed as exploratory and should not be considered as any kind of evaluation of the existing solar farm and its designer(s). There might be other factors beyond my comprehension that caused a designer to choose a particular trade-off. The purpose of this article is to show that, if we know all the factors needed to be considered in such a design task, we can use AI to augment our intelligence, patience, and diligence.]

Figure 2. The results of 10 iterations.
Energy3D has a tool that allows the user to draw a polygon within which the solar farm should be designed. This polygon is marked by white lines. Using this tool, we can ensure that our solutions will always be confined to the specified area. I used this tool to set the boundary of the solar farm under design. This took care of an important spatial constraint and guaranteed that GA would always generate solutions on approximately the same land parcel as is situated by the existing solar farm.

For the objective function, we can select the total annual output, the average annual output of a solar panel, or the annual profit. I chose the annual profit and assumed that the generated electricity would sell for 22.5 cents per kWh (the 2018 average retail price in Massachusetts) and the daily cost of a solar panel (summing up the cost of maintenance, financing, and so on) would be 20 cents. I didn't know how accurate these ROI numbers would be. But let's just go with them for now. The annual profit is the total sale income minus the total operational cost. Qualitatively, we know that a higher electricity price and a lower operational cost would both favor using more solar panels whereas a lower electricity price and a higher operational cost would both favor using less solar panels. Finding the sweet spots in the middle requires quantitative analyses and comparisons of many different cases, which can be outsourced to AI.

Figure 3: The best design from 2,000 solutions
Figure 4: The second best design from 2,000 solutions.
In Energy3D, GA always starts with the current design as part of the first generation (so if you already have a good design, it will converge quickly). In order for GA not to inherit anything from the existing solar farm, I created an initial model that had only a rack with a few solar panels on it and a zero tilt angle. The size of the population was set to be 20. So at the beginning, this initial model would compete with 19 randomly generated solutions and was almost guaranteed to lose the chance to enter the next generation. In order to stop and check the results, I let GA run for only 10 generations. For convenience, let's call every 10 generations of GA evolution an iteration. Figure 2 shows that GA generated solutions below the supposed human performance in the first two iterations but quickly surpassed it after that. The solution kept improving but got stuck in iterations 5-7 and then it advanced again and stagnated again in iterations 8-10. This process could continue indefinitely, but I decided to terminate it after 10 iterations, or 100 generations. By this time, the software had generated and evaluated 2,000 solutions, which took a few hours as it had to run 2,000 annual simulations for thousands of solar panels.

The best solution (Figure 3) that emerged from these 2,000 generated solutions used 5,420 solar panels fixed at a tilt angle of 28.3° to generate 2,667 MWh per year and was about 16% better than the existing one based on the ROI model described above. The second best solution (Figure 4) used 4,670 solar panels fixed at a tilt angle of 38.6° to generate 2,340 MWh per year and was about 5.5% better than the existing one based on the ROI model. Note that if we use the average annual output per solar panel as the criterion, the second best solution would actually be better than the best one, but we know that the average panel output is not a good choice for the fitness function as it can result in an optimal solution with very few solar panels.

In conclusion, the generative design tools in Energy3D powered by AI can be used to search a large volume of the solution space and find a number of different solutions for the designer to pick and choose. The ability of AI to transcend human limitations in complex design is a significant application of AI and cannot be more exciting! We predict that future work will rely more and more on this power and today's students should be ready for the big time.

No comments: