滚动体轴承故障诊断(matlab谱峭度法)

来源: matlab官网:滚动体轴承故障诊断
本示例展示了如何根据加速度信号对滚动轴承执行故障诊断,尤其是在存在来自其他机器部件的强屏蔽信号的情况下。该示例将演示如何应用包络频谱分析和谱峭度法来进行诊断轴承故障,并能够扩展到大数据应用。

问题概述

滚动体轴承中的局部故障可能发生在外圈、内圈、保持架或滚动体中。当滚动体撞击外圈或内圈上的局部故障,或滚动体上的故障撞击外圈或内圈时,轴承和响应传感器之间的高频共振被激发[1]。下图显示了滚动体撞击内圈的局部断层。问题是如何检测和识别各种类型的故障。

在这里插入图片描述
机械故障预防技术 (MFPT) 挑战数据
MFPT 挑战数据 [4] 包含从各种故障条件下的机器收集的 23 个数据集。前20个数据集是从轴承试验台收集的,其中3个在良好条件下,3个在恒定载荷下有外圈故障,7个在各种载荷下有外圈故障,7个在各种载荷下有内圈故障。其余 3 个数据集来自真实世界的机器:油泵轴承、中速轴承和行星轴承。故障位置未知。在此示例中,仅使用从具有已知条件的测试台收集的数据。

每个数据集都包含一个加速度信号“gs”、采样率“sr”、轴速度“速率”、负载重量“负载”和代表不同故障位置的四个临界频率:球通频率外圈 (BPFO)、球通频率内圈 (BPFI)、基本列车频率 (FTF) 和球旋频率 (BSF)。以下是这些临界频率的公式[1]。

在这里插入图片描述

包络谱分析

在MFPT数据集中,轴速度是恒定的,因此无需执行阶次跟踪作为预处理步骤来消除轴速度变化的影响
当滚动体在外圈或内圈撞击局部故障时,或者当滚动体上的故障撞击外圈或内圈时,冲击将调制相应的临界频率,例如BPFO,BPFI,FTF,BSF。因此,幅度解调产生的包络信号传达了原始信号频谱分析无法提供的更多诊断信息。以MFPT数据集中的内争故障信号为例。

dataInner = load(fullfile(matlabroot, 'toolbox', 'predmaint', ...
    'predmaintdemos', 'bearingFaultDiagnosis', ...
    'train_data', 'InnerRaceFault_vload_1.mat'));

在时域中可视化原始内争故障数据

xInner = dataInner.bearing.gs;
fsInner = dataInner.bearing.sr;
tInner = (0:length(xInner)-1)/fsInner;
figure
plot(tInner, xInner)
xlabel('Time, (s)')
ylabel('Acceleration (g)')
title('Raw Signal: Inner Race Fault')
xlim([0 0.1])

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在频域中可视化原始数据。

figure
[pInner, fpInner] = pspectrum(xInner, fsInner);
pInner = 10*log10(pInner);
plot(fpInner, pInner)
xlabel('Frequency (Hz)')
ylabel('Power Spectrum (dB)')
title('Raw Signal: Inner Race Fault')
legend('Power Spectrum')

在这里插入图片描述
现在放大低频范围内原始信号的功率谱,以仔细观察BPFI及其前几次谐波的频率响应。

figure
plot(fpInner, pInner)
ncomb = 10;
helperPlotCombs(ncomb, dataInner.BPFI)
xlabel('Frequency (Hz)')
ylabel('Power Spectrum (dB)')
title('Raw Signal: Inner Race Fault')
legend('Power Spectrum', 'BPFI Harmonics')
xlim([0 1000])

在这里插入图片描述
在BPFI及其谐波中看不到清晰的模式。对原始信号进行频率分析不能提供有用的诊断信息。

查看时域数据,观察到原始信号的幅度在一定频率下调制,调制的主频率在1/0.009 Hz左右≈111赫兹。众所周知,滚动体在内圈(即BPFI)撞击局部故障的频率为118.875 Hz。这表明轴承可能存在内圈故障。

