《现代控制理论实验指导书》自动化.doc
《《现代控制理论实验指导书》自动化.doc》由会员分享,可在线阅读,更多相关《《现代控制理论实验指导书》自动化.doc(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、现代控制理论实验指导书方明星安徽师范大学物理与电子信息学院自动化系2015年3月目 录实验一 系统模型的建立、转换及其连接-1实验二 系统的传递函数阵和状态空间表达式的转换-7实验三 状态空间控制模型系统仿真及状态方程求解-11实验四 用MATLAB求线性系统响应的方法-16实验五 用MATLAB分析系统的能控及能观测性-20实验六 MATLAB在系统稳定性分析中的应用-25实验七 状态反馈的设计-27实验八 状态观测器的设计-33实验九 倒立摆模型建立与仿真-38实验十 一级倒立摆的PID法校正-48实验十一 基于状态反馈的闭环极点配置-60实验十二 不同状态下状态反馈控制效果的比较-67实
2、验一 系统模型的建立、转换及其连接实验目的1、了解MATLAB软件的基本特点和功能,熟悉其界面、菜单和工具条;2、了解基本图形功能、掌握二维绘图及其基本函数(PLOT);3、熟悉MATLAB程序设计结构及M文件的编制;4、掌握线性系统模型的计算机表示方法、变换以及模型间的相互转换。实验指导 一、模型的建立:在线性系统理论中,一般常用的数学模型形式有:(1)传递函数模型(系统的外部模型)(2)状态空间模型(系统的内部模型)(3)零极点增益模型这些模型之间都有着内在的联系,可以相互进行转换。1、传递函数模型若已知系统的传递函数为:对线性定常系统,式中s的系数均为常数,且an不等于零,这时系统在MA
3、TLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=cm,cm-1,c1,c0den=an,an-1,a1,a0注意:它们都是按s的降幂进行排列的。则传递函数模型建立函数为:sys=tf(num,den)。举例:已知两系统的传递函数描述分别如下:则(1)系统的MATLAB程序为:num=12,24,0,20;den=2 4 6 2 2;sys=tf(num,den)相应的(2)系统的MATLAB程序为:借助多项式乘法函数conv来处理:num=4*conv(1,2,conv(1,6,6,1,6,6);den=conv(1,0,conv(
4、1,1,conv(1,1,conv(1,1,1,3,2,5);sys=tf(num,den)2、零极点增益模型零极点增益模型为:若已知系统的其中:K为系统增益,zi为零点,pj为极点。则在MATLAB中零极点增益模型建立函数为:sys=zpk(z,p,k)其中:z=z1,z2,zmp=p1,p2,.,pnK=k例:已知系统的零极点增益模型:则在MATLAB中建立零极点增益模型的程序如下:z=-3;p=-1,-2,-5;k=6;sys=zpk(z,p,k)3、状态空间模型状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入输出关系表达出来,而现代控制理论则用状
5、态方程和输出方程来表达输入输出关系,揭示了系统内部状态对系统性能的影响。若已知系统的状态空间模型为:则在MATLAB中状态空间模型建立函数为:sys=ss(A,B,C,D)。举例:已知系统的状态空间模型为:系统为一个两输入两输出系统,则在MATLAB中状态空间模型建立程序如下:A=1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14;B=4 6; 2 4; 2 2; 1 0;C=0 0 2 1; 8 0 2 2; D=zeros(2,2);sys=ss(A,B,C,D)二、模型的转换在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型
6、的转换。模型转换的函数包括:(1)ss2tf: 状态空间模型转换为传递函数模型。格式为:num,den=ss2tf(a,b,c,d)(2)ss2zp: 状态空间模型转换为零极点增益模型。格式为:z,p,k=ss2zp(a,b,c,d)(3)tf2zp: 传递函数模型转换为零极点增益模型。格式为:z,p,k=tf2zp(num,den)(4)tf2ss: 传递函数模型转换为状态空间模型。格式为:a,b,c,d=tf2ss(num,den)(5)zp2ss: 零极点增益模型转换为状态空间模型。格式为:a,b,c,d=zp2ss(z,p,k)(6)zp2tf: 零极点增益模型转换为传递函数模型。格式
7、为:num,den=zp2tf(z,p,k)三、模型的连接1、并联:parallel格式:a,b,c,d=parallel(a1,b1,c1,d1,a2,b2,c2,d2)并联连接两个状态空间系统。num,den=parallel(num1,den1,num2,den2) 将并联连接的传递函数进行相加。2、串联:series格式:a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2) 串联连接两个状态空间系统。num,den=series(num1,den1,num2,den2) 将串联连接的传递函数进行相乘。3、反馈:feedback格式:a,b,c,d=feedba
8、ck(a1,b1,c1,d1,a2,b2,c2,d2) 将两个系统按反馈方式连接,一般而言,系统1为对象,系统2为反馈控制器。num,den=feedback(num1,den1,num2,den2,sign) 可以得到类似的连接,只是子系统和闭环系统均以传递函数的形式表示。sign的含义与前述相同。4、闭环:cloop(单位反馈)格式:ac,bc,cc,dc=cloop(a,b,c,d,sign) 通过将所有的输出反馈到输入,从而产生闭环系统的状态空间模型。当sign=1时采用正反馈;当sign= -1时采用负反馈;sign缺省时,默认为负反馈。numc,denc=cloop(num,den
9、,sign) 表示由传递函数表示的开环系统构成闭环系统,sign意义与上述相同。举例应用:已知系统1和系统2分别为: 求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统1按单位负反馈连接时的状态方程。程序如下:clccleara1=0 1;-1 -2;b1=0;1;c1=1 3;d1=1;a2=0 1;-1 -3;b2=0;1;c2=1 4;d2=0;disp(串联连接)a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2)disp(并联连接)a,b,c,d=parallel(a1,b1,c1,d1,a2,b2,c2,d2)disp(正反馈连接)a,b,c,d=f
10、eedback(a1,b1,c1,d1,a2,b2,c2,d2,+1)disp(负反馈连接)a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2)disp(单位负反馈连接)a,b,c,d=cloop(a1,b1,c1,d1)实验内容1、 熟悉MATLAB的基本操作命令,查看控制系统工具箱的主要命令及功能;(提示:在命令窗口输入help control按回车)2、 已知四个系统的传递函数分别为: 在MATLAB环境下建立它们的系统模型,直接用传递函数模型来表达,并将其转换成零极点模型和状态空间模型。(提示:将用到conv)3、 求第二题中前三个系统串联、并联后的数学模
11、型,并且求前三个系统的闭环系统(反馈环节是H(s)的数学模型。(提示:用series、parallel、feedback)4、 建立下面多变量系统的传递函数模型。实验二 系统的传递函数阵和状态空间表达式的转换 实验目的 1 学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2 通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。实验指导 一、设系统的模型如式(2.1)所示。 (2.1)其中A为nn维系数矩阵、B为nm维输入矩阵 C为pn维输出矩阵,D为传递阵,一般情况下为0,只有n和m维数相同时,D=1。系统的传递函数阵和状态空间表达式
12、之间的关系如式(2.2)示。 (2.2)式(2.2)中,表示传递函数阵的分子阵,其维数是pm;表示传递函数阵的按s降幂排列的分母。二、 实验步骤 根据所给系统的传递函数或(A、B、C阵),依据系统的传递函数阵和状态空间表达式之间的关系如式(2.2),采用MATLAB的file.m编程。注意:ss2tf和tf2ss是互为逆转换的指令; 在MATLAB界面下调试程序,并检查是否运行正确。 例2.1 已知SISO系统的状态空间表达式为(2.3),求系统的传递函数。 (2.3)程序:%首先给A、B、C阵赋值;A=0 1 0;0 0 1;-4 -3 -2;B=1;3;-6;C=1 0 0;D=0;%状态
13、空间表达式转换成传递函数阵的格式为num,den=ss2tf(a,b,c,d,u)num,den=ss2tf(A,B,C,D,1) 程序运行结果:num = 0 1.0000 5.0000 3.0000den = 1.0000 2.0000 3.0000 4.0000从程序运行结果得到:系统的传递函数为: . (2.4) 例2.2 从系统的传递函数(2.4)式求状态空间表达式。程序:num =0 1 5 3; %在给num赋值时,在系数前补0,使num和den赋值的个数相同;den =1 2 3 4;A,B,C,D=tf2ss(num,den)程序运行结果:A = -2 -3 -4 1 0 0
14、 0 1 0B = 1 0 0C = 1 5 3D =0由于一个系统的状态空间表达式并不唯一, 例2.2程序运行结果虽然不等于式(2.3)中的A、B、C阵,但该结果与式(2.3)是等效的。不防对上述结果进行验证。 例2.3 对上述结果进行验证编程%将例2.2上述结果赋值给A、B、C、D阵;A =-2 -3 -4;1 0 0; 0 1 0;B =1;0;0;C =1 5 3;D=0;num,den=ss2tf(A,B,C,D,1)程序运行结果与例2.1完全相同。实验内容1、在运行以上例程序的基础上,应用MATLAB对(2.5)系统仿照例2.2编程,求系统的A、B、C、阵;然后再仿照例2.3进行验
15、证。 (2.5)提示:num =0 0 1 2;0 1 5 3;2、在MATLAB下建立下面系统的状态空间模型。 3、 若对上述系统实行非奇异变换,且已知变换阵为T=,求其变换后的状态空间描述。(提示;Tsys=ss2ss(sys1,T)4、建立下述系统的状态空间模型,并将其转换成传递函数模型和零极点增益模型。实验三 状态空间控制模型系统仿真及状态方程求解实验目的 1、 熟悉线性定常离散与连续系统的状态空间控制模型的各种表示方法。2、 熟悉系统模型之间的转换功能。3、 利用MATLAB对线性定常系统进行动态分析实验指导 1、给定系统,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应及单
16、位阶跃响应。num=1 2 1 3;den=1 0.5 2 1;sys=tf(num,den);sys1=tf2zp(sys);sys2=tf2ss(sys);impulse(sys2);step(sys2)sys=tf(num,den) Transfer function: s3 + 2 s2 + s + 3-s3 + 0.5 s2 + 2 s + 1sys1=tf2zp(num,den)sys1 = -2.1746 0.0873 + 1.1713i 0.0873 - 1.1713ia,b,c,d=tf2ss(num,den)a = -0.5000 -2.0000 -1.0000 1.000
17、0 0 0 0 1.0000 0b = 1 0 0c = 1.5000 -1.0000 2.0000d = 1单位脉冲响应: 图3.1 系统的单位脉冲响应单位阶跃响应: 图3.2 系统的单位阶跃响应2、 已知离散系统状态空间方程:采样周期。在域和连续域对系统性能进行仿真、分析。g = -1 -3 -2 0 2 0 0 1 2 h = 2 1 -1 c = 1 0 0 d=0 u=1; dstep(g,h,c,d,u) Z域性能仿真图形:图3.3 离散系统的阶跃响应sysd=ss(g,h,c,d,0.05) a = x1 x2 x3 x1 -1 -3 -2 x2 0 2 0 x3 0 1 2 b
18、 = x1 2 x2 1 x3 -1 c = x1 x2 x3 y1 1 0 0d = u1 y1 0 Sampling time: 0.05Discrete-time model. sysc=d2c(sysd,zoh)a = x1 x2 x3 x4 x1 -9.467e-008 -17.45 -9.242 -62.83 x2 4.281e-015 13.86 3.115e-015 2.733e-015 x3 -1.41e-014 10 13.86 -1.396e-014 x4 62.83 48.87 41.89 9.467e-008 b = u1 x1 1.035 x2 13.86 x3 -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代控制理论实验指导书 现代 控制 理论 实验 指导书 自动化
限制150内