声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1913|回复: 8

[编程技巧] 关于 ode45 的编程问题

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

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

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

x
function dy=MASATU(t,y)
mu=0.5;
e=0.0002;
w=1000;
m=5;
c1=0.1;
c2=50;
k1=15775;
k2=6300*15775;
tao=0.001;
W=sqrt(y(1)^2+y(3)^2);
if W>=tao
    Fcon1=k2*(W-tao)*(y(1)-mu*y(3))/W+c2*y(2);
    Fcon2=k2*(W-tao)*(y(1)+mu*y(3))/W+c2*y(4);
else
    Fcon1=0;
    Fcon2=0;
end
dy=[y(2);
    e*w^2*cos(w*t)-Fcon1/m-c1*y(2)/m-k1*y(1)/m;
    y(4);
    e*w^2*sin(w*t)-Fcon2/m-c1*y(4)/m-k1*y(3)/m];
执行语句
[T,Y]=ode45(@MASATU,[0:0.001:1],[1;1;1;1]);plot(T,Y);

[ 本帖最后由 eight 于 2007-6-28 11:44 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-6-28 11:07 | 显示全部楼层
纵坐标的值太大,显然是不合理的,将原问题用word上传一下看看.

---似乎很多人都遇到了这种问题, 看来有时间的话,要好好考虑一下这个问题了.
 楼主| 发表于 2007-6-28 11:16 | 显示全部楼层
谢谢大侠,
公式上传。
可能效果不好。先请原谅。

公式.doc

18 KB, 下载次数: 43

 楼主| 发表于 2007-6-28 13:07 | 显示全部楼层
每人给点建议阿!着急啊。还有一个月就毕业了。结果出不赖!
发表于 2007-6-28 13:41 | 显示全部楼层
这个问题,你可以用RK来计算,看看单步的值,就知道问题出在哪里了!
ode45的用法没有问题,剩下的就是方程的写法了,自己仔细看看

评分

1

查看全部评分

发表于 2007-6-28 20:44 | 显示全部楼层
用另一个自编的刚性求解器算了一下,不过效果仍不太好.
所以建议自己再仔细检查一下参数是否合理,模型是否正确.
另:改变区间或步长求解一下,你就会发现问题所在.

[ 本帖最后由 xjzuo 于 2007-6-28 20:45 编辑 ]
发表于 2007-6-28 20:48 | 显示全部楼层

回复 #2 xjzuo 的帖子

我也遇到这个问题了,一直高不明白什么原因
发表于 2007-6-29 13:19 | 显示全部楼层
平衡点不稳定吧。。。
发表于 2007-6-29 13:35 | 显示全部楼层
RK对初参数很敏感的,建议改成其他动力学数值算法,比如Newmark等试试。
如果非要用ode的话,改成ode23t试试
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-26 09:37 , Processed in 0.066115 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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