现代控制理论实验指导书自动化.doc
《现代控制理论实验指导书自动化.doc》由会员分享,可在线阅读,更多相关《现代控制理论实验指导书自动化.doc(115页珍藏版)》请在冰豆网上搜索。
![现代控制理论实验指导书自动化.doc](https://file1.bdocx.com/fileroot1/2022-10/4/11a11608-84a7-44a6-87fb-1bfc2c35de4e/11a11608-84a7-44a6-87fb-1bfc2c35de4e1.gif)
现代控制理论实验指导书方明星方明星安徽师范大学物理与电子信息学院自动化安徽师范大学物理与电子信息学院自动化系系2015年年3月月目目录录实验一系统模型的建立、转换及其连接-1实验二系统的传递函数阵和状态空间表达式的转换-7实验三状态空间控制模型系统仿真及状态方程求解-11实验四用MATLAB求线性系统响应的方法-16实验五用MATLAB分析系统的能控及能观测性-20实验六MATLAB在系统稳定性分析中的应用-25实验七状态反馈的设计-27实验八状态观测器的设计-33实验九倒立摆模型建立与仿真-38实验十一级倒立摆的PID法校正-48实验十一基于状态反馈的闭环极点配置-60实验十二不同状态下状态反馈控制效果的比较-671实验实验一一系统模型的建立、转换及其连接系统模型的建立、转换及其连接实验目实验目的的1、了解MATLAB软件的基本特点和功能,熟悉其界面、菜单和工具条;2、了解基本图形功能、掌握二维绘图及其基本函数(PLOT);3、熟悉MATLAB程序设计结构及M文件的编制;4、掌握线性系统模型的计算机表示方法、变换以及模型间的相互转换。
实验指导实验指导一、模型的建立:
一、模型的建立:
在线性系统理论中,一般常用的数学模型形式有:
(1)传递函数模型(系统的外部模型)
(2)状态空间模型(系统的内部模型)(3)零极点增益模型这些模型之间都有着内在的联系,可以相互进行转换。
11101110.()()().mmmmnnnncscscscYsGsXsasasasa+=+1、传递函数模型传递函数模型若已知系统的传递函数为:
对线性定常系统,式中s的系数均为常数,且an不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。
num=cm,cm-1,c1,c0den=an,an-1,a1,a0注意:
它们都是按s的降幂进行排列的。
则传递函数模型建立函数为:
sys=tf(num,den)。
2举例:
已知两系统的传递函数描述分别如下:
则
(1)系统的MATLAB程序为:
num=12,24,0,20;den=24622;sys=tf(num,den)相应的
(2)系统的MATLAB程序为:
借助多项式乘法函数conv来处理:
num=4*conv(1,2,conv(1,6,6,1,6,6);den=conv(1,0,conv(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)5)
(2)(1()3(6)(+=sssssG22642202412)(23423+=sssssssG)523()1()66)(2(4)(23322+=sssssssssG).()().()()(2121nmpspspszszszsKsG=3例:
已知系统的零极点增益模型:
则在MATLAB中建立零极点增益模型的程序如下:
z=-3;p=-1,-2,-5;k=6;sys=zpk(z,p,k)3、状态空间模型、状态空间模型状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入输出关系,揭示了系统内部状态对系统性能的影响。
则在MATLAB中状态空间模型建立函数为:
sys=ss(A,B,C,D)。
举例:
已知系统的状态空间模型为:
系统为一个两输入两输出系统,则在MATLAB中状态空间模型建立程序如下:
A=16910;31268;47911;5121314;B=46;24;22;10;C=0021;8022;D=zeros(2,2);sys=ss(A,B,C,D)二、模型的转换二、模型的转换DuCxyBuAxx+=+=xyuxx=+=220812000122426414131251197486123109614在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型的转换。
模型转换的函数包括:
(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:
零极点增益模型转换为传递函数模型。
格式为:
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=feedback(a1,b1,c1,d1,a2,b2,c2,d2)将两个系统按反馈方式连接,一般而言,系统1为对象,系统2为反馈控制5器。
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,sign)表示由传递函数表示的开环系统构成闭环系统,sign意义与上述相同。
举例应用:
已知系统1和系统2分别为:
求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统1按单位负反馈连接时的状态方程。
clccleara1=01;-1-2;b1=0;1;c1=13;d1=1;a2=01;-1-3;b2=0;1;c2=14;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=feedback(a1,b1,c1,d1,a2,b2,c2,d2,+1)disp(负反馈连接)a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2)2222241103110xyuxx=+=11111131102110uxyuxx+=+=6disp(单位负反馈连接)a,b,c,d=cloop(a1,b1,c1,d1)实验内实验内容容1、熟悉MATLAB的基本操作命令,查看控制系统工具箱的主要命令及功能;(提示:
在命令窗口输入helpcontrol按回车)2、已知四个系统的传递函数分别为:
24312)(2321+=ssssssG15432)(22+=ssssG)1)(4)(3()1)(2(6)(3+=sssssssG2)(+=ssH在MATLAB环境下建立它们的系统模型,直接用传递函数模型来表达,并将其转换成零极点模型和状态空间模型。
(提示:
将用到conv)3、求第二题中前三个系统串联、并联后的数学模型,并且求前三个系统的闭环系统(反馈环节是H(s)的数学模型。
(提示:
用series、parallel、feedback)4、建立下面多变量系统的传递函数模型。
+=12121111)(22sssssssG7实验实验二二系统的传递函数阵和状态空间表达式的转换系统的传递函数阵和状态空间表达式的转换实验目实验目的的1学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。
实验指实验指导导一、设系统的模型如式(2.1)所示。
pmnRyRuRxDCxyBuAxx+=+=(2.1)其中A为nn维系数矩阵、B为nm维输入矩阵C为pn维输出矩阵,D为传递阵,一般情况下为0,只有n和m维数相同时,D=1。
系统的传递函数阵和状态空间表达式之间的关系如式(2.2)示。
DBASICsdensnumsG+=1)()()()(2.2)式(2.2)中,)(snum表示传递函数阵的分子阵,其维数是pm;)(sden表示传递函数阵的按s降幂排列的分母。
二、实验步骤根据所给系统的传递函数或(A、B、C阵),依据系统的传递函数阵和状态空间表达式之间的关系如式(2.2),采用MATLAB的file.m编程。
注意:
ss2tf和tf2ss是互为逆转换的指令;在MATLAB界面下调试程序,并检查是否运行正确。
例2.1已知SISO系统的状态空间表达式为(2.3),求系统的传递函数。
631234100010321321uxxxxxx+=321001xxxy(2.3)8程程序序:
%首先给A、B、C阵赋值;A=010;001;-4-3-2;B=1;3;-6;C=100;D=0;%状态空间表达式转换成传递函数阵的格式为num,den=ss2tf(a,b,c,d,u)num,den=ss2tf(A,B,C,D,1)程序运行结程序运行结果果:
num=01.00005.00003.0000den=1.00002.00003.00004.0000从程序运行结果得到:
系统的传递函数为:
43235)(232+=sssssSG.(2.4)例2.2从系统的传递函数(2.4)式求状态空间表达式。
程程序序:
num=0153;%在给num赋值时,在系数前补0,使num和den赋值的个数相同;den=1234;A,B,C,D=tf2ss(num,den)程序运行结程序运行结果果:
A=-2-3-41009010B=100C=153D=0由于一个系统的状态空间表达式并不唯一,例例2.2程序运行结果虽然不等于式(2.3)中的A、B、C阵,但该结果与式(2.3)是等效的。
不防对上述结果进行验证。
例例2.3对上述结果进行验证编程编程%将例例2.2上述结果赋值给A、B、C、D阵;A=-2-3-4;100;010;B=1;0;0;C=153;D=0;num,den=ss2tf(A,B,C,D,1)程序运行结果与例2.1完全相同。
实验内实验内容容1、在运行以上例程序的基础上,应用MATLAB对(2.5)系统仿照例2.2编程,求系统的A、B、C、阵;然后再仿照例2.3进行验证。
432352)(232+=ssssssSG(2.5)提示:
num=0012