This repository implements a bearing Remaining Useful Life (RUL) prediction project for Prognostics and Health Management (PHM) using vibration data and meta-learning-based health prognosis methods.
The goal is to estimate the degradation state of rolling bearings and predict their remaining useful life from run-to-failure vibration signals.
Bearings are critical components in rotating machinery. Their degradation can directly affect system reliability, safety, and maintenance cost.
RUL prediction aims to estimate how long a bearing can continue operating before failure. This enables:
- Predictive maintenance
- Condition-based monitoring
- Early fault diagnosis
- Maintenance cost reduction
- Improved system reliability
This project explores bearing health prognosis using the XJTU-SY Bearing Dataset and implements training and inference workflows for RUL-oriented prediction.
- Bearing Remaining Useful Life prediction for PHM
- Vibration signal-based degradation modeling
- Meta-learning-based health prognosis implementation
- Training and inference notebooks for experimentation
- Modular project structure with model and utility components
- Evaluation setup using selected test bearings from the XJTU-SY dataset
.
├── datasets/ # Dataset-related files or placeholders
├── lib/ # Utility functions and helper modules
├── models/ # Model definitions
├── gan_sample.ipynb # GAN-related experimental notebook
├── inference.ipynb # Inference notebook
├── rul_sample.ipynb # RUL prediction experiment notebook
├── train.py # Model training script
├── README.md
└── .gitignore
Note: If the repository still contains
infernece.ipynb, it is recommended to rename it toinference.ipynbfor clarity.
This project uses the XJTU-SY Bearing Dataset, a run-to-failure bearing dataset collected under different operating conditions.
Dataset link: http://biaowang.tech/xjtu-sy-bearing-datasets/
The following bearings are used as test sets:
- Bearing 1_1
- Bearing 2_1
- Bearing 3_1
Other bearing data can be used for training and validation depending on the experimental setup.
This project is based on bearing health prognosis using transferable learning and few-shot adaptation.
The general workflow is:
- Load bearing vibration signals
- Preprocess time-series vibration data
- Extract degradation-related features or signal representations
- Train the RUL prediction model
- Adapt or evaluate the model on target bearing conditions
- Estimate remaining useful life
The original development environment was:
| Component | Version |
|---|---|
| OS | Windows 11 |
| Python | 3.9.19 |
| PyTorch | 2.3.1 |
| CUDA | 12.4 |
Clone the repository:
git clone https://github.com/ho323/bearing-rul-prediction-phm.git
cd bearing-rul-prediction-phm
Create and activate a virtual environment:
conda create -n bearing-rul python=3.9
conda activate bearing-rul
Install dependencies:
pip install -r requirements.txt
If requirements.txt is not available yet, install the core dependencies manually:
pip install numpy pandas scipy scikit-learn matplotlib torch tqdm
Download the XJTU-SY Bearing Dataset and place it under the datasets/ directory.
Recommended structure:
datasets/
└── XJTU-SY/
├── Bearing1_1/
├── Bearing1_2/
├── Bearing2_1/
└── ...
Run the training script:
python train.py
You can also use the provided notebooks:
rul_sample.ipynb— RUL prediction experimentgan_sample.ipynb— GAN-related experimentinference.ipynb— model inference and evaluation
The project is designed to evaluate RUL prediction performance on selected target bearings.
Recommended evaluation metrics include:
- MAE
- RMSE
- RUL prediction error
- Predicted RUL vs. true RUL curve
- Degradation trend visualization
If result figures are added later, they can be organized as:
results/
├── predicted_vs_true_rul.png
├── degradation_curve.png
└── error_analysis.png
This implementation is based on the following research direction:
Health prognosis of bearings based on transferable autoregressive recurrent adaptation with few-shot learning
Reference paper: https://www.sciencedirect.com/science/article/pii/S0888327024000840
This project is related to:
- Prognostics and Health Management
- Predictive Maintenance
- Remaining Useful Life Prediction
- Industrial AI
- Manufacturing AI
- Time-Series Modeling
- Vibration Signal Analysis
- This repository is intended for research and portfolio purposes.
- Dataset files are not included due to size and licensing considerations.
- Performance may vary depending on preprocessing, train/test split, and target bearing condition.
- Additional benchmarking and reproducibility improvements may be required for production-level PHM deployment.
- Add
requirements.txt - Add configuration files for reproducible experiments
- Rename
infernece.ipynbtoinference.ipynb - Add quantitative evaluation tables
- Add visualization of predicted RUL curves
- Add baseline comparisons such as LSTM, CNN-LSTM, and Transformer-based models
- Add experiment tracking with MLflow or Weights & Biases