声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2356|回复: 13

[非线性振动] 哪位大神有三维频谱的程序呀

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

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

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

x
刚接触转子动力学哪位大神有三维频谱的程序呀用PLot3画的不胜感激  
回复
分享到:

使用道具 举报

发表于 2015-11-13 09:28 | 显示全部楼层
三维谱图一般用waterfall绘制,参考doc waterfall
论坛相关的帖子:
http://forum.vibunion.com/thread-85126-1-1.html
http://forum.vibunion.com/thread-131371-1-1.html

评分

1

查看全部评分

 楼主| 发表于 2015-11-13 10:23 | 显示全部楼层
谢谢现在做转子方面的要画三维频谱图  频率---幅值----转速的三维频谱图 不知道怎么搞哎。。。。

点评

简单来说就是对每个转速下的振动数据分别做fft分析 然后用waterfall绘制三维谱图  详情 回复 发表于 2015-11-13 10:35
发表于 2015-11-13 10:35 | 显示全部楼层
1713573225 发表于 2015-11-13 10:23
谢谢现在做转子方面的要画三维频谱图  频率---幅值----转速的三维频谱图 不知道怎么搞哎。。。。{: ...

简单来说就是对每个转速下的振动数据分别做fft分析
然后用waterfall绘制三维谱图

评分

1

查看全部评分

 楼主| 发表于 2015-11-13 17:19 | 显示全部楼层
现在就是在一个转速对应一大堆的振动数据提示数据 用plot3 和waterfall提示数据维度不一样 实在不知道怎么弄
 楼主| 发表于 2015-11-13 17:19 | 显示全部楼层
options=odeset('RelTol',1e-7);
omega=500:10:700;
tt=2*pi./omega;
for j=1;length(omega)
  waitbar(j/length(omega));
  [t,x]=ode45(@aaafun,[0:tt/100:80*tt],zeros(16,1),options,omega(j));
  n=length(x);
  fs=1024;
  nfft=2^nextpow2(n);
  X=fft(x,nfft);
  Axx=abs(X);
  t1=(nfft/2-1)/nfft*fs;
  waterfall(omega,t1,Axx)
end
  

点评

参考帖子http://forum.vibunion.com/thread-42833-1-1.html 32楼waterfall的使用方法 还有帖子http://forum.vibunion.com/thread-68951-1-1.html  详情 回复 发表于 2015-11-15 09:36
 楼主| 发表于 2015-11-14 08:06 | 显示全部楼层
发表于 2015-11-15 09:36 | 显示全部楼层
1713573225 发表于 2015-11-13 17:19
options=odeset('RelTol',1e-7);
omega=500:10:700;
tt=2*pi./omega;

参考帖子http://forum.vibunion.com/thread-42833-1-1.html
32楼waterfall的使用方法

还有帖子http://forum.vibunion.com/thread-68951-1-1.html

评分

1

查看全部评分

 楼主| 发表于 2015-11-15 19:29 | 显示全部楼层
NASA 发表于 2015-11-15 09:36
参考帖子http://forum.vibunion.com/thread-42833-1-1.html
32楼waterfall的使用方法

不好意思还是没搞明白 plot3 (x,y,z)  要求想x,y,z 的维数一样 怎么绘制随转速的三维频谱图 ?
 楼主| 发表于 2015-11-15 19:29 | 显示全部楼层
本帖最后由 1713573225 于 2015-11-15 19:36 编辑

不好意思还是没搞明白 plot3 (x,y,z)  要求想x,y,z 的维 BDT${5TX)4L(V1D(O`2}%~1.jpg 数一样 怎么绘制随转速的三维频谱图 ?其他的贴子我也看了 有一个很好但是核心的东西被删掉了。
发表于 2015-11-17 08:41 | 显示全部楼层
基本思路:
1. 分别计算或这采集获得各个转速下的时间序列
2. 对每个转速下的时间序列分别进行fft分析,得到其频谱信息
3. 将对应的转速列作为第三维数据坐标,采用waterfall绘图

评分

1

查看全部评分

 楼主| 发表于 2015-11-17 09:30 | 显示全部楼层
NASA 发表于 2015-11-17 08:41
基本思路:
1. 分别计算或这采集获得各个转速下的时间序列
2. 对每个转速下的时间序列分别进行fft分析, ...

好的明白了  已经做的差不做了 在验证程序谢谢了
发表于 2015-11-19 10:46 | 显示全部楼层
一个绘制三维谱图的程序
  1. function []=waterpic(axis,nindex,speed,nn,wx,wy,wz)
  2. % 此程序产生瀑布图,瀑布图三维分别为频率,转速,频率幅值
  3. % 需要事先提供频谱数据
  4. % dir=cd;
  5. % speed=[50 57];%这里插入转速工况
  6. % naxis=2;%轴数
  7. % nindex=2;%每个轴的端面数
  8. % nn=3;%一个端面上的通道数,不计扭振
  9. tame=1;%存放文件名的循环参数
  10. tama=1;%导出文件名的循环参数
  11. %导入频谱数据
  12. for i=1:axis
  13. for j=1:nindex
  14.     for tama=1:nn
  15.       for k=1:length(speed)
  16.         aa{1,tame}=[num2str(i),'-',...
  17.             num2str(j),'-',num2str(speed(1,k))];
  18.         ab{1,tame}=[num2str(i),'-',...
  19.             num2str(j)];
  20. filename=[aa{1,tame},'.dat'];
  21. fid=char(filename);
  22. ss1=csvread(fid);%读数据
  23. ss(:,tame)=csvread(fid,0,tama,[0,tama,length(ss1)-1,tama]);%读数据
  24. %ss数据的意义是:按照轴号、通道号,提取了某个端口所有工况下的频率值
  25. %ss的列数为工况数*(轴号*通道号),这样就得到了z轴的数据
  26. %z的数据有点不同于其他。按照通道来说,它的排列是1-4-9-12-2-5-10-13-3-6-11-14
  27. tame=tame+1;
  28.       end
  29.     end
  30. end
  31. end

  32. ss0=ss1(:,1);%读频率数据
  33. [ss0,speed]=meshgrid(ss0,speed');
  34. %设置图片大小等格式
  35. pn={'Color','Position'};
  36. pv={'white',[250,250,650,450]};
  37. h=figure(pn,pv);

  38. % 绘制、保存瀑布图
  39. tas={'H','V','L'};
  40. for tap=1:axis
  41.     for tab=1:nindex
  42.         for tema=1:nn
  43.             sss=ss(:,1+(tema-1)*(size(speed,1))+...
  44.                 (tab-1)*(size(speed,1))+(tap-1)*nindex*(size(speed,1)):...
  45.                 tema*(size(speed,1))+...
  46.                 (tab-1)*(size(speed,1))+(tap-1)*nindex*(size(speed,1)));
  47. sss=sss';
  48. waterfall(ss0,speed,sss);%
  49. xlim(wx);
  50. ylim(wy);
  51. zlim(wz);
  52. xlabel('Hz');ylabel('rpm');zlabel('\mum');
  53. pf=[num2str(tap),'-',num2str(tab),'-',tas(tema),tas(tema)];
  54. pf=char(pf)';
  55. saveas(h,pf,'bmp');
  56.         end
  57.     end
  58. end
  59. close(h)
复制代码

评分

1

查看全部评分

发表于 2015-11-28 18:10 | 显示全部楼层
一般有直接画三维频谱图的函数,像HHT变换三维频谱图,工具箱有函数

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-23 23:28 , Processed in 0.074846 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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