自动控制LTI系统的MATLAB辅助.ppt
《自动控制LTI系统的MATLAB辅助.ppt》由会员分享,可在线阅读,更多相关《自动控制LTI系统的MATLAB辅助.ppt(156页珍藏版)》请在三一办公上搜索。
1、第5章 LTI系统的MATLAB辅助设计与仿真,5.1 控制系统工具箱的使用5.2 LTI模型数组 5.3 LTI系统分析和设计的图形操作环境5.4 LTI控制系统的设计实例,5.1 控制系统工具箱的使用,5.1.1 创建LTI模型对象 MATLAB 6.X中的控制系统工具箱(控制系统工具箱)为线性时不变系统(LTI)的建模和分析提供了丰富的函数和工具,既支持连续和离散系统,也能够处理SISO和MIMO系统。并且,用户可以将多个LTI模型放在同一个数组中统一进行计算和分析。,使用控制系统工具箱的第一步是为系统选择适当的模型。MATLAB 6.X支持的LTI模型包括:传递函数模型(TF),例如,
2、零极点-增益模型(ZPK),例如,状态空间模型(SS),例如,频率响应数据模型(FRD),由系统频率响应的采样测量值构成。例如,可以在FRD模型中存放实验中测量的系统频率响应值。一旦在MATLAB工作空间中创建了上述模型,就可以使用各种函数来对系统模型进行分析和计算。例如,可以针对系统的各种模型设计补偿器,分析系统的各种属性,如可控性、可观性、时域和频域响应等等。,不同的系统模型在MATLAB中的存储形式是不同的。例如,用简单的分子分母多项式表示传递函数模型;用四个矩阵 A、B、C和D 表示状态空间模型;用零极点集合来说明系统的零极点-增益模型等等。MATLAB分别用定制的数据结构来存储这些模
3、型,称为LTI对象,包括TF、ZPK、SS和 FRD对象。这些对象将所有模型的信息封装起来,从而让用户可以从整体上对模型代表的系统进行操作。,表 5.1 LTI模型的创建函数,1.创建传递函数模型 1)SISO传递函数模型 连续SISO系统的传递函数为?,(5.1),可以采用两种方法创建SISO传递函数模型。一种是使用tf命令,另一种则可以直接引用Laplace变量s的多项式。使用tf命令的方法是 h=tf(num,den),其中,行向量num和兽穴分别是多项式n(s)和d(s)的系数。注意这里的多项式是按照s的降幂排列的。例如,如果某个SISO系统的传递函数是h(s)=s/(s2+2s+10
4、),则可以通过下面的命令来创建该系统的传递函数模型:h=tf(1 0,1 2 10)MATLAB的输出结果为 传送功能:s-s2+2 s+10 h是一个TF对象,存放传递函数的分子分母多项式数据。,当然也可以按照通常习惯用s的多项式来直接表示SISO系统的传递函数。为此,首先将s定义为Laplace算子:s=tf(s);然后输入s的多项表达式。例如,输入 H=s/(s2+2*s+10);将产生与h=tf(1 0,1 2 10)相同的系统模型。,2)MIMO传递函数模型 MIMO系统的传递函数是由基本的SISO传递函数所组成的二维数组。同样有两种方法来创建MIMO系统模型:一种是将组成该MIMO
5、系统的多个SISO传递函数进行串联;另一种方法则可以使用带元胞数组参数的tf命令。考虑下面的有理传递函数矩阵,可以将 H(s)定义为两个SISO系统的组合:h11=tf(1-1,1 1);h21=tf(1 2,1 4 5);H=h11;h21如果使用tf命令方式,则必须首先定义两个元胞数组N和D:N=1-1;1 2;D=1 1;1 4 5;H=tf(N,D),传送功能从输入到输出.s-11:-s+1 s+22:-s2+4 s+5,使用tf命令可以创建只有单个增益或增益矩阵的TF对象,例如G=tf(1 0;2 1)将产生增益矩阵,而E=tf将创建空的传递函数。2创建零极点-增益模型 1)SISO
6、零极点-增益模型 连续SISO系统的零极点-增益模型的一般形式为,(5.2),3)创建状态空间模型 状态空间模型是采用线性微分或差分方程来描述系统的动态行为。连续时间系统具有如下的一般形式,(5.3),使用ss命令创建系统的状态空间模型的调用格式为,sys=ss(A,B,C,D),例 5.1 在MATLAB中创建下面系统的状态空间模型:,输入sys=ss(0 1;-5-2,0;3,0 1,0)创建的系统状态空间模型为,=x1 x2 x1 0 1.00000 x2-5.00000-2.00000b=u1 x1 0 x2 3.00000c=x1 x2 y1 0 1.00000d=u1 y1 0,4
7、)创建描述符状态空间模型 描述符状态空间(DSS)模型是上述标准状态空间模型的一般形式。其基本形式为,(5.4),控制系统工具箱仅仅支持 E 为非奇异矩阵的情况。这时,式(5.4)与下面的形式相同,(5.5),当E矩阵的条件数很小时,采用式(5.4)将比式(5.5)计算更加方便。dss命令的调用格式是 sys=dss(A,B,C,D,E)5)创建频率响应(RFD)模型 如果我们无法直接建立研究对象的传递函数或状态空间模型,而只知道该系统在某些频率处的频率响应值,仍然可以采用frd命令创建该系统的频率响应模型。frd命令的调用格式是 sys=frd(response,frequencies,un
8、its),其中,频率是由不同频率值构成的长度为Nf的实数向量,回答是与这些频率值对应的复数形式的频率响应值。单位是频率所采用的单位,为“拉德/s”(缺省值)和“Hz”之一。例如,假设数据文件LTIexamples.mat存储有测量的频率向量freq和相应的响应值respG,则创建FRD对象的步骤是 载入LTIexamples sys=frd(respG,freq)MATLAB输出结果为 从输入1到:,频率(拉德/s)输出1-i 创建MIMO系统的FRD模型与SISO的情况类似,只不过这时的频率响应回答是pmNf维数组,其中p和m分别是系统的输出和输入维数。,6)创建离散系统模型 离散系统模型的
9、创建过程与连续系统模型的创建过程几乎相同,唯一的区别在于创建离散系统模型必须指定系统的采样周期或采样时间。下面的命令将分别创建离散系统的TF、ZPK、SS和FRD模型对象:sys1=tf(num,兽穴,Ts)sys2=zpk(z,p,k,Ts)sys3=ss(a,b,c,d,Ts)sys4=frd(回答,频率,Ts),7)创建DSP格式的离散传递函数 在数字信号处理中,我们习惯于将离散系统的传递函数写成z-1的有理分式,并且z-1在多项式中按照升幂排列。例如,可以用行向量1 0.5和1 2 3来定义。使用filt函数可以创建具有DSP格式的离散传递函数 h=filt(num,兽穴)h=filt
10、(num,兽穴,Ts)第一式没有指定系统的采样时间,而第二式通过Ts指定该系统的采样时间。例如 h=filt(1 0.5,1 2 3)产生的输出为 传送功能:1+0.5 z-1,-1+2 z-1+3 z-2标本时间:未指明的,5.1.2 设置LTI对象的属性 前一节讨论了如何在MATLAB环境中创建LTI对象来封装系统模型的数据和采样时间。实际上创建的LTI对象具有大量的附加属性。其中一些属性是四种LTI对象共有的,称为一般属性。另一些属性是某种LTI对象独有的,称为特殊属性。表5.2列举了LTI对象所有的一般属性。,表 5.2 LTI对象的一般属性,有两种方法可以获取和设置LTI对象的属性值
11、。一种是使用获得和设置命令,如 PropertyValue=获得(sys,PropertyName)设置(sys,PropertyName,PropertyValue)另一种是直接运用结构的属性访问,如下面的语句与上面采用设置和获得函数的功能相同。,PropertyValue=sys.PropertyName%获得财产价值sys.PropertyName=PropertyValue%设置财产价值例如sys=ss(1,2,3,4,InputName,u);sys.aans=1,5.1.3 LTI模型之间的相互转换 可以分别使用tf、ss、zpk和frd命令显式地将一种LTI对象转换成相应的LTI
12、对象。sys=tf(sys)%转换成TF模型 sys=zpk(sys)%转换成ZPK模型 sys=ss(sys)%转换成SS模型 sys=frd(sys,频率)%转换成FRD模型,表 5.3 LTI模型的转换函数,例如,如果输入 sys=ss(-2,1,1,3)zpk(sys)则将一个状态空间模型转换成一个零极点-增益模型,其结果为 Zero/pole/gain:3(s+2.333)-(s+2)控制系统工具箱中的某些函数可能只处理某种类型的LTI模型。,例如,tfdata命令只支持TF对象。如果此时的输入参数是其它类型的LTI对象,则调用函数可以自动将输入的LTI对象转换成本身支持的LTI对象
13、类型,而不需要用户显式地进行转换。例如 sys=ss(0,1,1,0)num,兽穴=tfdata(sys)tfdata函数首先将sys的状态方程模型转换成等价的传递函数模型,从而得到相应的分子和分母多项式的数据。,说明:(1)TF、ZPK和SS这三种LTI对象的计算精度是不同的。尤其在处理高维传递函数模型时,计算的准确度可能会很差。因此,一般使用系统的状态空间模型(SS)来进行相关的操作。(2)使用tf函数将其它类型的模型转换成传递函数模型,可能会降低原系统的表示精度。其结果将可能导致转换后的传递函数极点位置与原始的零极点-增益模型或状态空间模型不完全相同。,(3)对于SISO系统,向状态空间
14、模型的转换过程不是唯一的;对于MIMO系统,这种转换也不能保证产生系统的最小实现。例如,对于状态空间模型sys,ss(tf(sys)也许会得到不同的状态空间矩阵,对于MIMO系统设置会得到不同数量的状态变量。因此,用户应尽可能避免其它LTI对象与状态空间对象之间的相互转换。,5.1.4 Simulink 中的LTI系统模块 Simulink的基本模块库中包含LTI系统模块(如图5.1所示)。通过该模块,用户可以在Simulink模型方框图中使用LTI对象。用户可以在MATLAB的命令窗口中输入ltiblock命令来得到LTI系统模块。双击该模块,将出现图5.2所示的属性对话框。,其中最重要的属
15、性是LTI系统变量,用户在该编辑框中输入LTI对象的创建命令,缺省值是tf(1,1 1)。LTI系统模块支持连续和离散系统的传递函数、状态空间和零极点-增益模型。但是在实际仿真中都将它们转换成状态空间模型进行计算。,图 5.1 Simulink中的LTI模块,图 5.2 LTI模型的属性对话框,5.1.5 LTI模型的运算 在MATLAB环境中,用户可以对所建立的LTI模型对象进行简单的运算,例如,加、减、乘、除和串、并联等。例如,输入 tf(1,1 0)+tf(1 1,1 2)%相当于1/s+(s+1)/(s+2)计算得到一个新的传递函数 传送功能:s2+2 s+2-s2+2 s,图 5.3
16、 两个LTI对象的加法,图 5.4 两个LTI对象的乘法,传递函数之间的乘法表示两个LTI系统之间的串联,如图5.4所示。例如输入 2*tf(1,1 0)*tf(1 1,1 2)%相当于2*1/s*(s+1)/(s+2)产生新的LTI模型 传送功能:2 s+2-s2+2 s 其它的运算还包括系统求逆和系统转置等。,5.1.6 系统分析工具 控制系统工具箱为用户提供了一整套用于LTI模型的时域和频域分析工具。这些函数大都支持所有类型的系统,包括连续和离散系统、SISO或MIMO系统甚至由多个模型组成的LTI数组。不过其中的FRD模型比较特殊,它只能对系统进行频域分析。读者可能已经注意到,本书前面
17、几章的介绍中已经或多或少地使用到了其中的某些函数。,系统的时域响应可用来研究线性模型在特定输入和干扰条件下的暂态行为。用户可以从系统时域响应中确定诸如上升时间、稳定时间、最大超调量和稳态误差等系统时域特性。控制系统工具箱提供的函数可以完成系统的阶跃响应、脉冲响应、初始条件响应和一般线性系统仿真。例如可以借助randn和lsim函数仿真系统在白噪声输入情况下的响应曲线。除了对系统进行时域仿真,控制系统工具箱还可以完成系统的频域分析,包括绘制系统的预示图、Nichols图和Nyquist曲线等等。表5.4列举了控制系统工具箱中有关系统分析的函数。,表 5.4 LTI模型的分析函数,5.1.7 模型
18、属性的分析 模型的一般特点包括模型类型、我/O维数和连续或离散属性。表5.5中列出了与模型属性相关的命令。这些命令可以用来处理连续、离散点着模型或任何LTI模型组成的数组。,表 5.5 模型属性相关命令,下面的代码显示了模型属性操作函数的一些使用方法。H=tf(1 1-1,1 0.1 1 2 10)传送功能从输入1到输出:1-s+0.1传送功能从输入2到输出:s-1-s2+2 s+10班级(H),ans=tf大小(H)传送功能有2输入(s)和1输出(s).ny,nu=大小(H)%注意:ny=输出的个数ny=1nu=2isct(H)%系统是连续的吗?ans=1,isdt(H)%系统是离散的吗?a
19、ns=0 控制系统工具箱还可以确定系统的零极点位置和DC增益以及范数等。表 5.6 是相关指令的简要说明。,表 5.6 模型动态属性命令,除了L范数外,这些命令都不支持FRD模型。下面的代码显示了模型动态属性操作函数的一些使用方法。h=tf(4 8.4 30.8 60,1 4.12 17.4 30.8 60)传送功能:4 s3+8.4 s2+30.8 s+60-s4+4.12 s3+17.4 s2+30.8 s+60 棒(h),ans=-1.7971+2.2137i-1.7971-2.2137i-0.2629+2.7039i-0.2629-2.7039i零点(h)ans=-0.0500+2.7
20、382i-0.0500-2.7382i-2.0000dcgain(h)ans=,1ninf,fpeak=标准(h,inf)%的山顶财物增加freq.responseninf=1.3402%山顶财物增加fpeak=1.8537%频率什么地方财物增加山顶?,这些函数还可以处理LTI数组,并且其返回值也为数组。例如,可以分析一个三维LTI数组sysarray(具体构造方法参考5.2节)的极点情况。sysarray=tf(rss(2,1,1,3)模型sysarray(:,:,1,1)=传送功能:-0.6201 s-1.905-,s2+5.672 s+7.405模型sysarray(:,:,2,1)=传
21、送功能:0.4282 s2+0.3706 s+0.04264-s2+1.056 s+0.1719模型sysarray(:,:,3,1)=传送功能:0.621 s+0.7567,-s2+2.942 s+2.1133x1连续的的数组时间传送功能.棒(sysarray)ans(:,:,1)=-3.6337-2.0379ans(:,:,2)=-0.8549-0.2011ans(:,:,3)=-1.6968-1.2452,表 5.7 系统状态空间实现命令,5.2 LTI模型数组,5.2.1 基本概念 在实际的系统分析和设计工程中,有时同时考虑几个线性时不变(LTI)系统的模型所组成的集合会给工作带来很大
22、的方便。例如,可以考虑某个参数变化下的一组模型:sys1=tf(1,1 1 1);sys2=tf(1,1 1 2);sys3=tf(1,1 1 3);,可以采用LTI数组(LTI数组)来存储这一系列模型。例如,对于上面的例子,可以创建一个包含三个LTI传递函数模型的LTI数组:sys-ltia=(sys1,sys2,sys3);为了形象地说明LTI数组的存储形式,考虑图 5.5 中由5个传递函数模型组成的集合。在这个例子中,每个模型都具有两个输入和输出,但每个模型的系统参数不同。,图 5.5 5个LTI模型组成的LTI数组,如同可以在一个多维数组中定义22矩阵的集合,我们也可以在一个LTI数组
23、sysa中定义这5个传递函数模型。LTI数组的每个元素都是某个具体的LTI模型。例如,可以通过sysa(:,:,3)来访问其中第三个模型,而sysa(2,2,3)则表示第三个模型中第 2 个输入到第2个输出的传递函数,如图5.6所示。,图 5.6 LTI数组元素的访问方法,5.2.2 LTI数组的维数和形状 单个LTI模型的维数和形状是由其输入和输出通道决定的。但是一个LTI数组则具有不同的维数和形状的概念。我/O维数:LTI数组中所有模型共同具有的输入和输出维数。数组维数:模型数组自身所具有的维数。LTI数组的尺寸大小是由下面的因素决定的。我/O维数的长度:LTI数组中所有模型共同具有的输入
24、或输出的个数。,图5.7显示了一个23的LTI数组m2d,其中每一个元素都是一个输入和两个输出的传递函数模型。我们可以使用下面的代码将该LTI数组装入MATLAB工作空间,并分析它的大小:载入LTIexamples 大小(m2d)23连续的的数组时间传送功能 各自的传送功能2输出和1输入.,图 5.7 LTI数组的维数和尺寸大小,5.2.3 创建LTI数组 可以采用下面三种方法来创建一个LTI模型:(1)使用为了循环语句对LTI数组的每个元素赋值。(2)使用堆命令将多个LTI模型组合成一个LTI数组。(3)使用tf、zpk、ss和frd指令。而且,我们还可以使用rss命令来创建以随机状态空间模
25、型为元素的LTI数组。,1)使用rss命令 使用rss命令可以很方便地创建状态空间模型所组成的LTI数组,其中每个模型具有相同数目的状态变量。该命令的调用方法是 rss(N,P,M,sdim1,sdimk)其中,N是LTI数组中每个模型的状态数目;P是每个模型的输出量数目;M是每个模型的输入量数目;sdim1,sdimk是数组维数的长度。,例如,下面的程序将创建由随机状态空间模型所组成的42数组。其中每个模型具有三个状态、两个输出和一个输入。sys=rss(3,2,1,4,2);大小(sys)42连续的的数组时间情形空间模型 各自的模型2输出,1输入,和3情形.,2)使用循环语句 假设我们要创
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制 LTI系统的MATLAB辅助 LTI 系统 MATLAB 辅助
链接地址:https://www.31ppt.com/p-5820293.html