声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1778|回复: 7

[稳定性与分岔] 请教各位大侠

[复制链接]
发表于 2007-8-15 16:48 | 显示全部楼层 |阅读模式

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

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

x
请教各位大侠:
本人是初学非线性动力学,有几个问题想请教大家:
1.        不知道响应周期是多少,怎么求非自治系统周期解和响应周期。(书上说用打靶法)
是否利用龙格-库塔法,将激励频率带入迭代N次,然后观察庞加莱相图消除响应周期部分,从而得到周期解?响应周期怎么得到?例如下程序:
function df=dafen(t,x,flag,force)
df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];
clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=3*pi/1.2;%带入激励频率
[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-8-15 17:00 | 显示全部楼层
[] 是与function中flag相对应的一个标示符号,没有什么别的意思,
ff其实就是force
i=2000:100:3000
中的2000就是舍去前2000个点,即瞬态响应
发表于 2007-8-15 17:05 | 显示全部楼层
function df=dafen(t,x,flag,force)
df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];

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


clear
ff=0.222;
options=odeset('RelTol',1e-7);
tt=2*pi/1.2;  %带入激励频率   % 这就是外激励的周期
[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],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 编辑 ]
 楼主| 发表于 2007-8-15 17:13 | 显示全部楼层
上面的程序我运行过了是对的,奇怪的是ff应该写成force才对,为什么这样也可以运行通过。还有我上面说的正确吗?

谢谢 无水了:@D
 楼主| 发表于 2007-8-15 17:15 | 显示全部楼层
打靶法求周期解的matlab程序,你有吗?可不可以发给我一个
lingfei.kong@163.com
 楼主| 发表于 2007-8-15 17:18 | 显示全部楼层
不好意思,响应周期怎么求?能不能给我介绍一本非线性比较好的书:victory:
发表于 2007-8-15 17:24 | 显示全部楼层

回复 #4 lingfei.kong 的帖子

必须是force,因为你的广义变量是force而不是ff
响应周期?非线性的响应周期可不好求,要看你的具体问题,可能都没有周期,或者是几个周期振动的合成
发表于 2007-8-19 16:29 | 显示全部楼层

回复 #6 lingfei.kong 的帖子

闻邦椿的<<非线性振动理论中的解析方法及工程应用>>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 06:13 , Processed in 0.071813 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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