单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第 5 章 MATLAB在自动控制原理中的应用,第5章 MATLAB在自动控制原理的应用,5.1 控制系统模型,5.2 控制系统的时域分析,5.3 控制系统的根轨迹,5.4 控制系统的频域分析,5.5 系统的状态空间分析函数,5.6 极点配置和观测器设置,5.7 最优控制系统设计,第5章 MATLAB在自动控制原理的应用 5.1 控制,1,5.1 控制系统模型,5.1.1 控制系统的描述与LTI对象,1控制系统的模型及转换,线性控制系统是一般线性系统的子系统。在MATLAB中,对自动控制系统的描述采用三种模型:状态空间模型(ss)、传递函数模型(tf)以及零极点增益模型(zpk)。模型转换函数:ss2tf,ss2zp,tf2ss,tf2zp,zp2ss和zp2tf。,2LTI对象,为了对系统的调用和计算带来方便。根据软件工程中面向对象的思想,MATLAB通过建立专用的数据结构类型,把线性时不变系统(LTI)的各种模型封装成为统一的LTI对象。,MATLAB控制系统工具箱中规定的LTI对象包含了三种子对象:,ss对象、tf对象和zpk对象,。每个对象都具有其属性和方法,通过对象方法可以存取或者设置对象的属性值。,在,MATLAB,的,Control System Toolbox(,控制系统工具箱,),中提供了许多仿真函数与模块,用于对控制系统的仿真和分析。,5.1 控制系统模型5.1.1 控制系统的描述与LTI对象2,2,属性说明,:,(1),当系统为离散系统时,给出了系统的采样周期Ts。Ts0或缺省时表示系统为连续时间系统;Ts=-1表示系统是离散系统,但它的采样周期未定。,(2)输入时延Td仅对连续时间系统有效,其值为由每个输入通道的输入时延组成的时延数组,缺省表示无输入时延。,(3)输入变量名InputName和输出变量名OutputName允许用户定义系统输入输出的名称,其值为一字符串单元数组,分别与输入输出有相同的维数,可缺省。,(4)Notes和用户数据Userdata用以存储模型的其它信息,常用于给出描述模型的文本信息,也可以包含用户需要的任意其它数据,可缺省。,属性说明:(1)当系统为离散系统时,给出了系统的采样周期Ts,3,对象名称,属性名称,意 义,属性值的变量类型,tf对象,(传递函数),den,传递函数分母系数,由行数组组成的单元阵列,num,传递函数分子系数,由行数组组成的单元阵列,variable,传递函数变量,s、z、p、k、z,-1,中之一,zpk对象,(零极点增益),k,增益,二维矩阵,p,极点,由行数组组成的单元阵列,variable,零极点增益模型变量,s、z、p、k、z,-1,中之一,z,零点,由行数组组成的单元阵列,ss对象,(状态空间),a,系数矩阵,二维矩阵,b,系数矩阵,二维矩阵,c,系数矩阵,二维矩阵,d,系数矩阵,二维矩阵,e,系数矩阵,二维矩阵,StateName,状态变量名,字符串单元向量,对象名称属性名称意 义属性值的变量类型tf对象den传递函,4,5.1.2LTI模型的建立及转换函数,在,MATLAB,的控制系统工具箱中,各种,LTI,对象模型的生成和模型间的转换都可以,通过一个相应函数来实现。,函数名称及基本格式,功 能,dss(a,b,c,d,),生成(或将其它模型转换为)描述状态空间模型,filt(num,den,),生成(或将其它模型转换为)DSP形式的离散传递函数,ss(a,b,c,d,),生成(或将其它模型转换为)状态空间模型,tf(num,den,),生成(或将其它模型转换为)传递函数模型,zpk(z,p,k,),生成(或将其它模型转换为)零极点增益模型,表5.3,生成LTI模型的函数,5.1.2LTI模型的建立及转换函数 在MAT,5,例5-4 生成离散系统的零极点模型。,MATLAB源程序为:,z=,-0.5;,p=0.3,0.1+2i,0.2-2i;,k=2,3;,s6=zpk(z,p,k,-1),运行结果为:,Zero/pole/gain from input 1 to output:,从第1输入端口至输出的零极点增益,2,-,(z-0.3),Zero/pole/gain from input 2 to output:,从第2输入端口至输出的零极点增益,3(z+0.5),-,(z-(0.1+2i)(z-(0.2-2i),Sampling time:unspecified,表明该系统为双输入单输出的离散系统。,例5-4 生成离散系统的零极点模型。MATLAB源程序为,6,5.1.3 LTI对象属性的设置与转换,1LTI对象属性的获取与设置,函数名称及基本格式,功 能,get(sys,PropertyName,数值,),获得LTI对象的属性,set(sys,PropertyName,数值,),设置和修改LTI对象的属性,ssdata,dssdata(sys),获得变换后的状态空间模型参数,tfdata(sys),获得变换后的传递函数模型参数,zpkdata(sys),获得变换后的零极点增益模型参数,class,模型类型的检测,表,5.4,对象属性的获取和修改函数,5.1.3 LTI对象属性的设置与转换1LTI对象属性的,7,2LTI模型的转换函数,表5.5,模型检测函数,函数名及,调用格式,功能,isct(sys),判断LTI对象sys是否为连续时间系统。若是,返回1;否则返回0,isdt(sys),判断LTI对象sys是否为离散时间系统。若是,返回1;否则返回0,isempty(sys),判断LTI对象sys是否为空。若是,返回1;否则返回0,isproper,判断LTI对象sys是否为特定类型对象。若是,返回1;否则返回0,issiso(sys),判断LTI对象sys是否为SISO系统。若是,返回1;否则返回0,size(sys),返回系统sys的维数,2LTI模型的转换函数表5.5 模型检测函数函数名及功,8,5.1.4 典型系统的生成,1随机生成N阶稳定的连续状态空间模型函数rss(),格式:sys=rss(N,P,M),功能:随机生成N阶稳定的连续状态空间模型,该系统具有M个输入,P个输出。缺省是P=M=1,即sys=rss(N)。,2.随机生成N阶稳定的连续线性模型系数函数rmodel(),格式:num,den=rmodel(N,P),功能:生成一个N阶连续的传递函数模型系统,该系统具有P个输出。,3离散时间N阶稳定随机系统生成函数drss()和drmodel(),drss和drmodel函数的用法与rss和rmodel函数的用法相仿,不同点仅仅在于它生成的是离散系统。,4二阶系统生成函数ord2,格式:A,B,C,D=ord2(Wn,Z),功能:生成固有频率为Wn,阻尼系数为Z的连续二阶的状态空间模型系统。,5系统时间延迟的Pade近似函数pade(),格式:sysx=pade(sys,N),功能:对连续系统sys产生N阶Pade近似的延时后,生成新的系统sysx。,5.1.4 典型系统的生成1随机生成N阶稳定的连续状态空间,9,5.1.5 LTI模型的简单组合与复杂模型组合,1LTI模型的简单组合,(1)若假定两环节均为单输入单输出的系统SA和SB。,两个环节级联:sysseries(SA,SB),两个环节并联:sys=parallel(SA,SB),A环节前向,B环节反馈:S=feedback(SA,SB),(2)当在多输入多输出系统中,必须增加输入变量和输出变量的编号:,级联:sys=series(SA,SB,outputA,inputB),并联:sys=parallel(SA,SB,InputA,InputB,OutputA,OutputB),反馈:sys=feedback(SA,SB,feedout,feedin,sign),5.1.5 LTI模型的简单组合与复杂模型组合1LTI模,10,例5-14,计算图5.1所示的系统的传递函数。MATLAB源程序为:,s1=tf(2,5,1,1,2,3),%系统s1的传递函数模型,s2=zpk(-2,-10,5),%系统s2的零极点增益模型,sys=feedback(s1,s2),%s1环节前向,s2环节反馈5(s+2)/(s+10),程序运行结果为:,Transfer function:,系统s1的传递函数模型,2 s2+5 s+1,-,s2+2 s+3,Zero/pole/gain:,系统s2的零极点增益模型,5(s+2),-,(s+10),Zero/pole/gain:,系统s1、s2的反馈零极点增益模型,0.18182(s+10)(s+2.281)(s+0.2192),-,(s+3.419)(s2+1.763s+1.064),例5-14 计算图5.1所示的系统的传递函数。MATL,11,2LTI模型的复杂模型组合,对复杂系统的任意组合,在MATLAB中,则采用集成的软件包,让机器自动去完成复杂的组合,人们只要输入各环节的LTI模型和相应的联接矩阵与输入矩阵,指定输出变量,软件包会自动判别输入的模型表述方式,作出相应的运算并最后给出组合后系统的状态方程。在求解过程中,主要涉及,append()函数和connect()函数,。,通常,由以下五个步骤来完成:,对方框图中的各个环节进行编号,建立它们的对象模型。,利用append函数命令建立无连接的状态空间模型。,sap=append(s1,s2,sm),按规定写出系统的互联接矩阵q,互联矩阵q中的每一行由组合系统的一个输入编号和构成该输入的其它输出编号组成,其中该行的第一个元素为该输入的编号,接下来的元素则由构成该输入的其它子框的输出编号组成,如果为负反馈,则编号应取负号。,选择组合系统中需保留的对外的输入和输出端的编号并列出。,Inputs=i1,i2,outputs=j1,j2,用connect命令生成组合后的系统。,2LTI模型的复杂模型组合 对复杂系统的任意组合,在,12,5.1.6 连续系统与采样系统之间的转换,若连续系统的状态方程为:,则对应的采样系统状态方程为:,其中,,T,s,为采样周期。,、,、,、,反之,采样系统到连续系统的转换关系为上式的逆过程:,、,、,、,1.转换原理,5.1.6 连续系统与采样系统之间的转换若连续系统的状态方程,13,2.连续系统与采样系统之间的转换函数,函数名,功能,调用格式,c2d,连续系统转换为采样系统,sysd=c2d(sysc,Ts,method),d2c,采样系统转换为连续系统,sysc=d2c(sysd,method),d2d,采样系统改变采样频率,sys=d2d(sys,Ts),例5-17,系统的传递函数为:,输入延时,T,d,=0.35秒,试用一阶保持法对连续系统进行离散,采样周期,T,s,=0.1s。,MATLAB程序为:,sys=tf(2,5,1,1,2,3,td,0.5);,%生成连续系统的传递函数模型,sysd=c2d(sys,0.1,foh),%形成采样系统,程序运行结果为:,Transfer function:,2.036 z2-3.628 z+1.584,z(-5)*-,z2-1.792 z+0.8187,Sampling time:0.1,2.连续系统与采样系统之间的转换函数函数名功能调用格,14,5.2 控制系统的时域分析,时域分析是一种直接在时间域中对系统进行分析的方法,具有直观和准确的优点。它是根据控制系统输入与输出之间的时域表达式,分析系统的稳定性、瞬态过程和稳态误差。控制系统最常用的分析方法有两种:一是当输入信号为单位阶跃时,求出系统的响应;二是当输入信号为单位冲激函数时,求出系统的响应。,1.生成特定的激励信号的函数gensig(),格式:u,t=gensig(type,tau),功能:按指定的类型type和周期tau生成特定类型的激励信号u。