论文复现:结合 CNN 和 LSTM 的滚动轴承剩余使用寿命预测方法

一、简介

针对滚动轴承存在性能退化渐变故障和突发故障两种模式下的剩余使用寿命(remaining useful life,简称RUL)预测困难的问题,提出一种结合卷积神经网络(convolution neural networks,简称CNN)和长短时记忆(long short term memory,简称 LSTM)神经网络的滚动轴承 RUL预测方法。首先,对滚动轴承原始振动信号作快速傅里 叶变换(fast Fourier transform,简称FFT;其次,将预处理所得到的频域幅值信号进行归一化处理后,将其作为 CNN 的输入,并利用 CNN自适应提取局部内在有用信息,学习并挖掘深层特征,避免传统算法需要专家大量经验 的弊端;然后,再将深层特征输入到 LSTM网络中,构建趋势性量化健康指标,同时确定失效阈值;最后,运用移动平均法进行平滑处理,消除局部振荡,再利用多项式曲线拟合,预测未来失效时刻,实现滚动轴承 RUL 预测。实验结果表明,所提方法构建的趋势性量化健康指标在两种故障模式下都具有良好的单调趋势性,预测结果能够较好地 接近真实寿命值。

二、算法流程图

lstm和cnn的关系 lstm和cnn结合_lstm

三、数据集
数据集链接:https://github.com/Lucky-Loek/ieee-phm-2012-data-challenge-dataset/blob/master/IEEEPHM2012-Challenge-Details.pdf

使用MATLAB对数据进行简单的预处理:`% % 批量读取IEEE PHM 2012轴承全寿命数据

clc, clear, close all
% % 文件夹路径
file_path =  'Learning_set/Bearing1_2/';
% % 读取文件
type = 'l';
[csv_acc_data,csv_temp_data] = data_read(file_path,type);

% % 快速傅里叶变换
FS = 25.6 * 10^3; % 采样频率
T = 1/FS; % 采样时间
L = length(csv_acc_data(:,5)); % 信号长度
t = (0:L-1)*T; % 时间
Y_horiz_data = fft(csv_acc_data(:,5),L);
Y_vertical_data = fft(csv_acc_data(:,6),L);
Y_h = abs(Y_horiz_data);
Y_L = abs(Y_vertical_data);
figure;subplot 211;plot(t(1:L/2),Y_h(1:L/2));title('fft水平频域幅值信号');
       subplot 212;plot(t(1:L/2),Y_L(1:L/2));title('fft竖直频域幅值信号');

% % 均方根数据
rms_h = rms(csv_acc_data(:,5),L);
rms_L = rms(csv_acc_data(:,6),L);
figure;subplot 211;plot(rms_h );title('水平均方根信号');
       subplot 212;plot(rms_L);title('竖直均方根信号');

% % 数据归一化
N_h = normalize(Y_h, "range");
N_L = normalize(Y_L, "range");
figure;subplot 211;plot(N_h(1:L/2));title('水平数据归一化频域幅值表');
       subplot 212;plot(N_L(1:L/2));title('竖直数据归一化频域幅值表');`

得到的数据如下:

lstm和cnn的关系 lstm和cnn结合_matlab_02


lstm和cnn的关系 lstm和cnn结合_cnn_03

温度信号暂时没有用到,但是还是先显示出来以备后面用到:

lstm和cnn的关系 lstm和cnn结合_cnn_04

使用傅里叶快速变换转换为频域幅值信号:

lstm和cnn的关系 lstm和cnn结合_cnn_05


lstm和cnn的关系 lstm和cnn结合_matlab_06

对数据进行归一化,得到健康寿命指标:

lstm和cnn的关系 lstm和cnn结合_lstm_07


lstm和cnn的关系 lstm和cnn结合_cnn_08

四、模型训练
训练参数配置如下:

options = trainingOptions('adam', ...
        'MaxEpochs',MaxEpochs, ...
        'MiniBatchSize',MiniBatchSize, ...
        'GradientThreshold',1, ...
        'InitialLearnRate',learningrate, ...
        'LearnRateSchedule','piecewise', ...
        'LearnRateDropPeriod',56, ...
        'LearnRateDropFactor',0.25, ...
        'L2Regularization',1e-3,...
        'GradientDecayFactor',0.95,...
        'Verbose',false, ...
        'Shuffle',"every-epoch",...
        'ExecutionEnvironment',mydevice,...
        'Plots','training-progress');

预测效果:

lstm和cnn的关系 lstm和cnn结合_cnn_09


预测的结果可以使用平滑滤波消除震荡带来的影响,此项可在后续的工作完成。整体预测值:

lstm和cnn的关系 lstm和cnn结合_matlab_10


利用多项式拟合方法对性能退化趋势进行拟合,并通过与阈值交点所对应的时刻对轴

承 RUL 进行预测。

lstm和cnn的关系 lstm和cnn结合_matlab_11


该模型的误差:

lstm和cnn的关系 lstm和cnn结合_lstm_12