Skip to content

DeTreMusketerer/Adaptive-Data-Analysis-Applied-to-Wind-Power-Forecasting

Repository files navigation

Adaptive-Data-Analysis-Applied-to-Wind-Power-Forecasting

This GitHub repository contains the scripts for the master's thesis on "Adaptive Data Analysis Applied to Wind Power Forecasting" made by graduate students in Mathematical-Engineering at Aalborg University. The thesis has been made in cooperation with Energinet who also supplied the data used for the numerical experiments.

Authors: Andreas Anton Andersen, Martin Voigt Vejling, and Morten Stig Kaaber

E-Mails: andreasantonandersen@gmail.com, martin.vejling@gmail.com, ahkaaber@gmail.com

In this work time series data is forecasted using autoregressive models, recurrent neural networks, and hybrid decomposition based model combining adaptive data analysis with recurrent neural networks. The forecasting horizon is one hour ahead based on using the wind power production history. The recurrent neural network used for forecasting is a long short-term memory neural network. The adaptive data analysis methods considered in the thesis are

Dependencies

This project is created with Python 3.9

Dependencies:

matplotlib 3.4.3
numpy 1.21.2
scipy 1.7.1
pytorch 1.10
EMD-signal 1.2.3

Data

  • Data/
    • DK1-1_Capacity.npy
    • test_data.npy
    • training_data.npy
    • test_mesh_q288.npy
    • test_mesh_not_realtime.npy
    • training_mesh_q288.npy
    • train_mesh_not_realtime.npy
    • subtraining_data.npy
    • subtraining_mesh_not_realtime.npy
    • validation_data.npy
    • validation_mesh_not_realtime.npy
    • EMD_full_training_data.npy
    • EMD_full_test_data.npy

Modules

HilberHuangTransform.py - Module with functionality used to calculate instantaneous frequency and amplitude using the Hilbert-Huang transform.

NN_module.py - Module containing functionality used when training and testing neural networks.

NonlinearMatchingPursuit.py - Module containing the functionality used to make the NMP-EMD and FFT-NMP-EMD.

PDE_EMD.py - Module containing the functionality used to make the PDE-EMD.

PerformanceMeasures.py - Module containing functions used to calculate decomposition performance measures.

sVARMAX_Module.py - Module containing the main class for estimation and forecasting with s-ARIMAX and s-VARIMAX models.

Scripts

LSTM_Validation.py - Script used to train an LSTM model using early stopping.

LSTM_Test.py - Script used to train and evaluate a LSTM model.

EMD_decomposition.py - Script used to decompose the wind power data using the EMD method.

NMP_EMD_decomposition.py - Script used to decompose the wind power data using the FFT-NMP-EMD or NMP-EMD method.

EMD_LSTM_Validation.py - Script used to train an EMD-LSTM, FFT-NMP-EMD-LSTM, or NMP-EMD-LSTM model using early stopping.

EMD_LSTM_Test.py - Script used to train and evaluate a EMD-LSTM, FFT-NMP-EMD-LSTM, or NMP-EMD-LSTM model.

PDE_EMD_decomposition.py - Script used to decompose the wind power data using the PDE-EMD method.

PDE_EMD_LSTM_Validation.py - Script used to train a PDE-EMD-LSTM model using early stopping.

PDE_EMD_LSTM_Test.py - Script used to train and evaluate a PDE-EMD-LSTM model.

Forecast.py - Script used to create a forecast for the oddline EMD-LSTM and the PDE-EMD-LSTM.

KDE.py - Script used to calculate the kernel density estimate of the errors for the implemented models.

PDE_EMD_unification.py - The unification procedure for the PDE-EMD.

PDE_EMD_unified_window_data_analysis.py - Module used to analyse the PDE-EMD before unification.

PDE_EMD_window_data_analysis.py - Module used to analyse the PDE-EMD after unification.

Percentile.py - Module containing functionality used to calculate a percentile error for the different forecasting models.

Usage

To use this GitHub repository follow these steps:

  1. Install Python with the dependencies stated in the Dependencies section.
  2. Make decompositions using the decomposition scripts.
  3. Run early stopping for a model using the validation scripts.
  4. Train and test models using the test scripts.

Make sure to set the parameters etc. in the scripts. Note that the neural network models are compatible with GPU computing if CUDA is available and we recommend using a GPU for these computations.

About

Adaptive Data Analysis Applied to Wind Power Forecasting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages