一、简介

在滚动轴承的故障诊断时,传统的频谱分析法通常采用共振解调技术 , 具有良好的效果 ,但当内圈 、 滚动体或多点故障时,解调谱线却很难分辨故障类型小波包是小波理论在信号处理应用领域的又一重大发展,它在小波理论的基础上引人了最优基准准则,目前已在通信、 图像处理、分形 、信号检测等方面获得成功应用小波包分解是多分辨率分析的推广,是一种比小波分析更为精细的信号时频分析方法 ,它将频带进行多层次划分 , 对小波分析没有细分的高频部分也进行了分解,并能根据被分析信号的特征 , 自适应地 选择频带,使之与信号频谱相匹配 ,从而提高时频分辨率, 因此它是一种非常有效的信号处理方法。本文将用小波包分析方法构造滚动轴承状态检测信号的能量特征向量,再用神经网络方法对滚动轴承的状态进行识别。

1 小波包理论
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_图像处理
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_开发语言_02
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_加载_03
2 特征频率估算
滚动轴承各部件发生单点故障时 , 其特征信号频率为
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_开发语言_04
3 构造能量特征向量
当轴承在负载旋转过程中出现疲劳 、 压痕或局部腐蚀等故障时 , 将产生冲击振动 , 而这些振动反复互激又会引起更大的振颤 , 用加速度传感器获取运动中轴承的振动加速度信号 , 由于轴承的故障使得该振动信号在某些频带内的信号能量减小 , 而使另外一些频带内的信号能量增强 , 因此 , 在各频率成分信号的能量中, 包含了丰富的故障信息 ,某种或某几种频率成分能量 的改变代表一种故障,基于这点,由轴承振动信号的各频段能量相对值构造轴承故障特征向量。
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_加载_05

二、部分源代码

