|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
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个输入,这点没弄懂
谢谢各位。
|
|