Giter Club home page Giter Club logo

rul-net's Introduction

RUL-Net

Deep learning approach for estimation of Remaining Useful Life (RUL) of an engine This repo is dedicated to new architectures for estimating RUL using CMAPSS dataset and PHM08 prognostic challenge dataset The datasets are included in this repo or can be donwloaded from: https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan

For more details, please see our Arxiv paper.

System Model

Screenshot

Dependencies

tensorflow 1.8

numpy 1.14.4

pandas 0.20.3

scikit-learn 0.19.1

Dataset discription

The main and largest dataset is the CMAPSS dataset. It contain four subdatasets called FD001, FD002, FD003, and FD004

Dataset Train trajectories Test trajectories Conditions Fault Modes
FD001 100 100 ONE (Sea Level) ONE (HPC Degradation)
FD002 260 259 SIX ONE (HPC Degradation)
FD003 100 100 ONE (Sea Level) TWO (HPC Degradation, Fan Degradation)
FD004 248 249 SIX (Sea Level) TWO (HPC Degradation, Fan Degradation)

Data sets consists of multiple multivariate time series. Each data set is further divided into training and test subsets. Each time series is from a different engine – i.e., the data can be considered to be from a fleet of engines of the same type. Each engine starts with different degrees of initial wear and manufacturing variation which is unknown to the user. This wear and variation is considered normal, i.e., it is not considered a fault condition. There are three operational settings that have a substantial effect on engine performance. These settings are also included in the data. The data is contaminated with sensor noise.

The engine is operating normally at the start of each time series, and develops a fault at some point during the series. In the training set, the fault grows in magnitude until system failure. In the test set, the time series ends some time prior to system failure. The objective of the competition is to predict the number of remaining operational cycles before failure in the test set, i.e., the number of operational cycles after the last cycle that the engine will continue to operate. Also provided a vector of true Remaining Useful Life (RUL) values for the test data.

Dataset structure

The data provieded as text file with 26 columns of numbers, separated by spaces. Each row is a snapshot of data taken during a single operational cycle, each column is a different variable. The columns correspond to:

  1. unit number
  2. time, in cycles
  3. operational setting 1
  4. operational setting 2
  5. operational setting 3
  6. sensor measurement 1
  7. sensor measurement 2 ...
  8. sensor measurement 26

Screenshot

After standard normalization of data in time domain

Dataset Visualization
FD001 and FD003 Screenshot
FD002 and FD004 Screenshot

The distribution of FD001 and FD003 has similarities as well as the FD002 and FD004 datasets.

Data labeling

Machine health is inversely proportional to the engine cycles. When number of engine cycles are increasing, then the machine health should decrease. It can be model as a linear function but here we use a piece-wise linear function. We assume that first few cycles have the maximum health of the machine and then it starts to decrease linearly.
Screenshot

Training data augmentation

Screenshot

If we concatanate all the training labels and testing labels its looks like this (a) and (c) It’s clear that the training labels always goes to zero RUL but testing labels need not to go zero RUL. Therefore, model must see something like testing data to get a good perdition. We implemented a data augmentation technique to make the training data looks like testing data, which increases the accuracy. (more details will be publishing in our coming paper).

Citation

If this is useful for your work, please cite our Arxiv paper:

@article{jayasinghe2018temporal,
  title={Temporal Convolutional Memory Networks for Remaining Useful Life Estimation of Industrial Machinery},
  author={Jayasinghe, Lahiru and Samarasinghe, Tharaka and Yuen, Chau and Ge, Shuzhi Sam},
  journal={arXiv preprint arXiv:1810.05644},
  year={2018}
}

License

This is released under the MIT license. For more details, please refer LICENSE.

"Copyright (c) 2018 Lahiru Jayasinghe"

rul-net's People

Contributors

lahirujayasinghe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rul-net's Issues

Why I can't get a good result

Hi, thank you for sharing the project code. After training with the code you provided, I got much worse prediction results than in the paper. Is the parameter setting in the code the same as that used in the paper? The epoch in the code is 5000, but when I trained 1000 epochs, the rmse no longer dropped, so I only trained 1000 epochs, I do n’t know if this is the cause of bad results. If you actually use other parameter values, can you provide them to me? thank you very much.

Requesting clarification of training related issues pertaining to model.py file

Hi. I was going through the project code and had some questions which I am listing below:

  1. Why has the validation data been set equal to the test data? How is validation being performed?
  2. What is the reason behind keeping the sequence_length (hyper parameter) as 100?
    It would be really helpful if you could throw some light on these issues. Thank you.

a question

image
may i ask a question?i am a newer learner for deeping learning.i downloaded your code ,but when i debug,pycharm showed that.i checked data_processing code.it shows no fault.i searched in internet but i didnt find answer.besides,models.py also showed that.

image.

i will appreciate it if you can help me.

RUL estimation reslut

The final result predicted by the program is an estimate of the RUL of each aircraft engine, or an estimate of the RUL of FD001-004.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.