%%%%以下提取小波包重构信号的故障诊断
clc
clear
fs=12e3;
load zhengchang.mat;%加载正常信号
load 98.mat;
s1=X098_DE_time(19001:1:20000,1);% 正常情况下驱动端数据
% s1=X098_FE_time(1:1:10000,1);% 正常情况下驱动端数据
load in.mat;%加载内圈故障信号
% load fan_in.mat;%加载风扇端内圈故障信号
load 106.mat;
s2=X106_DE_time(19001:1:20000,1);% 内圈故障信号情况下驱动端数据
% s2=X279_FE_time(1:1:10000,1);% 内圈故障信号情况下驱动端数据
% load fan_ball.mat;%加载滚动体故障信号
load ball.mat;%加载滚动体故障信号
load 119.mat;
s3=X119_DE_time(19001:1:20000,1);% 滚动体故障情况下驱动端数据
% s3=X283_FE_time(1:1:10000,1);% 滚动体故障情况下驱动端数据
% load fan_out_12.mat;%加载外圈12点位置故障信号
load out_12.mat;%加载外圈12点位置故障信号
load 158.mat;
s4=X158_DE_time(14001:1:15000,1);% 外圈12点位置情况下驱动端数据
% s4=X305_FE_time(1:1:10000,1);% 外圈12点位置情况下驱动端数据
n=3;
ji='db5';
wpt=wpdec(s1,n,ji);%使用db5小波包分解正常信号到底三层,使用shannon熵
% plot(wpt);
rcfs10=wprcoef(wpt,[n,0]);%利用相应的频段进行重构
rcfs11=wprcoef(wpt,[n,1]);
rcfs12=wprcoef(wpt,[n,2]);
rcfs13=wprcoef(wpt,[n,3]);
rcfs14=wprcoef(wpt,[n,4]);
rcfs15=wprcoef(wpt,[n,5]);
rcfs16=wprcoef(wpt,[n,6]);
rcfs17=wprcoef(wpt,[n,7]);
cfs10=wpcoef(wpt,[n,0]);%提取小波包分解系数
cfs11=wpcoef(wpt,[n,1]);
cfs12=wpcoef(wpt,[n,2]);
cfs13=wpcoef(wpt,[n,3]);
cfs14=wpcoef(wpt,[n,4]);
cfs15=wpcoef(wpt,[n,5]);
cfs16=wpcoef(wpt,[n,6]);
cfs17=wpcoef(wpt,[n,7]);
wpt1=wpdec(s2,n,ji);
rcfs20=wprcoef(wpt1,[n,0]);
rcfs21=wprcoef(wpt1,[n,1]);
rcfs22=wprcoef(wpt1,[n,2]);
rcfs23=wprcoef(wpt1,[n,3]);
rcfs24=wprcoef(wpt1,[n,4]);
rcfs25=wprcoef(wpt1,[n,5]);
rcfs26=wprcoef(wpt1,[n,6]);
rcfs27=wprcoef(wpt1,[n,7]);
cfs20=wpcoef(wpt1,[n,0]);
cfs21=wpcoef(wpt1,[n,1]);
cfs22=wpcoef(wpt1,[n,2]);
cfs23=wpcoef(wpt1,[n,3]);
cfs24=wpcoef(wpt1,[n,4]);
cfs25=wpcoef(wpt1,[n,5]);
cfs26=wpcoef(wpt1,[n,6]);
cfs27=wpcoef(wpt1,[n,7]);
wpt2=wpdec(s3,n,ji);
rcfs30=wprcoef(wpt2,[n,0]);
rcfs31=wprcoef(wpt2,[n,1]);
rcfs32=wprcoef(wpt2,[n,2]);
rcfs33=wprcoef(wpt2,[n,3]);
rcfs34=wprcoef(wpt2,[n,4]);
rcfs35=wprcoef(wpt2,[n,5]);
rcfs36=wprcoef(wpt2,[n,6]);
rcfs37=wprcoef(wpt2,[n,7]);
cfs30=wpcoef(wpt2,[n,0]);
cfs31=wpcoef(wpt2,[n,1]);
cfs32=wpcoef(wpt2,[n,2]);
cfs33=wpcoef(wpt2,[n,3]);
cfs34=wpcoef(wpt2,[n,4]);
cfs35=wpcoef(wpt2,[n,5]);
cfs36=wpcoef(wpt2,[n,6]);
cfs37=wpcoef(wpt2,[n,7]);
wpt3=wpdec(s4,n,ji);
rcfs40=wprcoef(wpt3,[n,0]);
rcfs41=wprcoef(wpt3,[n,1]);
rcfs42=wprcoef(wpt3,[n,2]);
rcfs43=wprcoef(wpt3,[n,3]);
rcfs44=wprcoef(wpt3,[n,4]);
rcfs45=wprcoef(wpt3,[n,5]);
rcfs46=wprcoef(wpt3,[n,6]);
rcfs47=wprcoef(wpt3,[n,7]);
cfs40=wpcoef(wpt3,[n,0]);
cfs41=wpcoef(wpt3,[n,1]);
cfs42=wpcoef(wpt3,[n,2]);
cfs43=wpcoef(wpt3,[n,3]);
cfs44=wpcoef(wpt3,[n,4]);
cfs45=wpcoef(wpt3,[n,5]);
cfs46=wpcoef(wpt3,[n,6]);
cfs47=wpcoef(wpt3,[n,7]);
for i=1:2^n
E(i)=(norm(wpcoef(wpt,[n,i-1]),2))^2;%求第i个节点的范数平方,其实也就是平方和,即能量
end
E_total=sum(E); %求总能量
for i=1:2^n
pfir(i)= E(i)/E_total;%若求每个节点的概率,即所占的能量比,则为E(i)/E_total
end

三、运行结果

【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_加载_06
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_图像处理_07
【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】_开发语言_08

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]张国新,刘祚时.基于小波包分析的滚动轴承故障诊断[J].江西理工大学学报. 2007,(01)