Predicting a performance of a wind turbine through AI software

For this project, we will be designing a model of a wind turbine, using popsicle sticks, hot glue, and paper. Then we will be designing a code to predict how fast it spins, and test it out.
Kavyaa Patel Shrika Nirmal
Grade 8

Presentation

No video provided

Hypothesis

In our study, we are exploring the idea that the energy a wind turbine produces is closely linked to how fast the wind is blowing. We believe that as the wind speed increases, the energy generated by the wind turbine will also increase. To understand this relationship better, we plan to use a method called linear regression. This method involves plotting wind speed and energy production data on a graph and drawing a straight line that best shows how these two things are connected. We expect that this line will help us predict the amount of energy a wind turbine will produce at different wind speeds. Linear regression is a good choice for our study because it's not too complex and can be easily done using computer programming, like with the Python language. While our main goal is to figure out the link between wind speed and wind turbine energy, we also see this as a great opportunity to learn more about how math and science can be used in real-world situations.

Research

Model Used for AI Prediction:

Linear regression is a method used to predict one value based on another, similar to forecasting a game score based on practice hours. In your project, it's used to predict the power output of a wind turbine from the wind speed. The first step is collecting data; you need to know the wind speeds and corresponding power outputs of the wind turbine, akin to having a record of practice hours and game scores. Once you have this data, you plot it on a graph, with wind speed on one axis (x-axis) and power output on the other (y-axis). Each point on this graph represents a specific wind speed and the power output it produced. Linear regression then comes into play to find the best straight line that passes through these points, serving as your prediction model. This is akin to drawing a straight line through your game scores to estimate future scores based on your practice hours. To implement this in Python 3.11, start by installing necessary libraries like `matplotlib` for plotting graphs and `scikit-learn` for linear regression, using the command `pip install matplotlib scikit-learn`. Then, in your Python program, import these libraries. Prepare your data by creating lists of wind speeds and corresponding power outputs. With this data, create a linear regression model using `sklearn. linear_model.LinearRegression` and train it by fitting your data into the model. This training process lets the model learn from your data. Once trained, the model can make predictions, like estimating the power output at a given wind speed. Finally, visualize your results by plotting the data points and the prediction line on a graph, using `matplotlib` to show the relationship between wind speed and power output and how well your model predicts this relationship.

Variables

Manipulated Variable: The Code

In this experiment, the primary element that you change or manipulate is the code – specifically, the linear regression code in your Python program. This manipulation involves tweaking and adjusting the code to observe its impact on the performance of the AI model. The focus is on seeing whether changes in the code can enhance or diminish the AI's ability to predict the wind turbine's power output accurately. By modifying different aspects of the linear regression algorithm, such as the parameters or the way the model processes data, you can explore how these alterations affect the model's prediction capabilities.

Responding Variable: Prediction Accuracy

The responding variable in this experiment is the accuracy of the AI's predictions. This is what you measure and analyze in response to the changes made to the linear regression code. The goal is to determine how accurately the AI software predicts the power produced by the wind turbine at various wind speeds. To assess this, you'll compare the AI's predicted power output against the actual power output recorded during the experiment. This comparison will reveal how close or far off the AI's predictions are, indicating the effectiveness of the code modifications.

Controlled Variables: 

Wind turbine Model, Wind Speeds, and Measurement Methods

For the experiment to yield reliable results, certain variables need to be controlled. Firstly, the same wind turbine model is used throughout the experiment. This wind turbine, built from craft supplies, remains consistent in every test to ensure that any variation in prediction accuracy is due to the code changes, not differences in the wind turbine's design or condition. Secondly, the wind speeds are controlled. While these speeds will vary to test the AI's predictions across different scenarios, each specific wind speed used in a test is consistent and controlled. Lastly, the methods used to measure wind speed and the wind turbine's power output are standardized. Keeping these measurement techniques uniform throughout the experiment ensures that the data collected is accurate and comparable across all tests. These controlled variables help maintain the experiment's integrity, ensuring that the focus remains solely on the impact of the manipulated variable – the linear regression code.

 

 

Procedure

We started our wind turbine experiment by creating a rough model using popsicle sticks, which helped us figure out how to make it as stable as possible. Once we were satisfied with that, we proceeded to construct a more refined version of the wind turbine paying extra attention to the structure and the blades. The top part was particularly tricky, but after some effort, we got it right. Next, we conducted a preliminary test which turned out successful, giving us the green light to move on to the main experiment. For the actual testing, Kavyaa, who was in charge of measuring the distance from the fan to the wind turbine and then turning on the fan, while Shrika was ready with the camera to record everything in slow motion. This step was crucial because it allowed us to capture the blade rotations at each fan speed accurately. We then had to slow down the video footage in Adobe to a quarter of its original speed, ensuring that we could count every rotation precisely. The following step involved a bit of a challenge; we had to figure out the fan's spin rate and airflow at different settings. This required us to brush up on our coding skills. We watched several tutorial videos to aid our memory on how to input this data into the code. Armed with predictions from our linear regression model, we then put our hypothesis to the test with two fans, keen to see if our AI-powered estimations would hold up under these new conditions.

 

