[求助] : 关于离散线性时不变系统的状态方程表达式
[求助]为什么 离散线性时不变系统可以用如下的状态方程来描述 ?
x (k + 1) = Ax (k ) + B u (k ) ,
y (k ) = Cx (k ),
但是在用matlab仿真时x (k + 1) 并不等于 Ax (k ) + B u (k ) ,请问各位大虾这如何解释?
具体程序为
freedegree=3; %自由度
input_num=1;
fs=100; %采样频率
interval=1/fs;
N=20; %采样点数
f=fs*(0:N1-1)/N;
m1=1; m2=1; m3=1;
c1=40; c2=10; c3=1;
k1=10000; k2=10000; k3=10000;
a=[-(c1+c2)/m1, c2/m1, 0, -(k1+k2)/m1, k2/m1, 0;
c2/m2, -(c2+c3)/m2, c3/m2,k2/m2, -(k2+k3)/m2, k3/m2;
0, c3/m3, -c3/m3, 0, k3/m3, -k3/m3;
1, 0, 0, 0, 0, 0;
0, 1, 0, 0, 0, 0;
0, 0, 1, 0, 0, 0];
c_v_s=;
c_a_v=a;
b= ;
d_v_s=;
d_a_v=b;
sys1=ss(a,b,c_v_s,d_v_s);
sys2=ss(a,b,c_a_v,d_a_v);
t=0: interval : ( N-1)*interval;
u(1,: )=;
y_v_s=lsim(sys1,u,t); % 输出为速度,位移
y_a_v=lsim(sys2,u,t); % 输出为加速度,速度
结果:
y_v_s =
0 0 0 0 0 0
0.0056 0.0015 0.0001 0.0000 0.0000 0.0000
0.0029 0.0045 0.0016 0.0001 0.0000 0.0000
0.0003 0.0037 0.0055 0.0001 0.0001 0.0000
0.0005 0.0017 0.0075 0.0001 0.0001 0.0001
0.0013 0.0032 0.0045 0.0001 0.0001 0.0002
0.0024 0.0041 0.0003 0.0001 0.0002 0.0002
0.0021 0.0006 -0.0008 0.0002 0.0002 0.0002
-0.0008 -0.0027 -0.0006 0.0002 0.0002 0.0002
-0.0032 -0.0028 -0.0020 0.0001 0.0002 0.0002
-0.0022 -0.0025 -0.0042 0.0001 0.0001 0.0001
-0.0004 -0.0030 -0.0049 0.0001 0.0001 0.0001
-0.0007 -0.0028 -0.0038 0.0001 0.0001 0.0001
-0.0017 -0.0018 -0.0018 0.0001 0.0000 0.0000
-0.0011 -0.0007 0.0002 0.0001 0.0000 0.0000
0.0004 0.0008 0.0014 0.0001 0.0000 0.0000
0.0015 0.0024 0.0021 0.0001 0.0000 0.0000
0.0018 0.0029 0.0030 0.0001 0.0001 0.0001
0.0014 0.0025 0.0037 0.0001 0.0001 0.0001
0.0009 0.0021 0.0033 0.0001 0.0001 0.0001
(前三列为速度,后三列为位移)
可是用 x (k + 1) = Ax (k ) + B u (k ) 计算,比如取k=5;
计算
Ax (5) + B u (5)= a*y_v_s(5,: )'+b*u(5)=;
并不等于x(6)=y_v_s(6,: )=;
[ 本帖最后由 cew723 于 2006-8-7 08:42 编辑 ] 把你仿真的程序拿来看一下,没有弄懂你的意思
页:
[1]