zhengshuhe 发表于 2011-3-16 13:01

微分方程组的求解发散了,怎么办,求助~

我有个5个自由度的常系数非奇次方程组,用ODE45函数求解,得到的结果是发散的,怎么办?
刚度矩阵、质量矩阵、阻尼矩阵、激振力矩阵都是对称的。

zhengshuhe 发表于 2011-3-16 13:02

主程序:
tspan=;
y0=zeros(10,1);
=ode45(@zcx_vfun,tspan,y0);
plot(t,y);grid;
hold on;


函数程序:
function dy=zcx_vfun(t,y)
%系统参数
m_b=650;m_d=3000;m_fd=3000;m_bd=3000;m_f=2100;jd=45/360*6.28;w=200;J_f=4.0*10^3;
F_0=84*10^3;k_bfv=1.2*10^5;c_bfv=1.2*10^2;
k_bfh=1.2*10^5;c_bfh=1.2*10^2;
k_fdv=1.6*10^6;k_bdv=1.6*10^6;
c_fdv=0.87*10^3;c_bdv=0.87*10^3;
k_fdh=1.6*10^6;k_bdh=1.6*10^6;
c_fdh=0.87*10^3;c_bdh=0.87*10^3;
k_fsv=3.2*10^6;k_bsv=3.2*10^6;
c_fsv=11*10^3;c_bsv=11*10^3;
k_fsh=3.2*10^6;k_bsh=3.2*10^6;
c_fsh=11*10^3;c_bsh=11*10^3;
l_1=1.8;l_2=0.8;
%质量矩阵
M=;
%刚度矩阵
K=;
%阻尼矩阵
C=;
%激振力矩阵
F=[-F_0*cos(jd);-F_0*cos(jd);0;0;0];
%函数定义
x=y(1:5);
dx=y(6:10);
dy=;

zhengshuhe 发表于 2011-3-17 11:09

如果直接编写RUNGE-KUTTA 程序而不直接调用ODE函数,会不会好点呢?哪位主任、教授、校长指点下,急盼!

zhengshuhe 发表于 2011-3-17 16:50

激振力矩阵漏了参数:F=[-F*cos(jd)*cos(w*t);-F*cos(jd)*cos(w*t);0;0;0];
但是依然Y矩阵中前5列都为0值(本来应该为位移值按正余弦变化的),后5列向量值有两个发散了,郁闷呢。。。。。高手指点下

zhengshuhe 发表于 2011-3-18 09:13

搞定了!

meiyongyuandeze 发表于 2011-3-18 11:32

{:{39}:}

ChaChing 发表于 2011-3-26 15:22

zhengshuhe 发表于 2011-3-18 09:13 static/image/common/back.gif
搞定了!

LZ忘了与大伙分享了!:@)
页: [1]
查看完整版本: 微分方程组的求解发散了,怎么办,求助~