您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 北京交通大学现代控制理论matlab实验报告
1实验一利用MATLAB进行线性系统的模型转换及联结课程:现代控制理论姓名:王柬文学号:11212070班级:自动化1103指导教师:张勇2标题.................................................................................................................................1目录.............................................................................................................................2一实验目的:.............................................................................................................3二实验原理:.............................................................................................................3三实验步骤:.............................................................................................................6四实验要求:.............................................................................................................7五实验内容:.............................................................................................................81.....................................................................................................................................82...................................................................................................................................183...................................................................................................................................294...................................................................................................................................365.................................................................................................................................37六实验感想:...........................................................................................................403一实验目的:1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。3、通过编程、上机调试,掌握系统模型的联结方法。二实验原理:一、连续系统(1)状态空间模型xAxBuyCxDu(1.1)其中:nxR是系统的状态向量,muR是控制输入,pyR是测量输出,A是nn维状态矩阵、B是nm维输入矩阵、C是pn维输出矩阵、D是直接转移矩阵。在MATLAB中,用(A,B,C,D)矩阵组表示。系统传递函数和状态空间模型之间的关系如式(1.2)所示。1()()GsCsIABD(1.2)(2)传递函数模型11101110()(),()mmmmnnnnbsbsbsbnumsHsmndensasasasa在MATLAB中,直接用分子/分母的系数表示1010[,,,][,,,]mmnnnumbbbdenaaa(3)零极点增益模型1212()()()()()()()mnszszszHskspspsp在MATLAB中,用[z,p,k]矢量组表示,即1212[,,,];[,,,];[];mnzzzzppppkk二、离散系统(1)传递函数模型11101110()mmmmnnnnbzbzbzbHzazazaza(2)零极点增益模型41212()()()()()()()mnzzzzzzHzkzpzpzp(3)状态空间模型(1)()()()()()xkAxkBukykCxkDuk三、三种模型间的转换表示状态空间模型和传递函数的MATLAB函数。函数ss(statespace的首字母)给出了状态空间模型,其一般形式是SYS=ss(A,B,C,D)函数tf(transferfunction的首字母)给出了传递函数,其一般形式是G=tf(num,den)其中的num表示传递函数中分子多项式的系数向量(单输入单输出系统),den表示传递函数中分母多项式的系数向量。(1)传递函数模型与状态空间模型间的转换:函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是[A,B,C,D]=tf2ss(num,den)函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是[num,den]=ss2tf(A,B,C,D,iu)其中对多输入系统,必须确定iu的值。例如,若系统有三个输入和,则iu必须是1、2或3,其中1表示1u,2表示2u,3表示3u。该函数的结果是第iu个输入到所有输出的传递函数。(2)传递函数模型与零极点模型间的转换:函数tf2zp将传递函数模型转换为零极点模型,其一般形式是[z,p,k]=tf2zp(num,den)函数zp2tf将零极点模型转换为传递函数模型,其一般形式是[num,den]=zp2tf(z,p,k)(3)零极点模型与状态空间模型间的转换:函数tf2zp将零极点模型转换为状态空间模型,其一般形式是[A,B,C,D]=zp2ss(z,p,k)函数zp2tf将状态空间模型转换为零极点模型,其一般形式是[z,p,k]=ss2zp(A,B,C,D,iu)四、系统建模与模型联结(1)并联将两个系统按并联方式连接,用parallel函数实现格式:[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)[a,b,c,d]=parallel(a1,b1,c1,d1,inp1,inp2,out1,out2)[a,b,c,d]=parallel(num1,den1,num2,den2)(2)串联5将两个系统按串联方式连接,用series函数实现(3)闭环将系统通过正负反馈连接成闭环系统,用cloop函数实现(4)反馈将两个系统按反馈方式连接成闭环系统,用feedback函数实现(5)利用函数sppend构造增广系统;(6)函数blkbuild和connect得到多个子系统任意联结构成的系统。五、模型转换传递函数可以转换为约旦标准型(包括对角标准型)、能控标准型和能观测标准型。(1)约旦标准型函数jordants()可用部分分式展开将传递函数转换为对角标准型或约当标准型。该函数的调用格式为:),(dennumjordantsGJ其中num和den分别为传递函数分子和分母多项式系数的行向量,GJ为转换得到对角标准型或约当标准型。该函数的程序如下:functionGj=jordants(num,den)%用部分分式展开将传递函数转换为约当标准型[R,P,K]=residue(num,den);j=1;q=P(1);m(1)=0;fori=1:length(P)ifP(i)==qm(j)=m(j)+1;elseq=P(i);j=j+1;m(j)=1;endend%计算各极点的重数Aj=diag(P);fori=1:length(P)-1ifAj(i,i)==Aj(i+1,i+1)Aj(i,i+1)=1;elseAj(i,i+1)=0;endend%构造系统矩阵AjB1=0;l=0;forj=1:length(m)l=l+m(j);B1(l)=1;endBj=B1';%构造输入矩阵Bjn=1;l=m(1);6Cj(:,1:m(1))=rot90(R(1:m(1),:),3);fork=2:length(m)n=l+1;l=l+m(k);Cj(:,n:l)=rot90(R(n:l,:),3);end%构造输出矩阵CjifK==[]Dj=0;elseDj=K;end%构造直联矩阵DjGj=ss(Aj,Bj,Cj,Dj);(2)能控标准型函数ctrlts()可将传递函数转换为能控标准型。该函数的调用格式为:),(dennumctrltsGc其中num和den分别为传递函数的分子和分母多项式系数的行向量,Gc为转换得到的能控标准型。该函数的程序如下:functionGc=ctrlts(num,den)%将传递函数转换为能控标准型m=length(num)-1;n=length(den)-1;ifm==n[R,P,K]=residue(num,den);num1=num-K*den;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=rot90(num1(:,2:n+1),2);D=K;elseA(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、根据所给系统的已知条件,如传递函数、零极点模型或(A、B、C、D),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB的相关函数编7写m-文件。2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。3、在MATLAB界面下调试程序。四实验要求:1.已知系统的传递函数(a))3()1(4)(2ssssG(b)3486)(22sssssG(c)61161)(232zzzzzzG(1)建立系统的TF或ZPK模型。(2)将给定传递函数用函数ss()转换为状态空间表达式。再将得到的状态空间表达式用函数tf()转换为传递函数,并与原传递函数进行比较。(3)将给定传递函数用函数jordants()转换为对角标准型或约当标准型。再将得到的对角标准型或约当标准型用函数tf()转换为传递函数,并与原传递函数进行比较。(4)将给定传递函数用
本文标题:北京交通大学现代控制理论matlab实验报告
链接地址:https://www.777doc.com/doc-226288 .html