声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1130|回复: 1

[编程技巧] 微分方程组求解遇到问题,求帮助

[复制链接]
发表于 2013-3-29 14:58 | 显示全部楼层 |阅读模式

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

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

x
以下时.m文件
function fde=def(t,x)
fde=zeros(12,1);
m0=1560;
J=m0/3*[0.4^2;0.75^2;0.4^2+0.75^2];
c=0.2*sqrt(300*11*10^6);
k=[2260000;5500000;11000000];
xdamper=[-0.6;-0.6;0;0;0.6;0.6];
ydamper=[-0.3;0.3;-0.3;0.3;-0.3;0.3];
F=[500*sin(30*pi*t);500*cos(30*pi*t)];
x0=[0.07;0.03;0.02];
m=0;n=0;
for i=1:6
m=m+xdamper(i)^2;
n=n+ydamper(i)^2;
end
fde=[x(2)
-6*k(1)*x(1)/m0
x(4)
(F(1)-6*k(2)*x(3))/m0
x(6)
(F(2)-6*k(3)*x(5)-6*c*x(6))/m0
x(8)
1/J(1)*(-c*x(8)*n-k*x(7)*n-F(1)*(x0(3)+x(7)*x0(2)-x(9)*x0(1))+F(2)*(x0(2)+x0(1)*x(11)-x(7)*x0(3)))
x(10)
1/J(2)*(-c*x(10)*m-k*x(9)*m-F(2)*(x0(1)-x0(2)*x(11)+x0(3)*x(9)))
x(12)
1/J(3)*(F(1)*(x0(1)-x0(2)*x(11)+x0(3)*x(9))-k*x(11)*(m+n))];
end


M文件似乎没显示有错误。但是调用的时候出现问题,调用程序如下:
tsp=[0 5];
xt0=[0;0;0;0;0;0;0;0;0;0;0;0];
[t,x]=ode45(@def,tsp,xt0);
plot(t,x(:,1),'r-')
目的是求振动模型的振动过程,六个自由度。错误显示如下:
??? Error using ==> odearguments at 116
Solving DEF requires an initial condition vector of length 12.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

本人是在是看不出错在哪里,昨天编了个简单一点的通过了,这是今天改编的复杂一点的。

回复
分享到:

使用道具 举报

 楼主| 发表于 2013-3-29 16:12 | 显示全部楼层
已自行解决问题,.m文件中有k,写错了,应该是k(3)、k(2)、k(1)写法
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-2 20:24 , Processed in 0.113718 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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