现代控制理论实验报告.doc

上传人:laozhun 文档编号:4193216 上传时间:2023-04-09 格式:DOC 页数:62 大小:845KB
返回 下载 相关 举报
现代控制理论实验报告.doc_第1页
第1页 / 共62页
现代控制理论实验报告.doc_第2页
第2页 / 共62页
现代控制理论实验报告.doc_第3页
第3页 / 共62页
现代控制理论实验报告.doc_第4页
第4页 / 共62页
现代控制理论实验报告.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《现代控制理论实验报告.doc》由会员分享,可在线阅读,更多相关《现代控制理论实验报告.doc(62页珍藏版)》请在三一办公上搜索。

1、现代控制理论 实验报告1005044114信息与通信工程学院张磊 学生姓名: 学号: 电气工程及其自动化学 院: 专 业: 现代控制理论实验实验一 线性定常系统模型一 实验目的1. 掌握线性定常系统的状态空间表达式。学会在MATLAB中建立状态空间模型的方法。2. 掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB实现不同模型之间的相互转换。3. 熟悉系统的连接。学会用MATLAB确定整个系统的状态空间表达式和传递函数。4. 掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。二 实验内

2、容1. 已知系统的传递函数(a) (b) (1)建立系统的TF或ZPK模型。(2)将给定传递函数用函数ss( )转换为状态空间表达式。再将得到的状态空间表达式用函数tf( )转换为传递函数,并与原传递函数进行比较。(3)将给定传递函数用函数jordants( )转换为对角标准型或约当标准型。再将得到的对角标准型或约当标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。(4)将给定传递函数用函数ctrlts( )转换为能控标准型和能观测标准型。再将得到的能控标准型和能观测标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。实验数据为 实验1 (a) (1) z=,p=0 -1

3、 -1 -3z = p = 0 -1 -1 -3 G=zpk(z,p,4)Zero/pole/gain: 4-s (s+1)2 (s+3) (2) G=ss(G) a = x1 x2 x3 x4 x1 0 1 0 0 x2 0 -1 1 0 x3 0 0 -1 1 x4 0 0 0 -3 b = u1 x1 0 x2 0 x3 0 x4 2 c = x1 x2 x3 x4 y1 2 0 0 0 d = u1 y1 0 Continuous-time model. G=tf(G) Transfer function: 4-s4 + 5 s3 + 7 s2 + 3 s实验一 1 b(1) z=-2

4、 -4,p=-1 -3z = -2 -4p = -1 -3 G=zpk(z,p,1) Zero/pole/gain:(s+2) (s+4)-(s+1) (s+3)(2) G=ss(G) a = x1 x2 x1 -1 1 x2 0 -3 b = u1 x1 1 x2 1 c = x1 x2 y1 1 1 d = u1 y1 1 Continuous-time model. G=tf(G) Transfer function:s2 + 6 s + 8-s2 + 4 s + 3实验一 2J5QiR; #(2#)a#(1#)A=0 1;-5 -6;B=0;1;C=1 1;D=0;G=ss(A,B,C

5、,D)Geig=eig(G)Gtf=tf(G)Gzpk=zpk(Gtf) a = x1 x2 x1 0 1 x2 -5 -6 b = u1 x1 0 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Continuous-time model.Geig = -1 -5 Transfer function: s + 1-s2 + 6 s + 5 Zero/pole/gain: (s+1)-(s+5) (s+1)#(2#) A=0 1;-5 -6;B=0;1;C=1 1;D=0;G=ss(A,B,C,D)Gcanon=canon(G)Geig=eig(Gcanon)Gtf=tf(

6、Gcanon)Gzpk=zpk(Gtf) a = x1 x2 x1 0 1 x2 -5 -6 b = u1 x1 0 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Continuous-time model. a = x1 x2 x1 -1 0 x2 0 -5 b = u1 x1 0.3536 x2 1.275 c = x1 x2 y1 0 0.7845 d = u1 y1 0 Continuous-time model.Geig = -5 -1 Transfer function: 1-s + 5 Zero/pole/gain: 1-(s+5)J5QiR; 2b#(1#

7、) A=0 1 0;3 0 2;-12 -7 -6;B=2;1;7;C=1 1 1;D=0;G=ss(A,B,C,D)Geig=eig(G)Gtf=tf(G)Gzpk=zpk(Gtf) a = x1 x2 x3 x1 0 1 0 x2 3 0 2 x3 -12 -7 -6 b = u1 x1 2 x2 1 x3 7 c = x1 x2 x3 y1 1 1 1 d = u1 y1 0 Continuous-time model.Geig = -1.0000 -2.0000 -3.0000 Transfer function: 10 s2 + 8 s - 39-s3 + 6 s2 + 11 s +

