Skip to content

KonulJ/Predictive-Maintenance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Predictive Maintenance — Aircraft Turbofan Engine RUL Prediction

Python LightGBM XGBoost Dash License

Predicts the Remaining Useful Life (RUL) of aircraft turbofan engines using sensor and operational data from the NASA C-MAPSS benchmark dataset. Includes a Plotly Dash dashboard for interactive exploration of sensor degradation and model performance.


Model Performance

Best model: LightGBM + first-n-cycle normalisation + RUL clipping

Split MAE RMSE
Test (80/20 split) 7.55 cycles 11.27 cycles 0.92
Validation (held-out NASA test set) 11.14 cycles 15.28 cycles 0.86

Four preprocessing strategies were compared systematically — see the notebook for the full comparison.


Project Structure

Predictive-Maintenance/
├── dataset/                     # C-MAPSS train/test/RUL files
├── models/                      # Saved LightGBM model files (.joblib)
├── predictive_maintenance.ipynb # Full pipeline: EDA → feature engineering → modelling
├── app.py                       # Plotly Dash interactive dashboard
├── requirements.txt
└── README.md

Dataset: NASA C-MAPSS FD001

100 turbofan engines simulated from healthy state to failure. Each row is one engine cycle.

Column group Details
Engine ID + cycle Unique engine identifier and time step
Operational settings 3 columns (altitude, Mach number, throttle)
Sensor readings 21 sensors (temperatures, pressures, speeds, flows)
RUL (train only) Calculated as max_cycle − current_cycle

7 constant sensors (s1, s5, s6, s10, s16, s18, s19) were identified and dropped.


Feature Engineering

Technique Purpose
Min-Max normalisation Baseline sensor scaling
First-n-cycle normalisation Engine-relative scaling — eliminates inter-engine bias
RUL clipping (max = 121) Reduces noise from early-life cycles, improves convergence
Rolling averages Smooths sensor signal noise
Variance threshold Removes constant/near-constant features

The comparison across 4 preprocessing strategies shows that first-n-cycle normalisation + RUL clipping generalises best to unseen engines (R² 0.86 vs 0.20 for the baseline).


Setup

git clone https://github.com/KonulJ/Predictive-Maintenance.git
cd Predictive-Maintenance
pip install -r requirements.txt

Download the C-MAPSS FD001 dataset from NASA Prognostics Center and place the .txt files in dataset/.

python app.py

The Dash dashboard opens at http://localhost:8050.


Key Concepts Demonstrated

Concept Implementation
Regression on multivariate time series LightGBM + XGBoost on 21-sensor sequential data
Feature engineering strategy comparison 4 normalisation + clipping combinations, evaluated on held-out set
Overfitting diagnosis Baseline R² 0.91 (test) → −0.61 (validation); fixed by first-n-cycle normalisation
Hyperparameter tuning GridSearchCV with 5-fold CV across 81 parameter combinations
Industrial ML context NASA benchmark, condition-based maintenance framing

Roadmap

  • Classification model for early-warning risk zones (within 30 cycles of failure)
  • LSTM for sequence-aware RUL prediction
  • Docker deployment of the Dash dashboard

Built by Konul Jafarova

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors