控制系统工具箱.ppt
72页第6章 控制系统工具箱•在MATLAB的Control System Toolbox(控制系统工具箱)中提供了许多仿真函数与模块,用于控制系统的仿真和分析本章着重介绍控制系统的模型、时域分析方法和频域分析方法等内容对对线线性性定定常常系系统统,,式式中中s的的系系数数均均为为常常数数,,且且a1不不等等于于零零,,这这时时系系统统在在MATLAB中中可可以以方方便便地地由由分分子子和和分分母母多多项项式式系系数数构构成成的的两两个个向向量量唯唯一一地地确确定定,,这两个向量分别这两个向量分别用用num和和den表示num=[b1,b2,…,bm,bm+1]den=[a1,a2,…,an,an+1]连续系统的传递函数模型(连续系统的传递函数模型(tftf对象对象))单输入单输出(单输入单输出(SISO) LTI系统的系统的传递函数传递函数::注意:它们都是按注意:它们都是按s的的降幂降幂进行排列的!进行排列的!G(S)R(S)C(S)MATLAB中中,,用用函函数数对对象象tf()来来建建立立系系统统的的传传递递函数模型函数的调用格式为:函数模型函数的调用格式为:G=tf(num,den)例:系统传递函数为:例:系统传递函数为:>> num=[12,24,0,20];den=[2 4 6 2 2]; G=tf(num,den) Transfer function: 12 s^3 + 24 s^2 + 20-------------------------------2 s^4 + 4 s^3 + 6 s^2 + 2 s + 2•零极点模型零极点模型实际上是传递函数模型的另一种表现形式,实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以解因式处理,以获得系统的零点和极点获得系统的零点和极点的表示形式。
的表示形式在在MATLAB中零极点增益模型中零极点增益模型用用[z,p,K]矢量组表示:矢量组表示:z=[z1,z2,…,zm];;p=[p1,p2,...,pn];;KGain=k;;零极点增益模型零极点增益模型((zpk对象)对象)D(s)为特征多项式,为特征多项式,D(s)=0为特征方程,为特征方程,K为系为系统增益,统增益,zi为零点,为零点,pj为极点为极点零极点决定了系统的零极点决定了系统的性能性能 (系统的阶次和多项(系统的阶次和多项式表达时的系数)式表达时的系数)MATLAB中中,,用用函函数数对对象象zpk()来来建建立立系系统统的的零零极点增益极点增益模型函数的调用格式为:模型函数的调用格式为:G1=zpk(z,p,k)例:系统的零极点模型为:例:系统的零极点模型为:则该模型可以由以下语句输入到则该模型可以由以下语句输入到MATLAB的工作空间中:的工作空间中:>> z=[-1.9294;-0.0353+0.9287i;-0.0353-0.9287i];>> p=[-0.9567+1.2272i;-0.9567-1.2272i; 0.0433+0.6412i;0.0433-0.6412i];>> kGain=6;>> G1=zpk(z,p,kGain) Zero/pole/gain: 6 (s+1.929) (s^2 + 0.0706s + 0.8637)----------------------------------------------(s^2 - 0.0866s + 0.413) (s^2 + 1.913s + 2.421)可可见见,,系系统统的的零零点点和和极极点点分分别别为为分分子子、、分分母母多多项项式式的的根根,,增增益益是是传传递递函函数数分分子子和和分分母母最最高高项项系系数数的比值。
的比值LTI系系统统可可以以用用一一组组一一阶阶微微分分方方程程来来描描述述,,其其矩矩阵阵形形式式即即为为现现代代控控制制理理论论中中常常用用的的状状态态空空间间表表示示法法状状态态方方程程与与输输出出方方程程的的组组合合称称为为状状态态空空间间表表达达式式,,又又称称为为动动态态方方程程,,经经典典控控制制理理论论用用传传递递函函数数将将输输入入—输输出出关关系系表表达达出出来来,,而而现现代代控控制制理理论论则则用用状状态态方方程程和和输输出出方方程程来来表表达达输输入入—输输出出关关系系,,揭揭示示了了系系统统内内部部状状态态对系统性能的影响对系统性能的影响在在MATLAB中,中,系统状态空间用(系统状态空间用(A,B,C,D)矩阵组表示矩阵组表示x为状态向量;为状态向量;u为输入向量;为输入向量;y为输出向为输出向量量A为系统矩阵;为系统矩阵;B为输入矩阵;为输入矩阵;C为输出矩阵;为输出矩阵;D为前馈矩阵;为前馈矩阵;状态空间模型(状态空间模型(ssss对象)对象)* *然然后后使使用用函函数数对对象象ss()来来建建立立系系统统的的状状态态空空间间模型函数的调用格式为:模型。
函数的调用格式为:G3=ss(A,B,C,D)MATLAB中中只只需需将将各各个个系系数数矩矩阵阵按按常常规规矩矩阵阵的的方式输入到工作空间中即可方式输入到工作空间中即可:例例:两输入两输出系统::两输入两输出系统:>> 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);>> G3=ss(A,B,C,D) c = x1 x2 x3 x4 y1 0 0 2 1 y2 8 0 2 2 d = u1 u2 y1 0 0 y2 0 0 Continuous-time model.>> a = x1 x2 x3 x4 x1 1 6 9 10 x2 3 12 6 8 x3 4 7 9 11 x4 5 12 13 14 b = u1 u2 x1 4 6 x2 2 4 x3 2 2 x4 1 0 6.1.4 线性离散时间系统的数学模型•在MATLAB中,离散系统的数学模型和连续系统的数学模型表达函数相同,只是需要输入系统的采样周期T, 具体格式如下。
•状态空间模型:sys=ss(A, B, C, D,Ts)•零极点模型:sys=zpk(z, p, k, Ts)•传递函数模型:sys=tf(num, den,Ts)•其中Ts为采样周期•连续系统状态空间转换为离散系统状态空间形式采用函数c2d,其调用格式为•sysd=c2d(sys, Ts) 或•[Ad, Bd, Cd, Dd]=c2dm(A, B, C, D, Ts, 'method')%将带选项的连续系统•%转换到离散系统•[Ad, Bd, Cd, Dd]=c2dt(A, B, C, T, lambda) •%带有输入纯延迟的连续形式转换到离散形式•在一些场合下需要用到某种模型,而在另外一些场在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就合下可能需要另外的模型,这就需要进行模型的转需要进行模型的转换换模型转换函数模型转换函数包括:包括:tf2zp:: 传递函数模型转换为零极点增益模型;传递函数模型转换为零极点增益模型;tf2ss:: 传递函数模型转换为状态空间模型;传递函数模型转换为状态空间模型;zp2tf:: 零极点增益模型转换为传递函数模型;零极点增益模型转换为传递函数模型;zp2ss:: 零极点增益模型转换为状态空间模型;零极点增益模型转换为状态空间模型;6.1.5 模型的转换函数函数tf2zp()可以用来求传递函数的零极点和增益。
可以用来求传递函数的零极点和增益ss2tf:: 状态空间模型转换为传递函数模状态空间模型转换为传递函数模型型ss2zp:: 状态空间模型转换为零极点增益状态空间模型转换为零极点增益模型模型例:已知某系统的传递函数零:例:已知某系统的传递函数零:求:同一系统所对应的极点增益模型求:同一系统所对应的极点增益模型》》num=[1,11,30,0];》》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den)z= 0 -6 -5p= -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000k= 1即,结果即,结果表达式为:表达式为:已知一个单输入三输出系统的传递函数模型为:已知一个单输入三输出系统的传递函数模型为:》》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= 0 1 0 0 0 0 -1 -5 0 0 1 0 0 1 2 0 0 系统的零极点增益模型:系统的零极点增益模型:注意注意::零极点的输入可以写成行向量零极点的输入可以写成行向量,,也可以写成列向也可以写成列向量量。
》》z=[-3];p=[-1,-2,-5];k=6;》》[num,den]=zp2tf(z,p,k)》》num= 0 0 6 18 den= 1 8 17 10》》[a,b,c,d]=zp2ss(z,p,k)》》a= -1.0000 0 0 b=1 2.0000 -7.0000 -3.1623 1 0 3.1623 0 0 c= 0 0 1.8974 d=0 控控制制系系统统常常用用到到并并联联系系统统,,这这时时就就要要对对系系统统函函数数进进行行分分解解,,使使其其表表现现为为一一些些基基本本控控制制单单元元((子子传传递递函函数数))的的和和的的形形式式同同时时部部分分分分式式展展开开也可以用来也可以用来对系统求解对系统求解6.1.6 部分分式展开部分分式展开 MATLAB中,中,Residue()函数可以实现传递函函数可以实现传递函数模型与部分分式模型的数模型与部分分式模型的互换。
互换•函函数数[r,p,k]=residue(num,den)对对两两个个多多项项式式的的比比进进行行部部分分分分式式展展开开,,即即把把传传函函分分解解为为微微分分单单元的形式元的形式•[b,a]=residue(r,p,k)可可以以将将部部分分分分式式转转化化为为多多项项式比式比p(s)/q(s)其其中中,,向向量量num和和den是是按按s的的降降幂幂排排列列的的多多项项式式系系数数向向量量((即即传传递递函函数数的的分分子子和和分分母母))R、、P分分别别为为各各个个子子传传递递函函数数的的增增益益和和极极点点,,K为为部部分分分式展开后的余项(常数项)分式展开后的余项(常数项)部分分式展开:部分分式展开:》》num=[2,0,9,1];》》den=[1,1,4,4]; [r,p,k]=residue(num,den)p= 0.0000+2.0000i 0.0000-2.0000i -1.0000k= 2r= 0.0000-0.2500i 0.0000+0.2500i -2.0000结果表达式:结果表达式:其解可其解可以表示以表示为:为:例:对传递函数模型的串联:例:对传递函数模型的串联:[num,den]=series(num1,den1,num2,den2) %将串联连接的传递函数进行相乘。
%将串联连接的传递函数进行相乘可以可以使用使用series()函数直接对串联环节进行化简函数直接对串联环节进行化简::G=series(sys1,sys2)格式:格式:例:对状态空间模型的串联:例:对状态空间模型的串联:[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2) %串联连接两个状态空间系统%串联连接两个状态空间系统6.1.7 模型的连接例:对传递函数模型的并联:例:对传递函数模型的并联: [num,den]=parallel(num1,den1,num2,den2) 可以可以使用使用parallel()函数直接对并联环节进行化简函数直接对并联环节进行化简::G=parallel(G1,G2)格式:格式:例:并联连接两个状态空间:例:并联连接两个状态空间:[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)更简单地:更简单地:G=G1++G2•MATLAB中使用G=feedback(G1, G2, sign)直接对反馈系统进行化简,sign用来指示系统2输出到系统1输入的连接符号(反馈极性),sign省略时,默认为负,即sign=-1,sign=1表示正反馈。
1、传递函数的形式表示的反馈系统:、传递函数的形式表示的反馈系统:[num,den]=feedback(num1,den1,num2,den2,sign) 2、两个状态函数表示的系统按反馈方式连接:、两个状态函数表示的系统按反馈方式连接:[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2) [a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)%%系系统统1的的所所有有输输出出连连接接到到系系统统2的的输输入入,,系系统统2的的所所有有输输出出连连接接到到系系统统1的的输输入入总总系系统统的的输输入入/输输出出数数等等同同于于系统系统1[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1) %%部部分分反反馈馈连连接接,,将将系系统统1的的指指定定输输出出out1连连接接到到系系统统2的的输输入入,,系系统统2的的输输出出连连接接到到系系统统1的的指指定定输输入入inp1,以此构成,以此构成 闭环系统闭环系统•MATLAB中使用Gc=cloop(G, sign)直接对单位反馈系统进行化简,sign用来指示系统的反馈极性,sign省略时,默认为负,即sign=-1。
1、由传递函数表示的开环系统构成闭环系统:、由传递函数表示的开环系统构成闭环系统:[numc,denc]=cloop(num,den,sign) •%%当当sign=1时时采采用用正正反反馈馈;;当当sign= -1时时采采用用负负反反馈馈;;sign缺省时,默认为负反馈缺省时,默认为负反馈2、闭环系统的状态空间模型、闭环系统的状态空间模型[ac,bc,cc,dc]=cloop(a,b,c,d,sign) •%%通通过过将将所所有有的的输输出出反反馈馈到到输输入入,,从从而而产产生生闭闭环环系系统统的状态空间模型的状态空间模型[ac,bc,cc,dc]=cloop(a,b,c,d,outputs,inputs) •%%表表示示将将指指定定的的输输出出outputs反反馈馈到到指指定定的的输输入入inputs,以此构成闭环系统以此构成闭环系统•应用举例应用举例::1)) 系统系统1为:为: 系统系统2为:为:•求按串联、并联、正反馈、负反馈连接时的系统状态求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统方程及系统1按单位负反馈连接时的状态方程。
按单位负反馈连接时的状态方程2))系统系统1、系统、系统2方程如下所示方程如下所示求求 部部 分分并并联联后后的的状状态态空空间间,,要要求求u11与与u22连连 接接 ,, u13与与u23连连接接,,y11与与y21连连接•ctrb和和obsv函数可以求出状态空间系统的可控性函数可以求出状态空间系统的可控性和可观性矩阵和可观性矩阵•格式:格式:co=ctrb(a,b) ob=obsv(a,c)•对于对于n×n矩阵矩阵a,,n×m矩阵矩阵b和和p×n矩阵矩阵cüctrb(a,b)可以得到可以得到n×nm的可控性矩阵的可控性矩阵üco=[b ab a2b … an-1b]üobsv(a,c)可以得到可以得到nm×n的可观性矩阵的可观性矩阵üob=[c ca ca2 … can-1]’•当当co的秩为的秩为n时,系统可控;当时,系统可控;当ob的秩为的秩为n时,系时,系统可观6.1.8 模型的属性模型的属性例例6.12 已知某系统的闭环传递函数为:已知某系统的闭环传递函数为:要求判断系统的稳定性及系统是否为最小相位系要求判断系统的稳定性及系统是否为最小相位系统7 s^4 - 32 s^3 - 684 s^2 + 2689 s + 10365-------------------------------------------------------- s^4 - 5 s^3 - 86 s^2 + 345 s + 1236%exp4_1.mclear; clc; close all; %系统描述系统描述n =[7,-32,-684,2689,10365];d =[1,-5,-86,345,1236];%求系统的零极点求系统的零极点[z,p,k]=tf2zp(n,d)%检验零点的实部;求取零点实部大检验零点的实部;求取零点实部大于零的个数于零的个数ii=find(real(z)>0)n1=length(ii);%检验极点的实部;求取极点实部大检验极点的实部;求取极点实部大于零的个数于零的个数jj=find(real(p)>0)n2=length(jj);%判断系统是否稳定判断系统是否稳定if(n2>0) disp('the system is unstable') disp('the unstable pole are:') disp(p(jj)) %显示不稳定极点显示不稳定极点p(jj) else disp('the system is stable')end%判断系统是否为最小相位系统判断系统是否为最小相位系统if(n1>0) disp('the system is a nonminimal phase one')else disp('the syetem is a minimal phase one')end%绘制零极点图绘制零极点图pzmap(p,z)源程序源程序ii=find(条件式条件式):用来求取满足条件的向量的下标向:用来求取满足条件的向量的下标向量,以列向量表示。
量,以列向量表示例例如如::条条件件式式为为real(p>0)real(p>0),,其其含含义义就就是是找找出出极极点点向向量量p p中中满满足足实实部部的的值值大大于于0 0的的所所有有元元素素下下标标,,并并将将结结果果返返回回到到iiii向向量量中中去去这这样样如如果果找找到到了了实实部部大大于于0 0的的极极点点,,则则会会将将该该极极点点的的序序号号返返回回到到iiii下下如如果果最最终终的的结结果果里里iiii的的元元素素个个数数大大于于0 0,,则则认认为为找找到到了了不不稳稳定定极极点点,,因因而而给给出出系系统统不不稳稳定定的的提示,反之得出系统稳定的结论提示,反之得出系统稳定的结论pzmap(p,z):根据系统已知的零极点:根据系统已知的零极点p和和z绘制出系绘制出系统的零极点分布图统的零极点分布图说明:说明:>> z = -8.9995 -2.5260 8.0485 + 0.5487i 8.0485 - 0.5487ip = -8.2656 -2.4242 7.8449 + 0.3756i 7.8449 - 0.3756ik = 7ii = 3 4jj = 3 4the system is unstablethe unstable pole are: 7.8449 + 0.3756i 7.8449 - 0.3756ithe system is a nonminimal phase one>> 运行窗口运行窗口例例6.13 系统闭环模型如下所示:系统闭环模型如下所示:判断系统的稳定性,以及系统是否为最小相位系统。
判断系统的稳定性,以及系统是否为最小相位系统clearclcclose all%系统描述系统描述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(ii);%检验极点的实部;求取极点实部检验极点的实部;求取极点实部大于零的个数大于零的个数jj=find(real(p)>0)n2=length(jj);%判断系统是否稳定判断系统是否稳定if(n2>0) disp('the system is unstable') disp('the unstable pole are:') disp(p(jj)) else disp('the system is stable')end%判断系统是否为最小相位系统判断系统是否为最小相位系统if(n1>0) disp('the system is a nonminimal phase one')else disp('the system is a minimal phase one')end%绘制零极点图绘制零极点图pzmap(p,z)源程序源程序>> z = -2.1667 + 2.1538i -2.1667 - 2.1538i -1.0000 p = -1.9474 + 5.0282i -1.9474 - 5.0282i -4.2998 -2.8752 + 2.8324i -2.8752 - 2.8324i -0.0550k = 3ii = []jj = []the system is stablethe system is a minimal phase one>> 运行窗口运行窗口1、、step()函数的用法函数的用法qy=step(num,den,t)::其中其中num和和den分别为系统分别为系统传递函数描述中的分子和分母多项式系数,传递函数描述中的分子和分母多项式系数,t为为选定的仿真时间向量选定的仿真时间向量,可以由,可以由t=0:step:end产生。
产生该函数返回值该函数返回值y为为系统在仿真时刻各个输出所组系统在仿真时刻各个输出所组成的矩阵成的矩阵q[y,x,t]=step(A,B,C,D,iu)::其中其中A,B,C,D为系统的为系统的状态空间描述矩阵,状态空间描述矩阵,iu用来指明输入变量的序用来指明输入变量的序号x为系统返回的状态轨迹为系统返回的状态轨迹q[y,x,t]=step(num,den)::此时此时时间向量时间向量t由系统模由系统模型的特性自动生成型的特性自动生成,对传递函数模型,,对传递函数模型,状态变状态变量量x返回为空矩阵返回为空矩阵在在MATLAB的控制系统工具箱中提供了求取的控制系统工具箱中提供了求取单单位阶跃响应位阶跃响应的函数的函数step()和和冲激响应冲激响应的函数的函数impulse() 6.2 6.2 控制系统的时域分析控制系统的时域分析控制系统的时域分析控制系统的时域分析q如果对具体的响应值不感兴趣,而只想绘制系统的如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式,阶跃响应曲线,可调用以下的格式,自动输出响应曲自动输出响应曲线线::step(num,den);;step(num,den,t);;step(A,B,C,D,iu,t);;step(A,B,C,D,iu);;q线性系统的线性系统的稳态值稳态值可以通过函数可以通过函数dcgain()来求取,来求取,其调用格式为:其调用格式为:dc=dcgain(num,den)或或dc=dcgain(a,b,c,d)clc;;clear;;close all%开环传递函数描述开环传递函数描述num=[20];den=[1 8 36 40 0];%求闭环传递函数求闭环传递函数[numc,denc]=cloop(num,den);%绘制闭环系统的阶跃响应曲线绘制闭环系统的阶跃响应曲线t=0:0.1:10;y=step(numc,denc,t);[y1,x,t1]=step(numc,denc);%对于传递函数调用,状态变量对于传递函数调用,状态变量x返回为空矩阵返回为空矩阵plot(t,y,'r:',t1,y1)title('the step responce')xlabel('time-sec')%求稳态值求稳态值disp('系统稳态值系统稳态值dc为:为:')dc=dcgain(numc,denc)源程序源程序运行窗口运行窗口>> 系统稳态值系统稳态值dc为:为:dc = 12、、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)clc;clear;% 系统模型建立系统模型建立num=3;den=conv([1 1+3i],[1 1-3i]);% 求系统的单位阶跃响应求系统的单位阶跃响应[y,x,t]=step(num,den);% 求响应的稳态值求响应的稳态值finalvalue=dcgain(num,den)% 求响应的峰值及对应的下标求响应的峰值及对应的下标[yss,n]=max(y);% 计算超调量及峰值时间计算超调量及峰值时间percentovershoot=100*(yss-finalvalue)/finalvaluetimetopeak=t(n)例例:已知系统已知系统G(s)=3/(s+1+3i)(s+1-3i)计算系统在阶跃输计算系统在阶跃输入时的峰值时间、超调量、调整时间等系统瞬态性能入时的峰值时间、超调量、调整时间等系统瞬态性能指标(稳态误差允许正负指标(稳态误差允许正负2%)%)% 计算上升时间计算上升时间n=1;while y(n)<0.1*finalvalue n=n+1;endm=1;while y(m)<0.9*finalvalue m=m+1;endrisetime=t(m)-t(n)% 计算调整时间计算调整时间k=length(t);while (y(k)>0.98*finalvalue)&(y(k)<1.02*finalvalue) k=k-1;endsettlingtime=t(k)运行结果运行结果finalvalue = 0.3000percentovershoot = 35.0914timetopeak = 1.0491risetime = 0.4417settlingtime = 3.5337>> 6.2.2 控制系统的根轨迹分析方法pzmap:绘制线性系统的:绘制线性系统的零极点图零极点图;rlocus::求系统根轨迹求系统根轨迹。
rlocfind:计算给定一组根的:计算给定一组根的根轨迹增益根轨迹增益sgrid::在在连连续续系系统统根根轨轨迹迹图图和和零零极极点点图图中中绘绘制制出出阻尼系数和自然频率栅格阻尼系数和自然频率栅格根轨迹图绘制:根轨迹图绘制: rlocus()qrlocus(num,den) 或或rlocus(a,b,c,d) :根据:根据SISO开环系统开环系统的传递函数模型和状态空间描述模型,的传递函数模型和状态空间描述模型,直接在屏幕上绘直接在屏幕上绘制出系统的根轨迹图开环增益的值从零到无穷大变化制出系统的根轨迹图开环增益的值从零到无穷大变化qrlocus(a,b,c,d,k)或或rlocus(num,den,k):: 通过通过指定开环增指定开环增益益k的变化范围的变化范围来绘制系统的根轨迹图来绘制系统的根轨迹图qr=rlocus(num,den,k) 或者或者[r,k]=rlocus(num,den) ::不在不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量矢量k ,,返回闭环系统特征方程返回闭环系统特征方程1++k*num(s)/den(s)=0的根的根r,,它有它有length(k)行,行,length(den)-1列,每行对应某列,每行对应某个个k值时的所有闭环极点。
或者同时返回值时的所有闭环极点或者同时返回k与与rq对于参数根轨迹,可以通过传递函数的等效变换而进行对于参数根轨迹,可以通过传递函数的等效变换而进行绘制若给出传递函数描述系统的分子项绘制若给出传递函数描述系统的分子项num为负,则为负,则利用利用rlocus函数绘制的是系统的零度根轨迹(正反馈系函数绘制的是系统的零度根轨迹(正反馈系统或非最小相位系统)统或非最小相位系统) rlocfind()函数函数rlocfind():找出给定的一组根(闭环极点):找出给定的一组根(闭环极点)对应的根轨迹增益对应的根轨迹增益q[k,p]=rlocfind(a,b,c,d)或者或者[k,p]=rlocfind(num,den) 它要求在屏幕上先已经绘制好有关的根轨它要求在屏幕上先已经绘制好有关的根轨迹图然后,此命令将产生一个光标以用来选迹图然后,此命令将产生一个光标以用来选择希望的闭环极点择希望的闭环极点命令执行结果:命令执行结果:k为对应为对应选择点处根轨迹开环增益;选择点处根轨迹开环增益;p为对应为对应K的系统闭的系统闭环特征根环特征根 q不带输出参数项不带输出参数项[k,p]时,同样可以执行,只是时,同样可以执行,只是此时只将此时只将k的值返回到缺省变量的值返回到缺省变量ans中。
中源程序源程序%根轨迹图的绘制根轨迹图的绘制clcclearclose all%已知系统开环传递函数模型已知系统开环传递函数模型num=1;den=conv([0.01 1 0],[0.02 1]);rlocus(num,den)[k1,p]=rlocfind(num,den)[k2,p]=rlocfind(num,den)title('root locus')Select a point in the graphics windowselected_point = -21.1302 - 0.8630ik1 = 9.6354p = 1.0e+002 * -1.0774 -0.2113 + 0.0086i -0.2113 - 0.0086iSelect a point in the graphics windowselected_point = 0.1023 +68.1800ik2 = 139.7356p = 1.0e+002 * -1.4809 -0.0095 + 0.6868i -0.0095 - 0.6868i说明:说明:重根重根即两即两条根条根轨迹轨迹曲线曲线汇合汇合处,处,纯虚纯虚根即根即根轨根轨迹与迹与虚轴虚轴的交的交点。
点sgrid()函数(等阻尼比/等振动频率栅格线)函数(等阻尼比/等振动频率栅格线)qsgrid::在现存的屏幕根轨迹或零极点图上绘在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率制出自然振荡频率wn、、阻尼比矢量阻尼比矢量z对应的格对应的格线线qsgrid(‘new’)::是先清屏,再画格线是先清屏,再画格线qsgrid(z,wn)::则绘制由用户指定的阻尼比矢量则绘制由用户指定的阻尼比矢量z、、自然振荡频率自然振荡频率wn的格线由控制理论知,离虚轴近的稳定极点由控制理论知,离虚轴近的稳定极点(主导极主导极点)对整个系统的响应贡献最大,且在系统处于点)对整个系统的响应贡献最大,且在系统处于临界阻尼状态时,相角为临界阻尼状态时,相角为45o,即根轨迹图上,应,即根轨迹图上,应当选择相角为当选择相角为45o的射线附近的的射线附近的K值通过rlocfind,配合,配合sgrid()函数可以找出合适的增益值函数可以找出合适的增益值% 系统开环传递函数为系统开环传递函数为G(s)=k/s(s+1)(s+2)% 试寻找一个合适的试寻找一个合适的k值使得闭环系值使得闭环系统具统具%有较理想的阶跃响应。
有较理想的阶跃响应 开环系统描述开环系统描述clc;clear;close allnum=1;den=conv([1 0],conv([1 1],[1 2]));z=[0.1:0.2:1];wn=[1:6];sgrid(z,wn);text(-0.3,2.4,'z=0.1')text(-0.8,2.4,'z=0.3')text(-1.2,2.1,'z=0.5')text(-1.8,1.8,'z=0.7')text(-2.2,0.9,'z=0.9')例例6.21 % 通过通过sgrid指令可以绘出指定阻尼比指令可以绘出指定阻尼比z和和%自然振荡频率自然振荡频率wn的栅格线的栅格线hold onrlocus(num,den)axis([-4 1 -4 4])[k,p]=rlocfind(num,den)% 由控制理论知,离虚轴近的稳定极由控制理论知,离虚轴近的稳定极点对整个系统的响应贡献大点对整个系统的响应贡献大% 通过通过rlocfind,配合前面所画的,配合前面所画的z及及wn %栅格线栅格线% 从而可以找出能产生主导极点阻尼从而可以找出能产生主导极点阻尼比比% z=0.707的合适增益的合适增益[numc,denc]=cloop(k,den);figure(2)step(numc,denc)运行窗口运行窗口>> Select a point in the graphics windowselected_point = -0.4988 + 0.4348ik = 0.6862p = -2.2454 -0.3773 + 0.4040i -0.3773 - 0.4040i>> 6.3 控制系统的频域分析MATLAB提供了函数提供了函数bode()来来绘制系统的波特图绘制系统的波特图,,其其用法用法如下:如下:qbode(num,den)::可绘制出以连续时间多项式传递函可绘制出以连续时间多项式传递函数表示的系统的波特图。
数表示的系统的波特图qbode(a,b,c,d,iu,w)或或bode(num,den,w)::可利用指定可利用指定的角频率矢量绘制出系统的波特图的角频率矢量绘制出系统的波特图由于横坐标按由于横坐标按对数分度,因此对数分度,因此w必须由必须由logsapce(对数生成语句)(对数生成语句)生成生成6.3.1 函数bodeqbode(a,b,c,d,iu)::可可得得到到从从系系统统第第iu个个输输入入到到所所有有输输出的波特图出的波特图q当当带带输输出出变变量量[mag,pha,w]或或[mag,pha]引引用用函函数数时时,,可可得得到到系系统统波波特特图图相相应应的的幅幅值值mag、、相相角角pha及及角角频频率率点点w矢矢量量或或只只是是返返回回幅幅值值与与相相角角相相角角以以度度为为单单位位 ,, 幅幅 值值 可可 转转 换换 为为 分分 贝贝 单单 位位 ::magdb=20×log10(mag)qbode(a,b,c,d)::自自动动绘绘制制出出系系统统的的一一组组Bode图图,,它它们们是是针针对对连连续续状状态态空空间间系系统统[a,b,c,d]的的每每个个输输入入的的Bode图图。
其其中中频频率率范范围围由由函函数数自自动动选选取取,,而而且且在在响响应快速变化的位置会自动采用更多取样点应快速变化的位置会自动采用更多取样点qMATLABMATLAB提提供供了了函函数数nyquist()来来绘绘制制系系统统的的极极坐坐标标图图,,其用法如下:其用法如下:Ønyquist(num,den)::可可绘制绘制出以连续时间多项式传出以连续时间多项式传递函数表示的递函数表示的系统的极坐标图系统的极坐标图Ønyquist(num,den, ω) 或或nyquist(a,b,c,d,iu, ω) :可:可利用指定的角频率矢量绘制出系统的极坐标图利用指定的角频率矢量绘制出系统的极坐标图6.3.2 奈奎斯特图(幅相频率特性图)奈奎斯特图(幅相频率特性图)Ønyquist(a,b,c,d,iu)::可得到从系统第可得到从系统第iu个输入到所个输入到所有输出的极坐标图有输出的极坐标图Ø当不带返回参数时,直接在屏幕上绘制出系统的极当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示坐标图(图上用箭头表示ω的变化方向,负无穷到的变化方向,负无穷到正无穷)正无穷) 当带输出变量。
当带输出变量[re,im, ω]引用函数时,引用函数时,可得到系统频率特性函数的实部可得到系统频率特性函数的实部re和虚部和虚部im及及角频角频率点率点w矢量(矢量(为正的部分为正的部分)可以用)可以用plot(re,im)绘绘制出对应制出对应w从负无穷到零变化的部分从负无穷到零变化的部分Ønyquist(a,b,c,d)::绘制出系统的一组绘制出系统的一组Nyquist曲线,曲线,每条曲线相应于连续状态空间系统每条曲线相应于连续状态空间系统[a,b,c,d]的输入的输入/输输出组合对其中频率范围由函数自动选取,而且在出组合对其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点响应快速变化的位置会自动采用更多取样点((1)源程序)源程序% clearclose allk=26;z=[];p=[-6 1];[num,den]=zp2tf(z,p,k);figure(1)subplot(211)nyquist(num,den)subplot(212)pzmap(p,z)figure(2)[numc,denc]=cloop(num,den);step(numc,denc)逆逆时时针针绕绕行行圈圈数数为为1,,==不不稳稳的的极极点点数,数,所所以以系系统统稳稳定定。
从从闭闭环环系系统统的的阶阶跃跃响响应应看看系系统统的的却却是是稳稳定定的6.3.3 其他常用频域分析函数MATLAB除除了了提提供供前前面面介介绍绍的的基基本本频频域域分分析析函函数数外外,,还还提提供供了了大大量量在在工工程程实实际际中中广广泛泛应应用用的的库库函函数数,,由由这这些些函函数数可可以以求求得得系系统统的的各各种种频频率率响响应应曲曲线线和和 特特征征值如:margin::求幅值裕度和相角裕度及对应的转折频率求幅值裕度和相角裕度及对应的转折频率freqs:模拟滤波器特性:模拟滤波器特性nichols:求连续系统的尼科尔斯频率响应曲线(即:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线)对数幅相曲线)ngrid:尼科尔斯方格图:尼科尔斯方格图margin()函数函数qmargin函函数数可可以以从从频频率率响响应应数数据据中中计计算算出出幅幅值值裕裕度度、、相相角角裕裕度度以以及及对对应应的的频频率率幅幅值值裕裕度度和和相相角角裕裕度度是是针针对对开开环环SISO系系统统而而言言,,它它指指示示出出系系统统闭闭环环时时的的相相对对稳稳定定性性当当不不带带输输出出变变量量引引用用时时,,margin(sys)可可在在当当前前图图形形窗窗口口中中绘绘制制出出带带有有裕裕量量及及相相应应频频率率显显示示的的Bode图图,,其其中中幅幅值值裕裕度度以以分分贝贝为单位为单位。
sys为系统模型描述为系统模型描述q幅幅值值裕裕度度是是在在相相角角为为-180度度处处使使开开环环增增益益为为1的的增增益益量量,,如如在在-180度度相相频频处处的的开开环环增增益益为为g,,则则幅幅值值裕裕度度为为1/g;;若若用用分分贝贝值值表表示示幅幅值值裕裕度度,,则则等等于于::-20*log10(g)类类似似地地,,相相角角裕裕度度是是当当开开环环增增益益为为1.0时,相应的相角与时,相应的相角与180度角的和度角的和qmargin(mag,phase,w):由:由bode指令得到的幅值指令得到的幅值mag((不是以不是以dB为单位为单位)) 、相角、相角phase及角频率及角频率w矢量绘制出带有裕量及相应频率显示的矢量绘制出带有裕量及相应频率显示的bode图qmargin(num,den) ::可可计算出连续系统传递函数计算出连续系统传递函数表示的幅值裕度和相角裕度并绘制相应波特图表示的幅值裕度和相角裕度并绘制相应波特图类似,似,margin(a,b,c,d)可以计算出连续状态空间系统可以计算出连续状态空间系统表示的幅值裕度和相角裕度并绘制相应波特图表示的幅值裕度和相角裕度并绘制相应波特图。
q[gm,pm,wcg,wcp]=margin(mag,phase,w):由:由幅值幅值mag((不是以不是以dB为单位)为单位) 、相角、相角phase及角频率及角频率w矢量计算出系统幅值裕度和相角裕度及相应的相角矢量计算出系统幅值裕度和相角裕度及相应的相角交界频率交界频率wcg、、截止频率截止频率wcp,,而不直接绘出而不直接绘出Bode图曲线源程序源程序例例6.24 %margin绘制出幅值裕度和相角裕度的波特图绘制出幅值裕度和相角裕度的波特图clearclcclose all%某系统的开环传递函数为:某系统的开环传递函数为: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]));figure(1)margin(num1,den)figure(2)margin(num2,den);。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