8、 6 Zero/pole/gain:10 (s+2.415) (s-1.615)- (s+3) (s+2) (s+1)#(2#) A=0 1 0;3 0 2;-12 -7 -6;B=2;1;7;C=1 1 1;D=0;G=ss(A,B,C,D)Gcanon=canon(G)Geig=eig(Gcanon)Gtf=tf(Gcanon)Gzpk=zpk(Gtf) a = x1 x2 x3 x1 0 1 0 x2 3 0 2 x3 -12 -7 -6 b = u1 x1 2 x2 1 x3 7 c = x1 x2 x3 y1 1 1 1 d = u1 y1 0 Continuous-time mod

9、el. a = x1 x2 x3 x1 -1 0 0 x2 0 -2 0 x3 0 0 -3 b = u1 x1 -32.04 x2 68.74 x3 58.85 c = x1 x2 x3 y1 0.5774 0.2182 0.2294 d = u1 y1 0 Continuous-time model.Geig = -3.0000 -2.0000 -1.0000 Transfer function: 10 s2 + 8 s - 39-s3 + 6 s2 + 11 s + 6 Zero/pole/gain:10 (s+2.415) (s-1.615)- (s+3) (s+2) (s+1)2.

10、已知系统的状态空间表达式(a) (b) (c) (d) (1)建立给定系统的状态空间模型。用函数eig( ) 求出系统特征值。用函数tf( ) 和zpk( )将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。比较系统的特征值和极点是否一致,为什么?(2)用函数canon( )将给定状态空间表达式转换为对角标准型。用函数eig( )求出系统特征值。比较这些特征值和(1)中的特征值是否一致,为什么? 再用函数tf( )和zpk( )将对角标准型或约当标准型转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?(3)用函数ctrlss( )将给定的状态空间表达式转换

11、为能控标准型和能观测标准型。用函数eig( )求系统的特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf( )将它们转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?3. 已知两个子系统 (1)建立两个子系统的传递函数模型。求它们串联、并联、反馈连接时, 整个系统的传递函数模型。然后将所得传递函数模型转换为状态空间模型。(2)将两个子系统的传递函数模型转换为状态空间模型。求它们串联、并联、反馈连接时, 整个系统的状态空间模型。然后将所得状态空间模型转换为传递函数模型。比较(1)和(2)所得的相应的结果。(3)将(2)中所得的整个系统的状态空间模型的系数矩

12、阵与教材中推导出的整个系统的状态空间表达式的系数矩阵比较,是否符合?三 附录1. 线性定常系统的数学模型在MATLAB中,线性定常(linear time invariant, 简称为 LTI)系统可以用4种数学模型描述,即传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型以及SIMULINK结构图。前三种数学模型是用数学表达式表示的,且均有连续和离散两种类型,通常把它们统称为LTI模型。1) 传递函数模型(TF 模型)令单输入单输出线性定常连续和离散系统的传递函数分别为 (1-1)和 。 (1-2)在MATLAB中,连续系统和离散系统的传递函数都用分子/分母多项式系数构成的

13、两个行向量num和den表示,即,系统的传递函数模型用MATLAB提供的函数tf( )建立。函数tf ( )不仅能用于建立系统传递函数模型,也能用于将系统的零极点增益模型和状态空间模型转换为传递函数模型。该函数的调用格式如下: 返回连续系统的传递函数模型。 返回离散系统的传递函数模型。Ts为采样周期,当Ts=-1或者Ts=时,系统的采样周期未定义。 可将任意的LTI模型转换为传递函数模型。例1-1 已知一个系统的传递函数为 建立传递函数模型。在命令窗中运行下列命令num=6;den=1 6 11 6;G=tf (num, den) 返回Transfer function: 6-s3 + 6 s

14、2 + 11 s + 62) 零极点增益模型(ZPK模型)系统的零极点增益模型是传递函数模型的一种特殊形式。令线性定常连续和离散系统的零极点形式的传递函数分别为 (1-3)和 (1-4)在MATLAB中,连续和离散系统的零点和极点都用行向量和表示,即,。系统的零极点增益模型用MATLAB提供的函数zpk ( )建立。函数zpk( )不仅能用来建立系统零极点增益模型,也能用于将系统的传递函数模型和状态空间模型转换为零极点增益模型。该函数的调用格式如下: 返回连续系统的零极点增益模型。 返回离散系统的零极点增益模型。Ts为采样周期,当Ts=-1或者Ts=时,系统的采样周期未定义。 可将任意的LTI

