线性定常系统得能控性与能观测性
一、实验设备
PC 计算机,MATLAB 软件,控制理论实验台。
二、实验目得
(1)学习系统状态能控性、能观测性得定义及判别方法;
(2)通过用 MATLAB 编程、上机调试,掌握系统能控性、能观测性得判别方
法,掌握将一般形式得状态空间描述变换成能控标准形、能观标准形。 (3)掌握能控性与能观测性得概念。学会用 MATLAB 判断能控性与能观测性。
(4)掌握系统得结构分解。学会用 MATLAB 进行结构分解。 (5)掌握最小实现得概念。学会用 MATLAB 求最小实现
三、实验原理
(1)参考教材 P117~118“4、2、4 利用 MATLAB 判定系统能控性”
P124~125“4、3、3 利用 MATLAB 判定系统能观测性” (2)MATLAB 现代控制理论仿真实验基础 (3)控制理论实验台使用指导
四、实验内容
(1)已知系统状态空间描述如下
(1)判断系统状态得能控性与能观测性,以及系统输出得能控性.说明状态能控性与输出能控性之间有无联系.
代码:
A=[0 2 -1;5 1 2;-2 0 0]; B=[1;0;-1]; C=[1,1,0]; D=[0];
Uc=[B,A*B,A^2*B,A^3*B]; rank(Uc)%能控性判断
Uo=[C,C*A,C*A^2,C*A^3]; rank(Uo)%判断能观性
Uco=[C*B,C*A*B,C*A^2*B,C*A^3*B]; rank(Uco)%判断输出能控性
(2)令系统得初始状态为零,系统得输入分别为单位阶跃函数与单位脉冲函数。用 MATLAB 函数计算系统得状态响应与输出响应,并绘制相应得响应曲线。观察与记录这些曲线。当输入改变时, 每个状态变量得响应曲线就是否随着改变?能否根据这些曲线判断系统状态得能控性? 单位阶跃输入: 代码:
A=[0,2,—1;5,1,2;-2,0,0]; B=[1;0;—1]; C=[1,1,0]; D=[0];
Uc=[B,A*B,A^2*B,A^3*B]; rank(Uc)%判断状态能控性 Uo=[C,C*A,C*A^2,C*A^3]; rank(Uo)%判断能观性
Uco=[C*B,C*A*B,C*A^2*B,C*A^3*B]; rank(Uco)%判断输出能控 G=ss(A,B,C,D); t=[0:、04:2];
[y,t,x]=step(G,t);%单位阶跃输入
plot(t,x,’b’,t,y,'m')%状态及输出响应曲线
legend('original target positions ','original target positions’,'X',’Y')
单位脉冲输入: 代码:
A=[0,2,—1;5,1,2;-2,0,0]; B=[1;0;—1]; C=[1,1,0]; D=[0];
G=ss(A,B,C,D); t=[0:、04:2];
[y,t,x]=impulse(G,t)%单位脉冲输入 plot(t,x,'b’,t,y,'m')%状态及输出响应曲线
legend('original target positions’,’original target positions’,'X','Y')