Skip to main content

Automated fault detection in renewable energy assets and power grids.

Project description

EnergyFaultDetector Logo

Energy Fault Detector - Autoencoder-based Fault Detection for the Future Energy System

Energy Fault Detector is an open-source Python package designed for the automated detection of anomalies in operational data from renewable energy systems as well as power grids. It uses autoencoder-based normal behaviour models to identify irregularities in operational data. In addition to the classic anomaly detection, the package includes the unique “ARCANA” approach for root cause analysis and thus allows interpretable early fault detection. In addition to the pure ML models, the package also contains a range of preprocessing methods, which are particularly useful for analyzing systems in the energy sector. A holistic EnergyFaultDetector framework is provided for easy use of all these methods, which can be adapted to the respective use case via a single configuration file.

The software is particularly valuable in the context of the future energy system, optimizing the monitoring and enabling predictive maintenance of renewable energy assets.

drawing

Main Features

  • User-friendly interface: Easy to use and quick to demo using the command line interface.
  • Data Preprocessing Module: Prepares numerical operational data for analysis with the EnergyFaultDetector, with many options such as data clipping, imputation, signal hangers and column selection based on variance and missing values.
  • Fault Detection: Uses autoencoder architectures to model normal operational behavior and identify deviations.
  • Root Cause Analysis: Pinpoints the specific sensor values responsible for detected anomalies using ARCANA.
  • Scalability: Algorithms can easily be adapted to various datasets and trained models can be transferred to and fine-tuned on similar datasets. Quickly evaluate many different model configurations

Installation

To install the energy-fault-detector package, run: pip install energy-fault-detector

Quick fault detection

For a quick demo on a specific dataset, run:

quick_fault_detector <path_to_your_dataset.csv>

For more options, run quick_fault_detector -h.

For an example using one of the CARE2Compare datasets, run: quick_fault_detector <path_to_c2c_dataset.csv> --c2c_example

For more information, have a look at the notebook Quick Fault Detection

Fault detection quickstart

from energy_fault_detector import FaultDetector, Config
from energy_fault_detector.config import generate_quickstart_config

# 1) Generate and save a base config (YAML)
generate_quickstart_config(output_path="base_config.yaml")
# 2) Train and predict using the generated config
fault_detector = FaultDetector(config=Config('base_config.yaml'))
model_data = fault_detector.train(sensor_data=sensor_data, normal_index=normal_index)
results = fault_detector.predict(sensor_data=test_sensor_data)

The pandas DataFrame sensor_data contains the operational data in wide format with the timestamp as index, the pandas Series normal_index indicates which timestamps are considered 'normal' operation and can be used to create a normal behaviour model. The base_config.yaml file contains the model settings, an example is found here.

Background

This project was initially developed by the research team AEFDI at the Fraunhofer IEE in the research project ADWENTURE (funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK)), to create a software for early fault detection in wind turbines. The software was developed in such a way that the algorithms do not depend on a specific data source and can be applied to other use cases as well.

Documentation

Comprehensive documentation is available here.

Contributing

Contributions are welcome! Please feel free to open issues or submit pull requests. All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

Planned updates and features

  1. More autoencoder types:

    1. Variational autoencoders
    2. CNN- and LSTM-based autoencoders with time-series support.
  2. Unification, standardisation and generic improvements

    1. Additional options for all autoencoders (e.g. drop out, regularization)
    2. Data preparation (e.g. extend imputation strategies).
    3. No or low configuration need (e.g. use defaults where possible).
    4. Upgrade to Keras 3.0
  3. Root cause analysis expansion

    1. integrate SHAP and possibly other XAI-methods.

License

This project is licensed under the MIT License.

References

If you use this work, please cite us:

Fault detection in district heating substations:

ARCANA Algorithm: Autoencoder-based anomaly root cause analysis for wind turbines. Energy and AI. 2021;4:100065. https://doi.org/10.1016/j.egyai.2021.100065

CARE to Compare dataset and CARE-Score:

Transfer learning methods: Transfer learning applications for autoencoder-based anomaly detection in wind turbines. Energy and AI. 2024;17:100373. https://doi.org/10.1016/j.egyai.2024.100373

Autoencoder-based anomaly detection: Evaluation of Anomaly Detection of an Autoencoder Based on Maintenance Information and Scada-Data. Energies. 2020; 13(5):1063., https://doi.org/10.3390/en13051063.

Contact

For questions, feedback, or support integrating the EnergyFaultDetector into your operations, please contact aefdi@iee.fraunhofer.de.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

energy_fault_detector-0.4.0.tar.gz (536.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

energy_fault_detector-0.4.0-py3-none-any.whl (122.6 kB view details)

Uploaded Python 3

File details

Details for the file energy_fault_detector-0.4.0.tar.gz.

File metadata

  • Download URL: energy_fault_detector-0.4.0.tar.gz
  • Upload date:
  • Size: 536.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for energy_fault_detector-0.4.0.tar.gz
Algorithm Hash digest
SHA256 7bbda5c132029bda27a8dd8c9205c66b2213d1cd32c7ec45991ae66a940199f8
MD5 5ab1952593735b0a2fcc4931b0ae997b
BLAKE2b-256 92c13381f558319ff2a39de73abd70fa18419d8e1a67bcb4bfa202ebbc7bb2bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for energy_fault_detector-0.4.0.tar.gz:

Publisher: publish-package.yml on AEFDI/EnergyFaultDetector

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file energy_fault_detector-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for energy_fault_detector-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1df56fa720c3337272b2723f1ac697a18fcc4ea774ef513ea34848927025eb5b
MD5 c989c93e5451e6f2a780d7ee8fe47473
BLAKE2b-256 b59c3829a27d08446b8a89382a48eabf71456d56cfa7847fe5e6ac5043c41907

See more details on using hashes here.

Provenance

The following attestation bundles were made for energy_fault_detector-0.4.0-py3-none-any.whl:

Publisher: publish-package.yml on AEFDI/EnergyFaultDetector

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page