15、模型转换为零极点增益模型。例1-2 已知系统的传递函数为 建立系统的零极点增益模型。在命令窗中运行下列命令 z= ;p=-1 -2 -3;k=6;G=zpk(z,p,k) 返回Zero/pole/gain:6-(s+1) (s+2) (s+3)注意:无零点时,设z为空。3) 状态空间模型(SS模型)令多输入多输出线性定常连续和离散系统的状态空间表达式分别为 (1-5)和 (1-6)在MATLAB中,连续系统和离散系统的状态空间模型都用MATLAB提供的函数ss ( )建立。函数ss ( )不仅能用于建立系统的状态空间模型,也能用于将系统的传递函数模型和零极点增益模型转换为状态空间模型。该函数的

16、调用格式如下: 返回连续系统的状态空间模型。 返回离散系统的状态空间模型。Ts为采样周期,当Ts=1或者Ts=时,系统的采样周期未定义。 可将任意的LTI模型转换为状态空间模型。例1-3 已知系统的状态空间表达式为 建立系统的状态空间模型。在命令窗中运行下列命令 A=0 1 0;0 0 1;-6 -11 -6;B=0;0;1;C=6 0 0;D=0;G=ss(A,B,C,D) 返回a = x1 x2 x3 x1 0 1 0 x2 0 0 1 x3 -6 -11 -6b = u1 x1 0 x2 0 x3 1c = x1 x2 x3 y1 6 0 0d = u1 y1 0Continuous-t

17、ime model.注意:D=0不能缺省。2模型转换上述三种LTI模型之间可以通过函数tf( ),zpk( )和ss( )相互转换。线性定常系统的传递函数模型和零极点增益模型是唯一的,但系统的状态空间模型是不唯一的。函数ss( )只能将传递函数模型和零极点增益模型转换为一种指定形式的状态空间模型。例1-4 已知系统的传递函数,建立TF模型,将其转换为ZPK模型和SS模型。再将转换得到的SS模型转换为TF模型。 编制如下程序%ex14。%ex14 num=5;den=1 4 5 2;Gtf=tf(num,den);Gzpk=zpk(Gtf) Gss=ss(Gtf)Gtf1=tf(Gss)在命令窗

18、中运行该程序,即 ex14返回Zero/pole/gain: 5-(s+2) (s+1)2a = x1 x2 x3 x1 -4 -2.5 -0.5 x2 2 0 0 x3 0 2 0b = u1 x1 1 x2 0 x3 0c = x1 x2 x3 y1 0 0 1.25d = u1 y1 0Continuous-time model.Transfer function: 5-s3 + 4 s2 + 5 s + 2传递函数可以转换为约旦标准型(包括对角标准型)、能控标准型和能观测标准型。我们编制的函数jordants( ) 可用部分分式展开将传递函数转换为对角标准型或约当标准型。该函数的调用格

19、式为:其中num和den分别为传递函数分子和分母多项式系数的行向量,为转换得到对角标准型或约当标准型。该函数的程序如下:function Gj=jordants(num,den) %用部分分式展开将传递函数转换为约当标准型R,P,K=residue(num,den);j=1;q=P(1);m(1)=0;for i=1:length(P) if P(i)=q m(j)=m(j)+1; else q=P(i); j=j+1; m(j)=1; endend %计算各极点的重数Aj=diag(P);for i=1:length(P)-1 if Aj(i,i)=Aj(i+1,i+1) Aj(i,i+1)

