改进最大相关峰度反卷积方法在滚动体轴承故障诊断中的应用(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

2.1 稀疏最大谐波噪声比反卷积

2.2 最大相关峰度反卷积

2.3 最大二阶环平稳盲反卷积

🎉3 参考文献

🌈4 Matlab代码、数据、文献


💥1 概述

摘要:从振动信号中提取周期性脉冲(滚动轴承故障的重要指标)对于故障诊断具有重要意义。由最小熵反卷积 (MED) 发展而来的最大相关峰度反卷积 (MCKD) 已被证明是增强滚动轴承和齿轮箱诊断周期性脉冲的有效工具。然而,当 MCKD 应用于在恶劣工作条件下运行的轴承时,仍然存在挑战。难点主要来自于对多输入参数的严格要求和复杂的重采样过程。为了克服这些局限性,本文提出了一种改进的MCKD(IMCKD)。新方法通过计算包络信号的自相关来估计迭代周期,而不是依赖于提供的先前周期。此外,迭代周期将通过在每一步迭代后更新迭代周期,逐渐接近真正的故障周期。由于IMCKD不受高峰度值脉冲信号的影响,因此新方法从分配的迭代计数中选择最大峰度滤波信号作为最终选择。与MCKD相比,IMCKD有三个优点。首先,在不考虑前期和班次顺序选择的情况下,IMCKD效率更高,鲁棒性更高。其次,IMCKD不需要重采样过程,这对于后续的频谱分析和包络频谱分析非常方便,无需重置采样率。第三,IMCKD在轴承复合故障诊断方面具有显著的性能优势,扩大了应用范围。最后,通过大量模拟轴承故障信号验证了IMCKD的有效性和优越性,并应用于机车轴承的复合故障和单故障诊断。

最大相关峰度反卷积(MCKD)改进的MCKD 滚动体轴承 故障诊断 复合故障 自相关

📚2 运行结果

2.1 稀疏最大谐波噪声比反卷积

 

 

2.2 最大相关峰度反卷积

2.3 最大二阶环平稳盲反卷积

 

 

 

 

 部分代码:

%%
load sig3
x = x - mean(x);
addpath('..\00 subfunction\')

%%
fs = 20000;
N = length(x);
t = (0:N - 1) / fs;
t = t(:);
BPFI = 38;

%% Raw data
figure;
plot(t, x, 'b');
xlabel('Time [s]')
ylabel('Amplitude')
title('Raw data')
legend(['Kurtosis=', num2str(kurtosis(x))])
setfontsize(20);
set(gcf, 'position', [100, 100, 800, 400])
axis tight
ylim([-2 2.5])

envelope_x = abs(hilbert(x)) - mean(abs(hilbert(x)));
ff = 0:fs / N:fs - fs / N;
amp_envelope_x = abs(fft(envelope_x, N)) * 2 / fs;
figure;
plot(ff, amp_envelope_x, 'b')
xlabel('Frequency [Hz]')
ylabel('Amplitude')
setfontsize(20);
set(gcf, 'position', [100, 100, 800, 400])
axis tight
xlim([0, 200]);
ylim([0 0.025])

%% SMHD

[y_final, f_final, kurtIter] = smhd(fs, x, 100, 30, 1.5 * rms(x), [], 0);

%% Filtered signal
figure;
plot(t, y_final, 'b');
xlabel('Time [s]')
ylabel('Amplitude')
title('Filtered signal by SMHD')
legend(['Kurtosis=', num2str(kurtosis(y_final))])
setfontsize(20);
set(gcf, 'position', [100, 100, 800, 400])
axis tight
ylim([-3.5 4.5])

envelope_y = abs(hilbert(y_final)) - mean(abs(hilbert(y_final)));
amp_envelope_y = abs(fft(envelope_y, N)) * 2 / fs;
figure;
plot(ff, amp_envelope_y, 'b')
xlabel('Frequency [Hz]')
ylabel('Amplitude')
setfontsize(20);
set(gcf, 'position', [100, 100, 800, 400])
axis tight
xlim([0, 200]);
ylim([0 0.3])

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文献

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值