how to predict the remaining useful life of machine using neural network

1 view (last 30 days)
Hi,
1) I am trying to use the time series tool for bearing forecasting from an historic record of bearing data. I have a 2803 raw data signal which i have got from online. I'm trying to use Graphic user Interface(GUI),initially i go through some worked examples where i observed is that ,we are suppose to load input and target data before training the network.. but i fail to understand how to divide and prepare input and target data from the raw data, to load for training the network..
2) I have totally 2803 RMS data. out of which i'm taking data points from 1 to 2750 for training purpose, later by using those trained network, suppose to predict the next 53 point of time series(i.e 2751, 2752..... 2803).. Is this can be done using GUI...??? or should i use command function....???
i have a doubt , can a neural network can predict the next 30 points after 2803 (i.e 2803... to... 2833)....???if so how.. ??
please help me..

Accepted Answer

Greg Heath
Greg Heath on 22 Aug 2013
Find the significant lags of the autocorrelation function. The maximum significant lag tends to be the prediction limit. If you want to predict further ahead, use a sliding window feedback delay.
See examples in
help narnet
doc narnet
NEWSGROUP
ANSWERS
Thank you for formally accepting my answer
Greg
  3 Comments
pradeep
pradeep on 5 Sep 2013
hi Greg Sir, I have used below mentioned codes for "prognosis of bearing " using narxnet, for multi-step ahead prediction ,
%% 1. Importing data
S = load('magdata');
X = con2seq(S.u);
T = con2seq(S.y);
%% 2. Data preparation
N = 300; % Multi-step ahead prediction
% Input and target series are divided in two groups of data: % 1st group: used to train the network
inputSeries = X(1:end-N);
targetSeries = T(1:end-N);
% 2nd group: this is the new data used for simulation. inputSeriesVal will % be used for predicting new targets. targetSeriesVal will be used for % network validation after prediction
inputSeriesVal = X(end-N+1:end);
targetSeriesVal = T(end-N+1:end); % This is generally not available
%% 3. Network Architecture
delay = 2;
neuronsHiddenLayer = 50;
% Network Creation net = narxnet(1:delay,1:delay,neuronsHiddenLayer);
%% 4. Training the network
[Xs,Xi,Ai,Ts] = preparets(net,inputSeries,{},targetSeries);
net = train(net,Xs,Ts,Xi,Ai);
view(net)
Y = net(Xs,Xi,Ai);
% Performance for the series-parallel implementation, only % one-step-ahead prediction perf = perform(net,Ts,Y);
%% 5. Multi-step ahead prediction
inputSeriesPred = [inputSeries(end-delay+1:end),inputSeriesVal];
targetSeriesPred = [targetSeries(end-delay+1:end), con2seq(nan(1,N))];
netc = closeloop(net);
view(netc)
[Xs,Xi,Ai,Ts] = preparets(netc,inputSeriesPred,{},targetSeriesPred);
yPred = netc(Xs,Xi,Ai);
perf = perform(net,yPred,targetSeriesVal);
figure;
plot([cell2mat(targetSeries),nan(1,N); nan(1,length(targetSeries)),cell2mat(yPred); nan(1,length(targetSeries)),cell2mat(targetSeriesVal)]')
legend('Original Targets','Network Predictions','Expected Outputs')
the results are matching to one extent(i.e preicted values is almost matching to actual),now i'm suppose to plot error b/w the actual and predicted values.... so i tried the below mentioned codes for plotting the error,,, but its not working, so would u please tel me wat's wrong in this code..?? or can u please suggest me the code for pltting error.... % Test the Network outputs = net(inputs,inputStates,layerStates); errors = gsubtract(targets,outputs); performance = perform(net,targets,outputs)
% View the Network
% view(net)
% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, plotregression(targets,outputs)
%figure, plotresponse(targets,outputs)
%figure, ploterrcorr(errors)
%figure, plotinerrcorr(inputs,errors)
thanking You u in advance.....
pradeep
pradeep on 5 Sep 2013
hi Greg Sir,, below image link is the result..now i'm trying to plot error from (0 to 450)data point . so can you please help me by sharing the codefor ploting error....??? http://imageshack.us/photo/my-images/710/8yd9.png/

Sign in to comment.

More Answers (2)

dau
dau on 17 Dec 2013
I am facing with this problem too, but mostly there are no Code availability for us. However, this prediction is incorrect and not good for future prediction, because the prediction relied on the known inputs for the inputs observed, with this kind of prediction there are many application available for you. Addition, this kind of prediction is insignificant. What we need is predict the future with unknown inputs for example 2020. I am mostly give up with that since there are no Code provided except some programmer can do. Pradeep, if you already found this solution please share me in my email: infohquan@gmail.com Thanks and good luck!

Aditya Baru
Aditya Baru on 2 May 2018
The Predictive Maintenance Toolbox has some examples for estimating remaining useful life using similarity, degradation, and survival methods. You can check those out here:
If you are interested in using neural nets specifically, you can look at the above examples and replace the models used there with neural nets. The initial steps you'd need to take for extracting features would still be the same.

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!