20、=1; else Aj(i,i+1)=0; endend %构造系统矩阵AjB1=0;l=0;for j=1:length(m)l=l+m(j);B1(l)=1;end Bj=B1; %构造输入矩阵Bjn=1;l=m(1);Cj(:,1:m(1)=rot90(R(1:m(1),:),3);for k=2:length(m)n=l+1;l=l+m(k);Cj(:,n:l)=rot90(R(n:l,:),3);end %构造输出矩阵Cj if K= Dj=0;else Dj=K; end %构造直联矩阵Dj Gj=ss(Aj,Bj,Cj,Dj);例1-5 已知系统的传递函数为 将其转换为对角标准型

21、。在命令窗中运行下列命令 num=6;den=1 6 11 6;Gj=jordants(num,den) 返回a = x1 x2 x3 x1 -3 0 0 x2 0 -2 0 x3 0 0 -1b = u1 x1 1 x2 1 x3 1c = x1 x2 x3 y1 3 -6 3d = u1 y1 0Continuous-time model.例1-6 已知系统的传递函数为 将其转换为约当标准型。在命令窗中运行下列命令 num=2 10 17 11; den=1 5 8 4; Gj=jordants(num,den) 返回a = x1 x2 x3 x1 -2 1 0 x2 0 -2 0 x3

22、0 0 -1b = u1 x1 0 x2 1 x3 1c = x1 x2 x3 y1 -1 -2 2d = u1 y1 2Continuous-time model.我们编制的函数ctrlts( )可将传递函数转换为能控标准型。该函数的调用格式为: 其中num和den分别为传递函数的分子和分母多项式系数的行向量,为转换得到的能控标准型。该函数的程序如下:function Gc=ctrlts(num,den) %将传递函数转换为能控标准型m=length(num)-1;n=length(den)-1;if m=nR,P,K=residue(num,den);num1=num-K*den;A(n,

23、:)=-1*rot90(den(:,2:n+1),2);A(1:n-1,2:n)=eye(n-1);A(1:n-1,1)=zeros(n-1,1);B=zeros(n-1,1);1;C=rot90(num1(:,2:n+1),2);D=K; else A(n,:)=-1*rot90(den(:,2:n+1),2);A(1:n-1,2:n)=eye(n-1);A(1:n-1,1)=zeros(n-1,1);B=zeros(n-1,1);1;C(:,1:m+1)=rot90(num,2);C(:,m+2:n)=zeros(1,n-m-1); D=0;endGc=ss(A,B,C,D);例1-7 将

24、例1-6中的传递函数转换为能控标准型。在命令窗中运行下列命令 num=2 10 17 11;den=1 5 8 4;Gc=ctrlts(num,den) 返回a = x1 x2 x3 x1 0 1 0 x2 0 0 1 x3 -4 -8 -5b = u1 x1 0 x2 0 x3 1c = x1 x2 x3 y1 3 1 0d = u1 y1 2Continuous-time model.进一步,求能控标准型的对偶系统可得能观测标准型。在命令窗中运行下列命令 Ao=(Gc.a);Bo=(Gc.c);Co=(Gc.b);Do=Gc.d;Go=ss(Ao,Bo,Co,Do) 返回a = x1 x2

25、 x3 x1 0 0 -4 x2 1 0 -8 x3 0 1 -5b = u1 x1 3 x2 1 x3 0c = x1 x2 x3 y1 0 0 1d = u1 y1 2Continuous-time model.下面是介绍MATLAB提供的三个函数tfdata( ), zpkdata( ), ssdata( )。函数tfdata( ) 可得到传递函数模型的分子分母多项式系数。其调用格式为其中G为系统LTI模型。和den分别为分子和分母多项式的系数向量。函数zpkdata( ) 可得到零极点增益模型的零点、极点和增益。其调用格式为其中G为系统LTI模型。z和p分别为零点和极点向量,k为增益。

26、函数ssdata( ) 可得到状态空间模型的系数矩阵。其调用格式为其中G为系统LTI模型。A,B,C,D为系数矩阵。3. 模型的连接1) 串联连接设线性定常系统1和2的LTI模型分别为和。在MATLAB中, 两者的串联连接(参教材)可由命令实现,其中G为整个系统的LTI模型。多个系统的串联连接可由命令实现。2) 并联连接设线性定常系统1和2的LTI模型分别为和。在MATLAB中, 两者的并联连接(参教材)可由命令实现,其中G为整个系统的LTI模型。多个系统的并联连接可由命令实现。3) 反馈连接设线性定常系统1和2的LTI模型分别为和。在MATLAB中, 两者的反馈连接(参教材)可由MATLAB

27、提供的函数feedback( )实现。该函数的调用格式为: 其中G为整个系统LTI模型。如果Sign=-1或省略Sign变量,则表示负反馈。如果Sign=1, 则表示正反馈。4. 状态空间表达式的相似变换线性定常系统状态空间表达式为,假设存在一个非奇异矩阵T将原状态x变换为z=Tx, 则状态z对应的状态空间表达式为,其中,。MATLAB提供函数ss2ss( )可完成状态空间模型的相似变换。该函数调用格式为其中G为原状态空间模型。T为变换矩阵。为经变换得到的状态空间模型。例1-8 考虑一个系统,它的状态空间表达式为 由于该系统的系统矩阵A为友矩阵,所以可由其特征值构造变换矩阵。令变换矩阵T为。在

