|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
首先,要说的是我现在了解到的所有关于poincare、分岔图等相关算法、绘制等信息几乎均是通过振动论坛获得,很感谢那些无私奉献代码、回答我问题的 前辈和同学们。进入正题:
1 poincare映射图究竟是 x,y的组合还是 x,dx/dt的组合?
因为之前的印象一直是第一种,但最近再用到时看到有的文献是采用横向振动的位移(x,y),有的是采用速度和加速度(x,dx/dt)。陷入疑惑,对于转子-轴承系统而言,哪一种才是真正的poincare映射图,或者二者皆是。
2 关于计算不同参数下运动微分方程、保存计算结果并绘制分岔图的若干问题。
a 对于matlab,计算微分方程采用ode系列,一般性方程ode45,刚性则采用ode15s(我算过几个刚性的,这个求解器是速度比较快的)。如果画分岔图的话没有问题,只是时间非常长,这里涉及到一个问题,对于不同的参数得到的计算结果,大家是否每次都予以保留。假如程序如下(也是论坛上的一个关于分岔图绘制例子)
- function xdot=dddd(t,x,flag,omega)
- eta=0.1 ; a= -48.704; b= 24.35e4;gamma= 1;
- xdot=[x(2);a*x(1)-b*x(1)^3-eta*x(2)+gamma*cos(omega*t)];
- clear;clc;close all;
- omega=0.01:0.01:4;
- for h=1:length(omega)
- T=2*pi/omega(h);
- [t,x]=ode45('dddd',[0:T/100:220*T],[0 0],[],omega(h));
- plot(omega(h),x(10000:100:end,2),'k.');hold on
- end
复制代码
我们知道,matlab计算耗时较长,即使如上的220个周期也需要相当的时间,要是赶上刚性方程,则时间有可能更长。如果不保存结果,那么下次计算又是一笔较大的时间开支。我的问题是,大家都采用什么方法对结果保存。是保存到excel文件还是txt文档,或者是不同的.mat文件。如果是excel,那么它的存储范围有限制,好像是65536行,列我记不清了。而一旦涉及到求解周期较多或是步长较大时,其无法保存结果,并且读取也是非常耗时。同学说可以采用不同的.mat文件,但一想到一个文件中可能有1000或者10000个.mat,那将是一件特别恐怖的事情。我目前想到只有txt文档是比较好的选择了,毕竟不受大小限制。如果各位有什么好的建议,希望告知。
b 周期步长和周期数
一般要过滤掉瞬态响应,大概100至200个周期即可(我个人这么认为)。我的问题是,如果做分岔图,大概需要多少个周期的计算是足够的。外文文献通常都是在1500-2500之间,真的需要这么多吗?
c 图形绘制问题
matlab出图一般不够美观,要是发国内期刊倒是问题不大(一些有名的期刊现在对图形也有外观上的要求了),涉及到国外期刊则较难过关。对于轨迹图、时域频域图和poincare映射图都可以通过origin实现,它作出的图也确实非常漂亮。但分岔图应该如何作出我没有搞懂。如果将不同参数下计算结果相同的周期点保存到一个文件中以供origin使用也是一件十分耗时的事情。请大家给出更好的建议。
3 什么样的参数范围能够出现分岔现象
简单的方法是将范围尽量扩大,但代价是耗时。我目前的方法是画稳态后轨迹图,间隔可以取大一些,从中寻找规律。不知道大家有没有更有效的方法。
我说的可能有点多,但确实都是在研究过程中发现的问题。一般来说,计算不是太大的难点,关键在于后期处理,毕竟不是计算完了就什么事都没有了。另外,我曾经在论坛上看到过有人写的fortran计算相关程序,由于matlab时间比较折磨人,所以想借鉴学习fortran,希望知道的同学或者前辈能够提供一个链接或者一份很简单的例子,但包括计算和保存数据等信息和说明。我是真的想学习,摆脱各位回答上面的疑问并给出更好的建议,麻烦大家了。
|
评分
-
1
查看全部评分
-
|