/predictive-maintenance-2

Baseline study on the development of predictive maintenance techniques using open data. Two problems are discussed: classifying a vibration signal as healthy or faulty and on the other hand, given a signal predicting time to failure based on early anomaly detection.

Primary LanguageJupyter NotebookMIT LicenseMIT

PREDICTIVE MAINTENANCE

DOI License: MIT release Binder

Access to the Binder-compatible repo by clicking the launch binder badge above. The requirements.txt file list all Python libraries on which the different notebooks depend.


Baseline study on the development of predictive maintenance techniques using open data. Classic predictive maintenance problems will be studied:

  • Classification of the signal as healthy or faulty.
  • Failure type classification.
  • Prediction of time to failure.

Data used

Different data obtained from open repositories will be used:

  • Failure classification (healthy, inner race or outer race). In this case two different signal types are used:
  • Prediction of time to failure. In this case we have used the data set called Bearing Data Set which is provided by the Center for Intelligent Maintenance Systems (IMS), University of Cincinnati, and is available in the NASA Data Repository.

Libraries used

In this analysis we will use Python (version higher than 3.8) and different libraries:

Scientific computing:

  • NumPy: Library specialized in numerical analysis. Support for the creation of vectors and matrices, as well as for the use of different mathematical functions.
  • Pandas: Tool for data analysis and manipulation. Written as an extension of NumPy.
  • SciPy: Library with different mathematical tools and algorithms.

Machine learning and data analysis:

  • Scikit-learn: Library wich contains tools for data analysis, especially used in our case for the use of machine learning models.
  • LightGBM: Gradient boosting framework which uses tree-based learning algorithms.
  • Keras: Open Source Neural Networks library written in Python.
  • Hyperopt: Hyper-parameter optimization.
  • Joblib: In our case, library used to export models for forecasting.

Data visualization:

  • Matplotlib: Library for creating static, animated and interactive visualizations in Python.
  • Seaborn: High-level interface for creating visualizations.

Time series analysis:

  • PyHHT: Module that implements the Hilbert-Huang Transform (HHT).

Recommendations for installation:

  1. Clone the repository
  2. Create a conda or Python virtual environment. We recommend to create a Python virtual environment, as well as not to use a Python version higher than 3.9 because it has not been tested with this project.
python3.8 -m venv .venv
  1. Activate virtual environment:
source .venv/Scripts/activate.bat
  1. Install requirements.txt
pip install -r requirements.txt