当前位置:   article > 正文

【故障诊断】基于EMD实现故障诊断附matlab代码_emd-arima代码

emd-arima代码

1 内容介绍

旋转机械作为大多数机械设备的主要组成部分,经常会出现各种各样的故障,而转子不平衡和转子弯曲又是其中经常出现的两种故障。有转轴的机械设备大多数都会存在滚动轴承,而滚动轴承也是常用且容易产生故障的部件。在实际工作中,旋转机械往往会有多种故障同时出现的情况。这种情况更加复杂,越来越受到人们的重视,准确的诊断出这些故障对于设备的正常运行和生产安全有着重要的意义。本文以转子系统为研究对象,主要运用小波降噪理论、EMD理论以及冲击脉冲法对于滚动轴承与转子不平衡的复合故障、滚动轴承与转子弯曲的复合故障进行了诊断,同时对滚动轴承的内圈故障、外圈故障以及滚动体故障进行了诊断。​

2 仿真代码

%画信号的幅频谱和功率谱

%频谱使用matlab例子表示

function hua_fft(y,fs,style,varargin)

%当style=1,画幅值谱;当style=2,画功率谱;当style=其他的,那么画幅值谱和功率谱

%当style=1时,还可以多输入2个可选参数

%可选输入参数是用来控制需要查看的频率段的

%第一个是需要查看的频率段的起点

%第二个是需要查看的频率段的终点

%其他style不具备可选输入参数,如果输入发生位置错误

nfft= 2^nextpow2(length(y));%找出大于y的个数的最大的2的指数值(自动进算最佳FFT步长nfft)

%nfft=1024;%人为设置FFT的步长nfft

y=y-mean(y);%去除直流分量

y_ft=fft(y,nfft);%对y信号进行DFT,得到频率的幅值分布

y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。

y_f=fs*(0:nfft/2-1)/nfft;%FFT变换后对应的频率的序列

% y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。

if style==1

    if nargin==3

        plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));%matlab的帮助里画FFT的方法

        %ylabel('幅值');xlabel('频率');title('信号幅值谱');

        %plot(y_f,abs(y_ft(1:nfft/2)));%论坛上画FFT的方法

    else

        f1=varargin{1};

        fn=varargin{2};

        ni=round(f1 * nfft/fs+1);

        na=round(fn * nfft/fs+1);

        plot(y_f(ni:na),abs(y_ft(ni:na)*2/nfft));

    end

elseif style==2

            plot(y_f,y_p(1:nfft/2));

            %ylabel('功率谱密度');xlabel('频率');title('信号功率谱');

    else

        subplot(211);plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));

        ylabel('幅值');xlabel('频率');title('信号幅值谱');

        subplot(212);plot(y_f,y_p(1:nfft/2));

        ylabel('功率谱密度');xlabel('频率');title('信号功率谱');

end

end

3 运行结果

4 参考文献

[1]张韦. 基于EMD的转子系统复合故障诊断的实验研究[D]. 内蒙古科技大学, 2015.

[2]国红波, 马晓建, and 郑子明. "基于LabVIEW与EMD的工业缝纫机故障诊断." 机械工程师 2(2009):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/731048
推荐阅读
相关标签
  

闽ICP备14008679号