实 验 报 告
系 | 专业现代a7 | 自动化 | 班 | ||
姓名 | 学号 | 授课老师 | |||
预定时间 | 实验时间 | 实验台号 | |||
一、目的要求 1、掌握状态反馈和输出反馈的概念及性质。 2、掌握利用状态反馈进行极点配置的方法。学会用MATLAB 求解状态反馈矩阵。 3、掌握状态观测器的设计方法。学会用MATLAB 设计状态观测器。 二、原理简述 1、状态反馈和输出反馈 设线性定常系统的状态空间表达式为 2、极点配置 如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。 MATLAB 提供的函数acker( )是用Ackermann 公式求解状态反馈阵K。该函数的调用格 式为 K=acker(A,B,P) 其中A 和B 分别为系统矩阵和输入矩阵。P 是期望极点构成的向量。 MATLAB 提供的函数place( )也可求出状态反馈阵K。该函数的调用格式为 K=place(A,B,P) 函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。 三、仪器设备 PC 计算机,MATLAB 软件 四、内容步骤、数据处理 题5-1 某系统状态方程如下 理想闭环系统的极点为,试 (1)采用直接计算法进行闭环系统极点配置; (2)采用Ackermann公式计算法进行闭环系统极点配置; (3)采用调用place函数法进行闭环系统极点配置。 >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;6]; C=[1 0 0]; D=0; G=ss(A,B,C,D); [Q,D]=eig(A) 结果: Q = 0.2995 0.3197 - 0.0731i 0.3197 + 0.0731i -0.4944 0.0573 + 0.5074i 0.0573 - 0.5074i 0.8160 -0.7948 -0.7948 D = -1.6506 0 0 0 -0.1747 + 1.5469i 0 0 0 -0.1747 - 1.5469i 则矩阵A的特征根为:-1.6506,-0.1747 + 1.5469i,-0.1747 - 1.5469i 程序: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=acker(A,B,p) 结果:k =1.4809 0.7481 -0.0458 验证: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;6]; C=[1 0 0]; D=0; k=[0.5053 0.7052 0.2299]; A1=A-B*k; sys=ss(A1,B,C,D); G1=zpk(sys) 结果:Zero/pole/gain: (s^2 + 5s + 15) ------------------------- (s+1) (s+1.999) (s+3.001) 则其极点为-1 ,-2 ,-3 (2) 程序: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=place(A,B,p) 结果:k = 1.4809 0.7481 -0.0458 验证: 程序: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=place(A,B,p); A1=A-B*k; sys=ss(A1,B,C,D); G1=zpk(sys) 结果: Zero/pole/gain: (s+4.303) (s+0.6972) -------------------- (s+3) (s+2) (s+1) 则其极点为-1,-2,-3 题5-2 某控制系统的状态方程描述如下: y=[1 7 24 24]x 通过状态反馈使系统的闭环极点配置在[-30 -1.2 ]位置上,求出状态反馈矩阵K,验证闭环极点,并绘制闭环系统的阶跃响应曲线进行对比。 程序>> A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0]; C=[1 7 24 24]; D=0; p=[-30 -1.2 -2.4+4i -2.4-4i]; k=place(A,B,p) 结果:k = 26.0000 172.5200 801.7120 759.3600 验证: 程序:>> A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0]; C=[1 7 24 24]; D=0; p=[-30 -1.2 -2.4+4i -2.4-4i]; k=place(A,B,p); A1=A-B*k; sys=ss(A1,B,C,D); G1=zpk(sys) 结果:Zero/pole/gain: (s+1.539) (s^2 + 5.461s + 15.6) ------------------------------------ (s+30) (s+1.2) (s^2 + 4.8s + 21.76) >> A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0]; C=[1 7 24 24]; D=0; G=ss(A,B,C,D); p=[-30 -1.2 -2.4+4i -2.4-4i]; k=place(A,B,p); A1=A-B*k; G1=ss(A1,B,C,D); t=0:0.5:20; u=ones(size(t)); y2=lsim(G1,u,t); y1=lsim(G,u,t); plot(t,y1,':',t,y2,'-') 蓝为配置前,绿为配置后 题5-3 某系统状态空间描述如下 设计全维状态观测器,要求状态观测器的极点为。 程序>> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]'; C=[1 0 0]; D=0; p=[-1 -2 -3]; L=(acker(A',C',p))' 结果:L = 4 0 -10 题5-4已知系统 y=[6 6 0]x (1)求系统的零点,极点和传递函数,并判断系统的能控性和能观测性。 (2)分别选取K=[0 3 0].K=[1 3 2],K=[0 3 1]为状态反馈矩阵,求解闭环系统的零点,极点和传递函数,并判断系统的能控性和能观测性。它们是否发生改变?为什么? (1) 程序 >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; sys=ss(A,B,C,D); G=zpk(sys) 结果: Zero/pole/gain: 6 (s+1) ------------- (s+2)^2 (s+3) 则系统的零点为:-1 则系统的极点为:-2,-2,-3 程序 >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; Uc=ctrb(A,B);rank(Uc) 结果:ans = 3 则系统能控 程序: >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; Vo=obsv(A,C); rank(Vo) 结果:ans =3 则系统能观 (2) 当k=[0 3 0]时: 程序>> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; k=[0 3 0]; A1=A-B*k; sys=ss(A1,B,C,D); G=zpk(sys) 结果: Zero/pole/gain: 6 (s+1) --------------------------------- (s+0.8821) (s^2 + 6.118s + 13.6) 则零点为-1 >> pole(G) ans = -0.8821 -3.0589 + 2.0606i -3.0589 - 2.0606i >> Uc=ctrb(A,B);rank(Uc) ans = 3 >> Vo=obsv(A,C); rank(Vo) ans = 3 当k=[1 3 2]时: 程序>> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; k=[1 3 2]; A1=A-B*k; sys=ss(A1,B,C,D); G=zpk(sys) 结果: Zero/pole/gain: 6 (s+1) --------------------------------- (s+6.319) (s^2 + 2.681s + 2.057) 则闭环系统的零点为:-1 >> pole(G) ans = -6.3186 -1.3407 + 0.5099i -1.3407 - 0.5099i >> Uc=ctrb(A,B);rank(Uc) ans = 3 则系统具有能控性 >> Vo=obsv(A,C); rank(Vo) ans = 3 则系统具有能观测性 当k=[0 1 3]时: >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; k=[0 1 3]; A1=A-B*k; sys=ss(A1,B,C,D); G=zpk(sys) Zero/pole/gain: 6 (s+1) ------------------------------- (s+8.08) (s^2 + 1.92s + 1.485) >> Uc=ctrb(A,B);rank(Uc) ans = 3 则系统具有能控性 >> Vo=obsv(A,C); rank(Vo) ans = 3 则系统具有能观测性 分析: 系统完全能控则可以任意配置极点,配置极点不改变系统的能控性,但可能改变系统的能观测性。不存在零极相消的情况下,则不改变系统的能观测性。 五、分析讨论 通过本次试验,掌握了状态反馈和输出反馈的概念及性质。掌握了利用状态反馈进行极点配置的方法。学会了用MATLAB 求解状态反馈矩阵。掌握了状态观测器的设计方法。学会了用MATLAB 设计状态观测器。熟悉了分离定理,学会了设计简单的带有状态观测器的状态反馈系统。原本通过平常的上课,对于一些概念我还是没有完全掌握,比如极点配置,状态反馈,输出反馈。通过实验的验证,翻阅书籍,使我对于书本上的概念产生了更深的理解,学会了分析验证书本上的定理而不是盲目学习。 |
发布评论