声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1656|回复: 4

[线性振动] 求解状态方程

[复制链接]
发表于 2009-5-12 20:31 | 显示全部楼层 |阅读模式

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

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

x
求六自由度,带阻尼系统在周期激振力作用下的响应:方程是:MX''+CX'+KX=F(t)
     我的matlab程序如下:
     先定义函数:
       function xdot=odefun(t,x)
                C;
                K;
                M;  %阻尼,质量,刚度矩阵已知,元素就不写了
        F=[1*sin(10*t)  2*sin(10*t)  3*sin(10*t)  4*sin(10*t)  5*sin(10*t)  6*sin(10*t)]'  %激振力列阵
                xdot=[x(2);inv(M)*(F-C-K*x(1));
%***********************************************************************
              下面引用函数:
      t0=0;
           tfinal=3;
           x0=[zeros(6,1);zeros(6,1)];
           [t,x]=ode45(@odefun,[t0,tfinal],x0)
可以运行会有很多错误,好像矩阵的维数不对应,不知道是状态方程写的不对还是初始值不对?烦劳高手分析一下
回复
分享到:

使用道具 举报

发表于 2009-5-12 21:41 | 显示全部楼层
x只定义了1,2,而你的激励力有6个,应该是六自由度的方程吧(MX''+CX'+KX=F(t))X应该有六个元素?

评分

1

查看全部评分

 楼主| 发表于 2009-5-12 22:04 | 显示全部楼层

回复 沙发 无水1324 的帖子

是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?
发表于 2012-12-9 20:00 | 显示全部楼层
发表于 2012-12-11 15:17 | 显示全部楼层
parapara2639 发表于 2009-5-12 22:04
是6自由度的,X是6行1列的向量,所以状态向量应该是12行1列的向量,是不是这样呢?

基本思想就是降阶增元
高级微分方程将为1阶微分方程进行求解
比如你是6个二阶微分方程
转到状态坐标下,应该是12个一阶微分方程
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-25 22:23 , Processed in 0.063451 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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