|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我在做故障诊断,在实验过程中需要处理数据,提取故障特征,主要是应用FFT,我遇到一些问题,跟大家讨论一下
我的试验数据是记录电涡流传感器的电压值,来换算成振动幅值的。一次试验中,采样频率1000HZ,转速2590转,碰摩试验,一共记录了 13000多个试验数据。
在进行完去掉直流分量后,我遇到几个问题
问题1、还要滤波吗,我还需要去除高频分量吗?这个试验中可能出现的最高频率不过是450HZ左右。
问题2、为了保证1HZ的分辨率,我做FFT时采用了1024个点,
三个问题:
1) 这1024个点不是整周期,对数据的处理影响大吗?
2) 1024个点做FFT效果不太好,如果我去8182个点做FFT,理论上可以吗?
3) 在截取这些数据点的时候,用对这些点进行加窗处理吗?不加窗,相当于加矩形窗,如果加窗,在matlab中,w=hanning(1024); 这是窗函数 y1=y1.*w;y1为1024个数据点,两者直接点乘对吗?还是说要对这1024个数据点中的每个周期分别加窗?
问题3、FFT的后续处理,在进行完FFT处理后,我要计算出0-0.39f 0.39f-0.49f 0.50f 0.51f-0.99f f 2f 3f-5f 大于5f,这8个频率段的振幅,f为工频。我的处理方法是,数据的FFT处理,将一个波,分解为频率从0一直道500HZ的各次谐波,这些谐波的模就是对应频率的幅值,通过FFT图可以看到从0-500HZ这整个频率段的振幅值,我就计算对应频率段的那些FFT的数据点,将他们的模相加即为需要计算的频率段的幅值和,这种计算方法有问题吗?
问题4、在通用的汽轮机故障诊断中应用的“故障病症与故障征兆表”,Sohre.J.S编写的那个表中,如图所示
| (0.01~0.39)f
| (0.40~0.49)f
| 0.50f
| (0.51~0.99)f
| 1倍工频
| 2倍工频
| (3~5)f
| 奇数倍频
| >5f
| 转子初始不平衡
|
|
|
|
| 0.90
| 0.05
| 0.05
|
|
| 转子不对中
|
|
|
|
| 0.40
| 0.50
| 0.10
|
|
| 转子红套过盈不足
| 0.30
| 0.30
|
| 0.10
| 0.10
| 0.10
| 0.10
| 0.10
|
| 油膜涡动
| 0.10
| 0.80
|
| 0.10
|
|
|
|
|
| 油膜振荡
|
| 1.0
|
|
|
|
|
|
|
| 碰摩
| 0.10
| 0.10
| 0.10
| 0.10
| 0.25
| 0.10
| 0.15
| 0.10
| | 0-0.39f 0.39f-0.49f 0.50f 0.51f-0.99f f 2f 3f-5f 大于5f 这些频率段对应的数字表示的是振幅值,功率值还是能量值
问题5、 我所计算的各段频率数据需要进行归一化,在不同的论文中我一共见过3中不同的归一化公式分别为 1)x(i)=(x(i)-x(min))/(x(max)-x(min)) x(i)第i个频段的幅值 x(max)所有有频段中的最大振幅 x(min)所有频段中的最小振幅。2)x(i)/(sum(x1+x2+...+x8)) 3)x(i)/sqrt(sum(x(i)^2)) 平方和再开根号
大家认为应该用哪个呢?
问题6、在FFT中,振幅大的地方,相邻的两个谐波会有过渡,这对计算一个频率段的幅值和有很大的影响,造成这一个频率段的幅值和是别的频率段的几倍,甚至十倍,这段诊断有影响吗?应该怎么做?
下面是我程序,试验数据太大了,传不上来。
fs=1000;%采样频率
f=2950/60;%计算工频
a=fs/f%一个周期的采样点数
a=floor(a)
[a1,a2,a3,a4,a5]=textread('E:\论文\论文主体结构\9 试验数据\data\data\pm11t.txt','%f%f%f%f%f');
m=length(a1)
t=(0:1/fs:(m-1)/fs)';%数据的时间
b1=polyfit(t,a1,4);
y1=(a1-polyval(b1,t))/80;%4阶去除趋势项,取出直流分量
y1=y1(1001:9192);%截取8182各数据点
m=length(y1)
t=(0:1/fs:(m-1)/fs)';%这些点的时间
plot(t,y1)
nfft=2^nextpow2(m)
w=hanning(nfft);%窗函数
y1=y1.*w;%加窗
plot(t,y1)
y=fft(y1,nfft)/nfft;%FFT计算
y=abs(y(1:nfft/2));
ff=fs*(0:(nfft-1)/2)/nfft;%计算频率
plot(ff,abs(y(1:nfft/2)));
c=floor((nfft/2)/(fs*((nfft-1)/2)/nfft))%1HZ在FFT的数据处理中占几个数据点
y11=floor(0.39*f*c);%0.39F所占的数据点
y1=sum(abs(y(1:y11)))%计算这些点的幅值和
y21=floor(0.39*f*c); %
y22=floor(0.49*f*c);
y2=sum(abs(y(y21:y22)))
y31=floor(0.50*f*c);
y3=sum(abs(y(y31-c:y31+c)))/3
y41=floor(0.51*f*c);%
y42=floor(0.99*f*c);
y4=sum(abs(y(y41:y42)))
y51=floor(f*c);
y5=sum(abs(y(y51-c:y51+c)))/3
y61=floor(2*f*c);
y6=sum(abs(y(y61-c:y61+c)))/3
y71=floor(3*f*c);%
y72=floor(5*f*c);
y7=sum(abs(y(y71:y72)))
y81=floor(5*f*c);%
y8=sum(abs(y(y81:nfft/2)))
谢谢大家的指导
[ 本帖最后由 benben767 于 2007-8-29 15:31 编辑 ] |
-
1024
-
8182
|