求解状态方程
求六自由度,带阻尼系统在周期激振力作用下的响应:方程是:MX''+CX'+KX=F(t)我的matlab程序如下:
先定义函数:
function xdot=odefun(t,x)
C;
K;
M;%阻尼,质量,刚度矩阵已知,元素就不写了
F='%激振力列阵
xdot=[x(2);inv(M)*(F-C-K*x(1));
%***********************************************************************
下面引用函数:
t0=0;
tfinal=3;
x0=;
=ode45(@odefun,,x0)
可以运行会有很多错误,好像矩阵的维数不对应,不知道是状态方程写的不对还是初始值不对?烦劳高手分析一下 x只定义了1,2,而你的激励力有6个,应该是六自由度的方程吧(MX''+CX'+KX=F(t))X应该有六个元素?
回复 沙发 无水1324 的帖子
是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢? parapara2639 发表于 2009-5-12 22:04 static/image/common/back.gif是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?
请问楼主状态方程怎么列 parapara2639 发表于 2009-5-12 22:04 static/image/common/back.gif
是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?
基本思想就是降阶增元
高级微分方程将为1阶微分方程进行求解
比如你是6个二阶微分方程
转到状态坐标下,应该是12个一阶微分方程
页:
[1]