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 a basic config
config = generate_quickstart_config()

# 2) Train and predict using the generated config
fault_detector = FaultDetector(config=config)
fault_detector.fit(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 a time index (typically a timestamp, or a MultiIndex such as (asset_id, timestamp)), and the pandas Series normal_index indicates which timestamps are considered 'normal' operation and can be used to create a normal behaviour model.

generate_quickstart_config() returns a default configuration. For more control, you can provide your own YAML config. See base_config.yaml for an example.

You can load a saved model from a directory using:

from energy_fault_detector import FaultDetector

fault_detector = FaultDetector.load('path_to_model')

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

  • Demo: Easy demo website
  • Extending the core models:
    • Variational autoencoders
    • Model ensembles
  • Unification, standardisation and generic improvements
    • Data preparation (e.g. extend imputation strategies).
    • No or low configuration need (e.g. use defaults where possible).
    • Upgrade to Keras 3.0
  • Root cause analysis expansion
    • integrate SHAP and possibly other xAI-methods.
  • Integrations
    • logging/tracking to MLFlow for hyperparameter tuning and easy model deployment.
    • Edge deployment

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.5.1.tar.gz (351.9 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.5.1-py3-none-any.whl (159.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for energy_fault_detector-0.5.1.tar.gz
Algorithm Hash digest
SHA256 d92d39e84a31036d92ac432f302e0944c2c7023e7e26da2658a2aa3a7ba6e2f0
MD5 87aa35fdb34820269ec2b0530ad220a1
BLAKE2b-256 5d8c5736910a0c2030e93322f1469760f96c14b31519ebd989be7c4a0967ee3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for energy_fault_detector-0.5.1.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.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for energy_fault_detector-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18df26470ed150104732530ed80c5b615ea363064d8d8d4acf07865c65caebbe
MD5 755ea19a45659ed54edcede21895df46
BLAKE2b-256 c43829d74f06603e047521e79fa526f641f96d7cc67363e0320db7ac06c264b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for energy_fault_detector-0.5.1-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