1、精选版课件ppt1 3.1 控制系统工具箱简介控制系统工具箱简介3.2 系统建模系统建模3.3 模型转换函数模型转换函数3.4 最常用的分析函数最常用的分析函数3.5 LTI viewer3.6 基于传递函数模型的控制系统串联校正基于传递函数模型的控制系统串联校正3.7 基于传递函数模型的控制系统根轨迹校正基于传递函数模型的控制系统根轨迹校正精选版课件ppt2 MATLAB是一个丰富的函数集合,这对各个行业的应用有很好的作用。MATLAB除了提供上面讲述的基本内容外,还有很多扩展功能,这些扩展功能就是工具箱。MATLAB的控制工具箱是MATLAB最早的工具箱之一,它实现普通的控制系统设计、分析
2、和建模技术。控制系统可作为传或函数式或状态空间形式来建模,允许使用经典和现代的技术。控制工具箱适用于线性时不变系统。3.2 系统建模系统建模3.2.1状态空间模型状态空间形式的系统方程写为:DuCxyBuAxx在MATLAB中,这个系统简单的写为A、B、C、D四个矩阵的形式即可。例如在MATLAB命令窗或M文件中输入:精选版课件ppt3uxxxxxx10000100008.20980010321321321001 xxxy精选版课件ppt4 在系统状态方程的建模过程中,MATLAB还提供了转换为各种规范化模型的方法。如原模型转换为对角模型的方法eig()、转换为可控规范型的方法,转换为可观测规
3、范型的方法等,请各位自行阅读相关教材。3.2.2 传递函数模型 这是传递函数的最一般表达方式,一般记为:01110111)(asasasabsbsbsbsGnnnnmmmm 在MATLAB中,传递函数分别使用分子、分母的多项式表示,即num和den两个多项式向量,多项式向量元素使用s降幂排列的系数。其中不存在的系统阶次使用0填充。例如,要创建一个传递函数模型,可在MATLAB命令窗或M文件中可输入:(1)分子分母为s的多项式模型精选版课件ppt5NUM=bm bm-1 b1 b0;DEN=an an-1 a1 a0;Sys=tf(NUM,DEN)其中,Sys=tf(NUM,DEN)用于创建一个
4、传递函数的表达,今后,对该传递函数的引用仅使用Sys作为标识即可。现假定要创建的系统传递函数为:2051)(2ssssG我们在MATLAB命令窗或M文件中输入:num=1 1;den=1 5 20;Sys=tf(num,den)%创建传递函数模型Transfer function:s+1-s2+5 s+20 精选版课件ppt6 (2)零极点增益模型)()()()()(2121nmpspspszszszsksG 零极点增益形式的控制系统表示为:在MATLAB中,这种形式的创建可使用增益k、分子零点向量z、分母极点向量p表示。其格式为Sys=zpk(Z,P,K)其中:Z=-zm zm-1 z1 z
5、0,P=-pn-pn-1-p1-p0;K=k;对于上面的例子我们也可写成:)708.35.2)(708.35.2(12051)(2jsjssssssG则要创建零极点模型,我们在MATLAB命令窗或M文件中输入:精选版课件ppt7z=-1;p=-2.5000+3.7081i,-2.5000-3.7081i;k=1;Sys=zpk(z,p,k)Zero/pole/gain:(s+1)-(s2 +5s+20)(3)传递函数的部分分式展开根据传递函数系统的时间域响应时,通常要用到有理分式的部分分式展开。所谓部分分式展开,就是将高阶的有理分式化为若干个一阶有理分式之和的形式。如果传递函数G(s)不包含多
6、重极点,那么,将G(s)用部分分式展开后即可得到:niiipsrksG1)(精选版课件ppt8k是常数项,对于真分式来说k=0。r是各分式的系数,p是系统的极点。在MATLAB中,要进行传递函数的部分分式展开,可调用函数:r p k=residue(num,den)其中num和den分别表示降幂排列的该有理分式的分子和分母多项式系数;r是求得的部分分式展开的各分式系数,p是系统极点,k是常数项。有了这些结果,就可以根据部分分式展开求解系统的时间响应了。例如对于上面的例子,键入:r p k=residue(num,den)r=0.5000+0.2023i 0.5000-0.2023ip=-2.5
7、000+3.7081i -2.5000-3.7081ik=精选版课件ppt9 控制系统可由微分方程描述、传递函数描述和状态方程描述。其中微分方程描述是整个控制系统数学描述的基础,传递函数描述和状态方程描述都是在微分方程描述的基础上发展起来的。但由于形式不够简洁,处理和运算不够方便,一般在控制系统仿真和设计时已经很少直接用到微分方程描述了。但因为人们习惯使用的传递函数描述和状态方程描述分属于频率域和时间域,这样一来就存在一个模型间相互转换的问题。MATLAB提供了直接进行控制系统模型间相互转换的函数,可以完成传递函数描述与状态方程描述之间的相互转换,控制系统方框图与传递函数描述和状态方程描述之间
8、的转换,以及状态方程描述的最小实现等。为便于这些函数的记忆,注意以下标记:ss状态空间模型;tf传递函数模型;zp零极点模型;2 to精选版课件ppt103.3.1 传递函数向状态方程的转换传递函数向状态方程的转换 在实际的控制系统仿真和设计中,系统的结构和参数基本上是未知的。这时要想通过分析的方法建立系统的状态方程描述是非常困难的,甚至是不可能的。一个可行的办法是,先用实验的方法确定其输入与输出之间的关系,比如说确定它的传递函数。然后,根据系统的传递函数再确定系统的状态方程和输出方程。给定系统的传递函数G(s),可以找到各种各样结构的实现(A,B,C,D)。如果找到的实现对矩阵(A,B)是完
9、全可控的,就称为可控性实现;如果对矩阵(A,C)是完全可观的,就称为可观性实现;如果矩阵A是约当规范型,就称为约当型实现。在各种各样的实现中,最感兴趣的是矩阵A的阶次最低的实现,称之为最小实现。显而易见,最小实现的结构最简单,按最小实现模拟原系统是最方便、最经济的。(A,B,C,D)是传递函数G(s)的最小实现的充分必要条件是,(A,B,C,D)是完全可控 又可观的。精选版课件ppt11MATLAB提供了一条函数tf2ss(),可以根据系统的传递函数描述求解其状态方程 描述。其基本调用格式为:A B C D=tf2ss(num,den)其中num是传递函数分子多项式系数的降幂排列,den是传递
10、函数分母多项式系数的降幂排列;(A,B,C,D)就是实现该传递函数的系统状态方程描述,这个实现是系统的可控性实现。仍使用前面提及的例子:num=1 1;den=1 5 20;Sys=tf(num,den)%创建传递函数模型A B C D=tf2ss(num,den)A=-5 -20 1 0B=1 0C=1 1D=0类似的函数是:A,B,C,D=zp2ss(z,p,k)精选版课件ppt12MATLAB还提供了一条函数minreal(),可以求解系统状态方程的最小实现。不过这条函数不是根据传递函数来求解其最小实现,而是根据系统的状态方程描述来求解其最小实现。其调用格式为:Sysr=minreal(
11、Sys)其中Sys是原系统的状态方程描述(A,B,C,D),Sysr是系统的最小实现(As,Bs,Cs,Ds)。请看下面这个简单的例子,仍使用上面的例子,接着键入:sys=ss(A,B,C,D)sysr=minreal(sys)可见(结果见下页),对于本例,sys与sysr相同,这说明sys已经是最小实现了。精选版课件ppt13 x1 x2 x1 -5 -20 x2 1 0B=u1 x1 1 x2 0C=x1 x2 y1 1 1D=u1 y1 0sysrA=x1 x2 x1 -5 -20 x2 1 0B=u1 x1 1 x2 0C=x1 x2 y1 1 1D=u1 y1 0精选版课件ppt14
12、3.3.2 状态方程向传递函数的转换状态方程向传递函数的转换给定线性定常系统(A,B,C,D),其状态方程和输出方程为:方程两边同时取拉普拉斯变换并消去中间变量,得DuCxYBuAxx则系统的传递函数为:)()()()(1sDUsBUAsICsYDBAsICsUsYsG1)()()()(可见,将系统的状态方程描述转换为传递函数描述的关键就在于预解矩阵的求解。精选版课件ppt15 MATLAB提供了一条函数ss2tf()可以直接将系统的状态方程描述转换为传递函数描述,其基本调用格式为:num,den=ss2tf(A,B,C,D,iu)其中(A,B,C,D)是系统的状态方程描述的系数矩阵,iu表示
13、对系统的第iu个输入量求传递函数;num是返回的系统传递函数的分子多项式系数的降幂排列,如果是MIMO系统num就是矩阵,其行数与输出量y的个数一样多;den是返回的系统传递函数的分母多项式系数的降幂排列,无论是SISO系统还是MIMO系统,den都是行向量。MATLAB还提供了一个类似的函数ss2zp()。该函数的功能是直接根据系统的状态方程描述求取系统的零点、极点和增益,不必先化成传递函数描述形式。其基本调用格式与tf2zp()函数类似,只是多了一个输入量选择的参数:Z,P,Kss2zp(A,B,C,D,iu)精选版课件ppt16下面通过例子来说明其应用。例 ex3_1 给定某控制系统的状
14、态方程描述如下。试分别求其对第一和第二个输入的传递函数和零极点形式的传递函数。21311000006062304112220011000uuxx xy01001000其中(A,B,C,D)是系统的状态方程描述的系数矩阵,iu表示对系统的第iu个输入量求零点、极点和增益;Z是求得的零点矩阵;P是求得的极点矩阵,Z的列数与输出量y的个数一样多,行数视零点个数的多少而定;K是求得的增益列向量,其维数等于输出量y的个数。精选版课件ppt17%系统的状态方程描述A=0 0 0 1;1 0 0-2;-22-11-4 0;-23-6 0-6;B=0 0;0 0;0 1;1 3;C=0 0 0 1;0 0 1
15、 0;D=0 0;0 0;%第一个输入量的传递函数num1,den1=ss2tf(A,B,C,D,1);z1,p1,k1=ss2zp(A,B,C,D,1);%第二个输入量的传递函数num2,den2=ss2tf(A,B,C,D,2);z2,p2,k2=ss2zp(A,B,C,D,2);%显示结果disp(System Transfer Function Of the first input is:);num1den1disp(Its zero-pole form is);精选版课件ppt18z1p1k1disp(System Transfer Function Of the second in
16、put is:);num2den2disp(Its zero-pole form is);z2p2k2结果如下:System Transfer Function Of the first input is:num1=0 1.0000 4.0000 0.0000 0.0000 0 0.0000 0.0000 0.0000 -11.0000den1=1.0000 10.0000 35.0000 50.0000 24.0000精选版课件ppt19Its zero-pole form isz1=0 Inf 0 Inf -4 Infp1=-4.0000 -1.0000 -2.0000 -3.0000k1
17、=1.0000 -11.0000System Transfer Function Of the second input is:num2=0 3.0000 12.0000 -0.0000 -0.0000 0 1.0000 6.0000 11.0000 -27.0000精选版课件ppt20den2=1.0000 10.0000 35.0000 50.0000 24.0000Its zero-pole form isz2=-4.0000 1.3114 0.0000+0.0000i -3.6557+2.6878i 0.0000-0.0000i -3.6557-2.6878ip2=-4.0000 -1
18、.0000 -2.0000 -3.0000k2=3 1精选版课件ppt21 num,den=ss2tf(a,b,c,d,iu)状态空间到传函 z,p,k=ss2zp(a,b,c,d,iu)状态空间到零极点 a,b,c,d=tf2ss(num,den)传函到状态空间 z,p,k=tf2zp(num,den)传函到零极 a,b,c,d=zp2ss(z,p,k)零极到状态空间 num,den=zp2tf(z,p,k)零极到传函 sysd=c2d(sysc,Ts,method)连续到离散 sysc=d2c(sysd,method)离散到连续3.3.3 模型转换函数的汇总模型转换函数的汇总精选版课件pp
19、t223.4.1时域响应分析 所谓控制系统的时域响应分析就是在时间域内求解系统的微分方程,然后根据绘制出来的曲线分析系统的性能和各主要参数对系统性能的影响。不过这里的响应曲线一般是指典型的响应曲线,即所谓阶跃响应和脉冲响应。其激励函数分别为单位阶跃函数和单位脉冲函数。单位阶跃函数的数学表达式为:1)(1)()0()0(0)(1)(1)0(1)0(0)(1tLdtttttstLttt MATLAB控制系统工具箱提供了两个求解系统单位阶跃响应的函数step(),其基本调用格式是:精选版课件ppt23step(sys1,sys2,,sysn,t)和y,x,t=step(sys1,sys2,,sysn
20、)其中第一种格式是不关心系统阶跃响应的具体数值,仅仅在一张图上绘制从系统SYSl到系统SYSn的阶跃响应曲线,t是t0:tspan:tfinal格式的时间向量。第二种格式返回系统的阶跃响应数据,但并不在屏幕上绘制系统的阶跃响应曲线。其中t是返回的仿真时间向量,x 对应各状态变量的阶跃响应数据。在这两种格式中,SYS可以是系统的传递函数描述num,den,num和den分别代表传递函数的分子和分母多项式系数的降幂排列;也可以是系统的状态方程描述(A,B,C,D);还可以是系统的抽象描述。对于系统的单位脉冲响应,MATLAB也提供了一条函数impulse()实现此功能。其基本调用格式也是精选版课件
21、ppt24具体参数和返回值的含义与step()函数相同。impulse(sys1,sys2,,sysn,t)和y,x,t=impulse(sys1,sys2,,sysn)例 ex3_2 系统的开环传递函数如下。试求其闭环传递函数,并绘制输出量阶跃响应曲线和脉冲响应曲线。选择函数的状态变量将其化为状态方程模型,并绘制状态变量的阶跃响应曲线和脉冲响应曲线。38440014020200)(234sssssG求解程序如下(ex3_2.m):%关闭所有图形窗口并清除内存变量关闭所有图形窗口并清除内存变量close all;clear;精选版课件ppt25%系统开环传递函数初始化系统开环传递函数初始化nu
22、mo=0 0 0 0 200;deno=1 20 140 400 384;%求解系统的闭环传递函数求解系统的闭环传递函数numc=numo;n=length(deno);denc=zeros(1,n);denc=numo+deno;%结果显示结果显示disp(System Closed Loop Transfer Function is:)numc denc%系统仿真数据初始化系统仿真数据初始化 t=0:0.05:5;%系统输出量的阶跃响应系统输出量的阶跃响应 y=step(numc,denc,t);精选版课件ppt26%系统输出量的脉冲响应系统输出量的脉冲响应 yy=impulse(numc
23、,denc,t);%输出量阶跃响应曲线绘制输出量阶跃响应曲线绘制figure(1);plot(t,y);title(System Step Response);xlabel(TimeSec);ylabel(Responsevalue);grid;%输出量脉冲响应曲线绘制输出量脉冲响应曲线绘制figure(2);plot(t,yy);title(System impulse Response);xlabel(Timesec);ylabel(Responsevalue);grid;精选版课件ppt27%求解系统的状态方程模型求解系统的状态方程模型A,B,C,D=tf2ss(numc,denc);%
24、状态方程模型结果显示状态方程模型结果显示disp(System StateSpace Model is:);A B C D%系统状态变量的阶跃响应系统状态变量的阶跃响应ys,x,t=step(A,B,C,D);%系统状态变量的脉冲响应系统状态变量的脉冲响应yys,xx,t=impulse(A,B,C,D);%状态变量阶跃响应曲线绘制状态变量阶跃响应曲线绘制figure(3);plot(t,x(:,1),t,x(:,2),+,t,x(:,3),.-,t,x(:,4),.)title(System StateVariables Step Response);xlabel(Timesec);精选版课
25、件ppt28ylabel(Responsevalue);grid;%状态变量脉冲响应曲线绘制状态变量脉冲响应曲线绘制figure(4);plot(t,xx(:,1),t,xx(:,2),+,t,xx(:,3),.-,t,xx(:,4),.)title(System StateVariables impulse Response);xlabel(Timesec);ylabel(Responsevalue);grid;运行该程序,产生如下结果:System Closed Loop Transfer Function is:numc=0 0 0 0 200denc=1 20 140 400 584精
26、选版课件ppt29System StateSpace Model is:A=-20 -140 -400 -584 1 0 0 0 0 1 0 0 0 0 1 0B=1 0 0 0C=0 0 0 200D=0精选版课件ppt30程序产生的4张图形如下:从系统输出量的阶跃响应来看,响应曲线振荡幅度很小,也就是超调量比较小,大约 0.02/0.34,6左右。并且达到峰值后迅速下调,在3s附近已经基本达到稳态值,也就是过渡过程时间不超过3s。精选版课件ppt31 从系统输出量的脉冲响应曲线上来看也可以验证这些说法:脉冲响应曲线大约在1.7s左右过零,此时对应阶跃响应曲线的峰值点;脉冲响应曲线只有一个过
27、零点,对应阶跃响应曲线只振荡一次就达到稳态值;并且脉冲响应曲线也是在大约3s左右达到稳态值0。精选版课件ppt32 因为系统闭环传递函数的特征方程是四阶的,所以化成状态方程模型后有四个状态变量。对应系统状态变量的阶跃响应和脉冲响应就各有4条曲线。这些状态变量的阶跃响应曲线和脉冲响应曲线都是经过短暂振荡后迅速到达其各自的稳态值或回到零点,这从另一个侧面验证了上面的那些说法。精选版课件ppt33 系统状态变量的脉冲响应曲线。一般说来,具有上述这些性质的系统是我们在控制系统中希望看到的,即系统输出的超调量很小,过渡过程时间很短,能够迅速跟踪输入量设定值的变化。当然,这一切都是 在系统稳定的前提下而言
28、的。精选版课件ppt34 从工程的角度来看,实际控制系统的输入函数千变万化,实际模拟控制系统时仅靠上 述这两种曲线虽然也是一种解决问题的思路(从理论上说,阶跃函数和脉冲函数之和可以 以任意精度逼近某一函数),不过计算的复杂性就大大增加了。因此,MATLAB还提供了一个函数可以求解和绘制任意输入函数激励的系统时间响应,这就是前文介绍过的lsim()函数。其调用格式为:lsim(sys1,sys2,sysn,u,t)其中,t是t0:tspan:tfinal格式的时间向量。u是在t所确定的时刻上系统的输入,sysi可以是系统的传递函数描述num,den,num和den分别代表传递函数的分子和分母多项
29、式系数的降幂排列;也可以是系统的状态方程描述(A,B,C,D);还可以是系统的抽象描述。例如,运行下面的一小段程序,将求解上例系统在正弦信号作用下的输出:精选版课件ppt35%系统开环传递函数系统开环传递函数numo=0 0 0 0 200;deno=1 20 140 400 384;%求解系统的闭环传递函数求解系统的闭环传递函数numc=numo;n=length(deno);denc=zeros(1,n);denc=numo+deno;t=0:0.05:10;u=sin(10*t);Lsim(numc,denc,u,t);精选版课件ppt363.4.2 频域响应分析 我们已经知道,时域法研
30、究控制系统虽然可以准确的解出系统的运动函数,然而从工程角度看,这种方法有一定的不足之处,如计算量较大,不易看出系统参数对控制效果的影响。人们所期望的工程研究方法是:计算量不应当太大,而且计算量不应随着微分方程的阶次升高而增加太多;容易区分出系统运动的主要因素以及各因素对系统总体动态性能的影响。以上这些要求,是直接用微分方程研究系统的方法所难以做到的。那末,这里将要讲述的频率响应法和下面将要讲述的根轨迹法正是满足这些要求的很好的工程研究方法。对于MATLAB环境下控制系统的仿真和设计来说,虽然频率域分析和时间域分析在编程的工作量方面没有太大的区别,但采用频率响应分析无疑能够更加清晰的了解系统的本
31、质。尤其是对于系统的传递函数描述,采用频率响应法分析具有得天独厚的优势,只需将传递函数的自变量s换成 j即可。精选版课件ppt37 控制系统频率特性的定义:系统的相频特性系统的幅频特性:)(arg:)()()(jGjGsGjGjs 幅频特性是的函数,表示的是正弦输出信号与正弦输入信号的振幅之比,而相频特性也是的函数,表示的是正弦输出信号相对于正弦输入信号的相位差。描述控制系统频率特性主要用相应的图形。其中最有用的就是Bode图(伯德图)和Nyquist图(奈奎斯特图)。下面讨论它们在MATLAB中的画法。(1)伯德图 伯德图包含两张图,一张为幅频特性图,一张为相频特性图。幅频特性图的纵坐标为系
32、统幅频特性取对数再乘以20,单位为分贝。相频特性图就为系统的相频特性,单位为度。这两张图的横坐标均为对数分度的频率。精选版课件ppt38MATLAB提供了一条函数bode()可以直接求解和绘制系统的Bode图。其基本调用格式为:bode(sys1,sys2,sysn,)或mag,phase=bode(sys1,sys2,sysn,)前者直接画出伯德图,而后者则将赋值给mag,phase,使用者可进一步用plot()画出伯德图。这里,sys1,sys2是系统的描述;是指定的角频率向量,也可以不加指定而由MATLAB自己给出。MATLAB还提供了一条函数margin(),可以求解系统的增益裕量和相
33、角裕量,其基本调用格式为:margin(sys)或 Gm,Pm,Wcg,Wcp=margin(sys)前者直接画出伯德图,并在图中标注系统的增益裕量和相角裕量,而后者则将结果赋值给Gm,Pm,Wcg和Wcp,它们分别是系统的增益裕量、相角裕量及其对应的角频率。而sys则是系统的描述,可以是传递函数或状态空间的系统描述。精选版课件ppt39例 ex3_3 某控制系统的开环传递函数如下。试绘制其Bode图,并求系统增益裕量以及相角裕量,并求系统的闭环阶跃响应曲线。)175.03906.0)(136.0(86.0)(2sssssG求解程序如下:%关闭所有图形窗口并清除内存变量关闭所有图形窗口并清除内
34、存变量close all;clear all;%系统开环传递函数描述系统开环传递函数描述numo=0 0 0 0 0.86;den1=1 0;den2=0.36,1;den3=0.3906 0.75 1;deno=conv(den1,conv(den2,den3);%polynomial multiplication精选版课件ppt40%系统闭环传递函数描述系统闭环传递函数描述numc=numo;denc=deno+numo;%系统仿真时间及频率初始化系统仿真时间及频率初始化t=0:0.1:20;%系统增益裕量及相角裕量系统增益裕量及相角裕量 Gm,Pm,Wcg,Wcm=margin(numo
35、,deno);%显示结果显示结果disp(System Gain Mardn and its associated frequency are:);Gm Wcgdisp(System Phase Margin and its associated frequency are:);Pm Wcm%系统的闭环阶跃响应系统的闭环阶跃响应figure(1);精选版课件ppt41step(numc,denc,t);title(System Time Response);xlabel(Timesect);ylabel(Responsevaluet);grid;%对数幅频特性函数对数幅频特性函数figure(
36、2);bode(numo,deno);grid;运行结果如下:运行结果如下:System Gain Mardn and its associated frequency are:Gm=1.5791Wcg=1.2303System Phase Margin and its associated frequency are:Pm=30.9044Wcm=0.8560精选版课件ppt42-150-100-50050100Magnitude(dB)10-210-1100101102-360-270-180-90Phase(deg)Bode DiagramFrequency (rad/sec)精选版课件p
37、pt430246810121416182000.511.5System Time ResponseTimesect(sec)Responsevaluet精选版课件ppt44(2)Nyquist图 频率特性函数G(j)在复平面的图像为系统的极坐标频率特性图或Nyquist 图。Nyquist判据:如果系统的开环传递函数G(s)在右半s平面有p个极点,则闭环系统稳定的充分必要条件是:当从连续的变化到+时,开环频率特性函数G(j)的Nyquist图逆时针方向包围复平面上的(-1,j0)点p圈。应用Nyquist稳定判据研究控制系统的稳定性有很多优点:首先,它主要靠作图,手工计算量很小。其次,它不仅能
38、回答闭环系统是否稳定,而且还可以得到系统接近于不稳定的程度。更进一步,这个判据往往还可以提示改善系统稳定性的办法。MATLAB控制系统工具箱中提供了一条函数nyquist(),可以用来求解或绘制系统的Nyquist图。其基本调用格式为:nyquist(sys1,sys2,)或Re Im=nyquist(sys1,sys2,)精选版课件ppt45 其中sysi是系统的频率特性函数或状态空间描述;是指定的角频率向量,也可以不加指定而由MATLAB自己给出;RE和IM是返回的系统开环频率特性值的实部和虚部,如果没有返回值的话,MATLAB就在屏幕上绘制出缺省参数的系统Nyquist图。例 ex3_4
39、 某控制系统的开环传递函数如下。试绘制当K=2和K=20时系统的Nyquist图。根据Nyquist稳定判据判断系统的稳定性,并绘制系统的闭环阶跃响应曲线验证关于稳定性的结论。)11.0)(1()(sssKsG求解程序如下:%关闭所有图象窗口并清除内存变量关闭所有图象窗口并清除内存变量close all;clear all;精选版课件ppt46%K=2时系统的开环传递函数时系统的开环传递函数numo1=0 0 0 2;den1=1 0;den2=1 1;den3=0.1 1;deno1=conv(den1,conv(den2,den3);%K=20时系统的开环传递函数时系统的开环传递函数num
40、o2=0 0 0 20;deno2=deno1;%系统的闭环传递函数系统的闭环传递函数numc1=numo1;denc1=deno1+numo1;numc2=numo2;denc2=deno2+numo2;%仿真时间及角频率初始化仿真时间及角频率初始化t=0:0.1:15;wt=0:10;精选版课件ppt47%K=2时系统的开环时系统的开环Nyquist曲线和闭环阶跃响应曲线和闭环阶跃响应figure(1);nyquist(numo1,deno1,wt);title(System Nyquist Charts with K=2)figure(2);step(numc1,denc1,t);tit
41、le(System Time Response with K=2);grid;%K=20时系统的开环时系统的开环Nyquist曲线和闭环阶跃响应曲线和闭环阶跃响应figure(3);nyquist(numo2,deno2,wt);title(System Nyquist Charts with K=20)figure(4);step(numc2,denc2,t);title(System Time Response with K=20);grid;精选版课件ppt48-1.4-1.2-1-0.8-0.6-0.4-0.20-1-0.8-0.6-0.4-0.200.20.40.60.81Syste
42、m Nyquist Charts with K=2Real AxisImaginary Axis精选版课件ppt4905101500.20.40.60.811.21.4System Time Response with K=2Time(sec)Amplitude精选版课件ppt50-12-10-8-6-4-20-10-8-6-4-20246810System Nyquist Charts with K=20Real AxisImaginary Axis精选版课件ppt51051015-80-60-40-20020406080100System Time Response with K=20Ti
43、me(sec)Amplitude精选版课件ppt52 使用nyquist()函数绘制系统的开环Nyquist曲线时,尤其要注意函数的调用格式和参数设置。因为应用Nyquist稳定判据时关键就在系统nyquist曲线在复平面(-1,j0)点附近的情况,所以在选择参变量时就既要能反映曲线在(-1,j0)点附近的变化情况,又要能看出曲线在趋于曲时的变化趋势。因此,对于不同的系统的选择是不同的。3.4.3 根轨迹的绘制 根轨迹法是W.BEvans于1948年提出的一种求解特征方程根的简便的图解的方法,在工程上获得了广泛的应用。它根据系统开环传递函数极点和零点的分布,依照一些简单的规则,用作图的方法求出
44、闭环极点的分布,避免了复杂的数学计算。有些同学可能会问,既然使用MATLAB控制系统工具箱提供的函数可以很方便的求出系统的闭环传递函数及其零点、极点和增益,那么类似根轨迹法这种间接分析系统闭环传递函数这种方法不就没有生命力了吗?其实不是这样的。一方面,应用根轨迹精选版课件ppt53根轨迹法可以很容易地从图上看出来系统中某个参数的变化会对系统的闭环极点产生什么影响,进而如何影响系统的动态性能;另一方面,完整的根轨迹图形也是控制系统设计和校正的一种得力的辅助工具。所谓根轨迹,就是指系统的开环传递函数增益(或其它参数)变化时其闭环传递函数的极点在复平面上变化的轨迹。MATLAB提供了一条函数rloc
45、us(),可以通过系统的开环传递函数绘制其闭环的根轨迹图。不必用手工绘制。其基本调用格式为:R=rlocus(sys,K)其中SYS是系统的开环传递函数描述,K是给定的系统增益向量,也可以缺省并使用MATLAB提供的向量。R是返回的根轨迹数据,如果不设返回值,MATLAB会在屏幕上绘制出系统的闭环根轨迹图。例如,假定系统的开环传递函数为:精选版课件ppt54在Command Window中键入语句:num=1;den=1 7 16 10;rlocus(num,den);10167)3)(3)(1()(23sssKjsjssKsG-6-5-4-3-2-10-4-3-2-101234Root Lo
46、cusReal AxisImaginary Axis精选版课件ppt55 到此为止,我们对MATLAB在控制系统的时域、频域分析中的应用就告一段落。在这里我们主要介绍了MATLAB环境下控制系统时域响应分析、频率响应分析,包括Bode图绘制、Nyquist图绘制、还有根轨迹的绘制等等,这些都是经典可在理论的基本方法。3.5 LTI Viewer MATLAB提供了一个线性定常系统的可视化仿真环境LTI Viewer。在该环境下可以从MATLAB Workspace或SIMULINK中输入系统的模型,根据不同的要求绘制相应的曲线,例如阶跃响应曲线、脉冲响应曲线、Bode图、Nyquist图和Ni
47、chols图等等。从不同的曲线中,还可以求取各种性能指标参数,例如过渡过程时间、峰值点、增益裕量、相角裕量、谐振峰等等。我们在前介绍的线性定常系统的各种曲线和性能指标几乎都可以在这里找到。下面,通过实际例子说明LTI Viewer的使用步骤和方法。精选版课件ppt561.在Command Window下输入系统模型并启动LTI Viewer。键入代码:numo=2;deno=0.1 1.1 1 0;syso=tf(numo,deno);%系统的开环模型 numc=numo;denc=0.1 1.1 1 2;sysc=tf(numc,denc);%系统的闭环模型例:设有系统试用LTI Viewe
48、r求解系统的阶跃响应曲线、脉冲响应曲线、Bode图、Nyquist图,并求系统过渡过程时间、超调量、增益裕量、相角裕量等参数。精选版课件ppt57完成后,键入ltiview 则启动 LTI Viewer,如下图所示:精选版课件ppt582.在LTI Viewer下输入系统模型 选择File菜单下的Import选项,则弹出如下所示输入界面,在左侧选中Workspace选项,则在System in Workspace列表框内,可见刚才输入的开环系统和闭环系统。选中这两个系统,点击OK即可将系统输入并回到 LTI Viewer 主画面主画面。精选版课件ppt593.按任务要求设置 LTI Viewe
49、r (1)选择Edit菜单下的Plot Configurations菜单项,用于选择显示格式。如下图所示:(2)选择Edit菜单下的Refresh Systems菜单项,用于重新输入Workspace 下的已选定的系统。(3)选择Edit菜单下的Delete Systems菜单项,用于删除已输入的系统。精选版课件ppt60 (4)选择Edit菜单下的Line Styles菜单项,用于选择曲线的风格。画面如下:精选版课件ppt61 (5)选择Edit菜单下的Viewer Preferences菜单项,弹出如下画面,它包含4个子选项,用于一些参数的设置:精选版课件ppt62精选版课件ppt634.
50、求解 在LTI Viewer主画面(画图区)点击鼠标右键,弹出一浮动菜单,可进行如下选择:选择 Systemssyso;选择 Plot TypesBode,作出系统的Bode图;选择 CharacteristicsStability(All Crossings),得到系统Bode图:精选版课件ppt64系统Bode图精选版课件ppt65选择 Systemssyso;选择 Plot TypesNyquist,作出系统的Nyquist图。精选版课件ppt66选择 Systemssysc;选择 Plot TypesStep,作出系统的单位阶跃响应图;选择 CharacteristicsPeak Re