28、命令窗中运行下列命令 A=0 1;-2 -3;B=1 1;C=1 0;G=ss(A,B,C,0); T=inv(1 1;-1 -2); G1=ss2ss(G,T)返回a = x1 x2 x1 -1 0 x2 0 -2b = u1 x1 3 x2 -2c = x1 x2 y1 1 1d = u1 y1 0Continuous-time model. 通过线性变换可将状态空间表达式变换为约当标准型(包括对角标准型),能控标准型和能观测标准型。MATLAB提供的函数canon( )可将状态空间表达式变换为对角标准型或约当标准型。该函数的调用格式为:其中G为原状态空间模型,而GJ为转换得到的对角标准型

29、或约当标准型。但该函数在系统含有重特征值时,效果不甚理想。例1-9 利用函数canon( )将例1-8中状态空间表达式变换为对角标准型。在命令窗中运行下列命令 A=0 1;-2 -3;B=1 1;C=1 0;G=ss(A,B,C,0); G1=canon(G,modal) 返回a = x1 x2 x1 -1 0 x2 0 -2b = u1 x1 4.243 x2 4.472c = x1 x2 y1 0.7071 -0.4472d = u1 y1 0Continuous-time model. 如果SISO线性定常系统完全能控,则可通过非奇异线性变换将状态空间表达式变换为能控标准型。我们编制的函

30、数ctrlss( ) 可实现这一变换。该函数的调用格式为:其中G为原来的状态空间模型。Gc为转换得到的能控标准型。该函数程序如下:function Gc=ctrlss(A,B,C,D) %将状态空间表达式变换为能控标准型n=length(A);Uc=ctrb(A,B);U=inv(Uc);p1=U(n,:);for i=1:n T(i,:)=p1*A(i-1);endAc=T*A*inv(T);Bc=T*B;Cc=C*inv(T);Gc=ss(Ac,Bc,Cc,D);例1-10 考虑一个系统,它的状态空间表达式为 将其转换为能控标准型。在命令窗中运行下列命令 A=0 2 -2;1 1 -2;2

31、 -2 1;B=2 1 1;C=1 1 1;D=0;Gc=ctrlss(A,B,C,D)返回a = x1 x2 x3 x1 -4.441e-016 1 1.665e-016 x2 -8.882e-016 0 1 x3 -2 1 2b = u1 x1 1.388e-017 x2 0 x3 1c = x1 x2 x3 y1 -20 -4 4d = u1 y1 0Continuous-time model.试编将状态空间表达式变换为能观测标准型的函数。实验二 线性定常系统状态方程的解一、实验目的1. 掌握状态转移矩阵的概念。学会用MATLAB求解状态转移矩阵。2. 掌握线性系统状态方程解的结构。学会

32、用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。二、实验内容1. 求下列系统矩阵A对应的状态转移矩阵(a) (b) (c) (d) 实验数据 (1)a A=0 -1;4 0;syms t; phet=expm(A*t) phet = cos(2*t), -1/2*sin(2*t) 2*sin(2*t), cos(2*t)(1)bphet = -2*t*exp(t)+exp(2*t), -2*exp(2*t)+2*exp(t)+3*t*exp(t), exp(2*t)-exp(t)-t*exp(t) 2*exp(2*t)-2*exp(t)-2*t*exp(t), 5*exp(

33、t)+3*t*exp(t)-4*exp(2*t), 2*exp(2*t)-2*exp(t)-t*exp(t) -2*t*exp(t)+4*exp(2*t)-4*exp(t), -8*exp(2*t)+8*exp(t)+3*t*exp(t), -3*exp(t)+4*exp(2*t)-t*exp(t)(2)1a A=0 1;-6 -5;syms s;G=inv(s*eye(size(A)-A);phet=ilaplace(G);X0=1 0;Xt1=phet*X0; B=0 1;Xt2=ilaplace(G*B*(0)Xt1 = -2*exp(-3*t)+3*exp(-2*t) -6*exp(-2*t)+6*exp(-3*t)Xt2 = 0 0有图 y=initial(G,x0)y = 1.0000 0.9978 0.9917 0.9821 0.9695 0.9544 0.9372 0.9182 0.8978 0.8761 0.8535 0.8301 0.8063 0.7820 0.7576 0.7331 0.7086 0.6842 0.6600 0.6362 0.6127 0.5896 0.5670 0.5449 0.5233 0.5022 0.4817 0.4619 0.4425 0.4238 0.4057 0.3882 0.3713

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号