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

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

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

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

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

目录

💥1 概述

改进最大相关峰度反卷积(MCKD)方法在滚动体轴承故障诊断中的应用研究

一、MCKD方法的基本原理与优势

二、滚动轴承故障诊断的技术挑战

三、MCKD在滚动轴承诊断中的现有应用案例

四、MCKD方法的局限性

五、改进方向与具体方案

1. 自适应参数优化

2. 与其他信号处理方法的结合

3. 迭代算法改进

4. 多尺度与复合故障处理

六、信号处理关键指标与评估

七、结论与展望

📚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 滚动体轴承 故障诊断 复合故障 自相关

改进最大相关峰度反卷积(MCKD)方法在滚动体轴承故障诊断中的应用研究

一、MCKD方法的基本原理与优势

最大相关峰度反卷积(MCKD)是一种基于信号相关峰度优化的盲反卷积方法,旨在通过设计有限脉冲响应(FIR)滤波器,最大化输出信号的相关峰度,从而增强周期性冲击成分并抑制噪声干扰。其核心原理包括:

  1. 相关峰度定义:相关峰度衡量信号中周期性冲击的强度,定义为冲击周期内信号乘积的平方和与信号平方和的比值。
  2. 优化目标:通过迭代调整滤波器系数,使滤波后信号的相关峰度最大化,从而分离出被噪声掩盖的周期性故障冲击信号。
  3. 算法流程:确定滤波器长度(L)、位移数(M)和冲击周期(T)后,通过梯度上升法更新滤波器参数,直至相关峰度收敛。

优势

  • 周期性冲击增强:相比最小熵反卷积(MED),MCKD能更有效提取周期性故障特征,适用于滚动轴承的早期微弱故障诊断。
  • 噪声鲁棒性:通过最大化相关峰度,抑制高斯噪声和非周期性干扰。
二、滚动轴承故障诊断的技术挑战

滚动轴承故障信号具有以下特点,对MCKD的应用提出要求:

  1. 微弱性:早期故障冲击信号幅值小,易被环境噪声淹没。
  2. 周期性调制:故障特征频率(如内圈、外圈、滚动体频率)常被转速波动和负载变化调制。
  3. 非平稳性:运行工况变化导致信号时变特性显著。
  4. 复合故障:多部件同时故障时,信号成分复杂,需多尺度分析。
三、MCKD在滚动轴承诊断中的现有应用案例
  1. 早期故障检测:荆双喜等(2018)通过MCKD处理振动信号,结合包络解调成功提取轴承外圈早期故障特征频率。
  2. 复合故障分离:李彦徵等(2023)提出灰狼算法(GWO)优化MCKD参数,有效分离全机滚道样本中的复合故障特征。
  3. 强噪声环境处理:黄斯琪等(2020)结合MCKD与傅里叶分解方法(FDM),在强背景噪声下提取故障频率边带。
四、MCKD方法的局限性
  1. 参数敏感性:滤波器长度(L)、位移数(M)和周期(T)需人工经验设定,不当参数导致性能下降。
  2. 计算复杂度:迭代优化过程耗时,尤其在高位移数(θ>7)时易出现浮点溢出。
  3. 复合故障局限:传统MCKD难以同时分离多个故障源的冲击成分。
  4. 局部最优问题:梯度上升法易陷入局部最优,影响解卷积效果。
五、改进方向与具体方案
1. 自适应参数优化
  • 智能算法融合
    • 灰狼算法(GWO) :优化滤波器长度(L)和周期(T),提升噪声抑制效果。
    • 量子遗传算法(QGA) :自适应选择关键参数,解决复合故障中单个故障分离问题。
    • 改进粒子群(IPSO) :以包络谱峭度为目标函数,动态调整滤波器系数和移位数。
  • 熵指标驱动
    • 排列熵优化:通过最大排列熵确定最优滤波长度,结合峰度指标优化周期参数,增强脉冲信号提取。
2. 与其他信号处理方法的结合
  • 时频分解技术
    • CEEMDAN+MCKD:先通过CEEMDAN分解信号,筛选高冲击成分后再经MCKD增强,减少噪声干扰。
    • VMD+MCKD:利用变分模态分解(VMD)预处理信号,结合MCKD提取调制特征。
  • 多尺度分析
    • 多目标优化MCKD:以多尺度均值极差熵(MMRE)和符号动态熵(SDE)为目标函数,自适应处理微弱故障信号。
3. 迭代算法改进
  • 网格搜索与非线性规划:在参数空间内采用网格搜索确定最优滤波器阶数和周期,避免局部最优。
  • 改进目标函数:引入复合指标(如峭度-熵组合),平衡冲击增强与噪声抑制。
4. 多尺度与复合故障处理
  • 分阶段处理:先通过MCKD提取主故障成分,再利用小波包分解分析残余信号中的次生故障。
  • 多通道融合:结合声信号与振动信号的MCKD处理,通过DS证据理论融合诊断结果。
六、信号处理关键指标与评估
  1. 时域指标:峰度、均方根值(RMS)、峰值因子,用于量化冲击强度和信号平稳性。
  2. 频域特征:包络谱中的故障特征频率及其谐波,调制边带清晰度。
  3. 熵值分析:排列熵、样本熵评估信号复杂度,反映噪声抑制效果。
  4. 分类准确率:结合SVM等分类器,验证故障类型识别率(如文献[39]中达95%以上)。
七、结论与展望

改进MCKD方法通过参数自适应优化、多方法融合及算法创新,显著提升了滚动轴承故障诊断的准确性和鲁棒性。未来研究可进一步探索:

  1. 深度学习结合:将MCKD作为预处理层,与卷积神经网络(CNN)结合,实现端到端故障诊断。
  2. 实时性优化:开发快速MCKD算法,满足在线监测需求。
  3. 多物理场应用:扩展至温度、声发射等多源信号融合分析。

通过上述改进,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个

红包金额最低5元

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

抵扣说明:

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

余额充值