figure
subplot(2, 1, 1)
plot(tInner, xInner)
xlim([0.04 0.06])
title('Raw Signal: Inner Race Fault')
ylabel('Acceleration (g)')
annotation('doublearrow', [0.37 0.71], [0.8 0.8])
text(0.047, 20, ['0.009 sec \approx 1/BPFI, BPFI = ' num2str(dataInner.BPFI)])

在这里插入图片描述
现在计算包络信号的功率谱,并查看BPFI及其谐波的频率响应。

figure
plot(fEnvInner, pEnvInner)
xlim([0 1000])
ncomb = 10;
helperPlotCombs(ncomb, dataInner.BPFI)
xlabel('Frequency (Hz)')
ylabel('Peak Amplitude')
title('Envelope Spectrum: Inner Race Fault')
legend('Envelope Spectrum', 'BPFI Harmonics')

在这里插入图片描述
结果表明,大部分能量集中在BPFI及其谐波上。这表明轴承存在内圈故障,与数据的故障类型相匹配。 (dataInner.BPFI = 118.8750)

将包络频谱分析应用于其他故障类型

现在对正常数据和外种族故障数据重复相同的包络频谱分析。

dataNormal = load(fullfile(matlabroot, 'toolbox', 'predmaint', ...
    'predmaintdemos', 'bearingFaultDiagnosis', ...
    'train_data', 'baseline_1.mat'));
xNormal = dataNormal.bearing.gs;
fsNormal = dataNormal.bearing.sr;
tNormal = (0:length(xNormal)-1)/fsNormal;
[pEnvNormal, fEnvNormal] = envspectrum(xNormal, fsNormal);

figure
plot(fEnvNormal, pEnvNormal)
ncomb = 10;
helperPlotCombs(ncomb, [dataNormal.BPFO dataNormal.BPFI])
xlim([0 1000])
xlabel('Frequency (Hz)')
ylabel('Peak Amplitude')
title('Envelope Spectrum: Normal')
legend('Envelope Spectrum', 'BPFO Harmonics', 'BPFI Harmonics')

在这里插入图片描述正如预期的那样,正常方位信号的包络频谱在BPFO或BPFI处没有显示出任何明显的峰值。

dataOuter = load(fullfile(matlabroot, 'toolbox', 'predmaint', ...
    'predmaintdemos', 'bearingFaultDiagnosis', ...
    'train_data', 'OuterRaceFault_2.mat'));
xOuter = dataOuter.bearing.gs;
fsOuter = dataOuter.bearing.sr;
tOuter = (0:length(xOuter)-1)/fsOuter;
[pEnvOuter, fEnvOuter, xEnvOuter, tEnvOuter] = envspectrum(xOuter, fsOuter);

figure
plot(fEnvOuter, pEnvOuter)
ncomb = 10;
helperPlotCombs(ncomb, dataOuter.BPFO)
xlim([0 1000])
xlabel('Frequency (Hz)')
ylabel('Peak Amplitude')
title('Envelope Spectrum: Outer Race Fault')
legend('Envelope Spectrum', 'BPFO Harmonics')

在这里插入图片描述
对于外部竞赛故障信号,BPFO谐波也没有明显的峰值。包络谱分析是否无法区分具有外圈故障的轴承和健康轴承?让我们退后一步,再次查看不同条件下的时域信号。

首先,让我们再次在时域中可视化信号并计算它们的峭度。峭度是随机变量的四阶标准化矩。它表征信号的冲动性或随机变量尾部的重量。

figure
subplot(3, 1, 1)
kurtInner = kurtosis(xInner);
plot(tInner, xInner)
ylabel('Acceleration (g)')
title(['Inner Race Fault, kurtosis = ' num2str(kurtInner)])
xlim([0 0.1])

subplot(3, 1, 2)
kurtNormal = kurtosis(xNormal);
plot(tNormal, xNormal)
ylabel('Acceleration (g)')
title(['Normal, kurtosis = ' num2str(kurtNormal)])
xlim([0 0.1])

subplot(3, 1, 3)
kurtOuter = kurtosis(xOuter);
plot(tOuter, xOuter)
xlabel('Time (s)')
ylabel('Acceleration (g)')
title(['Outer Race Fault, kurtosis = ' num2str(kurtOuter)])
xlim([0 0.1])

在这里插入图片描述结果表明,内圈故障信号具有显著较大的脉冲性,使包络谱分析能够有效捕获BPFI处的故障特征。对于外部竞赛故障信号,BPFO的幅度调制略显明显,但被强噪声掩盖。正常信号不显示任何幅度调制。在BPFO下通过幅度调制提取脉冲信号(或增强信噪比)是包络频谱分析之前的关键预处理步骤。下一节将介绍谱峭度和库尔特图,以提取峰度最高的信号,并对滤波后的信号进行包络谱分析。

level = 9;
figure
kurtogram(xOuter, fsOuter, level)

在这里插入图片描述
库尔图表明,以2.67 kHz为中心,带宽为0.763 kHz的频带峰度最高,为2.71。

现在使用库尔图建议的最佳窗口长度来计算光谱峰度。

figure
wc = 128;
pkurtosis(xOuter, fsOuter, wc)

在这里插入图片描述
要在频谱图上可视化频带,请计算频谱图并将频谱峰度放在侧面。为了以另一种方式解释频谱峰度,高频谱峰度值表示相应频率下的功率方差很大,这使得频谱峰度成为定位信号非平稳分量的有用工具

helperSpectrogramAndSpectralKurtosis(xOuter, fsOuter, level)

在这里插入图片描述
通过使用建议的中心频率和带宽对信号进行带通滤波,可以增强峰度,并检索外竞赛故障的调制幅度。

[~, ~, ~, fc, ~, BW] = kurtogram(xOuter, fsOuter, level);

bpf = designfilt('bandpassfir', 'FilterOrder', 200, 'CutoffFrequency1', fc-BW/2, ...
    'CutoffFrequency2', fc+BW/2, 'SampleRate', fsOuter);
xOuterBpf = filter(bpf, xOuter);
[pEnvOuterBpf, fEnvOuterBpf, xEnvOuterBpf, tEnvBpfOuter] = envspectrum(xOuter, fsOuter, ...
    'FilterOrder', 200, 'Band', [fc-BW/2 fc+BW/2]);

figure
subplot(2, 1, 1)
plot(tOuter, xOuter, tEnvOuter, xEnvOuter)
ylabel('Acceleration (g)')
title(['Raw Signal: Outer Race Fault, kurtosis = ', num2str(kurtOuter)])
xlim([0 0.1])
legend('Signal', 'Envelope')

subplot(2, 1, 2)
kurtOuterBpf = kurtosis(xOuterBpf);
plot(tOuter, xOuterBpf, tEnvBpfOuter, xEnvOuterBpf)
ylabel('Acceleration (g)')
xlim([0 0.1])
xlabel('Time (s)')
title(['Bandpass Filtered Signal: Outer Race Fault, kurtosis = ', num2str(kurtOuterBpf)])
legend('Signal', 'Envelope')

可以看出,带通滤波后峰度值增加。现在在频域中可视化包络信号。

figure
plot(fEnvOuterBpf, pEnvOuterBpf);
ncomb = 10;
helperPlotCombs(ncomb, dataOuter.BPFO)
xlim([0 1000])
xlabel('Frequency (Hz)')
ylabel('Peak Amplitude')
title('Envelope Spectrum of Bandpass Filtered Signal: Outer Race Fault ')
legend('Envelope Spectrum', 'BPFO Harmonics')

在这里插入图片描述
结果表明,通过带通滤波原始信号和峰度图建议的频带,包络频谱分析能够揭示BPFO及其谐波的故障特征。

总结

首先基于包络频谱分析法,得到出现BPF1故障时,大部分能量集中在BPF1频率及其谐波上,存在内圈故障。 以同样得方法对外部故障数据进行分析,包络谱分析法失效,在BPFO及其谐波处没有明显得峰值。则转到时域信号,基于谱峭度法对时域信号进行分析,精确定位到峰值最高得频段后,对原始信号应用带通滤波器进行滤波,对信号进行特征增强。在此基础上,在进行包络谱分析,揭示BPFO及其谐波的故障特征。

猜你喜欢

转载自blog.csdn.net/weixin_39107270/article/details/129735786