/AttnPINN-for-RUL-Estimation

A Framework for Remaining Useful Life Prediction Based on Self-Attention and Physics-Informed Neural Networks

Primary LanguagePythonApache License 2.0Apache-2.0

English 简体中文

SourceForge Platform

AttnPINN for RUL Estimation

This repository includes the code and data for the paper "Remaining useful life with self-attention assisted physics-informed neural network"

Abstract

Remaining useful life (RUL) prediction as the key technique of prognostics and health management (PHM) has been extensively investigated. The application of data-driven methods in RUL prediction has advanced greatly in recent years. However, a large number of model parameters, low prediction accuracy, and lack of interpretability of prediction results are common problems of current data-driven methods. In this paper, we propose a Physics-Informed Neural Networks (PINNs) with Self-Attention mechanism-based hybrid framework for aircraft engine RUL prognostics. Specifically, the self-attention mechanism is employed to learn the differences and interactions between features, and reasonably map high-dimensional features to low-dimensional spaces. Subsequently, PINN is utilized to regularize the end-to-end prediction network, which maps features to RUL. The RUL prediction framework termed AttnPINN has verified its superiority on the Commercial Modular AeroPropulsion System Simulation (C-MAPSS) dataset. It achieves state-of-the-art prediction performance with a small number of parameters, resulting in computation-light features. Furthermore, its prediction results are highly interpretable and can accurately predict failure modes, thereby enabling precise predictive maintenance.

Configuration

  • matplotlib==3.3.2
  • numpy==1.21.6
  • scikit_learn==1.0.2
  • torch==1.11.0
  • torchsummary==1.5.1

If you want to install the required environments one by one, you can copy the following codes:

pip install matplotlib==3.3.2
pip install numpy==1.21.6
pip install scikit_learn==1.0.2
pip install torch==1.11.0
pip install torchsummary==1.5.1

or use this:

pip install -r requirements.txt

Quick Start

Running the project with the following code:

python main.py

In main.py, it includes training, predicting and drawing functions.

By default, only predicting function will run and the output will be:

Test_RMSE: 18.37,   Score: 2058.5

If you want to train the model by yourself:hammer::hammer:, you can uncomment the train function in main.py.

#pinn.train(1000) => pinn.train(1000)

And then, the output will be:

It: 0,   Valid_RUL_RMSE: 100.92
It: 1,   Valid_RUL_RMSE: 99.87
It: 2,   Valid_RUL_RMSE: 40.89
It: 3,   Valid_RUL_RMSE: 40.76
It: 4,   Valid_RUL_RMSE: 40.74
It: 5,   Valid_RUL_RMSE: 40.74
It: 6,   Valid_RUL_RMSE: 35.48
It: 7,   Valid_RUL_RMSE: 20.47
It: 8,   Valid_RUL_RMSE: 18.70
It: 9,   Valid_RUL_RMSE: 18.27
···

Comparisons with State-of-the-art Methods

Method RMSE Score Parameters
DCNN(Li et al., 2018) 23.31 12466 72.7K
RNN-Autoencoder(Yu et al.. 2020) 22.15 2901 378.0K
GCU-Transformer(Mo et al.,2021) 24.86 N/A 399.7K
MCLSTM(Sheng et al., 2021) 23.81 4826 N/A
Double attention-Transformer(Liu et al., 2022) 19.86 1741 N/A
e-RULENet(Natsumeda, 2022) 20.80 1554 32.3K
PDE-PHM(Cofre-Martel et al., 2021) 25.58 N/A 1,066
AttnPINN(proposed framework) 18.37 2059 2,260

Cite Repository

Please, cite this repository using:

@misc{2023_AttnPINN,
    author = {Xinyuan Liao, Shaowei Chen, Pengfei Wen, and Shuai Zhao},
    title = {AttnPINN for RUL Estimation},
    month = May,
    year = 2023,
    url = {https://github.com/XinyuanLiao/AttnPINN-for-RUL-Estimation}
    }