Observations

In our project, we were curious to see how the speed of the wind affects how much energy the wind turbine can make. We thought that if the wind blew faster, the wind turbine would make more energy, which we would measure by counting how many times the blades spun around. We used a math method called linear regression to predict how many times the wind turbine would spin at different speeds of the fan. This method helps guess one thing based on another thing that's related to it. We collected some initial data with our fan at four different speeds: ECO (0.5 m/s), Low (1.0 m/s), Medium (2.05 m/s), and High (4.98 m/s), and we wrote down the number of times the wind turbine spun for each of these speeds. Then, we made a graph on the computer with a red line that showed us how the number of spins changed with the wind speed. The line went up, which meant the wind turbine spun more when the wind was faster, just like we thought it would. After the computer made its guesses, we tried the experiment with two fans blowing at once. We looked to see if the computer's guesses were close to what actually happened. The computer guessed how many times the wind turbine would spin at fan speeds like 1 m/s or 10 m/s, and we rounded these numbers to compare them more easily. When we did the actual test, we found out that the wind turbine spun a little more than what the computer guessed each time. This showed us that the computer was pretty good at making guesses, but it didn't guess high enough. We thought this might be because of how we measured the wind or counted the spins, or maybe the computer program just wasn't perfect. But even with these little mistakes, we could see that our idea was right: the wind turbine does spin more when the wind is stronger. We learned a lot about how we can use math and computers to figure out things in real life, like how much energy a wind turbine can make.

 

Analysis

Starting with the data collected on the number of rotations at various fan speeds, I noticed a proportional relationship. As the wind speed increased from ECO to High, the number of rotations rose from 55 to 121. The increments weren't uniform, though, with the jump from Low to Medium resulting in a smaller increase in rotations compared to the other intervals. This could indicate a non-linear relationship or varying efficiency at different speeds. The AI Predicted Graph provided a visual representation of this relationship. The red linear regression line plotted through the data points showed a positive correlation between wind speed and blade rotation speed. The line's trajectory suggested a steady increase in rotations with wind speed, but the actual data points for Medium and High speeds seemed to sit slightly below the prediction line. This might imply that the model overestimated the efficiency at higher speeds, or that there were external factors at play. The bottom section of the photo showed predicted values from the AI model alongside actual experimental results, this time using two fans. Here, the model's predictions were systematically lower than the observed rotations. This was particularly evident at the highest speed tested, where the model estimated 117.2 rotations, and we recorded 137. Such a difference suggested that the effect of doubling the wind sources was not linear, and perhaps the interaction between the airflow from the two fans created a greater than expected increase in rotational speed. From a detailed standpoint, this variance between the predicted and actual results could stem from a few sources. The linearity assumed in the AI model might not fully capture the complexities of wind dynamics at different speeds, especially when considering the effect of multiple wind sources. Moreover, the method of counting rotations, particularly at high speeds, might be susceptible to human error or limitations in the video playback resolution. Another factor to consider is the construction of the wind turbine itself. The modifications we made, such as using lighter materials for the blades or stabilizing the base with hot glue, would have altered the wind turbine's responsiveness to wind. These alterations were necessary to correct initial design flaws, but they also introduced new variables that the AI model couldn't have accounted for.

Conclusion

Reflecting on the data and the entire process of our wind turbine's project, I can conclude that our experiment has been a valuable learning experience. Our initial hypothesis, which posited that wind speed positively affects the number of rotations of a wind turbine's blades, was largely supported by the results. The data showed a clear trend: as the wind speed increased, so did the rotational output, which indicates a successful application of the linear regression model to predict energy production. The AI Predicted Graph and our subsequent experiment with two fans highlighted the model's utility and its limitations. While the AI predictions provided a good baseline, the actual experiments yielded higher rotation counts than predicted. This discrepancy led me to appreciate the complexities involved in modeling real-world phenomena. Factors such as air flow interaction, mechanical efficiency at various speeds, and the physical modifications we made to our windmill model could all have contributed to the differences observed between predicted and actual outcomes. In conclusion, our experiment has not only reinforced the theoretical understanding of the relationship between wind speed and energy production but has also underscored the importance of adaptability and careful consideration of variables in scientific modeling. The insights gained will be invaluable for future projects, and have certainly deepened my appreciation for the meticulous nature of experimental science.

Application

This wind turbine project helps us understand how wind can be used to generate electricity, which is very important for the world around us. Wind is a natural resource that is available almost everywhere and does not harm the environment. By learning how wind turbines work and how they can turn wind into energy, we can see the potential for using wind power to create clean, renewable energy. This means we can produce electricity in a way that doesn't deplete the Earth's resources or cause pollution, making it a smart choice for generating power now and in the future. In our project, we used Artificial Intelligence (AI) to predict how many times the wind turbine blades would spin at different wind speeds. This AI component is like a smart computer program that looks at the information we give it—like how fast the wind is—and then makes a guess about how the wind turbinen will react. In the real world, AI like this can be super useful in many ways. For example, energy companies that use wind turbine to generate electricity could use AI to predict how much power they'll be able to produce based on the forecasted wind speeds. This helps them plan better and ensure there's enough electricity for everyone. Also, engineers could use AI to design a better wind turbine. By predicting how different designs respond to various wind speeds, they can make windmills that work more efficiently and last longer. This means we could get more energy from the wind, which is great for the environment and can help reduce our reliance on fossil fuels.

Sources Of Error

- On our Good copy of the wind turbine, we initially used cut plastic cups for our blades, but it turned out to be too heavy for the wind to move, resulting in the wind turbine not spinning. So we ended up using a lighter material, which was paper (and it worked).

-The base was not stable, which meant that every time the wind would hit the wind turbine, the structure would rock back and forth. To fix that we ended up adding hot glue to the base, in the gaps to make it even and pressed it down on parchment paper.

-the skewer to which the head of the wind turbine was attached to kept falling down, so we had to take the bottom of a styrofoam cup and cut 3/4 of it to help the skewer balance.

-The next problem we ran into was the wind turbine blades blowing back when the air blew it. To fix this error, we put a blob of hot glue behind the wind turbine to restrict it from blowing back.

 

Citations

Research:  used GRAMMARLY

https://www.ibm.com/topics/linear-regression

https://www.statisticssolutions.com/free-resources/directory-of-statistical-analyses/what-is-linear-regression/

https://www.youtube.com/watch?v=HN0GxOQMzME&ab_channel=TechnoKriArt

Making the Windmill blade:

https://www.youtube.com/watch?v=5AK3fKEafCg

Coding:

-- https://youtu.be/WWwG2uh4OUE?feature=shared

- Chrome extension-Python Shell

https://www.youtube.com/watch?v=B_u38QwW6fc&ab_channel=Lu%27sTechSource

https://www.youtube.com/watch?v=B_u38QwW6fc&ab_channel=Lu%27sTechSource

https://www.youtube.com/watch?v=H1elmMBnykA&ab_channel=DerekBanas

https://www.youtube.com/watch?v=UO98lJQ3QGI&ab_channel=CoreySchafer

Notes and understanding from all sites:

Understanding the Code:

Importing Libraries
from sklearn.linear_model import Linear Regression: This line imports the Linear Regression model from the scikit-learn library, which is a tool for performing various types of data analysis and machine learning tasks.
Import matplotlib.pyplot as plt: This imports matplotlib's pyplot, a library used for creating graphs and charts, so you can visually see the relationship between your variables.
 

Preparing the Data
wind_speeds and rotation_speeds: These lists are your data. wind_speeds might represent how fast the wind is blowing, and rotation_speeds is how fast your windmill's blades are spinning in response to those wind speeds. This is sample data, and in a real experiment, you'd replace these numbers with your actual measurements.
X = [[x] for x in wind_speeds]: This line reshapes your wind speeds data into a format that the linear regression model can understand. It's like rearranging the data into a table where each wind speed is a separate row.
y = rotation_speeds: This sets up your blade rotation speeds as the output you're trying to predict.
 

Creating and Training the Model
model = LinearRegression(): Here, you're creating a new linear regression model. Think of it like you're setting up a new tool that's going to help you make predictions.
model.fit(X, y): With this line, you're telling your model to learn from your data. It looks at the wind speeds and corresponding rotation speeds and tries to understand the relationship between them.
 

Making Predictions
predicted_speed = model.predict([[7]]): After training the model, you can ask it to predict what the blade rotation speed would be for a new wind speed (like 7 meters per second). The model uses what it learned from your data to make this prediction.
print(...): This line shows you the predicted rotation speed for a wind speed of 7 meters per second.
 

Plotting the Results (Optional)
The last few lines (plt.scatter(...) and plt.plot(...)) are for creating a graph. plt.scatter plots each of your actual data points on the graph, and plt.plot draws the line that represents your model's predictions. This helps you see how well your model's predictions match up with the real data.
plt.xlabel(...), plt.ylabel(...), and plt.title(...): These lines label the x-axis, y-axis, and give a title to your graph for clarity.

 

Acknowledgement

We acknowledge our parents who supported us throughout now matter what. We acknowledge all the sites and citations we used as well as apps. We acknowledge my teacher who coordinated this science fair and guided us throughout.