lingfei.kong 发表于 2007-8-15 16:48

请教各位大侠

请教各位大侠:
本人是初学非线性动力学,有几个问题想请教大家:
1.      不知道响应周期是多少,怎么求非自治系统周期解和响应周期。(书上说用打靶法)
是否利用龙格-库塔法,将激励频率带入迭代N次,然后观察庞加莱相图消除响应周期部分,从而得到周期解?响应周期怎么得到?例如下程序:
function df=dafen(t,x,flag,force)
df=;
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=3*pi/1.2;%带入激励频率
=ode45(@dafen,,,options,[],ff);
plot(x(7000:end,1),x(7000:end,2),'.')
%pojialai
hold on
i=2000:100:3000
plot(x(i,1),x(i,2),'*')
    2.上面程序中ff和[]是什么意思?我查了ODE45,options是相关参数例如误差精度

[ 本帖最后由 xinyuxf 于 2007-9-14 11:10 编辑 ]

无水1324 发表于 2007-8-15 17:00

[] 是与function中flag相对应的一个标示符号,没有什么别的意思,
ff其实就是force
i=2000:100:3000
中的2000就是舍去前2000个点,即瞬态响应

无水1324 发表于 2007-8-15 17:05

function df=dafen(t,x,flag,force)
df=;

以上保存为dafen。m文件然后运行下面的:


clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=2*pi/1.2;%带入激励频率   % 这就是外激励的周期
=ode45(@dafen,,,options,[],ff);
         % 你在计算中取计算长度为80个周期,每个周期取100个点
figure(1)
plot(x(7000:end,1),x(7000:end,2),'.');%这个是消除前7000个点后系统的相图
%pojialai
figure(2)
i=2000:100:3000;
plot(x(i,1),x(i,2),'*') % 这个是Poincare相图

[ 本帖最后由 无水1324 于 2007-8-15 17:06 编辑 ]

lingfei.kong 发表于 2007-8-15 17:13

上面的程序我运行过了是对的,奇怪的是ff应该写成force才对,为什么这样也可以运行通过。还有我上面说的正确吗?

谢谢 无水了:@D

lingfei.kong 发表于 2007-8-15 17:15

打靶法求周期解的matlab程序,你有吗?可不可以发给我一个
lingfei.kong@163.com

lingfei.kong 发表于 2007-8-15 17:18

不好意思,响应周期怎么求?能不能给我介绍一本非线性比较好的书:victory:

咕噜噜 发表于 2007-8-15 17:24

回复 #4 lingfei.kong 的帖子

必须是force,因为你的广义变量是force而不是ff
响应周期?非线性的响应周期可不好求,要看你的具体问题,可能都没有周期,或者是几个周期振动的合成

sssssxxxxx921 发表于 2007-8-19 16:29

回复 #6 lingfei.kong 的帖子

闻邦椿的<<非线性振动理论中的解析方法及工程应用>>
页: [1]
查看完整版本: 请教各位大侠