1、第六章 控制系统的数学描述与建模,控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。,在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。,按系统性能分:线性系统和非线性系统;连续系统和离散系统;定常系统和时变系统;确定系统和不确定系统。 1、线性连续系统:用线性
2、微分方程式来描述,如果微分方程的系数为常数,则为定常系统;如果系数随时间而变化,则为时变系统。今后我们所讨论的系统主要以线性定常连续系统为主。 2、线性定常离散系统:离散系统指系统的某处或多处的信号为脉冲序列或数码形式。这类系统用差分方程来描述。 3、非线性系统:系统中有一个元部件的输入输出特性为非线性的系统。,6.1 系统的分类,第六章 控制系统的数学描述与建模,微分方程是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。如果已知输入量及变量的初始条件,对微分方程进行求解,就可以得到系统输
3、出量的表达式,并由此对系统进行性能分析。通过拉氏变换和反变换,可以得到线性定常系统的解析解,这种方法通常只适用于常系数的线性微分方程,解析解是精确的,然而通常寻找解析解是困难的。MATLAB提供了ode23、ode45等微分方程的数值解法函数,不仅适用于线性定常系统,也适用于非线性及时变系统。,6.2 线性定常连续系统的微分方程模型,电路图如下,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V,t=0时刻接入1V的电压,求0t15s时,i(t),vo(t)的值,并且画出电流与电容电压的关系曲线。,clear clc close t0=0; tfinal=15;
4、 x0=0.5;0; %初始化,电感电流为0,电容电压为0.5v %tol=0.001; %数值计算精度 t,x=ode45(elecsys,t0,tfinal,x0); %elecsys是系统微分方程的描述函数 figure(1) subplot(211) plot(t,x(:,1) title(capacitor voltage) xlabel(time-sec),subplot(212) plot(t,x(:,2) title(current of L) xlabel(time-sec) figure(2) vc=x(:,1); i=x(:,2); plot(vc,i); title(c
5、urrent versus capacitor voltage) xlabel(capacitor voltage) ylabel(current),图6-1 时间与电流、电容电压的关系曲线,图6-2 电流与电容电压的关系曲线,对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。,6.3 传递函数描述,一、连续系统的传递函数模型 连续系统的传递函数如下:,零极点模型实际上是传
6、递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。,在MATLAB中零极点增益模型用z,p,K矢量组表示。即: z=z1,z2,zm p=p1,p2,.,pn K=k 函数tf2zp()可以用来求传递函数的零极点和增益。,二、零极点增益模型,K为系统增益,zi为零点,pj为极点,控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。函数r,p,k=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余
7、数返回到向量r,极点返回到列向量p,常数项返回到k。b,a=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。,三、部分分式展开,举例:传递函数描述1)num=12,24,0,20;den=2 4 6 2 2;2)借助多项式乘法函数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);,零极点增益模型: num=1,11,30,0; den=1,9,45,87,50; z,p,k=tf2zp(num,den) ,z=0-6-5,p=-3.0
8、000+4.0000i-3.0000-4.0000i-2.0000-1.0000,k=1,结果表达式:,部分分式展开: num=2,0,9,1; den=1,1,4,4; r,p,k=residue(num,den) ,p=0.0000+2.0000i0.0000-2.0000i-1.0000,k=2,r=0.0000-0.2500i0.0000+0.2500i-2.0000,结果表达式:,状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入输出关系,揭示了系统内部状态对系统性能的影响。,6.4
9、 状态空间描述,在MATLAB中,系统状态空间用(A,B,C,D)矩阵组表示。,举例:系统为一个两输入两输出系统 A=1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14; B=4 6; 2 4; 2 2; 1 0; C=0 0 2 1; 8 0 2 2; D=zeros(2,2);,在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型的转换。模型转换的函数包括: residue:传递函数模型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换
10、为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型,6.5 模型的转换与连接,一、模型的转换,用法举例: 1)已知系统状态空间模型为:A=0 1; -1 -2; B=0;1; C=1,3; D=1; num,den=ss2tf(A,B,C,D,iu) iu用来指定第n个输入,当只有一个输入时可忽略。 num=1 5 2; den=1 2 1;z,p,k=ss2zp(A,B,C,D,iu) z= -4.5616 p= -1 k=1-0.4384 -1,2)已知一个单输入三输出系统的传递函数
11、模型为:num=0 0 -2;0 -1 -5;1 2 0;den=1 6 11 6; A,B,C,D=tf2ss(num,den) A= -6 -11 -6 B= 1 C= 0 0 -2 D= 01 0 0 0 0 -1 -5 00 1 0 0 1 2 0 0,3)系统的零极点增益模型:z=-3;p=-1,-2,-5;k=6; num,den=zp2tf(z,p,k) num= 0 0 6 18 den= 1 8 17 10a,b,c,d=zp2ss(z,p,k) a= -1.0000 0 0 b=1 2.0000 -7.0000 -3.1623 10 3.1623 0 0c= 0 0 1.8
12、974 d=0 注意:零极点的输入可以写出行向量,也可以写出列向量。,4)已知部分分式:r=-0.25i,0.25i,-2; p=2i,-2i,-1;k=2; num,den=residue(r,p,k) num=2 0 9 1 den=1 1 4 4 注意余式一定要与极点相对应。,1、并联:parallel 格式1: a,b,c,d=parallel(a1,b1,c1,d1,a2,b2,c2,d2) 并联连接两个状态空间系统。对应于SISO系统的并联连接。其并联后其输出为sys1和 sys2这两个系统的输出之和。 格式2: a,b,c,d=parallel(a1,b1,c1,d1,a2,b2
13、,c2,d2,inp1,inp2,out1,out2) 对应于MIMO系统的并联连接。in1与in2指定了相连接的输入端,out1和out2指定了进行信号相加的输出端。,二、模型的连接,inp1和inp2分别指定两系统中要连接在一起的输入端编号,从u1,u2,un依次编号为1,2,n; out1和out2分别指定要作相加的输出端编号,编号方式与输入类似。inp1和inp2既可以是标量也可以是向量。out1和out2用法与之相同。如inp1=1,inp2=3表示系统1的第一个输入端与系统2的第三个输入端相连接。若inp1=1 3,inp2=2 1则表示系统1的第一个输入与系统2的第二个输入连接,
14、以及系统1的第三个输入与系统2的第一个输入连接。num,den=parallel(num1,den1,num2,den2) 将并联连接的传递函数进行相加。,2、串联:series 格式: a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2) 串联连接两个状态空间系统。 a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2,out1,in2) out1和in2分别指定系统1的部分输出和系统2的部分输入进行连接。 num,den=series(num1,den1,num2,den2) 将串联连接的传递函数进行相乘。,3、反馈:feedback 格式
15、: a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2) 将两个系统按反馈方式连接,一般而言,系统1为对象,系统2为反馈控制器。 a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)系统1的所有输出连接到系统2的输入,系统2的所有输出连接到系统1的输入,sign用来指示系统2输出到系统1输入的连接符号,sign缺省时,默认为负,即sign= -1。总系统的输入/输出数等同于系统1。 a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1) 部分反馈连接,将系统1的指定输出out1
16、连接到系统2的输入,系统2的输出连接到系统1的指定输入inp1,以此构成 闭环系统。 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缺省时,默认为负反馈。 ac,bc,cc,dc=cloop(a,b,c,d,outputs,input
17、s) 表示将指定的输出outputs反馈到指定的输入inputs,以此构成闭环系统的状态空间模型。一般为正反馈,形成负反馈时应在inputs中采用负值。 numc,denc=cloop(num,den,sign) 表示由传递函数表示的开环系统构成闭环系统,sign意义与上述相同。,举例应用: 1)exp6_2.m 系统1为:系统2为:求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统1按单位负反馈连接时的状态方程。,clc clear more on a1=0 1;-1 -2; b1=0;1; c1=1 3;d1=1; a2=0 1;-1 -3; b2=0;1; c2=1 4;d2=0;
18、 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) disp(单位负反馈连接) %单位负反馈 a,b,c,d=cloop(a1,b1,c1,d1),2)exp6_3.m 系统1
19、、系统2方程如下所示。,求部分并联后的状态空间,要求u11与u22连接,u13与u23连接,y11与y21连接。,clc clear a1=1 4 4;2 2 1;3 6 2; b1=0 1 0;1 0 0;0 0 1; c1=0 0 1;0 1 1;d1=0 1 0;1 0 1; a2=1 -1 0;3 -2 1;1 6 -1; b2=1 0 0;0 1 0;0 0 1; c2=0 1 0;1 0 1;d2=1 1 0;1 0 1; % 部分并联后的状态空间,要求u11与u22连接,u13与u23连接, % y11与y21连接 disp(部分并联连接后的状态方程) a,b,c,d=paral
20、lel(a1,b1,c1,d1,a2,b2,c2,d2,1 3,2 3,1,1) %input1=1 3 %input2=2 3 %output1=1 %output2=1,ctrb和obsv函数可以求出状态空间系统的可控性和可观性矩阵。格式:co=ctrb(a,b) ob=obsv(a,c)对于nn矩阵a,nm矩阵b和pn矩阵c ctrb(a,b)可以得到nnm的可控性矩阵 co=b ab a2b an-1b obsv(a,c)可以得到nmn的可观性矩阵 ob=c ca ca2 can-1当co的秩为n时,系统可控;当ob的秩为n时,系统可观。,三、模型的属性,6.6 控制系统的分析方法,早
21、期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线。MATLAB控制系统工具箱和SIMULINK辅助环境的出现,给控制系统分析带来了福音。控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析。,6.6.1 控制系统的稳定性分析,1.对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的。 2.对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的。 3.若连续时间系统
22、的全部零极点都位于S左半平面;或若离散时间系统的全部零极点都位于Z平面单位圆内,则系统是最小相位系统。,一、系统稳定及最小相位系统判据,2、直接判别 MATLAB提供了直接求取系统所有零极点的函数,因此可以直接根据零极点的分布情况对系统的稳定性及是否为最小相位系统进行判断。,二、系统稳定及最小相位系统的判别方法,1、间接判别(工程方法) 劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,如果劳斯表第一列中出现小于零的数值,系统不稳定。 胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔维茨矩阵为正定矩阵时,系统稳定。,例exp6_4.m 已知某系统的模型如右所示:,要求判断系统的稳定性及系统是否
23、为最小相位系统。,%系统描述 a=1 2 -1 2;2 6 3 0;4 7 -8 -5;7 2 1 6; b=-1 0 0 1; c=-2 5 6 1;d=7; %求系统的零极点 z,p,k=ss2zp(a,b,c,d) %检验零点的实部;求取零点实部大于零的个数 ii=find(real(z)0) n1=length(ii);,%检验极点的实部;求取极点实部大于零的个数 jj=find(real(p)0) n2=length(jj); %判断系统是否稳定 if(n20)disp(the system is unstable)disp(the unstable pole are:)disp(p
24、(jj)elsedisp(the system is stable) end %判断系统是否为最小相位系统 if(n10)disp(the system is a nonminimal phase one) elsedisp(the syetem is a minimal phase one) end pzmap(p,z) %绘制零极点图,图6-3 零极点图,z = -8.9995 -2.5260 8.0485 + 0.5487i8.0485 - 0.5487i p = -8.2656 -2.4242 7.8449 + 0.3756i7.8449 - 0.3756i k = 7 ii = 34
25、 jj = 34 the system is unstable the unstable pole are:7.8449 + 0.3756i7.8449 - 0.3756i the system is a nonminimal phase one,例exp6_5.m 系统模型如下所示,判断系统的稳定性,以及系统是否为最小相位系统。,%系统描述 num=3 16 41 28; den=1 14 110 528 1494 2117 112; %求系统的零极点 z,p,k=tf2zp(num,den) %检验零点的实部;求取零点实部大于零的个数 ii=find(real(z)0) n1=length
26、(ii); %检验极点的实部;求取极点实部大于零的个数 jj=find(real(p)0) n2=length(jj);,%判断系统是否稳定 if(n20)disp(the system is unstable)disp(the unstable pole are:)disp(p(jj)elsedisp(the system is stable) end %判断系统是否为最小相位系统 if(n10)disp(the system is a nonminimal phase one) elsedisp(the syetem is a minimal phase one) end %绘制零极点图
27、pzmap(p,z) p z,ii=find(条件式) 用来求取满足条件的向量的下标向量,以列向量表示。,例如 exp6_5.m中的条件式为real(p0),其含义就是找出极点向量p中满足实部的值大于0的所有元素下标,并将结果返回到ii向量中去。这样如果找到了实部大于0的极点,则会将该极点的序号返回到ii下。如果最终的结果里ii的元素个数大于0,则认为找到了不稳定极点,因而给出系统不稳定的提示,若产生的ii向量的元素个数为0,则认为没有找到不稳定的极点,因而得出系统稳定的结论。,pzmap(p,z) 根据系统已知的零极点p和z绘制出系统的零极点图,补: 根的分布在连续系统的时域分析中的应用,1
28、. 系统的稳定性,例6_6,求系统的零、极点,增益,零、极点图。 程序如下:,%findzp.m %This Program creates a transfer function and %then finds and displays its poleszeros % Z,P,K=tf2zp(num,den) pzmap(num,den) title(Pole-Zero Map),图形如6-4所示:,图6-4 控制系统的零、极点图,例6_7,num=2 5 1; den=1 2 3; p,z=pzmap(num,den); pzmap(num,den) title(Pole-Zero Ma
29、p),求系统的零、极点,增益,零、极点图。 程序如下:,图形如6-5所示:,图6-5 控制系统的零、极点图,6.6.2 控制系统的时域分析,一个动态系统的性能常用典型输入作用下的响应来描述。响应是指零初始值条件下某种典型的输入函数作用下对象的响应,控制系统常用的输入函数为单位阶跃函数和脉冲激励函数(即冲激函数)。在MATLAB的控制系统工具箱中提供了求取这两种输入下系统响应的函数。,一、时域分析的一般方法,1.求取系统单位阶跃响应:step() 2.求取系统的冲激响应:impulse(),1、step()函数的用法,1).y=step(num,den,t):其中num和den分别为系统传递函数
30、描述中的分子和分母多项式系数,t为选定的仿真时间向量,一般可以由t=0:step:end等步长地产生出来。该函数返回值y为系统在仿真时刻各个输出所组成的矩阵。,3).y,x,t=step(A,B,C,D,iu):其中A,B,C,D为系统的状态空间描述 矩阵,iu用来指明输入变量的序号。x为系统返回的状态轨迹。,2).y,x,t=step(num,den):此时时间向量t由系统模型的特性自动生成, 状态变量x返回为空矩阵。,图6-4 系统单位阶跃响应曲线,图6-5 状态变量的轨迹曲线,5).线性系统的稳态值可以通过函数dcgain()来求取,其调用格式为:dc=dcgain(num,den)或d
31、c=dcgain(a,b,c,d),4).如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式: step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu);,例exp6_6.m :作二阶控制系统 的阶跃响应曲线。程序如下:,wn=6; zeta=0.1:0.1:0.4,1.0,2.0; figure(1) hold on for zet=zetanum=wn.2;den=1,2*zet*wn,wn.2;step(num,den) end title(step response) hold off,G
32、(s)=wn.2/(s2+2*wn*zet*s+wn.2),图形如6-6所示,图6-6 不同阻尼系数的阶跃响应曲线,作业 1.,exp6_7,exp6_8,2、impulse()函数的用法,求取脉冲激励响应的调用方法与step()函数基本一致。 y=impulse(num,den,t);y,x,t=impulse(num,den);y,x,t=impulse(A,B,C,D,iu,t) impulse(num,den);impulse(num,den,t) impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t),仿真时间t的选择: 1).对于典型二阶系统根据其响应时
33、间的估算公式 可以确定。 2).对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把t选大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。 3).一般来说,先不指定仿真时间,由MATLAB自己确定,然后根据结果,最后确定合适的仿真时间。 4).在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般不易取太大。,例exp6_7.m :控制系统的传递函数分别为,作系统的脉冲响应曲线。,num1=0 0 1; num2=0 1 0; num3=1 0 0;,den=1 2 10;,impulse(num1,den);hold on;,impulse(num2,den);impuls
34、e(num3,den);,脉冲响应曲线如图6-7所示。,图6-7 控制系统的脉冲响应,作业2.,二、常用时域分析函数,时间响应探究系统对输入和扰动在时域内的瞬态行为,系统特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上反映出来。MATLAB除了提供前面介绍的对系统阶跃响应、冲激响应等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,如: covar:连续系统对白噪声的方差响应 initial:连续系统的零输入响应 lsim:连续系统对任意输入的响应 对于离散系统只需在连续系统对应函数前加d就可以,如dstep,dimpulse等。 它们的调用格式与step、impulse
35、类似,可以通过help命令来察看自学。,三、时域分析应用实例,MATLAB的step()和impulse()函数本身可以处理多输入多输出的情况,因此编写MATLAB程序并不因为系统输入输出的增加而变得复杂。,exp6_8,%系统状态空间描述 a=-2.5 -1.22 0 0;1.22 0 0 0;1 -1.14 -3.2 -2.56;.0 0 2.56 0; b=4 1;2 0;2 0;0 0; c=0 1 0 3;0 0 0 1; d=0 -2;-2 0; %绘制闭环系统的阶跃响应曲线 figure(1) step(a,b,c,d) title(step response) xlabel(t
36、ime-sec) ylabel(amplitude) figure(2) impulse(a,b,c,d) title(impulse response) xlabel(time-sec) ylabel(amplitude),图6-9a 系统单位阶跃响应曲线,图6-9b 系统脉冲响应曲线,exp6_9,exp6_10,%输入期望得超调量及峰值时间 pos=input(please input expect pos(%)=); tp=input(please input expect tp=); z=log(100/pos)/sqrt(pi2+(log(100/pos)2); wn=pi/(tp
37、*sqrt(1-z2); num=wn2; den=1 2*z*wn wn2; t=0:0.02:4; y=step(num,den,t); plot(t,y) xlabel(time-sec) ylabel(y(t) grid d=wn2 e=(2*z*wn-1)/d,图6-10 系统单位阶跃响应曲线,运算结果: d =16.7331e =0.0771,6.6.3 控制系统的频域分析,1.频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出带宽、增益、转折频率、闭环稳定性等系统特征。 2.频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系特性。频率特性函数与传递函数有
38、直接的关系,记为:,一、频域分析的一般方法,1)求取系统对数频率特性图(波特图):bode() 2)求取系统奈奎斯特图(幅相曲线图或极坐标图):nyquist(),3.频域分析法是应用频率特性研究控制系统的一种典型方法。采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确地看出其物理实质和解决途经。通常将频率特性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称幅相曲线,MATLAB提供了绘制这两种曲线的函数。,1、对数频率特性图(波特图),1)对数频率特性图包括
39、了对数幅频特性图和对数相频特性图。横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。,MATLAB提供了函数bode()来绘制系统的波特图,其用法如下:,2)bode(a,b,c,d):自动绘制出系统的一组Bode图,它们是针对连续状态空间系统a,b,c,d的每个输入的Bode图。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。,3)bode(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的波特图。 4)bode(num,den):可绘制出以连续时间多项式传递函数表示的系统的波特图。
40、5)bode(a,b,c,d,iu,w)或bode(num,den,w):可利用指定的角频率矢量绘制出系统的波特图。 6)当带输出变量mag,pha,w或mag,pha引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角。相角以度为单位,幅值可转换为分贝单位:magdb=20log10(mag),2、奈奎斯特图(幅相频率特性图),对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw)和Re(G(jw)。以Re(G(jw) 为横坐标, Im(G(jw) 为纵坐标绘制成为极坐标频率特性图。,MATLAB提供了函数nyquis
41、t()来绘制系统的极坐标图,其用法如下:,1)nyquist(a,b,c,d):绘制出系统的一组Nyquist曲线,每条曲线相应于连续状态空间系统a,b,c,d的输入/输出组合对。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。 2)nyquist(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的极坐标图。,3)nyquist(num,den):可绘制出以连续时间多项式传递函数表示的系统的极坐标图。 4)nyquist(a,b,c,d,iu,w)或nyquist(num,den,w):可利用指定的角频率矢量绘制出系统的极坐标图。 5)当不带返回参数时,直接
42、在屏幕上绘制出系统的极坐标图(图上用箭头表示w的变化方向,负无穷到正无穷) 。当带输出变量re,im,w引用函数时,可得到系统频率特性函数的实部re和虚部im及角频率点w矢量(为正的部分)。可以用plot(re,im)绘制出对应w从负无穷到零变化的部分。,k=42; z=; p=-6 3; num,den=zp2tf(z,p,k)%得到开环传函的分子和分母 figure(1) nyquist(num,den);%开环nyquist曲线 title(nyquist plot) figure(2) num1,den1=cloop(num,den);%得到闭环传函的分子和分母 impulse(num
43、1,den1);%闭环冲击响应 title(impulse Response) mag,pha,w=bode(num,den);%仅bode(num,den)就可以求出bode图。注意所用为开环传函,返回变量格式,不绘图。 Gm,Fm,Wgc,Wfc=margin(mag,pha,w) %返回变量格式,不绘图。,例:对于开环传递函数为G(s)=42/(s+6)*(s-3)的系统,其奈氏图 和闭环冲击响应如下所示。,图6-11 开环nyquist曲线,%可见虽然开环有一个右极点,但nyquist图逆时针包围(-1,j0)点 一圈,从冲击响应上可以看出闭环系统稳定,图6-12 闭环冲击响应,二、常
44、用频域分析函数,MATLAB除了提供前面介绍的基本频域分析函数外,还提供了大量在工程实际中广泛应用的库函数,由这些函数可以求得系统的各种频率响应曲线和 特征值。如:,margin:求幅值裕度和相角裕度及对应的转折频率 freqs:模拟滤波器特性 nichols:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线) ngrid:尼科尔斯方格图,margin()函数,margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。幅值裕度和相角裕度是针对开环SISO系统而言,它指示出系统闭环时的相对稳定性。当不带输出变量引用时,margin可在当前图形窗口中绘制出带有裕量及相应频率显示的
45、Bode图,其中幅值裕度以分贝为单位。,幅值裕度是在相角为-180度处使开环增益为1的增益量,如在-180度相频处的开环增益为g,则幅值裕度为1/g;若用分贝值表示幅值裕度,则等于:-20*log10(g)。类似地,相角裕度是当开环增益为1.0时,相应的相角与180度角的和。,1)margin(mag,phase,w):由bode指令得到的幅值mag(不是以dB为单位) 、相角phase及角频率w矢量绘制出带有裕量及相应频率显示的bode图。 2)margin(num,den) :可计算出连续系统传递函数表示的幅值裕度和相角裕度并绘制相应波特图。类似,margin(a,b,c,d)可以计算出连
46、续状态空间系统表示的幅值裕度和相角裕度并绘制相应波特图。 3)gm,pm,wcg,wcp=margin(mag,phase,w):由幅值mag(不是以dB为单位) 、相角phase及角频率w矢量计算出系统幅值裕度和相角裕度及相应的相角交界频率wcg、截止频率wcp,而不直接绘出Bode图曲线。,例 某系统的开环传递函数为:G(s)=k/s(s+1)(0.2s+1) 求k分别为2和20时的幅值裕度与相角裕度。,num1=2;num2=20; den=conv(1 0,conv(1 1,0.2 1); w=logspace(-1,2,100); figure(1) mag1,pha1=bode(n
47、um1,den,w); margin(mag1,pha1,w) figure(2) mag2,pha2=bode(num2,den,w); margin(mag2,pha2,w),图6-13a k=2时的幅值裕度与相角裕度,图6-13b k=20时的幅值裕度与相角裕度,freqs()函数,freqs用于计算由矢量a和b构成的模拟滤波器H(s)=B(s)/A(s)的幅频响应。,1)h=freqs(b,a,w)用于计算模拟滤波器的幅频响应,其中实矢量w用于指定频率值,返回值h为一个复数行向量,要得到幅值必须对它取绝对值,即求模。 2)h,w=freqs(b,a)自动设定200个频率点来计算频率响应,这200个频率值记录在w中。 3)h,w=freqs(b,a,n)设定n个频率点计算频率响应。不带输出变量的freqs函数,将在当前图形窗口中绘制出幅频和相频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度。,三、频域分析应用实例,Nyquist曲线是根据开环频率特性在复平面上绘出的幅相轨迹,根据开环的Nyquist曲线,可以判断闭环系统的稳定性。系统稳定的充要条件为:Nyquist曲线按逆时针包围临界点(-1,j0)的圈数R ,等于开环传递函数位于s右半平面的极点数P,否则闭环系统不稳定,闭环正实部特征根个数Z=P-R。若刚好过临界点,则系统临界稳定。,