您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 北京理工大学控制理论基础实验
本科实验报告实验名称:控制理论基础实验课程名称:控制原理基础B实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证□综合设计□自主创新学生姓名:学号/班级:组号:学院:信息与电子学院同组搭档:专业:电子信息工程成绩:-1-目录实验1控制系统的模型建立………………………2实验2控制系统的暂态特性分析…………………13实验4系统的频率特性分析………………………19实验6极点配置与全维状态观测器的设计………24-2-实验1控制系统的模型建立一、实验目的1.掌握利用MATLAB建立控制系统模型的方法。2.掌握系统的各种模型表述及相互之间的转换关系。3.学习和掌握系统模型连接的等效变换。二、实验原理1、系统模型的MATLAB描述系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数、状态空间方程等。这里主要介绍系统多项式型传递函数(TF)模型、零极点型传递函数(ZPK)模型和状态空间方程(SS)模型的MATLAB描述方法。(1)传递函数(TF)模型传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为在MATLAB中,直接使用行向量分子分母多项式的表示系统,即num=[bm,bm-1,…b1,b0]den=[an,an-1,…a1,a0]调用tf函数可以建立传递函数TF对象模型,调用格式如下:Gtf=tf(num,den)Tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:[num,den]=tfdata(Gtf)返回cell类型的分子分母多项式系数[num,den]=tfdata(Gtf,'v')返回向量形式的分子分母多项式系数(2)零极点增益(ZPK)模型传递函数因式分解后可以写成式中z1,z2,…,zm称为传递函数的零点,p1,p2,…,pn称为传递函数的极点,k为传递系数(系统增益)。在MATLAB中,直接用[z,p,k]矢量组表示系统,其中z,p,k分别表示系统的零极点及其增益,即:z=[z1,z2,…,zm];p=[p1,p2,…,pn];k=[k];调用zpk函数可以创建ZPK对象模型,调用格式如下:Gzpk=zpk(z,p,k)-3-同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:[z,p,k]=zpkdata(Gzpk)返回cell类型的零极点及增益[z,p,k]=zpkdata(Gzpk,’v’)返回向量形式的零极点及增益函数pzmap可用于求取系统的零极点或绘制系统的零极点图,调用格式如下:pzmap(G)在复平面内绘出系统模型的零极点图。[p,z]=pzmap(G)返回的系统零极点,不作图(3)状态空间(SS)模型由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:其中:x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n×n方阵,称为系统矩阵;B为n×r矩阵,称为输入矩阵或控制矩阵;C为m×n矩阵,称为输出矩阵;D为m×r矩阵,称为直接传输矩阵。在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建SS对象模型,调用格式如下:Gss=ss(A,B,C,D)同样,MATLAB提供了ssdata命令用来提取系统的A、B、C、D矩阵,调用格式如下:[A,B,C,D]=ssdata(Gss)返回系统模型的A、B、C、D矩阵(4)三种模型之间的转换上述三种模型之间可以互相转换,MATLAB实现方法如下TF模型→ZPK模型:zpk(SYS)或tf2zp(num,den)TF模型→SS模型:ss(SYS)或tf2ss(num,den)ZPK模型→TF模型:tf(SYS)或zp2tf(z,p,k)ZPK模型→SS模型:ss(SYS)或zp2ss(z,p,k)SS模型→TF模型:tf(SYS)或ss2tf(A,B,C,D)SS模型→ZPK模型:zpk(SYS)或ss2zp(A,B,C,D)2、系统模型的连接在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。图1-2分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。-4-在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:T=feedback(G,H)T=feedback(G,H,sign)其中,G为前向传递函数,H为反馈传递函数;当sign=+1时,GH为正反馈系统传递函数;当sign=-1时,GH为负反馈系统传递函数;默认值是负反馈系统。三、实验内容及结果1.已知控制系统的传递函数如下试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。实验代码:%Eg_0_1_1num=[2,18,40];den=[1,5,8,6];Gtf=tf(num,den)%传递函数模型Gzpk=zpk(Gtf)%零极点增益模型Gss=ss(Gzpk)%状态空间模型pzmap(Gzpk);%绘制系统零极点图gridon;%显示网格线实验结果:-5-Gtf=2s^2+18s+40---------------------s^3+5s^2+8s+6Continuous-timetransferfunction.Gzpk=2(s+5)(s+4)--------------------(s+3)(s^2+2s+2)Continuous-timezero/pole/gainmodel.Gss=A=x1x2x3x1-110x2-1-12.515x300-3B=u1x10x21.778x31.414C=x1x2x3y13.3741.1250D=u1y10Continuous-timestate-spacemodel.-6-2.已知控制系统的状态空间方程如下试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。实验代码:%Eg_0_1_2A=[0,1,0,0;0,0,1,0;0,0,0,1;-1,-2,-3,-4];B=[0;0;0;1];C=[10,2,0,0];D=0;%D方程为空Gss=ss(A,B,C,D)%状态空间方程模型Gtf=tf(Gss)%传递函数模型Gzpk=zpk(Gtf)%零极点增益模型pzmap(Gzpk);%绘制系统零极点图gridon;%显示网格线实验结果:Gss=A=x1x2x3x4-7-x10100x20010x30001x4-1-2-3-4B=u1x10x20x30x41C=x1x2x3x4y110200D=u1y10Continuous-timestate-spacemodel.Gtf=2s+10-----------------------------s^4+4s^3+3s^2+2s+1Continuous-timetransferfunction.Gzpk=2(s+5)---------------------------------------------(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)Continuous-timezero/pole/gainmodel.-8-3.已知三个系统的传递函数分别为试用MATLAB求上述三个系统串联后的总传递函数。实验代码:%Eg_0_1_3num1=[2,6,5];den1=[1,4,5,2];G1tf=tf(num1,den1)%表示G1,传递函数模型num2=[1,4,1];den2=[1,9,8,0];G2tf=tf(num2,den2)%表示G2,传递函数模型z3=[-3,-7];p3=[-1,-4,-6];k3=[5];G3zpk=zpk(z3,p3,k3)%表示G3,零极点增益模型G=G1tf*G2tf*G3zpk;%表示串联总函数GGtf=tf(G)%G转化为传递函数模型-9-实验结果:G1tf=2s^2+6s+5---------------------s^3+4s^2+5s+2Continuous-timetransferfunction.G2tf=s^2+4s+1-----------------s^3+9s^2+8sContinuous-timetransferfunction.G3zpk=5(s+3)(s+7)-----------------(s+1)(s+4)(s+6)Continuous-timezero/pole/gainmodel.Gtf=10s^6+170s^5+1065s^4+3150s^3+4580s^2+2980s+525-----------------------------------------------------------------------s^9+24s^8+226s^7+1084s^6+2905s^5+4516s^4+4044s^3+1936s^2+384sContinuous-timetransferfunction.4.已知如图E2-1所示的系统框图-10-试用MATLAB求该系统的闭环传递函数。实验代码:%Eg_0_1_4num1=[1];den1=[1,1];G1=tf(num1,den1);num2=[1];den2=[0.5,1];G2=tf(num2,den2);num3=[3];den3=[1,0];G3=tf(num3,den3);G=(G1+G2)*G3;%前向通路/开环传递函数H=tf(num2,den2);%反馈通路T=feedback(G,H)%闭环传递函数实验结果:T=2.25s^2+7.5s+6---------------------------------------0.25s^4+1.25s^3+2s^2+5.5s+6Continuous-timetransferfunction.5.已知如图E2-2所示的系统框图-11-试用MATLAB求该系统的闭环传递函数。实验代码:%Eg_0_1_5num1=[10];den1=[1,1];G1=tf(num1,den1);num2=[5,0];den2=[1,6,8];H1=tf(num2,den2);num3=[2];den3=conv([1,0],[1,1]);G2=tf(num3,den3);z2=[-3];p2=[-2];k2=[1];H2=zpk(z2,p2,k2);T1=feedback(G2,H2,1);%注意反馈系数,不是-1T2=feedback(G1*T1,H1)T2tf=tf(T2)实验结果:T2=20(s+2)^2(s+4)--------------------------------------------------------------(s+2)(s-0.3234)(s^2-0.6067s+3.089)(s^2+8.93s+24.02)Continuous-timezero/pole/gainmodel.T2tf=-12-20s^3+160s^2+400s+320----------------------------------------------------s^6+10s^5+35s^4+44s^3+82s^2+116s-48Continuous-timetransferfunction.四、实验心得体会通过本次几个简单的实验,我知道了如何利用MATLAB建立控制系统的模型,包括传递函数型,零极点增益模型以及状态空间模型。其中有一个系统是零极点模型,但是没有零点,最终对该系统利用conv函数建立了传递函数模型。-13-实验2控制系统的暂态特性分析一、实验目的1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。二、实验原理1、系统的暂态性能指标控制系统的暂态性能指标常以一组时域量值的形式给
本文标题:北京理工大学控制理论基础实验
链接地址:https://www.777doc.com/doc-4572204 .html