线性控制系统分析与设计.ppt
《线性控制系统分析与设计.ppt》由会员分享,可在线阅读,更多相关《线性控制系统分析与设计.ppt(80页珍藏版)》请在装配图网上搜索。
第6章线性控制系统分析与设计,MATLAB具有丰富的控制系统分析和设计函数;控制系统工具箱(ControlSystemToolbox)可供对线性系统分析、设计和建模的各种算法。,6.1线性系统的描述6.2线性系统模型之间的转换6.3结构框图的模型表示6.4线性系统的时域分析6.5线性系统的频域分析6.6线性系统的根轨迹分析6.7线性系统的状态空间设计,6.1线性系统的描述,状态空间描述法传递函数描述法零极点描述法离散系统的数学描述,在分析设计系统之前,需要对系统的数学模型进行描述,单变量连续的反馈系统的描述方法:,即使用状态方程模型来描述控制系统,状态方程为一阶微分方程:,6.1.1状态空间描述法,例如,二阶系统,可以用状态方程描述:,语法:G=ss(a,b,c,d)%由a、b、c、d参数获得状态方程模型G=dss(a,b,c,d,e)%由a、b、c、d、e参数获得状态方程模型,例6.1写出二阶系统当时的状态方程。,MATLAB中状态方程模型的建立使用ss和dss命令。,zeta=0.707;wn=1;A=01;-wn2-2*zeta*wn;B=0;wn2;C=10;D=0;G=ss(A,B,C,D)%建立状态方程模型,控制系统由微分方程描述,经Laplace变换得,6.1.2传递函数描述法,语法:G=tf(num,den)%由传递函数分子分母得出说明:num为分子向量,num=b1,b2,bm,bm+1;den为分母向量,den=1,a1,a2,an-1,an。,有理函数,MATLAB中使用tf命令来建立传递函数。,num=1;den=11.4141;G=tf(num,den)%得出传递函数Transferfunction:1-s2+1.414s+1,6.1.3零极点描述法,语法:G=zpk(z,p,k)%由零点、极点和增益获得说明:z为零点列向量;p为极点列向量;k为增益。,MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。,零极点形式是以实数形式表示的。,num=1;den=11.4141;z=roots(num)z=Emptymatrix:0-by-1p=roots(den)p=-0.7070+0.7072i-0.7070-0.7072izpk(z,p,1)Zero/pole/gain:1-(s2+1.414s+1),a=156;b=11;p=roots(a)p=-3.0000-2.0000z=roots(b)z=-1g=zpk(z,p,2)Zero/pole/gain:2(s+1)-(s+3)(s+2),控制系统的系统函数也可用部分分式法表示,使用residue命令来实现由传递函数得出部分分式的极点和系数。,r,p,k=residue(num,den)r=0-0.7070i0+0.7070ip=-0.7070+0.7072i-0.7070-0.7072ik=,r,p,k=residue(b,a)r=2.0000-1.0000p=-3.0000-2.0000k=,6.1.4离散系统的数学描述,1.状态空间描述法,u为输入向量,x为状态向量,,y为输出向量,n为采样时刻,将离散系统的状态方程描述变换为脉冲传递函数,脉冲传递函数即对差分方程做ZT所得,表达式为:,2.脉冲传递函数描述法,脉冲传递函数也可以用tf命令实现。语法:G=tf(num,den,Ts)%由分子分母得出脉冲传递函数说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用z表示。,语法:G=filt(num,den,Ts)%由分子分母得出脉冲传递函数说明:Ts为采样周期,当采样周期未指明Ts可以省略,也可以用-1表示,自变量用z-1表示。,MATLAB中还可以用filt命令产生脉冲传递函数。,a=-1.5-0.5;10;b=1;0;c=00.5;d=0;G=ss(a,b,c,d,0.1)%采样周期为0.1s,【例6.2】用状态空间法建立离散系统。,【例6.2】创建离散系统脉冲传递函数,num1=0.50;den=1-1.50.5;G1=tf(num1,den,-1)Transferfunction:0.5z-z2-1.5z+0.5Samplingtime:unspecified,num2=00.5;den=1-1.50.5;G2=filt(num2,den)Transferfunction:0.5z-1-1-1.5z-1+0.5z-2Samplingtime:unspecified,离散系统的零极点增益用zpk命令实现。语法:G=zpk(z,p,k,Ts)%由零极点得出脉冲传递函数,使用residue命令来实现由传递函数得出部分分式的极点和系数。,3.零极点增益描述法,G3=zpk(0,0.51,0.5,-1)Zero/pole/gain:0.5z-(z-0.5)(z-1)Samplingtime:unspecified,【例6.2】使用zpk命令产生零极点增益传递函数。,6.2线性系统模型之间的转换,连续系统模型之间的转换连续系统与离散系统之间的转换模型对象的属性,表6.1线性系统模型转换函数表,z为零点列向量,p为极点列向量,k为增益。,(1)状态空间模型的获得由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。语法:G=ss(传递函数)%由传递函数转换获得G=ss(零极点模型)%由零极点模型转换获得,1.系统模型的转换,(2)传递函数的获得由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。语法:G=tf(状态方程模型)%由状态空间转换G=tf(零极点模型)%由零极点模型转换,(3)零极点模型的获得由zpk命令实现将状态空间法、传递函数转换为零极点模型。语法:G=zpk(状态方程模型)%由状态方程模型转换G=zpk(传递函数)%由传递函数转换,【例6.3】将单输入双输出的系统传递函数,转换为状态空间描述。,num=032;123;den=3521;G11=tf(num(1,:),den)Transferfunction:3s+2-3s3+5s2+2s+1G12=tf(num(2,:),den)Transferfunction:s2+2s+3-3s3+5s2+2s+1,G=ss(G11;G12)a=x1x2x3x1-1.667-0.3333-0.08333x2200 x3020b=u1x11x20 x30.,G1=tf(G)Transferfunctionfrominputtooutput.s+0.6667#1:-s3+1.667s2+0.6667s+0.33330.3333s2+0.6667s+1#2:-s3+1.667s2+0.6667s+0.3333,G2=zpk(G)Zero/pole/gainfrominputtooutput.(s+0.6667)#1:-(s+1.356)(s2+0.3103s+0.2458)0.33333(s2+2s+3)#2:-(s+1.356)(s2+0.3103s+0.2458),语法:a,b,c,d=ssdata(G)%获取状态空间参数a,b,c,d,e=dssdata(G)%获取状态空间参数num,den=tfdata(G)%获取传递函数参数z,p,k=zpkdata(G)%获取零极点参数,2.模型参数的获取,3.模型类型的检验,表6.2模型类型检验函数表,6.2.2连续系统与离散系统之间的转换,随着控制系统中计算机的广泛应用,系统经常由连续系统和离散连接构成,使用A/D、D/A转换连接连续和离散子系统。在分析系统时必须将连续系统转换为性能相当的离散系统。控制工具箱提供了c2d,d2c和d2d命令实现复杂的相互转换。,语法:Gd=c2d(G,Ts,method)%以采样周期Ts和method方法转换为离散系统说明:G为连续系统模型;Gd为离散系统模型;Ts为采样周期;method为转换方法,可省略,包括五种:zoh(默认零阶保持器)、foh(一阶保持器)、tustin(双线性变换法)、mached(根匹配法)、prewarp(频率预修正双线性变换法)。,1.c2d命令,c2d命令用于将连续系统转换为离散系统。,语法:G=d2c(Gd,method)%转换为连续系统说明:method为转换方法可省略,与c2d相似,少了foh(一阶保持器)方法。,2.d2c命令,d2c命令是c2d的逆运算,用于将离散系统转换为连续系统。,语法:Gd2=d2d(Gd1,Ts2)%转换离散系统的采样频率为Ts2说明:其实际的转换过程是先把Gd1按零阶保持器转换为原连续系统,然后再用Ts2和零阶保持器转换为Gd2。,3.d2d命令,d2d命令是将离散系统改变采样频率。,a=01;-1-1.414;b=0;1;c=10;d=0;G=ss(a,b,c,d);Gd=c2d(G,0.1),【例6.4】将二阶连续系统转换为离散系统,G=d2c(Gd),Gd2=d2d(Gd,0.3),6.2.3模型对象的属性,LTI系统的三种模型ss、tf、zpk都有自己对应的属性。1.模型对象的属性ss、tf和zpk三种对象除了具有线性时不变系统共有的属性以外,还具有其各自的属性,共有属性如表6.3所示,其各自的属性如表6.4所示。,表6.3对象共有属性表,表6.4三种子对象特有属性表,表6.4三种子对象特有属性表,(2)set命令用于修改对象属性名语法:set(G,PropertyName,PropertyValue,)%修改对象的某些属性值,3.直接获取和修改属性根据对象和属性的关系,也可以直接用“.”符号来获取和修改属性。,2.get命令和set命令(1)get命令可以获取模型对象的所有属性语法:get(G)%获取对象的所有属性值get(G,PropertyName,)%获取对象的某些属性值说明:G为模型对象名;PropertyName为属性名。,num=1;den=11.4141;G=tf(num,den);get(G)%获取所有属性set(G,den,121,Variable,z)%设置属性G.den=11.4141;,6.3结构框图的模型表示,控制系统的模型通常由相互连接的模块构成,模块间通过串联、并联和反馈环节构成结构框图。,2.并联结构SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:G=G1+G2G=parallel(G1,G2),3.反馈结构反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。,实现反馈结构传递函数的命令:G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。,【例6.6】根据系统的结构框图求出整个系统的传递函数,结构框图如图6.4所示,其中,G1=tf(1,121)G2=tf(1,11);G3=tf(1,21);G4=tf(1,10);G12=G1+G2%并联结构G34=G3-G4G=feedback(G12,G34,-1),求取复杂结构框图的数学模型的步骤:(1)将各模块的通路排序编号;(2)建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。G=append(G1,G2,G3,)(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4)使用connect命令构造整个系统的模型。Sys=connect(G,Q,INPUTS,OUTPUTS),4.复杂的结构框图,如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。,【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。,方法一:使用append命令(1)将各模块的通路排序编号,如图6.6所示。,(2)使用append命令实现各模块未连接的系统矩阵(3)指定连接关系(4)使用connect命令构造整个系统的模型,G1=tf(1,10);G2=tf(1,110);G3=tf(1,110);G4=tf(-2,1);G5=tf(-1,1);G6=tf(1,10);G7=tf(-1,11);Sys=append(G1,G2,G3,G4,G5,G6,G7),Q=165;217;320;430;540;620;730;INPUTS=1;OUTPUTS=4;,G=connect(Sys,Q,INPUTS,OUTPUTS),A,B,C,D=connect(a,b,c,d,Q,INPUTS,OUTPUTS),方法二:从第二步开始使用blkbuild命令来实现(1)将各通路的信息存放在变量中(2)建立连接矩阵Q指定连接关系,Q矩阵同前面(3)使用connect命令构造整个系统的模型,Q=165;217;320;430;540;620;730;INPUTS=1;OUTPUTS=4;,nblocks=7;n1=1;d1=10;n2=1;d2=110;n3=1;d3=110;n4=-2;d4=1;n5=-1;d5=1;n6=1;d6=10;n7=-1;d7=11;blkbuild,6.4线性系统的时域分析,6.4.1零输入响应分析系统的输出响应由零输入响应和零状态响应组成,零输入响应是指系统的输入信号为零;零状态响应是指系统的初始状态为零。,线性系统的时域分析是主要分析系统在给定典型输入信号作用下,在时域的暂态和稳态响应,以及系统的稳定性。,语法:initial(G,x0,Ts)%绘制系统的零输入响应曲线initial(G1,G2,x0,Ts)%绘制系统多个系统的零输入响应曲线y,t,x=initial(G,x0,Ts)%得出零输入响应、时间和状态变量响应说明:G为系统模型,必须是状态空间模型;x0是初始条件;Ts为时间点,如果是标量则为终止时间,如果是数组,则为计算的时刻,可省略;y为输出响应;t为时间向量,可省略;x为状态变量响应,可省略。,1.连续系统的零输入响应,MATLAB中使用initial命令来计算和显示连续系统的零输入响应。,例:某反馈系统,前向通道的传递函数为反馈通道的传递函数为,求出初始条件为12时的零输入响应。,G1=tf(12,14);H=tf(1,13);GG=feedback(G1,H)G=ss(GG);initial(G,12)%绘制零输入响应impulse(G)%绘制脉冲响应曲线t=0:0.1:10;y=impulse(G,t)%根据时间t得出脉冲响应,离散系统的零输入响应使用dinitial命令实现。语法:dinitial(a,b,c,d,x0)%绘制离散系统零输入响应y=dinitial(a,b,c,d,x0)y,x,n=dinitial(a,b,c,d,x0)%得出离散系统n点的零输入响应说明:a、b、c、d为状态空间的系数矩阵;x0为初始条件;y为输出响应;t为时间向量;x为状态变量响应;n为点数。,2.离散系统的脉冲响应,6.4.2脉冲响应分析,1.连续系统的脉冲响应连续系统的脉冲响应由impluse命令来得出。语法:impulse(G,Ts)%绘制系统的脉冲响应曲线y,t,x=impulse(G,Ts)%得出脉冲响应说明:G为系统模型,可以是传递函数、状态方程、零极点增益的形式;y为时间响应;t为时间向量;x为状态变量响应,t和x可省略;Ts为时间点可省略。,2.离散系统的脉冲响应离散系统的脉冲响应使用dimpulse命令实现。语法:dimpluse(a,b,c,d,iu)%绘制离散系统脉冲响应曲线y,x=dimpluse(a,b,c,d,iu,n)%得出n点离散系统的脉冲响应y,x=dimpluse(num,den,iu,n)%由传递函数得出n点离散系统的脉冲响应说明:iu为第几个输入信号;n为要计算脉冲响应的点数;y的列数与n对应;x为状态变量,可省略。,6.4.3阶跃响应分析,1.连续阶跃响应阶跃响应可以用step命令来实现。语法:step(G,Ts)%绘制系统的阶跃响应曲线y,t,x=step(G,Ts)%得出阶跃响应图6.10阶跃响应曲线说明:参数设置与impulse命令相同。,2.离散系统的阶跃响应离散系统阶跃响应使用dstep命令来实现,语法规则与dimpluse相同。,6.4.4任意输入的响应,1.连续系统的任意输入响应连续系统对任意输入的响应用lsim命令来实现。语法:lsim(G,U,Ts)%绘制系统的任意响应曲线lsim(G1,G2,U,Ts)%绘制多个系统任意响应曲线y,t,x=lsim(G,U,Ts)%得出任意响应说明:U为输入序列,每一列对应一个输入;Ts为时间点,U的行数和Ts相对应;参数t和x可省略。,2.离散系统的任意输入响应离散系统的任意输入响应用dlsim命令来实现。语法:dlsim(a,b,c,d,U)%绘制离散系统的任意响应曲线y,x=dlsim(num,den,U)y,x=dlsim(a,b,c,d,U)%得出离散系统响应和状态变量响应说明:U为任意序列输入信号。,6.4.5系统的结构参数,1.极点和零点(1)pole命令计算极点语法:p=pole(G)说明:当系统有重极点时,计算结果不一定准确。,(2)tzero命令计算零点和增益(Transmissionzeros)语法:z=tzero(G)%得出连续和离散系统的零点z,gain=tzero(G)%获得零点和零极点增益说明:对于单输入单输出系统,tzero命令也用来计算零极点增益。,2.闭环系统的阻尼系数和固有频率damp命令用来计算闭环系统所有共轭极点的阻尼系数和固有频率n。语法:wn,zeta=damp(G)3.时域响应的稳态增益稳态增益可使用dcgain命令来得出。语法:k=dcgain(G)%获得稳态增益,6.5线性系统的频域分析,6.5.1频域特性频域特性由下式求出:Gw=polyval(num,j*w)./polyval(den,j*w)mag=abs(Gw)%幅频特性pha=angle(Gw)%相频特性说明:j为虚部变量。,6.5.2连续系统频域特性,1.bode图bode图是对数幅频和对数相频特性曲线。语法:bode(G,w)%绘制bode图mag,pha=bode(G,w)%得出w对应的幅值和相角mag,pha,w=bode(G)%得出幅值、相角和频率说明:G为系统模型,w为频率向量,mag为系统的幅值,pha为系统的相角。,2.nyquist曲线nyquist曲线是幅相频率特性曲线语法:nyquist(G,w)%绘制nyquist曲线nyquist(G1,G2,w)%绘制多条nyquist曲线Re,Im=nyquist(G,w)%由w得出对应的实部和虚部图6.15nyquist曲线Re,Im,w=nyquist(G)%得出实部、虚部和频率说明:G为系统模型;w为频率向量,也可以用wmin,wmax表示频率的范围;Re为频率特性的实部,Im为频率特性的虚部。,【例6.16】根据传递函数,绘制各系统的nyquist曲线,num=1;den1=conv(11,12),0;G1=tf(num,den1),den2=conv(11,12);G2=tf(num,den2),den3=110;G3=tf(num,den3),nyquist(G1,r,G2,b:,G3,g-.,0.1,180/57.3)%频率范围0.1,180/57.3,w=1:2;re,im=nyquist(G1,w)re(:,:,1)=-0.3000re(:,:,2)=-0.0750im(:,:,1)=-0.1000im(:,:,2)=0.0250,3*.nichols图nichols图是对数幅相频率特性曲线,使用nichols命令绘制和计算。语法:nichols(G,w)%绘制nichols图nichols(G1,G2,w)%绘制多条nichols图Mag,Pha=nichols(G,w)%由w得出对应的幅值和相角Mag,Pha,w=nichols(G)%得出幅值、相角和频率,在单位反馈系统中,闭环系统的传递函数可以写成G(s)/(1+G(s),因此nichols图的等M圆和等N圆就映射成等M线和等线,MATLAB提供了绘制nichols框架下的等M线和等线的命令ngrid。语法:ngrid(new)%清除图形窗口并绘制等M线和等线说明:new为创建的图形窗口,清除该图形窗口并绘制等M线和等线,如果绘制了nichols图后可省略new,直接添加等M线和等线;产生-40dB40dB的幅值和360o0o的范围,并保持图形。,6.5.3幅值裕度和相角裕度,语法:margin(G)%绘制bode图并标出幅值裕度和相角裕度Gm,Pm,Wcg,Wcp=margin(G)%得出幅值裕度和相角裕度说明:Gm为幅值裕度,Wcg为幅值裕度对应的频率;Pm为相角裕度,Wcp为相角裕度对应的频率(穿越频率)。如果Wcg或Wcp为nan为Inf,则对应的Gm或Pm为无穷大。,ngrid(nichols1)%绘制等M线和等线nichols(G1)%绘制nichols图w=1:2;Mag,Pha=nichols(G1,w)%获得幅值和相角数值,根据传递函数,,绘制等M线,等线和nichols图,num=1;den1=conv(11,12),0;G1=tf(num,den1),,并得出系统的幅值裕度和相角裕度。,Mag(:,:,1)=0.3162Mag(:,:,2)=0.0791Pha(:,:,1)=-161.5651Pha(:,:,2)=-198.4349,Gm,Pm,Wcg,Wcp=margin(G1)Gm=6.0000Pm=53.4109Wcg=1.4142Wcp=0.4457,6.5.4离散系统频域分析,对离散系统的频域分析,主要是绘制离散系统的bode图、nyquist曲线和nichols图,相应的命令是:dbode,dnyquist,dnichols,例:绘制的系统的bode图,dnum=251;dden=123;dbode(dnum,dden,0.1)%绘制bode图,采样周期为0.1s,6.6线性系统的根轨迹分析,根轨迹是指系统闭环极点随着系统增益变化而变化的轨迹,可以分析系统的暂态和稳态性能。6.6.1绘制根轨迹MATLAB中绘制根轨迹使用rlocus命令。语法:rlocus(G)%绘制根轨迹rlocus(G1,G2,)%绘制多个系统的根轨迹r,k=rlocus(G)%得出闭环极点和对应的Kr=rlocus(G,k)%根据K得出对应的闭环极点,1.常规根轨迹绘制随增益k变化的根轨迹。2.零度根轨迹由于是正反馈,其闭环特征方程为:1-G(s)=0,因此将分子多项式取负号就可以了。,6.6.2根轨迹的其它工具,1.指定点的开环增益MATLAB控制系统工具箱提供了rlocfind命令,可以在绘制的根轨迹上获得定位点的增益K值。语法:k,p=rlocfind(G)%获得定位点的增益和极点说明:k和p分别是定位点的增益和极点。该命令在产生根轨迹后执行,执行该命令后,在命令窗口会出现提示“Selectapointinthegraphicswindow”,鼠标在图形窗口显示为十字形,当单击根轨迹上的某点时就会获得该点的增益k和对应的所有极点p。,2.主导极点的等线和等n线语法:sgrid(new)%清除图形窗口绘制等线和等n线sgrid(zeta,wn,new)%绘制指定的等线和等n线说明:new为创建的新图形窗口,清除该图形窗口并绘制等线和等n线,如果绘制了根轨迹图后可省略new,直接添加等M线和等线;zeta和wn分别为指定的和n。,3.系统根轨迹的设计工具RLToolMATLAB控制工具箱还提供了一个系统根轨迹分析的图形界面,使用rltool命令打开该界面。语法:rltool%打开空白的根轨迹分析的图形界面rltool(G)%打开某系统根轨迹分析的图形界面,6.7线性系统的状态空间设计,6.7.1极点配置法1.单输入系统的极点配置MATLAB使用acker命令来对单输入单输出系统极点配置。语法:k=acker(A,B,p)%SISO系统极点配置说明:A、B为系统矩阵;p为期望特征值数组。2.多输入系统的极点配置3.离散系统的极点配置,6.7.2最优二次型设计,1.连续系统最优二次型设计MATLAB使用lqr命令来求解最优问题。语法:K,P,E=lqr(A,B,Q,R)%连续系统最优二次型调节器设计说明:A、B、Q、R矩阵定义如上,P为Riccati方程的解,K为最优增益反馈矩阵,E为闭环特征值。,2.离散系统最优二次型设计MATLAB提供的离散最优设计的命令为dlqr。语法:K,P,E=dlqr(A,B,Q,R)%离散最优二次型调节器设计,3.对输出加权的最优二次型设计在很多情况下,需要对输出量加权而不是对状态量加权,其代价函数:MATLAB使用lqry命令解相应的Riccati方程和最优反馈增益。语法:K,P,E=lqry(A,B,Q,R)%系统加权最优二次型调节器设计,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 控制 系统分析 设计
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文