文档详情

ode45求解多自由度动力学方程实例.doc

发布:2017-04-22约小于1千字共页下载文档
文本预览下载声明
Ode45函数调用形式如下: [T,Y]=ode45(odefun,tspan,y0) 相关参数介绍如下: 参数名称参数说明odefun用于存放待求解的方程的m文件名,方程必须用y’=f(t,y)的形式存放tspan指定自变量范围的向量,通常用[t0,tf]指定y0函数的边界条件,即y0=y(t0),对于方程组,y0也可以是向量 例:若一三自由度多体动力学系统方程如下: 初始条件: 由于方程必须用y’=f(t,y)的形式存放,因此需要对方程组进行降阶处理。 令 则方程组可化为: 因此建立M函数文件来定义此方程组如下: function dy=func(t,y) dy=zeros(6,1); dy(1)=y(2); dy(2)=0.5*(-3*y(2)+1.5*y(4)-100*y(1)+50*y(3)+2.0*sin(3.754*t)); dy(3)=y(4); dy(4)=0.5*(1.5*y(2)-3*y(4)+1.5*y(6)+50*y(1)-100*y(3)+50*y(5)-2.0*cos(2.2*t)); dy(5)=y(6); dy(6)=0.5*(-1.5*y(4)-3*y(6)+50*y(3)-100*y(5)+1.0*sin(2.8*t)); end 在matlab命令窗口里输入一下命令: y0=[1 1 1 1 1 1]; tspan=[0 30]; [t,y]=ode45(@func,tspan,y0); figure(1) plot(t,y(:,1),t,y(:,3),t,y(:,5)); legend(x1,x2,x3); xlabel(时间(s),FontSize,10); ylabel(振动位移曲线,FontSize,10); figure(2) plot(t,y(:,2),t,y(:,4),t,y(:,6)); legend(v1,v2,v3); xlabel(时间(s),FontSize,10); ylabel(‘振动速度曲线’,’FontSize’,10); 运行结果:
显示全部
相似文档