MATLAB根轨迹绘制.doc_第1页
MATLAB根轨迹绘制.doc_第2页
MATLAB根轨迹绘制.doc_第3页
MATLAB根轨迹绘制.doc_第4页
MATLAB根轨迹绘制.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要控制系统的计算机辅助设计从成为一门专门的学科以来已有20多年的历史,它一直受到控制界的普遍重视,在其发展过程中出现了各种各样的实用工具和理论成果。本论文借助于国际上流行的控制系统计算机辅助设计软件MATLAB6.5对连续控制系统进行分析,首先,以自动控制原理为基础,对连续控制系统进行分析和设计,主要是系统的传函,零极点和状态空间表达式之间的转换;然后进行连续控制系统辅助设计及编程,包括系统的单位脉冲,单位阶跃,零输入和任意输入下的响应,还有系统的频率响应和特性的分析,如Nyquist图,Bode图,Nichols图和根轨迹的绘制。最后用GUI编制控制系统用户界面实现上述功能。关键词:连续控制系统;系统模型;时域回应;频域回应;根轨迹;GUI AbstractControl the calculator assistance of system a design from become a specialized academics have already there is the history for more than 20 years, it has been subjected to a widespread value of control the boundary and appeared practical tool and theories result of various each kind in it the development the process.This disquisition uses the software named MATLAB 6.5 edition to analyses the continuous system. Firstly, it takes automatic control principle as foundation, and carry on analysis and design the continuous control system. It mainly contain Transfer function, the conversion of zero extremities and the appearance space expression types; Then carry on continuous control system assistance design and plait distance, include the unit pulse of system, the unit rank jump, zero importation with arbitrarily input next respond to, return systematic frequency to respond to with the analysis of the characteristic, like Nyquist diagram, Bode diagram, draw of Nichols diagram and root track. Finally draw up customers interface of the control system to carry out the above-mentioned function with the GUI.Key words:continuous control system;systems model;time response;frequency response; root locus; GUI 目 录 第1章连续控制系统的计算机辅助设计和分析的概述11.1 控制系统的数学模型与建立11.2 控制系统的模型转换4第2章 基于MATLAB的连续控制系统的设计与分析62.1 连续控制系统的时域分析62.2 连续控制系统的频域分析112.3 连续控制系统的根轨迹分析与设计16第3章 图形用户接口(GUI)制作253.1 图形用户接口的创建概述253.2 控制系统分析与设计的GUI333.3 控制系统的综合分析与设计39结 论44参考文献45致 谢46第1章连续控制系统的计算机辅助设计和分析的概述1.1 控制系统的数学模型与建立控制理论分析,设计控制系统的第一步是建立实际系统的数学模型.所谓数学模型就是根据系统运动过程的物理,化学等规律,所写出的描述系统运动规律,特性,输出与输入关系的数学表达式。在控制系统中,常用的数学模型有微分方程模型,传递函数模型,状态空间模型以及零极点模型等。在一些场合下需要用到其中一种模型,而在其他场合则可能又需要其他模型,所以掌握模型之间的转换很重要。本章就控制系统常用的一些数学模型如微分方程模型、传递函数模型、状态空间模型和零极点模型的基本概念,包括模型的建立、转换作出说明,作为连续控制系统的计算机辅助设计的预备知识,为下面的设计及编程打下基础。1.1.1 系统的时域模型连续时间系统用微分方程描述。对于单输入单输出(SISO)系统数学模的一般形式为:其中,y和u分别为系统的输入与输出, 与分别表示输入和输出各导数项系数。一、系统的传递函数模型1、模型介绍对于一个SISO连续系统,系统相应的微分方程如上式所示,对此微分方程作Laplace变换,则该连续系统的传递函数为 2、模型建立在MATLAB中,用函数TF可以建立一个连续系统传递函数模型,其调用格式为 其中,num为传递函数分子系统向量,den为传递函数分母系数向量。 3、程序举例连续系统的传递函数为 用MATLAB建立该系统传递函数模型和运行结果如下:%MATLAB PROGRAM num=1,2;den=1,1,10;sys=tf(num,den)amp101Transfer function: s + 2-s2 + s + 10若系统的输入和输出量不是一个,而是多个,则称多输入多输出系统(MIMO)。和SISO系统类似,MIMO系统的数学模型形式也有微分方程,传递函数,矩阵状态空间和零极点。二、系统的状态空间模型 1、模型介绍LTI(线性时不变)系统总是能用一阶微分方程组来表示,写成矩阵或者说是状态空间的形式,这些方程可以表示为: 用状态空间表示的系统在 MATLAB 中用(A,B,C,D)形式表示,A,B,C,D都是矩阵,并且被当作独立变量来对待。状态空间描述是MATLAB中对LTI系统最为自然的一种模型描述方法其中 u 是 nu维控制输入向量,x 是 nx 维状态向量,y是 ny维输出向量。,而对多输入多输出 MIMO系统而言,状态空间描述是唯一的模型描述方法。2、模型建立:在MATLAB中,用函数SS可以建立一个连续系统传递函数模型,其调用格式为 其中A,B,C,D为系统状态方程系数矩阵。3、程序举例若给定系统的状态方程系数矩阵为 , , , 用MATLAB建立系统的程序模型如下:%MATLAB PROGAMa=-40.4, -139, -150;1,0,0; 0,1,0;b=1;0;0; c=0,18,360; d=0;sys=ss(a,b,c,d);三、系统的零极点增益模型 1、模型介绍零极点模型实际上是传递函数模型的另一种形式,其方法是对原系统传递函数的分子和分母多项式进行分解,以获得系统的零极点表达形式。对于SISO系统来说,其零极点模型如下: 式中, (i=1,2,m)和 (i=1,2,n)分别为系统的零点和极点,K为系统增益。2、模型建立在MATLAB中,用函数SS可以建立一个连续系统传递函数模型,其调用格式为 :其中Z,P,K分别为系统的零点向量、极点向量和增益。3、程序举例已知系统传函为 用MATLAB建立系统模型程序和运行结果如下:%MATLAB PROGRAMz=-2;p=-0.4,-15,-25;sys=zpk(z,p,18);amp105Zero/pole/gain: 1.2 控制系统的模型转换对系统的数学模型描述主要有微分方程模型,传递函数模型,状态空间模型和零极点模型等形式,而这些模型之间确实存在着内在的等效关系。在一些场合下,需要用其中一种形式的模型,而在另一种场合下可能又需要另外形式的模型,所以模型之间的相互转换是十分重要的。对于LIT系统,其状态空间模型由拉氏变换可得对应的传递函数模型为因此,当已知系统的状态空间模型(A,B,C,D),经矩阵运算,可求得系统的传递函数G(s)。在MATLAB中,用函数 SS自动完成上面运算。MATLAB提供了十分简单的模型转换方式。函数tf,zpk,ss不仅用于系统模型的建立,也可用于模型形式之间的转换。一、 将非传递函数形式的系统模型sys转换成传递函数模型:二、 将非零极点增益形式的系统模型sys转换成零极点增益模型三、 将非状态空间的系统模型sys转换成状态空间模型。四、 传递函数模型转换为状态空间模型:五、 传递函数模型转换成零极点模型六、 状态空间模型装换为传递函数模型系统的状态方程可以表示为: 相应的传递函数为: 七、 例1.1 将系统G(z)=(0.04z+0.04)/(z3-z2+81z+0.9)转换为零极点增益形式,采样周期为0.01s。用MATLAB编写程序和运行结果如下:%MATLAB PROGRAM 1-1num=0.04 0.04;den=1 -2 81 0.9;sys-tf=tf(num,den,0.01)sys-zpk=zpk(sys-tf)amp101Transfer function: 0.04z + 0.04-z3 -2z2+81z+0.9Sampling time:0.01Zero/pole/gain: 0.04(z+1)-(z=0.01111)(z2-2.011z+81.02) 第2章 基于MATLAB的连续控制系统的设计与分析2.1 连续控制系统的时域分析系统的时间响应是指系统在输入信号或初始状态作用下,系统的输出随时间变化的情况。系统的时间相应反映了系统的特征和性能,如系统的快速性,稳定性及阻尼性能等。充分了解和分析系统的响应,以及与系统结构,参数之间关系,是我们设计和校正系统的基础。在对控制系统进行时域分析时,通常使输入信号为单位阶跃函数或单位脉冲函数,由此求得系统的输出响应即控制系统的单位阶跃响应(step)和单位脉冲响应(impulse)。MATLAB6.5提供了丰富的函数用以对连续控制系统进行时域分析,这些函数是:1、 单位阶跃响应函数step2、 单位脉冲响应函数impulse3、 零输入响应函数initial4、 任一输入下的仿真函数lsim2.1.1 连续控制系统的单位阶跃响应函数STEP用来计算LIT的单位阶跃响应。适用于连续时间系统,也适用于离散时间系统;适用于SISO系统,也可用于MIMO系统。一、 单位阶跃响应函数调用方式: Step(sys) Step(sys,Tfinal) Step(sys,T) Step(sys1,sys2,T) 其中,sys为系统模型;Tfinal为仿真终止时间;T为用户指定的仿真时间向量,Ts为采样周期,对于连续时间系统T=To:dt:Tfinal,dt为连续系统离散化的采样周期,To为仿真开始时间。二、 程序举例已知控制系统传递函数:编程绘制其阶跃响应曲线。程序如下:num=1;den=1,2,8;step(num,den)结果如图2-1-1所示 图2-1-1阶跃响应曲线 2.1.2 连续控制系统的单位脉冲响应函数IMPULSE用来计算LTI系统的单位脉冲响应。它适用连续时间系统,也适用于离散时间系统;既适用于SISO系统,也适用于MIMO系统。一、 脉冲响应的调用格式: Impulse(sys)Impulse(sys,Tfinal)Impulse(sys,T)Impulse(sys1,sys2,,T) Y,T=impulse(sys) Y,T,X=impulse(sys) 二、 程序举例:已知系统: 编写程序绘制其单位脉冲响应曲线程序如下所示:a=-1,2;-3,-4;b=1;0;c=0,1;d=0; impulse(a,b,c,d);结果如图2-1-2所示图2-1-2 单位脉冲响应曲线2.1.3 连续控制系统的零输入响应函数INITIAL用来计算零输入条件下,初始状态Xo所引起的响应。该函数仅适用于状态空间模型所描述的系统。一、 函数调用格式:Initial(sys,X0)Initial(sys,X0,Tfinal)Initial(sys,X0,T)Initial(sys1,sys2,X0,T)Y,T,X=initial(sys,X0)其中x0为初始状态向量。二、 程序举例:系统如下:; 求初始状态: 时的零输入响应。程序如下:a=-1,7;-22,-4;b=1;0;c=0,1;d=0;x0=1;0;initial(a,b,c,d,x0);结果如图2-1-3所示 图2-1-3零输入响应2.1.4 连续控制系统在任一输入下的仿真函数信号发生器函数GENSIG用以产生周期输入信号供系统时间响应函数LSIM使用。一、 函数调用格式U,T=gensig(Type,Tau)U,T=gensig(Type,Tau,Tf,Ts)其中,Type为信号模型,sin-正弦波,square-方波,pulse-周期脉冲波;Tau为信号周期;Tf为信号的时间区间;Ts为采样周期;U为信号值向量;T为和U对应的时间向量。在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。这里讨论的方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。其中,t是采样时间向量,矩阵u的每一列表示一个输入,每一行对应一个采样时刻,因此它的列数应该与系统sys的输入个数相同,它的行数应该与向量t的长度相同。任意输入响应函数LSIM是用来仿真系统对任意输入信号的响应,基本调用格式用来绘制任意输入响应图。Lsim(sys,U,T)其中,sys为仿真系统;U为输入信号向量;T为和输入U对应的时间向量。对于状态空间模型,调用时可加入初始状态值X0,调用格式为: Lsim(sys,U,T,X0)绘制多个系统对同一个任意输入响应图的调用格式为 Lsim(sys1,sys2,,U,T,X0)返回响应数据但不绘制响应图的调用格式为 Ys,Ts=lsim(sys,U,T)其中,Ys相应值向量;Ts为和Ys相对应的时间向量。对于状态空间模型,另一个调用格式为 Ys,Ts,Xs=lsim(sys,U,T,X0)其中,Xs为仿真过程中系统状态的轨迹。二、程序举例计算一模型对三种不同输入信号的响应数据,并画图。t=0:0.01:20;s1=sin(t);s2=randn(size(t);s3,tt=gensig(square,10,20,0.01);sys=tf(10,1 2 10);y1,t1=lsim(sys,s1,t);y2,t2=lsim(sys,s2,t);y3,t3=lsim(sys,s3,tt);subplot(2,2,1),plot(t1,y1),title(Input:Sine Sig)subplot(2,2,2),plot(t3,y3),title(Input:Square Sig)subplot(2,1,2),plot(t2,y2),title(Input:Rand Sig)结果如图2-1-4所示 图2-1-4三种不同输入信号响应图2.2 连续控制系统的频域分析系统的时域分析是分析系统的直接方法,比较直观,但离开计算机仿真,分析高阶系统是困难的。系统频域分析是工程广为应用的系统分析和综合的间接方法。频率分析不仅可以了解系统的频率特性,如截止频率、谐振频率等,而且可以间接了解系统时域特性,如快速性、稳定性等,因此,频率响应分析是分析和设计系统非常简便和可靠的方法。2.2.1 频率响应和频率特性根据频率响应的基本原理,若一个线性系统受到频率为 w的正弦信号时,它的输出仍然为正弦信号,其幅值与输入信号成 M (w)比例关系,而且输出与输入信号之间有一个相位差 K(w)和 M(w)是关于 w 的有理函数,这样就可以通过M(w) 和 K(w)来表示系统的特征。选用 MATLAB 控制工具箱中的伯德响应、尼柯尔斯响应、奈奎斯特响应等分析函数可以得到带宽、增益、转折频率、闭环稳定性等系统特征。一、一般概念频率响应是指系统对正弦输入的稳态响应。考虑传递函数为G(s)的线性系统,若输入正弦信号根据微分方程解的理论,系统的稳态输出仍然为与输入信号同频率的正弦信号,只是其幅值和相位发生了变化。输出幅值正比于输入的幅值,而且是输入正弦频率的函数。输出的相位与无关,只与输入信号产生一个相位差而且也是输入信号的函数。即线性系统的稳态输出是:由此可知,输出信号与输入信号的幅值比是的函数,成为系统的幅频特性,记为。输出信号与输入信号的相位差也是的函数,记为系统的相频特性。幅频特性: 相频特性: 频率特性是指系统在正弦信号作用下,稳态输出与稳态输入之比对频率的关系特性,可表示为: MATLAB控制工具箱中,函数FREQRESP用于计算LTI系统的频率相应,它既适用于连续时间系统,也适用于离散时间系统。函数调用格式为 H=freqresp(sys,w)其中,sys为系统模型;w为指定的实频率向量,单位为rad/s。二、频率特性是传递函数的一种特殊形式任何线性连续时间系统的频率特性都可以由系统传递函数中的s以j代替而求的。频率特性图标法在经典控制论中,常用图标法来描述系统的频率特性,他们是:(1) 幅相频特性-Nyquist图,由0表示极坐标上的的幅值和相角的的关系。(2) 对数幅相特性-Bode图有两个图组成:对数幅频特性图和对数相频设计图。(3) 对数幅相特性-Nichols图,它是以为参变量来表示对数幅值和相角。MATLAB工具箱中的函数可以轻松实现绘制。2.2.2 Nyquist图的绘制一、函数调用格式频率特性是频率的复变函数,可以在复平面上用一个向量来表示。该向量的幅值,相角。当频率从变化时,矢端的轨迹即为频率特性。因此,把频率特性在复平面上用极坐标表因此,把频率特性在复平面上用极坐标表示的几何图形,称为频率特性的极坐标图,或称Nyquist图。MATLAB控制工具箱中有绘制Nyquist图的函数NYQUIST,调用格式为Nyquist(sys)Nyquist(sys,)Nyquist(sys1,sys2,sysN) Nyquist(sys1,sus2,sysN,)Re,Im,=nyquist(sys)其中sys为系统模型;为频率向量;Re为频率响应的实部;Im为频率响应虚部。MATLAB中,频率范围可由两个函数给定:logspace(,N)产生频率在和之间N个对数分布频率点;linspace(,N)产生频率在和之间N个线性分布的频率点;N可以缺省。函数NYQUIST用于计算LTI系统的Nyquist频率响应。调用时,若不包含左边输出变量,函数NYQUIST绘制系统的nyquist图;调用时,若包含左边输出变量,只输出变量的向量,这常用语分析系统频率特性。此外,MATLAB控制工具箱中还有绘制Nichols图的函数NICHOLS,其调用格式为:Nyquist(sys)Nyquist(sys,) Nyquist(sys1,sus2,sysN,) mag,phase,=nyquist(sys)函数nichols(sys)用于计算LTI系统的频率响应并绘制Nichols图,分析系统的开环和死循环特性。二、程序举例绘制系统 的Nyquist图和Nichols图。程序如下:sys=tf(2 5 1,1 2 3);figure(1)nyquist(sys);figure(2)ngridnichols(sys);结果如下 图2-2-1 Nyquist图图2-2-2 Nichols图2.2.3 Bode图的绘制一、 函数的调用方式Bode是由两幅图组成,分别称作对数幅频特性和对数相频特性。它在频率响应法中应用最为广泛。它的横坐标是频率,对数幅频特性的纵坐标是幅值,单位dB;对数相频特性的纵坐标为,单位deg。Bode图便于对系统中不同环节的作用以及整个系统进行分析。MATLAB控制系统工具箱中,用于Bode绘制的函数是BODE。函数BODE用于计算线性时不变系统(LTI)的频率响应、幅值和相位,绘制Bode图。 调用方式:Bode(sys)Bode(sys,w)Bode(sys1,sys2,,sysN)mag,phase,w=bode(sys)其中,sys为系统模型;mag为幅值;phase为相位;为频率范围。函数BODE可用于任意LTI系统,即单输入单输出(SISO)系统,多输入多输出(MIMO)系统,连续时间系统,离散时间系统。本节就连续时间系统进行分析。用函数BODE绘制系统的Bode图时,频率范围将根据系统零极点自动确定。是根据给定的频率范围绘制系统sys的频率特性曲线。用于在给定的频率范围绘制多个系统频率特性曲线。当函数调用带有左边输出变量时,函数将返回频率响应的幅值mag,相位phase和频率值。二、程序举例绘制系统的Bode图。用MATLAB编写绘图程序如下;%MATLAB PROGRAM%A example:Computation of frequency response%Create model of a discrete systemTs=0.1;sys=tf(2 5 1,1 2 3);%Draws the Bode plot of the systemfigure(1)bode(sys);结果如下 图2-2-3 Bode图 比较图2-2-3和2-2-1可知,在MATLAB中,可用不同方法求得系统的频率响应特性。2.3 连续控制系统的根轨迹分析与设计经典控制系统经常用传递函数来描述,系统设计往往借助于系统频率特性,根轨迹法是最常用的方法。本节将就连续控制系统的根轨迹方程,根轨迹图的绘制以及根轨迹在MATALAB中的实现来分析连续控制系统的根轨迹设计。2.3.1 根轨迹方程控制系统的动态特性和稳定性都是由死循环极点来决定的。因此在分析系统时,需要确定死循环极点在S平面上的分布,而在设计系统时,则希望按性能指针要求将系统死循环极点设置在S平面的期望位置上。根轨迹的一般定义是:当系统中某参数(通常指开环增益)由0时,系统死循环极点在S平面上运动的轨迹。2.3.1.1 根轨迹方程若系统开环传递函数为G(s)H(s),则系统死循环特征方程为 或改写成 以零极点的形式,上式可写成此即为根轨迹方程。式中(i=1,2,m)为系统的开环零点,(i=1,2,n)为系统的开环极点;K为系统的根轨迹增益(本论文统称开环增益)。满足根轨迹方程的所有s值必然都是系统可能的死循环极点;对于每一个死循环极点,系统都有相应的增益值。2.3.1.2 根轨迹图的绘制根轨迹图描述了当系统开环增益K由0变化时,死循环特征根在S平面上移动的轨迹。用人工逐点绘制,方法繁杂不适用。往往根据根轨迹的一些性质、规则和特殊点进行绘制。绘制根轨迹时,往往先要确定开环的极点和零点,并在S平面上分别用和o表示。根轨迹起始于开环极点,终止与开环零点。如果开环零点数m小于开环极点数n,则有(n-m)条轨迹终止于无穷远。根轨迹对称于实轴、分支数等于死循环极点数。2.3.1.3 根轨迹的MATLAB实现MATLAB中有三个函数用于根轨迹绘制和分析,它们时RLOCUS、RLOCFIND和SGRID。函数RLOCUS的调用格式为: Rlocus(sys) R= Rlocus(sys) R,K= Rlocus(sys)其中sys为系统的开环模型;rlocus(sys)自动绘制根轨迹图;R=rlocus(sys)运行后,返回系统死循环特征根值R;R,K=rlocus(sys)运行后返回系统增益。函数RLOCFIND用于由给定死循环极点求解对应的开环增益大小,调用格式为 K,POLES=Rlocfind(SYS) K,POLES=Rlocfind(SYS,P) 用户可用鼠标在根轨迹图上选定极点或设置极点P两种方式。函数返回极点实际值POLES和开环增益K值。函数sgrid用来在根轨迹平面上绘制阻尼比和等固有频率网格,阻尼比从0.1至1.0,间隔0.1;固有频率从0至10rad/s,间隔1rad/s。网格图也为根轨迹的设计提供了方便。根轨迹绘制程式举例:例2-1已知系统开环传递函数,试绘制该系统的根轨迹,并求系统在任意给定极点的增益。MATLAB程序如下:num=2 5 1;den=1 2 3;sys=tf(num,den);subplot(221);rlocus(sys);r,k=rlocus(sys);gain,poles=rlocfind(sys)运行结果:Select a point in the graphics windowselected_point =-2.2568 - 0.0556igain =14.5128 poles =-2.2207-0.2626 根轨迹图及选定极点位置如图2-3-1所示。图中,x为开环极点;o为开环零点;+ 为所选定的死循环极点。 图2-3-1根轨迹图键入r,k后,MATLAB COMMAND窗口显示一组与相对应的死循环增益K值和特征根r。2.3.1.4 根轨迹设计法基于根轨迹的系统设计通常有增益设计法和补偿设计法。一、增益设计法增益设计法是根据系统的性能指针,确定希望死循环的极点位置,然后求出对应的开环增益K。该设计法利用MATLAB控制工具箱函数很容易实现。对于二阶系统,根据性能指针选择希望极点位置有成熟理论依据。对于高阶系统,期望极点必须是系统的一对共轭的主导极点,若系统不存在这样的主导极点,增益设计法不能被简单地应用。根轨迹设计法程序举例:例2-2已知单位回馈系统的开环传递函数为 求阻尼比=0.5时系统的极点和对应的开环增益K值解。MATLAB程序如下示:sys=zpk(,0 3 1+i 1-i,1);rlocus(sys);sgrid;gain,poles=rlocfind(sys)运行结果:Select a point in the graphics windowselected_point =-0.8341 + 0.4444igain =1.7616poles =-2.8623 -0.7146 + 0.5983i -0.7146 - 0.5983i -0.7086 图2-3-2根轨迹图系统的根轨迹如图2-3-2所示,图中“+”是根据系统期望极点用鼠标选定的位置。为了检验所设计系统是否满足期望性能指针,编写一个MATLAB程序和运行结果如下:sys=zpk(,0 3 1+i 1-i,1);sys_old=feedback(sys, -1);disp(Natural frequency and damping of the Old system)wn,damping=damp(sys)sys_new=zpk(,-2.7667 1.4299 0.4017+0.7148i 0.4017-0.7148i,2.6600);disp(Natural frequency and damping of the new system)wn,damping=damp(sys_new)step(sys_new);程序运行结果:Natural frequency and damping of the Old systemwn =01.4142 1.4142 3.0000damping =-1.00000.70710.70710.0000Natural frequency and damping of the new systemwn =0.8199 0.8199 1.42992.7667damping = 0.4899 0.4899 1.0000 1.0000运行结果表明,原系统有正极点,不稳定,阶跃响应发散;新的系统死循环极点全在左半平面,系统稳定,具有一对离虚轴最近的极点,阻尼比为0.5附近,满足设计要求。系统阶跃响应如图2-3-3所示 图2-3-3系统阶跃响应图二、补偿设计法实际上,许多系统单用改变系统增益的办法是不能获得理想的性能指针的,必须在原系统中增加校正环节使死循环根轨迹满足性能指针的要求。这就是补偿设计法。众所周知,校正环节通常有:串联校正和并联校正两种。串联校正装置又分为超前校正装置、滞后校正装置和滞后-超前校正装置。并联校正装置常用回馈校正。最简单的串联校正装置的传递函数为其中a、b均大于0。若ab,为滞后校正装置;将两装置串联起来就得到滞后-超前校正装置。补偿设计法就是根据系统的性能指针确定校正装置参数,即,a,b。根轨迹补偿设计方法是通过补偿装置的零点和极点的引入改变系统根轨迹的形状,使根轨迹通过s平面所期望的点。三、用根轨迹法设计校正装置的步骤:1、 根据系统性能指针,确定期望死循环主导极点的位置;2、 确定校正装置零极点的位置,写出校正装置传递函数,和的确定方法应根据所选用的校正装置类型采用相应的方法;3、 绘制根轨迹图,确定的值;4、 校验,验算主导极点位置和校正后的系统性能。四、程序举例:例2-3已知具有单位回馈控制系统的开环传递函数为 试设计超前校正装置,使系统满足;最大超调量30%,调整时间0.5s并绘制校正前后系统的根轨迹,求出校正后系统的阶跃响应。1、 绘制校正前的原系统根轨迹sys=zpk(,0 5 15,1);rlocus(sys);sgrid;damp(sys);原系统根轨迹图形示于图2-3-4图2-3-4原系统根轨迹图2、根据给定的性能指针确定死循环期望主导极点由 解得 =0.357 =22.41rad/s因此,期望主导极点为:3、 由相位条件确定需要超前校正装置提供的超前角:4、 确定超前校正装置的零点和图解法:re=8.0;im=20.9;sd=sqrt(Re*Re+Im*Im);phi=82*pi/180;gama=14.5*pi/180;alpha=atan(Im/Re);Z=Sd*sin(gama)/sin(pi-alpha-gama)P=Sd*sin(phi+gama)/sin(pi-alpha-gama-phi)结果:Z =5.6388P =89.1320校正后系统的开环传递函数为校正后系统的根轨迹:sys=zpk(-5.6,0 5 15 89.1,1);rlocus(sys);sgrid;damp(sys)5、 确定系统增益K用rlocfind选择与接近的主导极点值并求出相应的增益K值。6、检验系统主导极点并验证校正后的死循环系统特性Disp(Open loop system:)Sys1=zpk(-5.6,0 -5 -15 -89.1,31471)Disp(Closed loop system with a lead compensater:)Sys=feedback(sys1,1)Pole_sys=pole(sys)Step(sys)图2-3-5校正后根轨迹图 执行结果:Open loop system: Zero/pole/gain: 31471 (s+5.6)-s (s+5) (s+15) (s+89.1) Closed Loop System with a lead compensater: Zero/pole/gain: 31471 (s+5.6)-(s+93.37) (s+5.698) (s2 + 10.03s + 331.3) Pole_sys = -93.3715 -5.0152 +17.4957i -5.0152 -17.4957i-5.6981 系统阶跃响应如图2-3-6所示。可见,系统的时域性能基本满足要求。图2-3-6阶跃响应图 应用根轨迹法进行系统设计其结果不是唯一的。一般我们可以选择多种不同方案进行比较,最后确定最佳的设计方案。第3章 图形用户接口(GUI)制作用户界面是人,即用户与计算机或计算机程序的接触点或交互方式,是用户与计算机进行信息交流的方式。计算机在屏幕显示图形和文本,若有扬声器还可产生声音。用户通过输入设备,如:键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面或GUI是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其它点击设备去控制屏幕上的鼠标指针的运动。按下鼠标按钮,标志着对象的选择或其它动作。MATELAB6.5提供了两种不同的GUI设计及制作方法:编程制作GUI和利用向导制作GUI。本论文主要就如何利用MATLAB6.5提供的GUI设计向导guide设计制作连续控制系统的计算机辅助设计软件来阐述GUI设计制作的过程。3.1 图形用户接口的创建概述由图形命令生成的每一事物是一个图形对象。图形对象不仅包括uimenu和uicontrol对象,而且还包括图形、坐标轴和他们的子对象。让我们从另一个角度来看这一层次结构。计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴,uimenu ,uicontrol是图形的子对象。根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的uimenu和uicontrol。虽然uicontrol对象无子对象结点,但他们确实具有多种类型。uimenu对象常将其它的uimenu对象作为其子对象。运行MATLAB的不同型号的计算机或平台上,产生不同的图形显示。Unix工作站使用不同的X Window系统,具有几个窗口程序,如mwn或twm以控制显示的布局。PC机靠Microsoft Windows或Windows NT进行窗口管理,Macintosh计算机用Macintosh工具箱程序作窗口。虽然在各种平台上,显示看起来有很大的不同,但在很多的情况下,句柄图形的编码是一致的。每一个窗口系统中使用菜单让用户选择命令和选项。通常在显示屏或窗口的顶部有一菜单条。移动鼠标指针到菜单标志上按下鼠标按键,顶层菜单就被选中,一列菜单项就从菜单标志拉下来。这种款式菜单就叫下拉式菜单。按下鼠标将指针移动至菜单项并松开鼠标,则完成菜单项的选择。 图3-1-1 GUI对象层次结构图。3.1.1 可视化的接口环境MATLAB提供了可视化的接口环境Guide,其功能与微软的软件如VB等很相似,可以很方便的创建接口。打开可视化接口环境的方法有以下几种。(1)选择选单“File” “New” “GUI”命令。(2)在命令窗口输入“Guide”命令或输入“Guide Filename”,就会出现“Guide快速开始”接口,如图3-1-2所示 图3-1-2 GUI的初始化界面在“Guide快速开始”接口中有“Creat New GUI”和“Open Existing GUI”两个选项卡,如果要创建空白的可视化图形文件则选择“Blank GUI (Default)”,然后单击“OK”按钮,就会出现空白的可视化接口窗口,如图3-1-3所示“Blank GUI (Default)”下面的“GUI with Uicontrols”等选项。 图3-1-3 GUI的设计窗口可视化接口窗口在工具栏主要提供了4个工具:对象对齐工具(Align Objects)、菜单编辑器(Menu Editor)、属性编辑器(Property Inspector)和对象浏览器(Object Browser),单击这4个按钮就会出现相应的窗口。在可视化的接口环境的左边是图形对象的面板,有各种控件,可以通过拖放到空白的接口编辑面板来创建新控件。3.1.2 创建菜单在Windows的环境中几乎所有的应用程序都有自己的菜单,菜单可以方便用户的操作,几乎是必不可少的工具。Macintosh在显示屏的顶部使用包含下拉菜单标题的菜单条。选择图形窗口时,菜单条变化以反映激活的图形窗中可利用的选项。标准的Macintosh菜单标题包括Apple、 File、 Edit、 Window 和Help 或Balloon Help。由uimenu所加的菜单标题放在Window和Help之间。如果想从菜单条中删去File、 Edit、和 Window菜单标题,可以使用Set命令。 set(Hf_fig1, Menubar , none )Apple和Help不可从菜单条中删除。同样,标准的菜单是用以下的命令恢复: set(Hf_fig1, Menubar , figure )在Microsoft窗口系统下,菜单条位于图形窗口的顶部。每个图形窗口有自己的菜单条,它包含File,Edit,Window和Help标题。由uimenu所加的菜单标题放在Help之后。可以使用与上面相同的Set命令从菜单条中删去或恢复所有的标准菜单。在X Window系统工作站上没有MATLAB标准图形窗口菜单的标题。窗口管理器可将菜单条放置在屏幕上每一个窗口上端,但这些菜单条与MATLAB菜单无关。当建立第一个uimenu对象时,MATLAB 在图形窗口的顶部边缘生成自己的菜单条。一、菜单编辑器在可视化接口窗口选择菜单“Tools” “Menu Editor”或单击工具栏“Menu Editor”按钮,就会出现菜单编辑器窗口,如图3-1-4所示图3-1-4菜单编辑器窗口在菜单编辑器中:图示是新建菜单,是新建子菜单;和用来将菜单向左移和向右移;和是将菜单向上移和向下移;是删除菜单项。“Label”栏用来填写菜单项的名称,如果在前面加“&”符合则加快捷键,当运行时第一个字母会加下划线,以方便用户快速启动菜单项;“Tag”是标记;“Separator above the item”是分隔符号号;“Item is checked”是初值是否已选;“Callback”栏用于输入回调函数。设计举例:使用菜单编辑器创建菜单。在菜单编辑器创建菜单,如图3.4所示,如果是直接在可视化接口环境中新建图形窗口,则从头开始新建菜单。在图3-1-4中创建了三个菜单“Reprentations”、“Response”和“Graphical Methods”,并且每个菜单都具有子菜单,如菜单“Response”,它有“Step”、“Impulse”、“Initial”和“Lsim”四个子菜单图3-1-5创建菜单项二、 编程创建菜单回调函数是字符串,可以包含任何MATLAB的合法命令和M文件名,回调的作用是让控件编程函数有所链接,以实现菜单功能。回调函数举例:图3-1-5中的菜单“Step”的回调函数。function GuiStep_Callback(hObject, eventdata, handles)% hObject handle to GuiStep (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)num=1;den=1 2 4; step(num,den) 对系统的阶跃响应进行仿真3.1.3 控件的使用除了菜单外,控件也是很重要的接口组成部分,在图3-1-2中的图形对象面板中有各种控件,包括按钮、切换按钮、单选按钮、复选框、文本框、静态文本框、滚动条、框架、列表框、弹出式选菜单和坐标轴。在各计算机平台上,窗口系统都采用控制框和菜单,让用户进行某些操作,或设置选项或属性。控制框是图形对象,如图标、文本框和滚动条,它和菜单一起使用以建立用户图形界面,称之为窗口系统和计算机窗口管理器。MATLAB控制框,又称uicontrol,与窗口管理器所用的函数十分相似。它们是图形对象,可以放置在MATLAB的图形窗中的任何位置并用鼠标激活。MATLAB的 uicontrol包括按钮、滑标、文本框及 弹出式菜单。由MATLAB生成的uicontrol对象在Macintosh、MS-Windows 和X Window系统平台上,有稍微不同的外观,因为窗口系统表达图形对象的方法是不同的。但是,功能本质是相同的,所以相同的MATLAB编码将生成同样的对象,它在不同平台完成同样的功能。Uicontrol由函数uicontrol生成。常用句法与前面所讨论的uimenu相同。Hc_1=uicontrol(Hf_fig, PropertyName ,PropertyValue,.)其中,Hc_1是由函数uicontrol生成uicontrol对象的句柄。通过设定uicontrol对象的属性值 PropertyName , PropertyValue 定义了uicontrol的属性;Hf_fig是父对象的句柄,它必须是图形。如果图形对象句柄省略,就用当前的图形。MATLAB共有八种不同类型或型式的控制框。它们均用函数uicontrol建立。属性 Style 决定了所建控制框的类型。 Callback 属性值是当控制框激活时,传给eval在命令窗口空间执行的MATLAB字符串。这是一个通过属性数据对呼出GUI的例子。在这个案例中,数值属性是“Title”,它的属性是行Confirm Close。打开modaldlg和对话框顶端的语句所显示的文本“Confirm Close”虽然我们没有对此验证,但MATLAB用户手册指出当给定相同命令时,用X的某些工作站动作不一样。如果顶层菜单标志中有带下划线的字符,就可按Meta键并按下下划字符键来选择菜单。如果子菜单项标志中含有带下划线的字符,就按下该字符键来选择菜单项。请参阅键盘使用说明,以为系统确定合适的Meta键。一、常用控件常用控件的作用如表3-1-3.1所示表3-1-3.1 控件的功能控件名Property功能按钮PushButtom最常用的控件,用于响应用户鼠标单击,按钮上有说明文字说明其作用切换按钮ToggleButton当单击时会凹凸状态切换单选按钮RadioButton当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有一个被选中复选框CheckBox当单击时会用“”切换,有选中、不选中和不确定等状态,总是成组出现,多个复选框可同时选用文本框EditText凹形方框,可随意输入和编辑单行和多行文字,并显示出来静态文本框StaticText用于显示文字信息,但不接受输入滚动条Slider可以用图标的方法显示在一个范围内数值的大概范围,用户可以移动滚动条改变数值框架Frame将一组控件围在框架中,用于装饰界面列表框ListBox显示下拉文字列表,用户可以从列表中选择一项或多项弹出式菜单Popup相当于文本框和列表框的组合,用户可以从下拉列表中选择坐标轴Axes用于绘制坐标轴二、控件的创建控件的创建可以在可视化接口环境中创建,也可以使用MATLAB命令用创建句柄对象的方法来创建。在可视化接口环境中创建控件。在可视化接口环境中创建控件很简单,就是在图形对象面板中选中控件,然后在空白的接口编辑面板中拖放即可,如图3-1-6所示为各种控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论