ANN for Wind Turbine Fault Detection

Part of MTE 546: Multi-Sensor Data Fusion — Final Exam

Goal

The purpose of this project was to detect faults in a wind turbine from 3-axis accelerometer data from both the nacelle and bearing. The goal was to detect faults with high certainty using an Artificial Neural Network.

Method

To complete this project, I built 2 ANNs, one for each component of the wind turbine. After testing low-pass filters, median filters, min-max, and z-score normalization, I found that a median filter (window size 3) combined with z-score normalization provided the best results in terms of validation accuracy and training stability.

I tried various architectures and activation functions. I used the Adam optimizer, a categorical cross entropy loss function, a batch size of 4, and early stopping to prevent over-training like in the photos on the right.

The final architecture was

  • Dense(16) (ReLU)
  • Dropout(30%)
  • Dense(8) (ReLU)
  • Dropout(30%)
  • Dense(2) (Softmax)

Once the ANNs were built, I applied sensor fusion. I tried early fusion using a different architecture and a slower learning rate. I also tried late fusion simply using the product T-norm. I compared the results with learning curves, accuracy, and confusion matrices.

All of this project was done using Python, TensorFlow, and NumPy.

Results

  • Achieved 98% accuracy on bearing test data
  • Achieved 73% accuracy on nacelle test data
  • Achieved 95% accuracy with early fusion
  • Achieved 97% accuracy with T-norm late fusion