现代控制理论实验2
- 格式:docx
- 大小:204.73 KB
- 文档页数:13
河南工业大学《现代控制理论》实验报告
一、实验题目:
线性系统可控、可观测性判断
二、实验目的
1. 掌握能控性和能观测性的概念。
学会用MATLAB 判断能控性和能观测性。
2. 掌握系统的结构分解。
学会用MATLAB 进行结构分解。
3. 掌握最小实现的概念。
学会用MATLAB 求最小实现。
三、实验过程及结果
1. 已知系统
u x x ⎥⎦
⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡---=140143 []x y 11--=
(1)判断系统状态的能控性和能观测性,以及系统输出的能控性。
说明状态能 控性和输出能控性之间有无联系。
能控性判断:
A=[-3 -4;-1 0];B=[4;1];C=[-1 -1];Uc=ctrb(A,B)
求秩rank(Uc)
不满秩,可知系统是状态不可控的
能观性判断:
Vo=obsv(A,C)
求秩rank(Vo)
不满秩,可知系统不可观
输出能控性判断:
Uy=[C*Uc D]
求秩rank(Uy)
系统是输出可观的
可以知道,系统的状态能控性和输出能控性之间无联系。
(2) 令系统的初始状态为零,系统的输入分别为单位阶跃函数和单位脉冲函数。
用MATLAB函数计算系统的状态响应和输出响应,并绘制相应的响应曲线。
观察和记录这些曲线。
当输入改变时, 每个状态变量的响应曲线是否随着改变?能否根据这些曲线判断系统状态的能控性?
零状态,单位阶跃:
A=[-3 -4;-1 0];B=[4;1];C=[-1 -1];D=0;Gss=ss(A,B,C,D);
x0=0;[yo,t,xo]=step(Gss); plot(t,xo,':',t,yo,'-')
[yo,t,xo]=impulse(Gss); plot(t,xo,':',t,yo,'-')
当输入改变时, 每个状态变量的响应曲线随着改变
(3) 将给定的状态空间表达式变换为对角标准型,判断系统的能控性和能观测性,与(1)的结果是否一致?为何?
Gc=canon(Gss,'modal')
由以上的A ,B ,C 可知系统不能控,不可观测,与(1)结果一致,因为状态空间表达式化成能控标准型或者能观标准型的理论依据是状态的非奇异变换不改变其能控性或者能观性。
(4)令(3)中系统的初始状态为零, 输入分别为单位阶跃函数和单位脉冲函数。
用MATLAB 函数计算系统的状态响应和输出响应,并绘制响应的曲线。
观察和记录这些曲线。
当输入改变时, 每个状态变量曲线是否随着改变?能否根据这些曲线判断系统以及各状态变量的能控性?不能控和能控状态变量的响应曲线有何不同?
x0=0;[yo,t,xo]=step(Gj); plot(t,xo,':',t,yo,'-')
[yo,t,xo]=impulse(Gj); plot(t,xo,':',t,yo,'-')
2. 已知系统
u x x
⎥
⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----=00124000020000300001 []x y 0101=
(1) 将给定的状态空间模型转换为传递函数模型。
令初始状态为零,用MATLAB 计算系统的单位阶跃输出响应,绘制和记录相应的曲线。
A=[-1 0 0 0;0 -3 0 0;0 0 -2 0;0 0 0 -4];B=[2;1;0;0];C=[1 0 1
0];Gss=ss(A,B,C,0);Gtf=tf(Gss)
x0=0;[y0,t,x0]=step(Gss,t);plot(t,xo,':',t,yo,'-')
(2) 按能控性分解给定的状态空间模型并记录所得的结果,然后再将其转换为传递函数模型。
它与(1)中所得的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。
这一曲线与(1)中的输出曲线是否一致?为何?
能控性分解:
[Ac Bc Cc Tc Kc]=ctrbf(A,B,C)
Gss1=ss(Ac,Bc,Cc,0)
传递函数:
Gtf1=tf(Gss1)
与(1)传递函数模型相同
x0=0;[yo,t,xo]=step(Gss1); plot(t,xo,':',t,yo,'-')
这一曲线与(1)中的输出曲线一致
(3) 按能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。
它与(1)中的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。
这一曲线与(1)中的输出曲线是否一致?
能观测性分解:
[Ao Bo Co To Ko]=obsvf(A,B,C)
状态空间模型:
Gss2=ss(Ao,Bo,Co,0);Gtf2=tf(Gss2)
与(1)传递模型相同
x0=0;[yo,t,xo]=step(Gss2); plot(t,xo,':',t,yo,'-')
(4) 按能控性能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。
它与(1)中的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应的曲线。
这一曲线与(1)中的输出曲线是否一致?为何?
A=[-1 0 0 0;0 -3 0 0;0 0 -2 0;0 0 0 -4];B=[2;1;0;0];C=[1 0 1 0];
[Ak Bk Ck Tk]=kalmdec(A,B,C)
传递函数模型:
Gss3=ss(Ak,Bk,Ck,0);Gtf=tf(Gss3)
与(1)传递函数模型相同
x0=0;[yo,t,xo]=step(Gss3); plot(t,xo,':',t,yo,'-')
这一曲线与(1)中的输出曲线一致。