建模与仿真第三章控制系统模型及转换.ppt
第3章控制系统模型及转换,3.1 系统数学模型及其转换 3.2 系统模型的连接 3.3 状态空间模型实现,控制系统常用数学模型,根据系统输入、输出与内部状态变量之间关系,控制系统模型可分为外部模型和内部模型。通常,把着眼于建立系统输入输出关系的数学模型称为外部模型,包括时域模型(微分方程、差分方程)和频域模型(S传递函数或Z传递函数)。着眼于建立系统输入、输出与内部状态变量之间关系的数学模型称为内部模型,相应的数学模型称为系统的状态空间方程(连续状态空间方程或离散状态空间方程)。数学模型分类如图所示。,3.1系统数学模型及其转换 系统的时域模型常微分方程是控制系统模型的基本形式之一。般来讲,利用机械学、电学、流体力学和热力学等物理规律,便可以得到控制系统的动态方程,这些方程通常用常系数线性微分方程来描述。通过拉普拉斯变换和反变换,可以得到线性时不变方程的解析解,也可以用状态方程转换矩阵(t)求解。这些分析方法通常只限于常系数的线性微分方程。解析解是精确的,然而通常寻找解析解是很困难的,甚至不太可能,而数值分析方法直接在时域求解微分方程,不仅适用于线性时不变方程,也适用于非线性以及时变微分方程。,MATLAB提供了两个求解微分方程数值解的函数,它们采用龙格库塔法。ode23()和ode45()分别表示采用2阶和4阶龙格库塔公式,后者具有更高的精度。连续时间系统用微分方程描述。对于单输入单输出(SISO)系统,其微分方程的一般形式为,其中,y和u分别为系统的输出与输入,和分别表示输出和输入各导数项系数。,离散时间系统用差分方程描述。其差分方程的一般形式为,其中,y和u分别为系统的输出和输入,和分别为输出、输入各项系数。若式(3-1)和式(3-2)的输入和输出各项系数为常数,则它们所描述的系统称为线性时不变系统(LTI)。MATLAB控制工具箱对LTI线性时不变系统的建模分析和设计提供大量完善的工具函数。,系统的传递函数模型传递函数是经典控制论描述系统数学模型的一种方法,它表达了系统输入量和输出量之间的关系。它只和系统本身的结构、特性和参数有关。而与输入量的变化无关。传递函数是研究线性系统动态响应和性能的重要工具。,线性时不变系统的传递函数定义为,在零初始条件下系统输出量的拉普拉斯变换函数与输入量的拉普拉斯变换函数之比。尽管传递函数只能用于线性系统,但它比微分方程提供了更为直观的信息。,若令传递函数的分母多项式等于0,便得到特征方程。特征方程的根是系统的极点,而分子多项式的零解为系统零点。传递函数也可由常数项与系统的零、极点来确定,常数项通常记作k,是系统的增益。利用传递函数,便可以方便地研究系统参数的变化对响应的影响,通过拉普拉斯反变换可以得到系统的时域响应,通常需要用有理函数的部分分式展开。,对于一个单输入单输出连续系统,系统相应的微分方程如式(31)所示。对此微分方程作拉普拉斯变换,则该连续系统的传递函数为线性定常系统的传递函数,传递函数G(s)一般表示为,(33),其中令,分别为分子多项式与分母多项式。bj(j0,1,2,,m)和ai(i0,1,2,,n)均为常系数。,9,线性系统的微分模型 为阶次,为常数,物理可实现,10,例,电路图如下,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流、电容电压为零求其微分表达式及传递函数。,11,传递函数的引入,Pierre-Simon Laplace(1749-1827),法国数学家 Laplace变换 Laplace变换的一条重要性质:若 则,传递函数描述,12,Matlab 的拉氏与反拉氏变换,拉氏变换:laplace()反拉氏变换:ilaplace()课件 例3-1,exp_3-1syms t y;y=laplace(1/13*(2*exp(-3*t)+3*sin(2*t)-2*cos(2*t),b=simple(y),在MATLAB中,用函数TF(Transfer Function)可以建立一个连续系统传递函数模型,其调用格式为,sys=tf(num,den),其中,num为传递函数分子系数向量,den为传递函数分母系数向量。,numerator denominator,14,MATLAB中的传递函数表示,数学方式,对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。,15,MATLAB输入语句,num=b1,b2,bm,bm+1den=a1,a2,an,an+1sys=tf(num,den),用函数TF(TransferFunction)可以建立一个连续系统传递函数模型,,开环传递函数,闭环传递函数,对于单输入单输出离散时间系统,对式(32)进行Z变换,则可得到该离散系统的脉冲传递函数(或z传递函数):,(34),其中,对线性时不变离散系统来讲,式(34)中fi和gi均为常数。在MATLAB中,可用函数多项式模型来建立系统函数模型,调用格式为:,sys=tf(num,den,Ts),其中,num为z传递函数分子系数向量,den为z传递函数分母系数向量,Ts为采样周期。,17,传递函数输入举例,Exp3_2 输入传递函数模型MATLAB输入语句 在MATLAB环境中建立一个变量 G,系统的状态空间模型微分方程和传递函数均是描述系统性能的数学模型,它只能反映出系统输入和输出之间的对应关系,通常称之为外部模型。而在系统仿真时,常常要考虑到系统中各变量的初始状态,这样就要用到系统的内部模型状态变量描述。给定一个线性连续系统,其微分方程描述为,(35),式中:u为系统的输入量;y为输出量。,现引入n个状态变量,即x1,x2,,xn,各个状态变量的一阶导数与状态变量和式(35)原始方程中的各导数项的对应关系,为系统状态变量矩阵。,为状态变量的一阶导数矩阵。,将上述n个一阶微分方程组成矩阵形式,可以表示为,为状态变量系数矩阵。,为输入变量系数矩阵。,对一特定系统(可以是线性或非线性的、定常或时变的),当引入n个状态变量时,将其化为n个一阶微分方程组的形式,再对其采用矩阵描述,可以得到:,(38),式中:x为状态向量,u为输入向量,y为输出向量;A为状态变量系数矩阵,简称为系统矩阵;B为输入变量系数矩阵,简称为输入矩阵;C为输出变量系数矩阵,简称为输出矩阵;D为直接传递矩阵。,系统的状态方程,系统的输出方程,两者组合后称为系统的状态空间描述。在MATLAB中,用函数ss可以建立一个连续系统状态空间模型,调用格式为:,sys=ss(A,B,C,D),其中,A,B,C,D为系统状态方程系数矩阵。,(39),在MATLAB中,用函数ss也可以建立一个离散时间系统的传递函数模型,其调用格式为,sys=ss(F,G,C,D,Ts),其中,F,G,C,D为离散系统状态方程系数矩阵;Ts为采样周期,【例3.1】线性系统的状态变量方程为,其各个系数矩阵分别为,【例3.2】写出下列系统的状态变量方程在MATLAB中的矩阵表示:,系统模型的其他形式1系统的零极点增益模型零极点模型(ZP,ZeroPole)实际上是传递函数模型的另一种形式,其方法是对原系统传递函数的分子和分母多项式进行分解,以获得系统的零极点表达形式。对于单输入单输出连续系统来讲,其零极点模型为,(310),式中,zi(i1,2,m)和pj(j1,2,n)分别为系统的零点和极点,K为系统增益。,在MATLAB中,可以用函数zpk来直接建立连续系统的零极点增益模型,其调用格式为,对于离散时间系统,也可以用函数zpk建立零极点增益模型,其调用格式为,同时,MATLAB提供了多项式求根函数roots来求系统的零极点,调用格式为,sys=zpk(z,p,k),sys=zpk(z,p,k,Ts),z=roots(num)或 p=roots(den),其中,num、den分别为传递函数模型的分子和分母多项式系数向量。,其中,Ts为采样周期,其中,z、p、k分别为系统的零点向量、极点向量和增益。,32,Exp3_3 零极点模型MATLAB输入方法,Z=-5;P=-1,-2,-3,-4;G=zpk(Z,P,6),33,Exp3_4 如何处理如下的传递函数?定义算子,再输入传递函数,34,Exp3_5 输入混合运算的传递函数模型 显然用第一种方法麻烦,所以,根据给出传递函数形式选择输入方法,图31传递函数的零、极点分布图,图31中系统的传递函数为,可见,系统传递函数的零点为s=-2,传递函数的极点分别为s1=-3,s2,3=1j。对于多输入多输出系统,函数zpk也可建立其零极点增益模型,调用格式与单输入单输出系统相同,但z,p,k不再是一维向量,而是矩阵。,2传递函数的部分分式展开控制系统中常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。在MATLAB中经常用到函数z,p,k=residue(num,den)对两个多项式的比进行部分展开或把传递函数分解为微分单元的形式,其中b和a是按照s降幂排列的多项式的系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。通过num,den=residue(z,p,k)可以将部分分式转化为多项式的比p(s)/q(s)的形式。,【例3.3】求下列传递函数的MATLAB描述:(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(1,1,conv(1,1,conv(1,1,1,3,2,5);Sys=tf(num,den),【例3.4】求下列传递函数的零极点增益模型。,num=1 4 6den=3 4 7 9z,p,k=tf2zp(num,den)z=0-6-5p=-3.0000+4.0000j-3.0000-4.0000j-2.0000-1.0000k=1,结果表达式为,【例3.5】求下列传递函数的部分分式展开式。,注意,运行结果有何区别?,num=2,0,9,1;den=1,1,4,4;z,p,k=residue(num,den),num=2,0,9,1;den=1,1,4,4;z,p,k=tf2zp(num,den),z=0.0000-0.2500i 0.0000+0.2500i-2.0000 p=0.0000+2.0000i 0.0000-2.0000i-1.0000k=2结果表达式:,z=0.0554+2.1235i 0.0554-2.1235i-0.1108 p=-0.0000+2.0000i-0.0000-2.0000i-1.0000 k=2,2(s+0.1108)(s2-0.1108s+4.512)-(s+1)(s2+4),【例3.6】已知控制系统的传递函数,求其部分分式展开式。(1),num=1,2,2;den=1,6,11,6;z,p,k=residue(num,den);z,p,ans=2.5000-3.0000-2.0000-2.00000.5000-1.0000则部分分式分解结果为,(2)已知传递函数,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);z,p,k=residue(num,den),z=-0.1633-13.5023+7.6417j-13.5023-7.6417j-30.4320-8.1600-0.800057.6000p=-2.9042-0.0479+1.3112j-0.0479-1.3112j-1.0000-1.0000-1.00000k=0,则部分分式分解结果为,3频率响应数据模型传递函数模型(FRD,FrequencyResponseData)中的复变量s用复频率j代替,就得到频率响应数据模型:,在已知若干频率下的响应时才适合用这种模型,(311),式中,系统的频率响应数据是复数,可用responseg1,g2,gk 输入;对应的频率用freq1,2,,k输入,两者应有相同的列数。得到的频率响应数据模型用:Gfrd(response,freq)表示。,典型环节及其传递函数 1比例环节比例环节也称为放大环节,其特点是环节的输出量与输入量成正比。比例环节的运动方程为,(312),其传递函数为,(313),式中,K为放大系数。,2惯性环节惯性环节的运动方程为,其传递函数为,(314),(315),式中,K为传递系数,T为惯性时间常数。惯性环节的输出量不能立即跟随输入量的变化,存在时间上的延迟,惯性越大,延迟时间越长,时间常数T也越大。例如RC电路,直流电机的激磁电路等都是惯性环节。,3一阶微分环节一阶微分环节的运动方程为,(316),其传递函数为,(317),其中,为微分时间常数。在暂态过程中,一阶微分环节的输出量是输入量的微分。,4积分环节积分环节的运动方程为,其传递函数为,(318),(319),式中,T为积分时间常数,,从传递函数中可以看出,积分环节有一个极点在s平面的原点,一般用来改善系统的稳态性能。,(320),其传递函数为,(321),式中,T为积分时间常数:T=RC。该电路相当于惯性环节,只有当T=RC1时才可以得到近似的积分环节。,5振荡环节振荡环节的微分方程为,(322),式中,T为时间常数,为阻尼系数,也称为阻尼比。,传递函数为,(323),式中,n为无阻尼自然振荡频率,,6延迟环节延迟环节的特点是具有时间上的延迟效应,当输入量作用后,在给定一段时间之前,延迟环节的输出量一直未变化,只有到达延迟时间以后,环节的输出量才能无偏差地复现原信号。其微分方程为,(324),延迟环节的传递函数为,(325),若系统中含有延迟环节,对系统的稳定性是不利的。在实际应用中,可控硅整流器可以视为一个延迟环节,整流电压与控制角之间存在失控时间。通过上述分析,我们要明确以下几点:(1)系统的典型环节是按照数学模型的共性来建立的,它与系统中使用的元部件不是一一对应的,一个系统可能是一个典型环节,也可能是由几个典型环节组合而成的。(2)按照数学模型对元部件和系统进行分类可产生出若干典型环节,有助于系统动态特性的研究和分析。(3)典型环节的概念只适用于能够用线性定常系统来描述的场合。,自动控制系统的传递函数如图32所示的闭环控制系统,采用叠加原理可分别求出在输入信号和扰动信号作用下的系统各类传递函数。,图32闭环控制系统典型结构图,1系统开环传递函数闭环系统在开环状态下的传递函数称为系统的开环传递函数,是指当系统主反馈通路断开以后,反馈信号B(s)与输入信号及R(s)之间的传递函数,该函数可表示为,(326),从上式可以看出,系统开环传递函数等于前向通道的传递函数与反馈通道的传递函数之积。,2输入信号作用下的系统闭环传递函数令干扰信号N(s)0,系统输出信号C(s)与输入信号R(s)之间的传递函数即为输入信号作用下的系统闭环传递函数,表示为,(327),3.干扰信号作用下的系统闭环传递函数令输入信号R(s)=0,系统输出信号C(s)与干扰信号R(s)之间的传递函数即为干扰信号作用下的系统闭环传递函数,表示为,(328),4闭环系统的误差传递函数(1)输入信号作用下的误差传递函数。令干扰信号N(s)0,以量E(s)为输出信号,与输入信号R(s)之间的传递函数即为输入信号作用下的系统误差传递函数,表示为,(329),(2)干扰信号作用下的误差传递函数。令输入信号R(s)=0,以E(s)为输出信号,与干扰信号N(s)之间的传递函数即为干扰信号作用下的系统误差传递函数,表示为,(330),5系统的总输出在输入信号和干扰信号的共同作用下,系统的总输出可以采用叠加原理求得。由式(329)和式(330)组合可得系统的总输出为,(331),系统的模型转换在实际工程中,由于要解决自动控制问题所需要的数学模型,而该数学模型与该问题所给定的已知数学模型往往是不一致的,此时,就需要对控制系统的数学模型进行转换,即将给定模型转换为仿真程序能够处理的模型形式。通常,系统的微分方程作为描述动态性能的基本形式,当作为共性的内容进行分析时,又常常将其转换为传递函数形式,而在计算机中,利用系统的状态空间描述最方便。所以,讨论系统数学模型之间的转换具有实际的指导意义。,描述控制系统的数学模型主要有传递函数模型、零极点模型、部分分式模型和状态空间模型等,而这些模型之间又有着某种内在的等效关系。在一些场合下需要用到其中的一种模型,而在另一场合下可能又需要另外的模型,例如想获得系统的根轨迹图形时往往需要已知系统的传递函数模型,而在二次型指标的最优设计中往往又需要知道系统的状态方程模型,所以讨论由一种模型到另外一种模型的转换方法是很有必要的。MATLAB提供了一个对不同控制系统的模型描述进行转换的函数集,如表3.1所示,其中一些在前面已经介绍过。,表3.1模型转换函数及说明,图33连续与离散系统的转换,如图所示,tf、zpk和ss模型可相互转换,它们也可以转换成FRD模型。FRD模型不能直接转换成tf、zpk和ss模型,但是,FRD模型可由其他3种类型的模型转换得到。连续模型和离散模型之间也可以相互转换。与上述模型转换相似,连续和离散模型之间的转换如图33所示。在MATLAB中,进行模型转换的函数有两类,其一就是出现在早期版本中的tf2ss、ss2tf等转换函数,如图34所示,这些函数在新版本中还可以继续使用;其二是在新版本中出现的统一转换函数,它与模型建立函数有相同的函数名。,图34模型转换,1转换成tf模型的转换函数tf()tf函数能用于建立tf模型,也能用于将ss模型和zpk模型转换成tf模型。建立tf模型的函数格式已在前面说明,当用于模型转换时,函数格式是:m=tf(sys)式中,sys是ss模型或zpk模型,m是转换后对应的tf模型。,72,1)zp2tf(z,p,k):exp3_6 z=-3;p=-1,-2,-5;k=6;num,den=zp2tf(z,p,k);S=tf(num,den)或:z=-3;p=-1,-2,-5;k=6;G=zpk(z,p,k);G1=tf(G),【例3.7】STHT将状态空间模型转换为传递函数模型。A=0 1-1;-6-11 6;-6-11 5;B=0;0;1;课本上有误 C=1 0 0;D=0;num,den=ss2tf(A,B,C,D)可以用什么语句代替?num=0.0000-1.0000-5.0000den=1.0000 6.0000 11.0000 6.0000,sys=ss(A,B,C,D)sys1=tf(sys),从计算结果可以看出,该系统的传递函数模型为,2转换成zpk模型的转换函数zpk()zpk函数能用于建立zpk模型,也能用于将tf模型和ss模型转换成zpk模型。转换的函数格式为m=zpk(sys)式中,sys是tf或ss模型,m是对应的zpk模型。,76,exp3_7 求系统闭环极点,判断稳定性。num=1,11,30,0;den=1,9,45,87,50;z,p,k=tf2zp(num,den);G=zpk(z,p,k)或:num=1,11,30,0;den=1,9,45,87,50;G=tf(num,den);G1=zpk(G),【例3.8】已知二输入二输出系统的状态空间模型如下:,求其零极点模型。A=0 1 0;-6-11 6;-6-11 5;B=0 0;0 1;l 0;C=1 0 0;0 1 0D2 0;0 2;z,P,kss2zp(A,B,C,D,1),从上面的结果既可以得出四个传递函数,限于篇幅,这里只列出其中的一个传递函数,其余的请读者自行列出。,从计算结果可以看出,该传递函数的一个极点和一个零点对消,从而使传递函数G21(s)降为两阶。,3转换成ss模型的转换函数ss()ss函数能用于建立ss模型,也能用于将tf模型和zpk模型转换成ss模型。转换的函数格式为,式中,sys是tf或zpk模型,m是对应的ss模型。由传递函数模型求状态空间模型时,应注意到这种转换不是唯一的,传递函数只描述系统输入与输出关系,被称为系统的外部描述形式,而状态空间表达式描述系统输入、输出和状态之间的关系,被称为系统的内部描述形式。由传递函数求状态空间表达式时,若状态变量选择不同,状态空间形式也不同。由传递函数模型求取系统状态空间模型的过程又称为系统状态空间实现,但系统实现不是唯一的。,由于使用的状态变量不同,转换后的ss模型也就不同,因此,用ss函数转换的ss模型是其中的一种实现。最小实现的转换格式是:m=ss(sys,min),【例3.9】将传递函数模型转换为状态空间模型。,num=0010;den=11456160;A,B,C,D=tf2ss(num,den),或者num=0010;den=11456160;sys1=tf(num,den)sys2=ss(sys1),Exp3-88通过定义传函算子的方式输入以下传递函数,并分别求传递函数和零极点 模型。,也可以用符号变量直接建立,clearclc s=tf(s);%先定义算子,再输入函数G=3*(s2+3)/(s+2)3/(s2+2*s+1)/(s2+5)s=zpk(s);%先定义算子,再输入函数G=3*(s2+3)/(s+2)3/(s2+2*s+1)/(s2+5),也可以用符号变量直接建立或转换模型!,或者exp3_89clearclcs=tf(s);%先定义算子,再输入函数G=3*(s2+3)/(s+2)3/(s2+2*s+1)/(s2+5)Gzpk=zpk(G)Gtf=tf(G)Gss=ss(G),4转换成frd模型的转换函数frd()frd函数能用于建立frd模型,也能用于将tf模型、zpk模型转换成frd模型。转换的函数格式为m=frd(sys,freq,units,units)式中,sys可以是tf模型、zpk模型或ss模型,freq是frd模型所需的频率,units是频率的单位,可以是“rads”或“Hz”,频率单位缺省的约定值是“rads”。需要注意的是:frd模型可由其他3类模型转换得到,但不能将frd模型转换成其他类型的模型。,5状态空间描述到传递函数形式的转换ss2tf()转换的函数格式为numden=ss2tf(A,B,C,D,iu)其中A,D,C,D为系统矩阵,iu指定第几个输入,返回结果den为传递函数的分母多项式的系数,按s的降幂排列,传递函数分子系数则包含在矩阵num中,num的行数与输出y的维数已知,每列对应一个输出。,注:在系统本身就只有一个输入的情况下,在引用函数ss2tf()时,可以缺省而不写参数iu。对多输入的系统,必须具体指定iu。例如,如果系统有3个输入(u1,u2,u3),则iu必须为1、2或3中的一个,其中1表示u1,2表示u2,3表示u3。这种用法在ss2zp()中也适用。,6状态空间形式转换为零极点增益形式ss2zp()转换的函数格式为z,p,kss2zp(A,B,C,D,iu)其中,A,B,C,D为系统矩阵,iu指定第几个输入,列向量p包含传递函数的极点,而零点则存储在矩阵z的列中,z的列数等于输出向量y的维数,每列对应一个输出的零点,对应增益则在列向量k中。,7传递函数形式转换为状态空间形式tf2ss()转换的函数格式为A,B,C,Dtf2ss(num,den)其中,向量den为H(s)的分母多项式的系数,按s的降幂排列。num对应为一个矩阵,每行对应一个输出的分子系数,其行数等于输出的个数。返回结果A,B,C,D以可控标准型的形式给出。应着重强调,任何系统的状态空间表达式都不是唯一的。对于同一系统,可有许多个(无穷多个)状态空间表达式。上述MATLAB命令仅给出了一种可能的状态空间表达式。,【例3.10】考虑由下式定义的系统:,A=0 1;-25-4;B=1 1;01;C=1 0;0 1;D=0 0;0 0;num,den=ss2tf(A,B,C,D,1)num=0 14 0 0-25den=1 4 25,num,den=ss2tf(A,B,C,D,2)num=01.00005.0000 01.0000-25.000den=1 4254个传递函数的表达式为:,在系统分析中,有时不仅需要知道建立的系统模型的参数值,而且要实现运算、赋值等操作,因此要获取模型参数的数值。为此,MATLAB提供了专用函数TFDATA,ZPKDATA和SSDATA。对于连续时间系统,调用格式为:num,dentfdata(sys,v);z,p,kzpkdata(sys,v);A,B,C,Dssdata(sys);对于离散时间系统,调用格式为:num,dentfdata(sys,v);z,p,k,Tszpkdata(sys,v);A,B,C,D,Tsssdata(sys);,复杂模型的处理方法(略)1系统的降阶实现在控制系统的研究中,模型的降阶技术是简化系统分析的重要手段,其降阶实质就是由相对低阶的模型尽可能近似成一个高阶原系统,从而使高阶模型可以按照低阶的仿真与设计方法加以进行。在MATLAB中,为用户提供了实现系统降阶处理的专用函数有modred。其基本格式为RSYS=modred(sys,ELIM)RSYS=modred(sys,ELIM,mdc)RSYS=modred(sys,ELIM,del)其中,ELIM为待消去的状态;mdc表示在降阶中保证增益的匹配;del所示在降阶中不能保证增益的匹配。,略【例3.11】已知系统的传递函数为:,应用modred函数进行降价处理,保留前两个状态,降为二阶系统。解:先构造modred所需要的函数,再进行降价处理。num=180;den=1 20 136 380 343;a,b,c,d=tf2ss(num,den);sys=ss(a,b,c,d);sysm=modred(sys,3:4,del),执行上述语句得到系统降阶后的结果为 a=x1x2x1-20.00000-136.00000 x21.000000b=u1x11.00000 x20c=x1x2y100d=u1y10,显然在直接利用modred函数进行系统降阶处理时具有一定的盲目性,为此往往将balreal函数与modred函数相结合加以使用。由balreal函数先进行均衡变换,依据Gram阵确定对系统影响较小的状态,再应用modred函数求出降阶后的系统。在MATLAB中还给出最小实现函数minreal,它的基本格式为Am,Bm,Cm,Dmminreal(A,B,C,D)numm,denm=minreal(num,den)该函数表达式消去了不必要的状态,从而得到系统的最小实现。有关它的具体应用可参见相关帮助文件,在此不再详述。,2.随机n阶系统的模型建立MATLAB为用户提供了建立随机n阶系统模型的函数,其基本格式为:num,denrmodel(n)num,denrmodel(n,p)num,dendrmodel(n)num,dendrmodel(n,p)AB,C,Drmodel(n)A,B,C,Drmodel(n,p,m)A,B,C,Ddrmodel(n)A,B,C,Ddrmodel(n,p,m),其中,ZK(num,denrmodel(n)可以随机生成n阶稳定传递函数模型。num,denrmodel(n,p)可以随机生成单输入p输出的n阶稳定传递函数模型。A,B,C,Drmodel(n)可以随机生成n阶稳定单输入单输出状态方程模型。A,B,C,Drmodel(n,p,m)可以随机生成n阶稳定p输出m输入状态空间模型。drmodel(n)函数将生成相应的离散模型。,3.2系统模型的连接 在一般情况下,控制系统常常是由许多环节或子系统按一定方式连接起来组合而成的,它们之间连接方式有串联、并联、反馈、附加等。要对各种连接模式下的系统进行分析,就需要对系统的模型进行适当的处理。MATLAB控制系统工具箱中提供有大量的对控制系统的简单模型进行连接的函数,如表3.2所示。,表3.2模型连接函数,模型串联函数series用于两个线性模型串联,调用格式为sys=series(sys1,sys2)其中,sys1,sys2和sys如图35所示。,图35单输入单输出模型,1两个单输入单输出系统的级(串)联利用series()函数将两个状态空间形式表示的系统进行级(串)联;其用法为A,B,C,Dseries(A1,B1,C1,D1,A2,B2,C2,D2)即将第一个子系统的输出连接到第二个子系统的输入。,【例3.12】两个系统如下所示:,将这两个系统级联,求其状态方程。a1=03;-3-1;b1=01;c1=13;d1=2;a2=23;-14;b2=10;c2=24;d2=1;a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2),得到整体状态方程模型为a=2313-1 4000 0030 0-3-1b=2 0 0 1c=2413d=2该函数的执行结果等价于模型算术运算式:sys3=sys1sys2,2两个多输入多输出系统的级(串)联对于多输入多输出系统,函数series的调用格式为sys=series(sys1,sys2,out1,in2)该函数在执行系统sys1和系统sys2串联时,将系统sys1的输出端1和系统sys2的输入端2连接,如图36所示。系统端口名称可用函数SET设置。图36是一般情况下模型串联连接的结构图。图中,模型G1的部分输出y1与模型G2的部分输入u2组成串联连接。G1和G2是线性时不变系统模型。,图36多输入多输出模型串联,串联连接后的系统有两个输入u1和u2,和两个输出z1和y2。而连接关系应满足G1输出yl和G2输入u2有相同的个数。串联连接时采用:G=G2(:,u2)*G1(y1,:)状态空间模型GlA1,Bl,Cl,D1和G2A2,B2,C2,D2串联连接时,得到G:,在串联连接时,应注意下列事项:(1)SISO系统的串联连接次序不同时,所得到状态空间模型系数不同,但这两个系统的输出响应是相同的,可以通过将G和GG转换为zpk模型或tf模型来验证;(2)串联连接后,合成的模型是LTI的某类模型;(3)MIMO系统的串联连接时,可采用部分信号串联连接,采用函数是series;可以用simulink建立模型,然后用模型分析操作命令得到合成的系统模型。(4)串联连接的结果也可以用其他方法得到。例如采用多项式卷积,用conv、conv2等函数来得到两个多项式相乘后的多项式系数。此外,也可以用符号函数进行计算。,已知:,G1=tf(12,1,2,3,4);G2=zpk(,-1,-3,1.2);den=conv(conv(1234,11),13);num=1.212;G=tf(num,den)symssnum1=sym2poly(collect(1.2(s+2);den1=sym2poly(collect(s3+2s2+3s+4)(s+1)(s+3);GS=tf(num1,den1)GG=tf(G1*G2),模型并联函数parallel用于两个模型并联,调用格式为:sys=parallel(sys1,sys2)其中,sys1,sys2和sys如图37所示。,图37单输入单输出模型并联,该函数执行结果等价于模型算术运算式:sys=sys1+sys2对于多输入多输出系统,函数parallel的调用格式为sys=parallel(sys1,sys2,in1,in2,out1,out2)函数执行sys1和sys2并联时,将sys1的输入端in1和sys2的输入端in2连接,sys1的输出端outl和sys2的输出端out2连接,如图38所示。,图38多输入多输出模型并联,parallel()函数按并联连接两个状态空间系统,它既适合于连续时间系统,也适合于离散时间系统。parallel()的用法如下:A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2);A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2,in1,in2,out1,out2)num,den=parallel(num1,den1,num2,den2)A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2),可得到由系统1和系统2并联连接的状态空间表示的系统,其输出为yy1+y2,其输入连接在一起作为系统输入。,num,den=parallel(num1,den1,num2,den2),可得到并联连接的传递函数表示系统,其结果为,A,B,C,Dparallel(A1,B1,C1,D1,A2,B2,C2,D2,in1,in2,out1,out2),可将系统1与系统2按图38所示的方式连接,在in1和in2中分别指定两系统要连接在一起的输入端编号,从u1,u2,un依次编号为1,2,n;out1和out2中分别指定要作相加的输出端编号,编号方式与输入类似。,注意:当以A,B,C,D=parallel(A1,B1,C1,D1,A2,B2,C2,D2,in1,in2,out1,out2)形式使用parallel()函数时,in1和in2既可以是数字也可以是向量。当in1与in2函数时,表示该系统的两个子系统各有一个输入端相互连接。例如in1=1,in2=3表示系统1的第一个输入端与系统2的第三个输入端相连接,其他输入端则按照常规的并联方式处理即可。当in1和in2为向量时,则表示该系统的两个子系统均由若干个输入端口参与连接,连接方法为按照两个向量列出的元素顺序一一对应。例如in1=134,in2=213则表示第一个子系统的第一个输入量与第二个子系统的第二个输入量连接,以及第一个子系统的第三个输入量与第二个子系统的第一个输入量连接,且第一个子系统的第四个输入量与第二个子系统的第三个输入量连接。out1与out2用法与之相同。,并联连接时应注意下列事项:(1)并联连接后,合成的模型是线性时不变系统的某类模型;(2)多输入多输出系统并联连接时,采用部分信号并联连接,采用的函数是parallel;(3)可以用Simulink建立模型,然后用模型分析操作命令得到合成的系统模型;(4)并联连接的结果也可以用其他方法得到,例如可以用符号函数进行计算。,反馈连接feedback()函数用于两个系统的反馈连接,其用法为A,B,C,Dfeedback(A1,B1,C1,D1,A2,B2,C2,D2)A,B,C,D=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)A,B,C,D=feedback(A1,B1,C1,D1,A2,B2,C2,D2,in,out)num,denfeedback(num1,den1,num2,den2)num,denfeedback(num1,den1,num2,den2,sign)feedback()函数可将两个系统按反馈形式进行连接,如图39所示。一般而言,系统1为对象,系统2为反馈控制器。feedback()函数既适用于连续系统也适用于离散系统。,图39两个系统的反馈连接,例如:A,B,C,Dfeedback(A1,B1,C1,D1,A2,B2,C2,D2),可将两个系统按反馈方式连接起来,sys1的所有输出连接到sys2的输入,sys2的所有输出连接到sys1的输入,sign用于指示y2到u1连接的符号,sign缺省时,默认为负,即sign-1。总系统的输入与输出数等同sys1。连接生成的系统为,例如:A,B,C,Dfeedback(A1,B1,C1,D1,A2,B2,C2,D2),可将两个系统按反馈方式