查看: 3284|回复: 4

[综合讨论] 疑问:lsim 计算多自由度系统在任意荷载作用下的响应

[复制链接]
发表于 2011-5-27 11:15 | 显示全部楼层 |阅读模式

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

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

x
各位,本人想对一5自由度的系统(5层剪切模型),计算其在任意荷载下的响应,利用matlab的lsim函数计算,程序如下:
clear;
u=wgn(30000,1,1);;%产生1db白噪声荷载
N=length(u);t=0:0.01:(N-1)*0.01;%采样频率100Hz

m=50000*diag([1 1 1 1 1]);
k=6e6*[2 -1 0 0 0; -1 2 -1 0 0; 0 -1 2 -1 0; 0 0 -1 2 -1; 0 0 0 -1 1];
c=1e4*[4.462 -1.279 -0.219 -0.089 -0.056; -1.279 4.242 -1.368 -0.276 -0.145;
-0.219 -1.368 4.186 -1.424 -0.364; -0.089 -0.276 -1.424 4.098 -1.643;
-0.056 -0.145 -0.364 -1.643 2.819];
A=[zeros(5) eye(5); -inv(m)*k -inv(m)*c]; B=[zeros(5,1); -ones(5,1)];
C=[eye(5) zeros(5); -inv(m)*k -inv(m)*c]; D=[zeros(10,1)];

[y,temp]=lsim(A,B,C,D,u,t);

问题:
1、当输入u为一列向量是可以运行。另有疑问,u为一列向量时就是对其中一个自由度进行激励吧?

2、我想对某一个层,或者同时对5层进行激励,把u改为u=wgn(30000,5,1),结果就出现以下错误:
Error using ==> lti.lsim at 81
When simulating the response to a specific input signal, the input
data U must be a matrix with as many rows as samples in the time
vector T, and as many columns as input channels.
   我想应该没错啊,u的行数跟时间点一样,列数就是5个输入,这点没弄懂

谢谢各位。
回复
分享到:

使用道具 举报

发表于 2011-5-27 16:25 | 显示全部楼层
回复 1 # secondye 的帖子

真记不得, 又没太多时间help lsim
直接复製LZ的情况, 发现B/D皆为10*1, 表示单输入, 当然报错
 楼主| 发表于 2011-5-27 17:05 | 显示全部楼层
本帖最后由 secondye 于 2011-5-27 17:07 编辑

回复 2 # ChaChing 的帖子

多谢解答,这个我发帖后也发现这个情况了,故改之,可以运行了,感谢

u=wgn(30000,5,1); %产生1db白噪声荷载
N=length(u);t=0:0.01:(N-1)*0.01;%采样频率100Hz

m=50000*diag([1 1 1 1 1]);
k=6e6*[2 -1 0 0 0; -1 2 -1 0 0; 0 -1 2 -1 0; 0 0 -1 2 -1; 0 0 0 -1 1];
c=1e4*[4.462 -1.279 -0.219 -0.089 -0.056; -1.279 4.242 -1.368 -0.276 -0.145;
-0.219 -1.368 4.186 -1.424 -0.364; -0.089 -0.276 -1.424 4.098 -1.643;
-0.056 -0.145 -0.364 -1.643 2.819];
A=[zeros(5) eye(5); -inv(m)*k -inv(m)*c]; B=[zeros(5,5); -ones(5,5)];
C=[eye(5) zeros(5); -inv(m)*k -inv(m)*c]; D=[zeros(10,5)];

[y,temp]=lsim(A,B,C,D,u,t);

评分

1

查看全部评分

发表于 2012-2-15 12:17 | 显示全部楼层
很好正要用到
发表于 2013-3-22 15:35 | 显示全部楼层
主题很好,学习中。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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