secondye 发表于 2011-5-27 11:15

疑问:lsim 计算多自由度系统在任意荷载作用下的响应

各位,本人想对一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();
k=6e6*;
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=; B=;
C=; D=;

=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个输入,这点没弄懂

谢谢各位。

ChaChing 发表于 2011-5-27 16:25

回复 1 # secondye 的帖子

真记不得, 又没太多时间help lsim
直接复製LZ的情况, 发现B/D皆为10*1, 表示单输入, 当然报错

secondye 发表于 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();
k=6e6*;
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=; B=;
C=; D=;

=lsim(A,B,C,D,u,t);

刚刚懂 发表于 2012-2-15 12:17

很好正要用到

fhandta 发表于 2013-3-22 15:35

主题很好,学习中。{:{03}:}
页: [1]
查看完整版本: 疑问:lsim 计算多自由度系统在任意荷载作用下的响应