📄 syfx.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 + -