内容发布更新时间 : 2025/2/8 5:20:22星期一 下面是文章的全部内容请认真阅读。
滚动轴承故障诊断(附MATLAB程序)
第二组实验 轴承故障数据:
Test2.mat 数据打开后应采用X105_DE_time作为分析数据,其他可作为参考,转速1797rpm
轴承型号:6205-2RS JEM SKF, 深沟球轴承 采样频率:12k Hz
1、确定轴承各项参数并计算各部件的故障特征频率
通过以上原始数据可知次轴承的参数为:
轴承转速r=1797r/min;滚珠个数n=9;滚动体直径d=7.938mm; 轴承节径D=39mm;:滚动体接触角α=0 由以上数据计算滚动轴承不同部件故障的特征频率为: 外圈故障频率f1=r/60 * 1/2 * n(1-d/D *cosα)=107.34Hz 内圈故障频率f2=r/60 * 1/2 * n(1+d/D *cosα)=162.21Hz 滚动体故障频率f3=r/60*1/2*D/d*[1-(d/D)^2* cos^2(α)]=70.53Hz
保持架外圈故障频率f4=r/60 * 1/2 * (1-d/D *cosα)=11.92Hz
2.对轴承故障数据进行时域波形分析
将轴承数据Test2.mat导入MATLAB中直接做FFT分析得到
时域图如下:
1 / 6
滚动轴承故障诊断(附MATLAB程序)
并求得时域信号的各项特征:
(1)有效值:0.2909; (2)峰值:1.5256; (3)峰值因子:5.2441;(4)峭度:5.2793; (5)脉冲因子:7.2884;(6)裕度因子:9.1083:
2 / 6
滚动轴承故障诊断(附MATLAB程序)
3.包络谱分析
对信号做EMD模态分解,分解得到的每一个IMF信号分别和原信号做相关分析,找出相关系数较大的IMF分量并对此IMF分量进行Hilbert变换。
Empirical Mode Decompositionres.imf8imf7imf6imf5imf4imf3imf2imf1signal
由图中可以看出经过EMD分解后得到的9个IMF分量和一个残余量。IMF分量分别和原信号做相关分析后得出相关系数如下:
EMD分量 相关系数 EMD分量 相关系数 IMF1 0.9596 IMF6 0.0032 IMF2 0.1990 IMF7 0.0045 IMF3 0.1096 IMF8 0.0055 IMF4 0.0062 IMF9 0.0060 IMF5 0.0230 IMF10 0.0062 由上表得:IMF1的相关系数明显最大,所以选用IMF1做Hilbert包络谱分析。所得Hilbert包络谱图如下:
3 / 6
滚动轴承故障诊断(附MATLAB程序)
对包络谱图中幅值较大区域局部放大得到下图
由以上包络图的局部放大图中可以看出包络图中前三个峰值最大也最明显,三个峰值频率由小到大排列分别为58.59Hz、105.5Hz、164.1Hz。把这三个频率数值和前文计算所得的理论值进行比较可知:频率值最大为164.1Hz和内圈的故障理论计算特征频率f2=162.21Hz相近,说明此轴承的故障发生在轴承的内圈。
clc
4 / 6
滚动轴承故障诊断(附MATLAB程序)
程序1:原始信号时域分析及小波去噪处理
clear all
z=importdata('C:\\Users\\wangkun\\Desktop\\轴承诊断\\test2.mat'); x1=z.X105_DE_time(1:4096); clear z; N=4096; fs=12000; n=0:N-1; t=n/fs; f=n*fs/N; figure(1); plot(t,x1);
xlabel('t'); ylabel('幅值'); title('原信号时域图') %小波去噪
[thr,sorh,keepapp]=ddencmp('den','wv',x1); xd=wdencmp('gbl',x1,'db3',2,thr,sorh,keepapp); figure(2); plot(t,xd); xlabel('t');
ylabel('幅值');
title('小波去噪后时域图')
程序2:EMD分解及Hilbert包络
clc
clear all
z=load('C:\\Users\\wangkun\\Desktop\\轴承诊断\\test2.mat'); x=z.X105_DE_time(1:1024); N=1024; fs=12000; n=0:N-1; f=n*fs/N; lag=N; n=0:N-1;
t=n/fs; imf=emd(x);
[m,n]=size(imf); %imf为一m*n阶矩阵,m是imf分量,n为数据点
emd_visu(x,1:length(x),imf,m); %实信号的信号重构及emd结果显示函数 for i=1:m
a(i)=kurtosis(imf(i,:));%峭度 b(i)=mean(imf(i,:)); %均值;
5 / 6