Answers are grounded in this paper and cite their sources.
Condition-based maintenance of wind turbines is increasingly relying on Supervisory Control and Data Acquisition (SCADA) systems as a cost-effective alternative to dedicated condition monitoring hardware. However, the high dimensionality, non-stationarity, and complex inter-variable dependencies of SCADA data make early anomaly detection particularly challenging. This work proposes an anomaly detection framework for wind turbines based on a multichannel image encoding of SCADA data and a Convolutional Autoencoder (CAE) trained as a Normal Behaviour Model. The proposed methodology transforms multivariate SCADA time windows into two-channel image-like tensors. The first channel is based on Spearman rank correlation, allowing the model to capture changes in the dependency structure among variables, while the second channel is based on pairwise Mahalanobis distance, enabling the detection of drifts and deviations in the statistical magnitude of operating conditions. These multichannel representations are then processed by a CAE designed to reconstruct healthy operating patterns and identify anomalies through reconstruction errors. To improve interpretability, the framework also includes a fault localization attempt based on the spatial analysis of reconstruction residuals. By comparing anomalous and healthy residual matrices, the method highlights the SCADA variables that contribute most to the detected anomaly, providing preliminary localization support in addition to turbine-level anomaly detection. The approach is validated on a real-world open-access SCADA dataset comprising four wind turbines and associated fault event logs, enabling an event-based evaluation of anomaly detection performance. The proposed method achieved an overall Precision of 0.67, Recall of 0.89, and F1-score of 0.76.
No takes yet. Share an insight, caveat, or question.
Bianchi et al. (2026) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: