Skip to content

ho323/bearing-rul-prediction-phm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bearing RUL Prediction for PHM

image

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.


Overview

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.


Key Features

  • 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

Repository Structure

.
├── 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 to inference.ipynb for clarity.


Dataset

image

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/

Test Bearings

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.


Method

This project is based on bearing health prognosis using transferable learning and few-shot adaptation.

The general workflow is:

  1. Load bearing vibration signals
  2. Preprocess time-series vibration data
  3. Extract degradation-related features or signal representations
  4. Train the RUL prediction model
  5. Adapt or evaluate the model on target bearing conditions
  6. Estimate remaining useful life

Environment

The original development environment was:

Component Version
OS Windows 11
Python 3.9.19
PyTorch 2.3.1
CUDA 12.4

Installation

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

Usage

1. Prepare Dataset

Download the XJTU-SY Bearing Dataset and place it under the datasets/ directory.

Recommended structure:

datasets/
└── XJTU-SY/
    ├── Bearing1_1/
    ├── Bearing1_2/
    ├── Bearing2_1/
    └── ...

2. Train Model

Run the training script:

python train.py

3. Run Experiments

You can also use the provided notebooks:

  • rul_sample.ipynb — RUL prediction experiment
  • gan_sample.ipynb — GAN-related experiment
  • inference.ipynb — model inference and evaluation

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

Reference

image

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


Project Relevance

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

Limitations

  • 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.

Future Work

  • Add requirements.txt
  • Add configuration files for reproducible experiments
  • Rename infernece.ipynb to inference.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

About

Bearing RUL prediction for PHM using meta-learning and vibration data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors