⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syfx.m

📁 电机轴承振动分析程序
💻 M
字号:



function [fengzhi,Afengzhi,pingjunfuzhi,Apingjunfuzhi,youxiaozhi,Ayouxiaozhi,fanggenfuzhi,Afanggenfuzhi,xiedu,Axiedu,qiaodu,Aqiaodu,qiaoduzhibiao,Aqiaoduzhibiao,boxingzhibiao,Aboxingzhibiao,fengzhizhibiao,Afengzhizhibiao,maichongzhibiao,Amaichongzhibiao,yuduzhibiao,Ayuduzhibiao]=syfx(data,fenxipinlv,Mfengzhi,Mpingjunfuzhi,Myouxiaozhi,Mfanggenfuzhi,Mxiedu,Mqiaodu,Mqiaoduzhibiao,Mboxingzhibiao,Mfengzhizhibiao,Mmaichongzhibiao,Myuduzhibiao)

%************输入参数描述******************
%data:原始振动信号
%fenxipinlv:振动信号的分析频率
%一、有量纲参数
%11、Mfengzhi:峰值门限
%12、Mpingjunfuzhi:平均幅值门限
%13、Myouxiaozhi:有效值门限
%14、Mfanggenfuzhi:方根幅值门限
%15、Mxiedu:斜度门限
%16、Mqiaodu:鞘度门限
%二、无量纲参数
%21、Mqiaoduzhibiao:鞘度指标门限
%22、Mboxinzhibiao:波形指标门限
%23、Mfengzhizhibiao:峰值指标门限
%24、Mmaichongzhibiao:脉冲指标门限
%25、Myuduzhibiao:裕度指标门限
%************输出参数描述******************
%一、有量纲参数
%11、fengzhi:实际峰值
%12、pingjunfuzhi:实际平均幅值
%13、youxiaozhi:实际有效值
%14、fanggenfuzhi:实际方根幅值
%15、xiedu:实际斜度
%16、qiaodu:实际鞘度
%二、无量纲参数
%21、qiaoduzhibiao:实际鞘度指标
%22、boxinzhibiao:实际波形指标
%23、fengzhizhibiao:实际峰值指标
%24、maichongzhibiao:实际脉冲指标
%25、yuduzhibiao:实际裕度指标
%四、报警分为4类:class0,class1,class2,class3,意义:当实际指标小于门限指标时,报警级别为class0;当实际指标大于门限指标但小于2倍门限指标时,报警级别为class1;
%当实际指标大于门限指标两倍但小于5倍门限指标时,报警级别为class2;当实际指标大于门限指标5倍时,报警级别为class3;
%一、有量纲参数
%11、Afengzhi:峰值报警
%12、Apingjunfuzhi:平均幅值报警
%13、Ayouxiaozhi:有效值报警
%14、Afanggenfuzhi:方根幅值报警
%15、Axiedu:斜度报警
%16、Aqiaodu:鞘度报警
%二、无量纲参数
%21、Aqiaoduzhibiao:鞘度指标报警
%22、Aboxinzhibiao:波形指标报警
%23、Afengzhizhibiao:峰值指标报警
%24、Amaichongzhibiao:脉冲指标报警
%25、Ayuduzhibiao:裕度指标报警
%

%注:下列各指标的门限值由袁工确定:
%Mfengzhi,Mpingjunfuzhi,Myouxiaozhi,Mfanggenfuzhi,Mxiedu,Mqiaodu,Mqiaoduzhibiao,
%Mboxingzhibiao,Mfengzhizhibiao,Mmaichongzhibiao,Myuduzhibiao
shuju=data;
%一、选择振动信号的故障敏感频带

caiyangpinlv=fenxipinlv*2.56;
Wn=[20/20000,0.8];%带通滤波器的通频带,采用这个参数,计算结果和铁科振动分析设备的结果一致。
%Wn=[1000/caiyangpinlv,0.8];%带通滤波器的通频带,采用这个参数,由于去掉了部分干扰信号,计算结果和铁科振动分析设备的结果不一致,但更实用。
[b,a]=butter(2,Wn);
shuju=filter(b,a,shuju);
plot(shuju)

%二、有量纲参数计算
fengzhi=fzfenxi(shuju);             %峰值
pingjunfuzhi=pjfuzhifenxi(shuju);   %平均幅值
youxiaozhi=yxzhifenxi(shuju);       %有效值
fanggenfuzhi=fgfuzhifenxi(shuju);   %方根幅值
xiedu=xdfenxi(shuju);               %斜度
qiaodu=qdfenxi(shuju);              %峭度

%三、无量纲参数计算
qiaoduzhibiao=qiaodu/(youxiaozhi.^4);%峭度指标
boxingzhibiao=youxiaozhi/pingjunfuzhi;%波形指标
fengzhizhibiao=fengzhi/youxiaozhi;    %峰值指标
maichongzhibiao=fengzhi/pingjunfuzhi; %脉冲指标
yuduzhibiao=fengzhi/fanggenfuzhi;     %裕度指标

%四、根据门限值对报警级别进行判断,此处所用判据为推荐判据,最终的判据需要袁工确定
%判据定义:根据各个指标的实际计算值和门限值之比可以把报警级别定义为三类,比值属于区间[a1-a2],定义为报警级别为1;
% 比值属于区间[a2-a3],定义为报警级别为2;比值大于a3,定义为报警级别为3。本程序把区间a1、a2和a3定义为报警判据。
%测试所用报警判据如下:
a1=1;a2=2;a3=5;


% 
if  fengzhi<Mfengzhi
    Afengzhi=0;
elseif and(fengzhi>a1*Mfengzhi,fengzhi<(a2*Mfengzhi))
    Afengzhi=1;
elseif and(fengzhi>a2*Mfengzhi,fengzhi<(a3*Mfengzhi))
    Afengzhi=2;
else Afengzhi=3;
end

if  pingjunfuzhi<Mpingjunfuzhi
    Apingjunfuzhi=0;
elseif and(pingjunfuzhi>a1*Mpingjunfuzhi,pingjunfuzhi<(a2*Mpingjunfuzhi))
    Apingjunfuzhi=1;
elseif and(pingjunfuzhi>a2*Mpingjunfuzhi,pingjunfuzhi<(a3*Mpingjunfuzhi))
    Apingjunfuzhi=2;
else Apingjunfuzhi=3;
end

if  youxiaozhi<Myouxiaozhi
    Ayouxiaozhi=0;
elseif and(youxiaozhi>a1*Myouxiaozhi,youxiaozhi<(a2*Myouxiaozhi))
    Ayouxiaozhi=1;
elseif and(youxiaozhi>a2*Myouxiaozhi,youxiaozhi<(a3*Myouxiaozhi))
    Ayouxiaozhi=2;
else Ayouxiaozhi=3;
end


if  fanggenfuzhi<Mfanggenfuzhi
    Afanggenfuzhi=0;
elseif and(fanggenfuzhi>a1*Mfanggenfuzhi,fanggenfuzhi<(a2*Mfanggenfuzhi))
    Afanggenfuzhi=1;
elseif and(fanggenfuzhi>a2*Mfanggenfuzhi,fanggenfuzhi<(a3*Mfanggenfuzhi))
    Afanggenfuzhi=2;
else Afanggenfuzhi=3;
end


if  xiedu<Mxiedu
    Axiedu=0;
elseif and(xiedu>a1*Mxiedu,xiedu<(a2*Mxiedu))
    Axiedu=1;
elseif and(xiedu>a2*Mxiedu,xiedu<(a3*Mxiedu))
    Axiedu=2;
else Axiedu=3;
end

if  qiaodu<Mqiaodu
    Aqiaodu=0;
elseif and(qiaodu>a1*Mqiaodu,qiaodu<(a2*Mqiaodu))
    Aqiaodu=1;
elseif and(qiaodu>a2*Mqiaodu,qiaodu<(a3*Mqiaodu))
    Aqiaodu=2;
else Aqiaodu=3;
end

if  qiaoduzhibiao<Mqiaoduzhibiao
    Aqiaoduzhibiao=0;
elseif and(qiaoduzhibiao>a1*Mqiaoduzhibiao,qiaoduzhibiao<(a2*Mqiaoduzhibiao))
    Aqiaoduzhibiao=1;
elseif and(qiaoduzhibiao>a2*Mqiaoduzhibiao,qiaoduzhibiao<(a3*Mqiaoduzhibiao))
    Aqiaoduzhibiao=2;
else Aqiaoduzhibiao=3;
end

if  boxingzhibiao<Mboxingzhibiao
    Aboxingzhibiao=0;
elseif and(boxingzhibiao>a1*Mboxingzhibiao,boxingzhibiao<(a2*Mboxingzhibiao))
    Aboxingzhibiao=1;
elseif and(boxingzhibiao>a2*Mboxingzhibiao,boxingzhibiao<(a3*Mboxingzhibiao))
    Aboxingzhibiao=2;
else Aboxingzhibiao=3;
end


if  fengzhizhibiao<Mfengzhizhibiao
    Afengzhizhibiao=0;
elseif and(fengzhizhibiao>a1*Mfengzhizhibiao,fengzhizhibiao<(a2*Mfengzhizhibiao))
    Afengzhizhibiao=1;
elseif and(fengzhizhibiao>a2*Mfengzhizhibiao,fengzhizhibiao<(a3*Mfengzhizhibiao))
    Afengzhizhibiao=2;
else Afengzhizhibiao=3;
end

if  maichongzhibiao<Mmaichongzhibiao
    Amaichongzhibiao=0;
elseif and(maichongzhibiao>a1*Mmaichongzhibiao,maichongzhibiao<(a2*Mmaichongzhibiao))
    Amaichongzhibiao=1;
elseif and(maichongzhibiao>a2*Mmaichongzhibiao,maichongzhibiao<(a3*Mmaichongzhibiao))
    Amaichongzhibiao=2;
else Amaichongzhibiao=3;
end    

if  yuduzhibiao<Myuduzhibiao
    Ayuduzhibiao=0;
elseif and(yuduzhibiao>a1*Myuduzhibiao,yuduzhibiao<(a2*Myuduzhibiao))
    Ayuduzhibiao=1;
elseif and(yuduzhibiao>a2*Myuduzhibiao,yuduzhibiao<(a3*Myuduzhibiao))
    Ayuduzhibiao=2;
else Ayuduzhibiao=3;
end

    



















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -