Wind Power

Renewable energy such as wind power depends on weather systems that may not be synchronized with demand profiles. Wind and solar power is not dispatchable, meaning that generation depends on external environmental conditions that may be highly variable. It is important to know the expected power production from renewable energy so that backup power generation or energy storage can provide any shortfall between generation and demand.

Dispatchable power sources can be turned on by the grid operators. These include fast dispatchable power such as hydroelectric plants that can reach full output in less than a minute. Base-load nuclear plants require require hours or days to cycle off and then back on. Natural gas plants can reach full capacity within minutes. As the fraction of renewable power generation increases, it is important to know the anticipated power generation so that dispatchable sources can be scheduled to start when there is an increase in power demand or sudden decrease in renewable generation.

Objective: Develop a prediction of the wind power (kW) from prior wind speed (m/s), prior wind direction (degrees), and prior wind power (kW). Rank the most important factors from most important to least important. Randomly select values that split the data into a train (80%) and test (20%) set. Take two approaches. In the first approach, use Gradient Boosting (XGBoost) and a Neural Network (Deep Learning). Use a single row of measurements to predict the wind power 10 minutes ahead. In the second approach, use a Recurrent Neural Network (LSTM). Use a window of 60 minutes of prior data to predict the wind power 10 minutes ahead. Discuss the performance of each with the Mean Absolute Error (MAE) for predicting wind power in the training and test set. Submit source code and a summary memo (max 2 pages) of your results.

Regression: Use 3 regression methods. Regression methods are:

Data: Data for a 3.6 MW wind turbine in Turkey is available for 1 year in 10 minute intervals.

import pandas as pd
url = 'http://apmonitor.com/pds/uploads/Main/wind.txt'
data = pd.read_csv(url)
data.head()
DataDescription
TimeTimestamp of the measurements taken every 10 minutes for 1 year
DirectionAngle of the wind turbine in degrees
SpeedWind speed in meters/sec
PowerElectrical power produced by the wind turbine (3600 kW max)

The data set has bad data so data visualization and exploration are needed to first cleanse the data set. There are time periods where the wind turbine produces no power because of scheduled maintenance or inspection.

The TCLab Data Science modules 2-6 (Import, Analyze, Visualize, Prepare Data, Regression) are available as a template for analyzing and performing the regression. There are visualization and analysis notebooks on Kaggle such as Wind Power Curve Modeling that give additional insight on wind power predictions.

References

Solutions


Generative AI Learning

Use these prompts to test your understanding after completing the case study. Direct the AI — the baselines and the honesty checks are yours.

"Quiz me with 5 questions, one at a time, on the wind power forecasting case study: why MAE is reported and how it differs from RMSE in penalizing large misses, what the persistence forecast (predict the last observed power) is and why any 10-minute-ahead model must beat it to matter, why prior power is expected to dominate feature importance at this horizon while wind direction may matter little, how the LSTM's 60-minute window differs from the single-row XGBoost and neural network inputs, and what bad data to expect in a year of 10-minute SCADA records (negative power, curtailment plateaus, frozen sensors). Grade my answers and list my misconceptions."
"My results: XGBoost MAE {value} kW, neural network MAE {value} kW, LSTM MAE {value} kW on the test set. Before you congratulate anything: make me compute the persistence-forecast MAE on the same test set and report it to you. Then interrogate the comparison — did the extra complexity of the LSTM buy anything over persistence and over single-row models at this 10-minute horizon, is my feature-importance ranking consistent with that answer, and at what forecast horizon would you expect the window-based model to start winning? Push me to defend every claim with a number."

Tip: Pretrained time-series foundation models now produce zero-shot forecasts of exactly this kind of series — worth knowing they exist, and worth knowing that they are judged the same way you are judged here: against the persistence baseline, on honest test data. The turbine power curve (power vs wind speed) is your physical sanity check for the feature-importance ranking.

What to Turn In

Submit your source code and a summary memo (PDF, maximum 2 pages) that curates your results into a demonstration of what you learned. You may use Generative AI to help write the memo, but you must guide it to the correct visualizations, justifications, and assumptions. Answer these questions:

  1. Report test MAE for all four forecasters in one table: persistence baseline, XGBoost, neural network, and LSTM. State your data cleansing (what counted as bad power data and how much you removed).
  2. Include the feature-importance ranking with the method used, and reconcile it with the turbine physics (power curve) — does prior power dominating make sense at 10 minutes ahead?
  3. Include one test-set time-series plot overlaying measured power and your best forecaster through a period with a large wind change. Where does the forecast lag reality, and why?
  4. From the interrogation prompt: did the LSTM justify its complexity here? Answer with numbers and one sentence of engineering judgment.

Course on GitHub

Exams

Data Engineering

Agentic Engineering

Classification

Supervised Learning

Unsupervised Learning

Regression

Time-Series

Computer Vision

Applications

3D Print 📈📊
Automotive Data 📈📊
Auto Efficiency 📈📊👁️
Battery Life⏱️📈
Bit Classification 👁️📊
Facial Recognition 👁️📊
Glass Type⏱️📈
Hand Tracking 👁️
OT Cybersecurity ⏱️📊
Batteries 📊
Polymers 📈
Road Detection 👁️📊
Safety 👁️
Soils 👁️📊
Sonar 📊
Texture 👁️📊
Wind Power ⏱️📈
📈=Regression
📊=Classification
⏱️=Time Series
👁️=Computer Vision
🎧=Audio

TCLab Project

Related Courses

Admin