parapara2639 发表于 2009-5-12 20:31

求解状态方程

求六自由度,带阻尼系统在周期激振力作用下的响应:方程是: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)
可以运行会有很多错误,好像矩阵的维数不对应,不知道是状态方程写的不对还是初始值不对?烦劳高手分析一下

无水1324 发表于 2009-5-12 21:41

x只定义了1,2,而你的激励力有6个,应该是六自由度的方程吧(MX''+CX'+KX=F(t))X应该有六个元素?

parapara2639 发表于 2009-5-12 22:04

回复 沙发 无水1324 的帖子

是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?

ME! 发表于 2012-12-9 20:00

parapara2639 发表于 2009-5-12 22:04 static/image/common/back.gif
是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?

请问楼主状态方程怎么列

yejet 发表于 2012-12-11 15:17

parapara2639 发表于 2009-5-12 22:04 static/image/common/back.gif
是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?

基本思想就是降阶增元
高级微分方程将为1阶微分方程进行求解
比如你是6个二阶微分方程
转到状态坐标下,应该是12个一阶微分方程
页: [1]
查看完整版本: 求解状态方程