1 简介
随着通信,存储技术的不断进步,轨道交通已向"车辆大数据"的方向发展,对故障诊断技术提出了更高的要求.给出了一种FFT+ DBN+参数寻优的牵引系统电机轴承诊断方法,完成了无监督特征提取与有监督微调网络模型的构建,解决了网络参数设置难的问题,并有效提高故障识别准确度,为电机轴承故障诊断提供了解决方案,具有很强的工程应用价值。
DBN 由无监督训练的预训练部分与有监督训练的微调部分构成。其中预训练部分主要由多层 受限 玻 尔 兹 曼 机 ( restricted Boltzmann Machine, RBM) 组成,无监督训练部分采用 BP( 反向传播) 神经网络算法对整个 DBN 网络进行微调。DBN 是 1 个概率生成模型,通过堆叠 RBM 的 CD( Contras- tive Divergence,比散度) 快速贪婪学习算法获得数 据原始特征,从而获得数据的高层次表达。 单层 RBM 的结构如图 2 所示,其组成单元包括显层与隐层。显层负责接收原始数据,并输出上 一层 RBM 的特征值,隐层为由显层提取的特征及 输出结果。与传统判别模型不同的是,DBN 建立起 标签与观测值之间的双向对应关系,通过对 P ( observation | label) 和 P( label | observation) 进行 多次迭代计算而确定最大拟合结果。 DBN 网络结构如图 3 所示,其训练由正向的预 训练阶段与反向微调阶段构成。
1) 预训练阶段。在预训练阶段,输入层获取训 练数据,之后将数据传递至隐层提取特征,并将隐层重构回前向隐层计算权重。每一个 RBM 的计算过程都由正向的特征提取和反向的数据重构组成, 因此可建立起各 RBM 之间的双向对应关系,并经 过神经元数量逐层递减的特征提取,以便获得原始数据更高层的表达。通过数据分批预训练多次迭代计算的方式来实现无监督预训练过程,从而保证 每个 RBM 局部最优。
2) 微调阶段。预训练过程可大幅降低原始数 据的维度,在 DBN 的顶层加入 Softmax 分类器,通BP 神经网络算法,结合数据标签对整个 DBN 网 络进行自上而下的有监督训练,同时微调各层 RBM 的权重矩阵与偏置矩阵,从而保证全局参数最优。
利用 DBN 对轴承故障进行诊断之前,需要对轴承数据进行归一化及 FFT 处理,以提高时间效率和结果的准确率,故本文所使用的故障诊断方法为 FFT + DBN。
2 部分代码
%% 提取FFT谱作为故障特征向量
clc;close all;clear
%%
load data_process
%% 2、加载数据
x1=train_X(1,:);
% 采样点
L=length(x1);
%采样频率
fs=48000;
%采样间隔
Ts=1/fs;
%采样点数
t=Ts:Ts:L*Ts;
%轴承信号
% 3、对原始信号作图
figure
plot(t,x1)
title('原始信号')
xlabel('采样点/n')
ylabel('幅值')
% 4、fft频谱
Y = fft(x1);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(L/2))/L;
figure
bar(f,P1)
title('FFT频谱')
xlabel('频率/Hz')
ylabel('幅值')
%% 训练集
TZ=[];
for IIII=1:size(train_X,1) %依次对每个样本进行处理
x1=train_X(IIII,:);%轴承信号
Y = fft(x1);
L=length(x1);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
TZ(IIII,:)=P1/max(P1);
end
disp('训练集提取完毕')
train_X=TZ;
%% 验证集
TZ=[];
for IIII=1:size(valid_X,1) %依次对每个样本进行处理
x1=valid_X(IIII,:);%轴承信号
Y = fft(x1);
L=length(x1);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
TZ(IIII,:)=P1/max(P1);
end
disp('验证集提取完毕')
valid_X=TZ;
%% 测试集
TZ=[];
for IIII=1:size(test_X,1) %依次对每个样本进行处理
x1=test_X(IIII,:);%轴承信号
Y = fft(x1);
L=length(x1);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
TZ(IIII,:)=P1/max(P1);
end
disp('测试集提取完毕')
test_X=TZ;
%% 输入数据归一化
% [xs,mapping]=mapminmax(train_X',-1,1);train_X=xs';
% xs=mapminmax('apply',valid_X',mapping);valid_X=xs';
% xs=mapminmax('apply',test_X',mapping);test_X=xs';
%% 保存结果
save data_feature train_X valid_X test_X train_Y valid_Y test_Y
3 仿真结果
4 参考文献
[1]涂小卫, 张士强, and 王明. "基于深度置信网络的牵引电机轴承故障诊断方法." 城市轨道交通研究 23.1(2020):6.
部分理论引用网络文献,若有侵权联系博主删除。