声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7337|回复: 24

[经典算法] 旋转机械波德图的做法,或者是源代码

[复制链接]
发表于 2011-10-28 11:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问有没有做过旋转机械伯德图的朋友 ,如果有的话,请教下做法!
回复
分享到:

使用道具 举报

发表于 2011-10-29 11:08 | 显示全部楼层
回复 1 # 车轮村庄 的帖子

知道bode图纵横坐标的意义不就会画了嘛。
 楼主| 发表于 2011-10-29 12:19 | 显示全部楼层
回复 2 # impulse 的帖子

具体做的时候出现了问题?幅值能求出来 ,但是做相位的时候有问题 ,等不到准确的值,我用了内插法校正FFT任然不能满足要求。
发表于 2011-10-29 14:13 | 显示全部楼层
回复 3 # 车轮村庄 的帖子

这是算法本身问题,不是画图问题
 楼主| 发表于 2011-10-30 09:03 | 显示全部楼层
回复 4 # impulse 的帖子

对  ,就是这个意思 ,现在的问题是吗,我想知道大概用什么办法去做 。我做相位用的fft内插法校正,在人家的论文里面看人家也是这么做的 ,但得不到想要的结果 。我就想问下看大家还知不知道其他的方法,或者说我的方法哪里错了,我好修改。
发表于 2011-10-30 22:57 | 显示全部楼层
本帖最后由 impulse 于 2011-10-30 23:03 编辑

回复 5 # 车轮村庄 的帖子

  1. %计算振动某阶特征量(幅值、相位)
  2. %wave-振动波形
  3. %sample_per_cycle-每转样本点数
  4. %order-阶比
  5. function [amp phase]=getWaveAttr_Order(wave,sample_per_cycle,order)
  6. a=0;
  7. b=0;
  8. deg0=2.0*pi/sample_per_cycle;
  9. deg=0;
  10. sample_len=length(wave);
  11. for i=1:sample_len
  12.     b=b+wave(i)*sin(deg*order);
  13.     a=a+wave(i)*cos(deg*order);
  14.     deg=deg+deg0;
  15. end
  16. amp=2*2*sqrt(a*a+b*b)/sample_len;
  17. if(b>1e-10 | b<-1e-10)
  18.     ph=atan(a/b)*180/pi;
  19.     if(b>0)
  20.         ph=ph+270;
  21.     end
  22.     if(b<0)
  23.         ph=ph+90;
  24.     end
  25. else
  26.     if(a>0)
  27.         ph=0;
  28.     else
  29.         ph=180;
  30.     end
  31. end
  32. phase=360-ph;
复制代码
给你一段代码,直接从波形计算某阶振动幅值、相位。可以减小采用FFT方法时非整周期采样带来的误差。

评分

1

查看全部评分

 楼主| 发表于 2011-11-1 16:49 | 显示全部楼层
回复 6 # impulse 的帖子

谢谢!我先试试
 楼主| 发表于 2011-11-1 17:33 | 显示全部楼层
回复 6 # impulse 的帖子

仔细看了下你给的程序 ,基本上可以算是稳定转速的情况,或者说是等角度采样的情况。我想请教下你 ,旋转机械启停过程中 ,转频变化的情况下怎样得到转频相关的幅值和相位!我现在是不知道该怎样去实现这个了,用FFT分小段每段1024点(信号是恒时间间隔采样的)做频谱,能够取得幅值,与东方所的软件对比临界转速只相差3转/Min。现在是不知道相位该怎么弄
发表于 2011-11-1 17:46 | 显示全部楼层
本帖最后由 impulse 于 2011-11-1 17:48 编辑

回复 8 # 车轮村庄 的帖子

旋转机械振动为了减少泄露,基本都是采用等角度采样,硬件或者软件方式,目前国外主流是软件重采样。你要是采用非同步采样,首先要得到转频,其次要采用校正算法。
 楼主| 发表于 2011-11-1 23:24 | 显示全部楼层
回复 9 # impulse 的帖子

恩 ,我也是这样做的 ,首先计算到转频,然后对振动(相位)信号做FFT,找到计算得到的转频附近的最大幅值点,做内插法FFT校正等到相位和幅值,但是结果不对。我的校正法用模拟的正弦信号验证了,是正确的。我是合肥工业大学毕业的,我看你现在也在合肥,呵呵,是不是知道合肥工大啊!我的QQ是244299541,希望能在QQ上请教你
发表于 2011-11-1 23:53 | 显示全部楼层
回复 10 # 车轮村庄 的帖子

你的转频怎么计算的?如果同时采集了转速键相信号,完全可以采用重采样方法实现等角度采样。
 楼主| 发表于 2011-11-2 11:26 | 显示全部楼层
回复 11 # impulse 的帖子

转频是通过简单的数一小段时间的脉冲个数得到的,比较粗糙。
发表于 2011-11-2 13:00 | 显示全部楼层
回复 12 # 车轮村庄 的帖子

既然这样,你可以采用软件重采样来做,看过重大的一篇硕士论文做过这个。
 楼主| 发表于 2011-11-2 17:01 | 显示全部楼层
回复 13 # impulse 的帖子

恩 ,找找看
 楼主| 发表于 2011-11-2 22:01 | 显示全部楼层
回复 14 # 车轮村庄 的帖子

1111.png 伯德图.jpg

上面两图是我自己做的和对比软件做的 ,幅值还可以相位完全不对 。如果用你说的论文的那种方法貌似太复杂了点 ,参考软件好像是用的FFT做的 ,因为他的界面上这个    22.jpg ,纠结就在这里。我用FFT做的就是不对 ,不知道问题的根源 ,急需指导
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 09:51 , Processed in 0.089036 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表