基于双树复小波变换DTCWT的轴承故障诊断

上一篇文章讲解了有关双树复小波变换的一些理论知识,以及在信号处理和图像处理方面的东西,这一章讲讲DTCWT在轴承故障诊断中的应用,所用的数据也是那两篇文章。

以第3个NSK轴承X方向的第7组70Hz振动数据为例

其原始信号的包络谱如下

x1 = load('#8');x1 = x1.X;x1 = x1(1:5120*2);x1 = x1-mean(x1);
fs = 10240;
N = length(x1);
t = 0:1/fs:(N-1)/fs;
fs=10240;
v=70; 
 [pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(x1, fs);plot(fEnvInner, pEnvInner)
    xlim([0 800]);hold on;ncomb = 20;helperPlotCombs(ncomb,6.587 *v);

可见内圈故障特征频率,但幅值相对较小,接下来使用DTCWT进行分解分析

分解层数设置为6层,先看双树系数的实部

J = 6;
%[dtcplxA,dtcplxD]为分解得到的系数
details = zeros(10240,5);
details(1:2:end,1) = dtcplxD{1};
details(2:4:end,2) = dtcplxD{2};
details(4:8:end,3) = dtcplxD{3};
details(8:16:end,4) = dtcplxD{4};
details(16:32:end,5) = dtcplxD{5};
general = zeros(10240,1);%概貌
general(16:32:end,5) = dtcplxA;
figure(2)
subplot(6,1,1)
stem(t,real(details(:,1)),'Marker','none','ShowBaseline','off')
title('Level 1')
ylabel('mV')
subplot(6,1,2)
stem(t,real(details(:,2)),'Marker','none','ShowBaseline','off')
title('Level 2')
ylabel('mV')
subplot(6,1,3)
stem(t,real(details(:,3)),'Marker','none','ShowBaseline','off')
title('Level 3')
ylabel('mV')
subplot(6,1,4)
stem(t,real(details(:,4)),'Marker','none','ShowBaseline','off')
title('Level 4')
ylabel('mV')
subplot(6,1,5)
stem(t,real(details(:,5)),'Marker','none','ShowBaseline','off')
title('Level 5')
ylabel('mV')
subplot(6,1,6)
stem(t,general,'Marker','none','ShowBaseline','off')
title('general 5')
ylabel('mV')

再看实部的包络谱

BPFI=6.587 ;
subplot_er(6,1,1);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(real(details(:,1)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,2);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(real(details(:,2)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,3);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(real(details(:,3)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,4);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(real(details(:,4)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,5);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(real(details(:,5)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,6);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(general, fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')

再看双树系数的虚部

subplot(6,1,1)
stem(t,imag(details(:,1)),'Marker','none','ShowBaseline','off')
title('Level 1')
ylabel('mV')
subplot(6,1,2)
stem(t,imag(details(:,2)),'Marker','none','ShowBaseline','off')
title('Level 2')
ylabel('mV')
subplot(6,1,3)
stem(t,imag(details(:,3)),'Marker','none','ShowBaseline','off')
title('Level 3')
ylabel('mV')
subplot(6,1,4)
stem(t,imag(details(:,4)),'Marker','none','ShowBaseline','off')
title('Level 4')
ylabel('mV')
subplot(6,1,5)
stem(t,imag(details(:,5)),'Marker','none','ShowBaseline','off')
title('Level 5')
ylabel('mV')
subplot(6,1,6)
stem(t,general,'Marker','none','ShowBaseline','off')
title('general 5')
ylabel('mV')

相应的包络谱

subplot_er(6,1,1);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(imag(details(:,1)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,2);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(imag(details(:,2)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,3);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(imag(details(:,3)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,4);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(imag(details(:,4)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,5);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(imag(details(:,5)), fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')
subplot_er(6,1,6);[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(general, fs);plot(fEnvInner, pEnvInner)
xlim([0 1500]);ncomb = 20;helperPlotCombs(ncomb,BPFI*v);xlabel('Frequency(Hz)');ylabel('Ampitude')

可见实部的包络谱的某几级系数的故障特征频率更明显

再以第3个NSK轴承X方向的第8组50Hz振动数据为例

其原始信号的包络谱如下

分解层数设置为6层,先看双树系数的实部

相应的包络谱

仔细看第2个子图

第2个子图的故障特征频率已经十分明显了

再看双树系数的虚部

虚部树的包络谱

效果就不说了,显而易见

同理,再以第3个NSK轴承X方向的第8组30Hz振动数据为例,其包络谱,双树系数的实部,实部的包络谱,

双树系数的虚部,虚部的包络谱分别如下图

效果就不用多说了,好的一批了。

擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振动信号等)
 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

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

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

打赏作者

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

抵扣说明:

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

余额充值