【故障诊断】一种滚动体轴承或齿轮的重复瞬态提取方法研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客  

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

本文尝试从故障滚动体轴承或齿轮振动信号中提取重复瞬变 (RT)。在我们的测试中,它可用于干扰抑制,特别是脉冲噪声,复合故障诊断和某些情况下的早期故障诊断。

📚2 运行结果

 部分代码:

% CHECK INPUT VALUES
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = length(x);
N2 = log2(N) - 7;
if nlevel > N2
   error('Please enter a smaller number of decomposition levels');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SET THE UPPER AND LOWER OF FREQUENCY HUNTING ZONE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fcf_lower=FCF-5;
fcf_upper=FCF+5;
lower=floor(fcf_lower*N/Fs);
upper=ceil(fcf_upper*N/Fs);
fprintf('The lower frequency of frequency hunting zone: %4.4f\nThe upper frequency of frequency hunting zone: %4.4f\n',fcf_lower,fcf_upper);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FAST COMPUTATION OF THE MKURTGRAM 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
% Analytic generating filters
N = 16;            fc = .4;
h = fir1(N,fc).*exp(2*1i*pi*(0:N)*.125);
g = fir1(N,fc).*exp(2*1i*pi*(0:N)*.375);

N = fix(3/2*N);
h1 = fir1(N,2/3*fc).*exp(2*1i*pi*(0:N)*.25/3);
h2 = h1.*exp(2*1i*pi*(0:N)/6);
h3 = h1.*exp(2*1i*pi*(0:N)/3);

MKwav = MK_wpQ(x,h,g,h1,h2,h3,nlevel,upper,lower);        % multipoint kurtosis of the complex envelope
MKwav = MKwav.*(MKwav>0);                            % keep positive values only!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% GRAPHICAL DISPLAY OF RESULTS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
Level_w = 1:nlevel;    Level_w = [Level_w;Level_w+log2(3)-1];    
Level_w = Level_w(:); Level_w = [0 Level_w(1:2*nlevel-1)'];
freq_w = Fs*((0:3*2^nlevel-1)/(3*2^(nlevel+1)) + 1/(3*2^(2+nlevel)));
imagesc(freq_w,1:2*nlevel,MKwav),colorbar,[I,J,M] = max_IJ(MKwav);
xlabel('frequency [Hz]'),set(gca,'ytick',1:2*nlevel,'yticklabel',round(Level_w*10)/10),ylabel('level k')
fi = (J-1)/3/2^(nlevel+1);   fi = fi + 2^(-2-Level_w(I));
title(['Mkurt_{max}=',num2str(round(100*M)/100),' @ level ',num2str(fix(10*Level_w(I))/10),', Bw= ',num2str(Fs*2^-(Level_w(I)+1)),'Hz, f_c=',num2str(Fs*fi),'Hz'])
toc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SIGNAL FILTERING
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
r = [];
test = input('Do you want to filter out repetitive transients signal from the Mkurtgram? (yes = 1 ; no = 0): ');
while test == 1
   fi = input(['    Enter the optimal carrier frequency (btw 0 and ',num2str(Fs/2),') where to filter the signal: ']);
   fi = fi/Fs;
   lev = input(['    Enter the optimal level (btw 0 and ',num2str(nlevel),') where to filter the signal: ']);
   r = Find_wav_kurt(x,h,g,h1,h2,h3,lev,fi,Fs);
   test = input('Do you want to keep on filtering out repetitive transients? (yes = 1 ; no = 0): ');
end 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]廖彦, 孙平, 王斌, 曲立, 频域多点峰度重复瞬变提取轴承故障诊断, 测量科学与技术, 29 (2018) 

[2]关可铭,杜兵,李金峰,靳松,张振涛.基于LMD和改进CNN的轴承故障诊断方法[J].制造业自动化,2023,45(01):216-220.

🌈4 Matlab代码实现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值