声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3513|回复: 19

[编程技巧] 求解时变高阶微分方程组

[复制链接]
发表于 2006-12-28 16:34 | 显示全部楼层 |阅读模式

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

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

x
如二阶时变方程组:x''+x'+x+x*cos(t)+y*sin(t)=cos(t)
                           y''+y'+y+y*sin(t)+x*cos(t)=sin(t)
回复
分享到:

使用道具 举报

发表于 2006-12-29 20:14 | 显示全部楼层
看你这个方程用ode45求解应该是没有太大问题的

把你的方程写成x'=Ax的标准格式然后按照格式调用就行了
 楼主| 发表于 2007-1-4 15:22 | 显示全部楼层
两个是耦合的啊,要是单个二阶方程就可以搞定啦
发表于 2007-1-4 16:50 | 显示全部楼层
上面给出的 x是向量 ,别弄混了,所以耦合的情况也可以写成happy给的形式,然后求解....

doc ode45 看一下例子吧

[ 本帖最后由 ChaChing 于 2010-4-10 23:42 编辑 ]
发表于 2007-6-28 09:41 | 显示全部楼层
原帖由 xjzuo 于 2007-1-4 17:05 发表
这种最基本的问题看看帮助,相信可以自己解决.
提示: 注意用 dy = zeros(6,1); 以及正确写入各个dy();
   Happy教授和心灯说的方法也可以试一下.
我算了一下,可以求解,结果见附图.其中,我任取了几个初值.



请问xjzuo,按理说这个两自由度二阶微分方程要写成x'=Ax格式,微分方程应该写成
dy=[dx1,dx2,dx3,dx4]
dx1=x2;
dx2=-x2-x1-x1*cot(t)-x3*sin(t)+cos(t);
dx3=x4;
dx4=-x4-x3-x3*sin(t)-x1*sin(t)+sin(t);

为何你写的是dy=zeros(6,1)呢?
这点我很是不理解?请你解释一下!

评分

1

查看全部评分

发表于 2007-6-28 10:31 | 显示全部楼层
谢谢octopussheng 的意见,当时可能没仔细看,写错了,现已订正:
但基本思路是很清楚的,后者正是我回帖的目的.
%%%%%%%%%%%%%%%%%%%
回复
这种最基本的问题看看帮助,相信可以自己解决.
提示: 注意用 dy = zeros(4,1); 以及正确写入各个dy();
   Happy教授和心灯说的方法也可以试一下.
我算了一下,可以求解,结果见附图.其中,我任取了几个初值.
z.jpg

[ 本帖最后由 xjzuo 于 2007-6-28 10:33 编辑 ]

评分

1

查看全部评分

发表于 2007-6-28 10:36 | 显示全部楼层
这里还有一个问题想请教一下xjzuo,我现在在算一个四自由度二阶的微分方程组,发现计算时间实在是超长,好几天都不会出结果,论坛里面的一些提高速度的方法我觉得也用不上,请问你有没有好的方法解决啊?
发表于 2007-6-28 10:39 | 显示全部楼层
请将问题用word上传一下.
发表于 2007-6-28 10:44 | 显示全部楼层
微分方程及求解的命令都在word文档中

ode_equation.doc

24.5 KB, 下载次数: 82

发表于 2007-6-28 10:49 | 显示全部楼层
我的意思是将方程的公式形式,以及背景介绍文件传一下.

粗看的话,似乎只能在小区间得到不是很好的解:
z.jpg

[ 本帖最后由 xjzuo 于 2007-6-28 10:53 编辑 ]
发表于 2007-6-28 11:23 | 显示全部楼层
好的,我一会儿上传上来!

这个模型是一个四自由度汽车振动的模型,具体可参考文档中的图示!
由于目前我还没有将这些方程写入word文档,还是用的matlab中的表示方式,还请见谅

[ 本帖最后由 ChaChing 于 2010-4-10 23:45 编辑 ]

说明.doc

31.5 KB, 下载次数: 47

发表于 2007-6-28 12:57 | 显示全部楼层
原帖由 octopussheng 于 2007-6-28 10:36 发表
这里还有一个问题想请教一下xjzuo,我现在在算一个四自由度二阶的微分方程组,发现计算时间实在是超长,好几天都不会出结果,论坛里面的一些提高速度的方法我觉得也用不上,请问你有没有好的方法解决啊?



可以改用newmark,wilson-theta等,找本结构动力学都有讲

还有四自由度二阶的微分方程组用Rk时间不会太长的,是不是处理有问题?
发表于 2007-6-28 13:33 | 显示全部楼层
原帖由 appleseed05 于 2007-6-28 12:57 发表
可以改用newmark,wilson-theta等,找本结构动力学都有讲
还有四自由度二阶的微分方程组用Rk时间不会太长的,是不是处理有问题?


谢谢
方程的处理方面应该是没有问题的,我在上面有个回复,有个word文档就是微分方程的程序,请appleseed05 帮我看看吧

[ 本帖最后由 ChaChing 于 2010-4-10 23:47 编辑 ]
发表于 2007-6-28 18:07 | 显示全部楼层
看了一下,我谈一下我的看法:
%%%%%%%%%%%%%%%%%%%%
看来你是想先算一个二自由度的模型(另一帖),然后再求解4自由度模型。
当然,如果顺利的话,还可以进一步求解整车7自由度模型甚至15自由度振动模型。
一般而言,似乎7自由度模型是比较好的------自由度适中,且能较好地反映系统振动响应。
不过无论如何,参数的选择都很重要;还有就是确定你的模型是否合适,所以你自己抓住这两方面再仔细检查看看。
另一个思路: 写出汽车动力学方程(质量矩阵,阻尼矩阵,刚度矩阵,激励向量),然后求解试试。
%%%%%%%%%%%%%%%%%%%%%
有时间我会再专门研究一下此类问题.

[ 本帖最后由 xjzuo 于 2007-6-28 18:09 编辑 ]

评分

1

查看全部评分

发表于 2007-6-28 19:03 | 显示全部楼层
参数选择确实很重要,算二自由度的时候,改变激励参数对方程解的收敛非常关键!需要不断的调整!

求解模型的精确解这个思路现在也是在进行中,由于需要一些强非线性的知识,现在正在学习中,呵呵!

谢谢xjzou的指点啦!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-22 07:04 , Processed in 0.065289 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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