计算机过程控制实验指导书_第1页
计算机过程控制实验指导书_第2页
计算机过程控制实验指导书_第3页
计算机过程控制实验指导书_第4页
计算机过程控制实验指导书_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机过程控制实验指导书南京理工大学机械工程学院仪器科学与技术系实验1 控制系统动态特性测试一、 实验目的在设定值和扰动信号的作用下,过程控制系统的输出可由两条通道来产生:控制通道:设定值对被控变量影响的通道,其作用是抵消扰动影响,以使被控变量尽可能快地维持在给定值附近。干扰通道:干扰信号对被控变量影响的通道。本实验通过控制通道和干扰通道的增益、时间常数和时滞的变化,测试被控对象特性对控制系统性能的影响。二、 实验内容(1) 增益对控制系统的影响假设被控对象的传递函数为G0(s)=2e-10s/(35s+1),考核系统在单位阶跃信号作用下,不同控制通道增益下系统的响应,运行下列matlab语句

2、,观察响应曲线,得出有关结论。%研究控制通道增益Kc对系统的影响G0=tf(2,35 1); % 2/35s+1np,dp=pade(10,2);Gp=tf(np,dp); % e-10sG1=G0*Gp;Kc=1:0.5:2.5; % Kc=1 1.5 2.0 2.5hold onfor i=1:length(Kc)Gc=feedback(Kc(i)*G1,1); step(Gc); %阶跃响应pause %等键盘 end 从图形可以看出,随着控制通道增益Kc的增加,系统的稳态误差减少,但系统的稳定性变差。(结论:放大系数Kc一般希望大一点,Kc大表明操纵量对被控量校正作用有较大的灵敏度,有

3、利于提高控制质量) 假设系统的传递函数为G0(s)=2e-10s/(35s+1),干扰的传递函数为Gd(s)=2e-5s/(7s+1),则系统在单位阶跃扰动信号的作用下,不同扰动增益的响应曲线可以通过,运行下列matlab语句来观察:%研究扰动通道增益Kd对系统的影响G0=tf(1,7 1);np,dp=pade(5,2);Gp1=tf(np,dp);Gd=G0*Gp1;G1=tf(2,35 1);np,dp=pade(10,2);Gp2=tf(np,dp);Go=G1*Gp2;Kc=1.5;G3=feedback(Go,Kc);G4=Gd*G3;hold onKd=1:4for i=1:le

4、ngth(Kd)G=Kd(i)*G4;step(G); pause %等键盘end 从图形可以看出,随着扰动通道增益Kd的增加,系统的稳态误差增加,并且扰动作用下的输出响应也增加。(结论:放大系数Kd愈大,被控制量的超调量愈大,一般要求Kd愈小愈好)。(2)时间常数对控制系统的影响时间常数T是指当被控对象受到阶跃输入信号作用后,被控量以初始速度变化,达到新的稳态值所需的时间。时间常数T是因为物料或能量的传递需要通过一定的阻力而引起的,反映了被控变量的变化快慢,因此T是对象的一个动态参数。%研究控制通道时间常数T对系统的影响Kc=1.5;T=25 35 45;hold onfor i=1:len

5、gth(T)G0=tf(2,T(i) 1);np,dp=pade(10*T(i)/35,2);Gp=tf(np,dp);G1=G0*Gp;Gc=feedback(Kc*G1,1);step(Gc);pause;end 假设被控对象的传递函数为G0(s)=2e-10s/(Ts+1),考核系统在单位阶跃信号作用下,不同T值(25,35,45)下系统的响应,运行下列matlab语句,观察响应曲线,得出有关结论。 从图形可以看出,随着T的变大,系统的振荡频率变小,系统的动态响应变慢,过渡过程时间加长。(结论:时间常数T小,对象动态响应快,控制及时,有利于克服干扰;但T过小,会引起过渡过程的振荡,不利于

6、控制质量提高,因此,T应适当;)设T0=35,改变扰动通道的时间常数Td(10,35,50),观察扰动阶跃响应曲线。4 %研究扰动通道不同时间常数对系统的影响 G0=tf(2,35 1);Kc=1.5;G1=feedback(G0,Kc);Td=10 35 50;hold onfor i=1:length(Td)Gd=tf(5,Td(i) 1);G=Gd*G1;step(G);pauseend 系统扰动通道的时间常数Td越大,扰动对输出的影响越缓慢,有利于系统克服干扰的影响,提高控制系统质量。(结论:时间常数Td愈大,干扰对被控量的影响愈平缓,时间常数Td愈小,干扰对被控量的影响愈大,因此一般

7、要求Td大一些为好;)(3)时滞对控制系统的影响控制通道的时滞t0时滞t0指输出变量的变化落后于输入变量变化的时间。滞后的产生是由于介质的输送或热质传递需要一段时间所引起的,时滞t0也反映了被控对象的动态特性。时滞t0的存在使系统的稳定性变差,用t0/T0反映系统时滞的相对影响,t0/T0>0.2时,简单的控制系统已很难满足要求,要考虑负责方案。试增加t0考察对曲线的影响。扰动通道的时滞 扰动通道的td不会对系统的稳定性产生影响,仅仅表示扰动进入系统的时间先后对系统的动态品质没有影响。三、 实验报告画出各段语句的图形,得出相关结论。实验2 比例积分微分控制规律特性分析一、实验目的本实验通

8、过比例、积分和微分单独的作用及大小的变化,验证比例、积分和微分环节对系统的余差及稳定性的影响。二、实验内容1、比例作用 假设被控系统为Gp(s)=e-50s/(36s+1) r(t)只采用比例控制策略,研究不同Kp值下,闭环系统阶跃响应曲线:u(t)+y(t)e-50s/(36s+1)Kp 运行下列matlab语句,观察响应曲线,得出有关结论。%tf函数:传递函数定义 参数:分子、分母G0=tf(1,36,1);% pade函数:参数1表示e的(-多少s);参数2表示用几阶来逼近np,dp=pade(50,2);G1=tf(np,dp);% GpGp=G0*G1;% P数组表示不同的Kp值P=

9、0.5,0.7,0.9,1,1.5 ;% hold on表示图形可以叠加hold on;for i=1:length(P) Gc=feedback(P(i)*Gp,1,-1); %定义反馈结构step(Gc); %求阶跃响应pause;end 结论:随着Kp值的变化,控制系统的余差减少,但振荡加剧,振荡周期缩短。2、积分作用假设被控系统为Gp(s)=e-50s/(36s+1),只采用积分策略,研究不同的Ki值下,闭环系统的响应曲线。%研究积分速度对系统调节的影响clearG0=tf(1,36,1);np,dp=pade(50,2);G1=tf(np,dp);Gp=G0*G1;Ki=0.005,

10、0.01,0.015,0.02;hold on;for i=1:length(Ki) Gc=tf(Ki(i),1,0) G=feedback(Gc*Gp,1,-1);step(G);pause;end结论:积分作用可以消除余差,但增大Ki将会降低系统的稳定性,甚至会导致系统不稳定。3、微分作用 由于微分作用不单独采用,所以研究比例微分作用,改变微分时间常数Td,观察系统的闭环系统的响应曲线。%Td对系统调节的影响clearG0=tf(1,36,1);np,dp=pade(50,2);G1=tf(np,dp);Gp=G0*G1;Kp=0.8;Td=20:5:35;hold on;for i=1:

11、length(Td) Gc=tf(Kp*Td(i),1,1) G=feedback(Gc*Gp,1); step(G); pause;end结论:余差存在,随着Td增加,系统的稳定性变差。4、PID算法比较首先介绍一个函数:1、零极点增益模型形式G(S)= k(S-Z1)(S-Z2)(S-Zm)/(S-P1)(S-P2)(S-Pn)式中:  k: 系统增益;z1,z2,zm: 系统零点;p1,p2,pn: 系统极点;注:对实系数的传函模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。系统的传函模型给出以后,可以立即得出系统的零极点模型。2、在MATLAB下的输入形式在MAT

12、LAB里,连续系统可直接用向量z、p、k构成的矢量组【z,p,k】表示系统,即:   k=k;z=z1;z2;zm;p=p1;p2;pn;3、函数命令zpk( )在MATLAB中,用函数命令zpk( )来建立控制系统的零极点增益模型,或者将传函模型或者状态空间模型转换为零极点增益模型。zpk( )函数命令的调用格式为:sys = zpk ( z,p,k )  G(S)=6(S+1.9294)(S+0.0353±0.9287i)/(S+0.9567±1.2272i)(S-0.0433±0.6412i)解:k = 6; z = -1.92

13、94;-0.0353+0.9287*i;-0.0353-0.9287*i;p = -0.9567+1.2272*i;-0.9567-1.2272*i;+0.0433+0.6412*i;+0.0433-0.6412*i;G = zpk(z,p,k)假设系统的模型为Gp=10/(s+1)(s+2)(s+3)(s+4),研究不同调节器下闭环系统阶跃响应。%研究不同调节器下闭环系统阶跃响应。Gp=zpk(,-1;-2;-3;-4,10);hold on;Kp=6.2; % P调节Gc=Kp;G1=feedback(Gp*Gc,1);step(G1);pauseKi=1; % P调节Gc=tf(Ki,1

14、,0);G2=feedback(Gp*Gc,1);step(G2);pauseKp=5.5;Ti=2.5; % PI调节Gc=tf(Kp*1,1/Ti,1,0);G3=feedback(Gp*Gc,1);step(G3);pauseKp=6;Td=0.4; % PD调节Gc=tf(Kp*Td,1,1);G4=feedback(Gp*Gc,1);step(G4);pauseKp=7.4;Ti=1.5;Td=0.38; % PID调节Gc=tf(Kp*Td,1,1/Ti,1,0);G5=feedback(Gp*Gc,1);step(G5);得出各种控制策略的特点。三、 实验报告画出各段语句的图形,

15、得出相关结论。实验3 数字PID控制算法的实现一、实验目的学习传递函数到离散方程的转换方法。学习数字PID控制算法的编写过程。二、实验内容本实验的PID控制算法采用积分分离的PID算法,假设被控对象为具有时延的惯性环节Gp(s)=e-80s/(60s+1),系统的采样周期为20s,延迟时间为4个采样周期,则被控对象被离散化为yout(k)=-den(2)*y(k-1)+num(2)*u(k-5);采用分段积分分离方式,根据误差绝对值的不同采用不同的积分强度。输入中设定值r(k)=40,控制器输出限制在-110,110内,运行以下语句,比较与普通PID控制的阶跃响应。% 积分分离式 PID% 采

16、样时间ts=20;% 被控对象离散化sys=tf(1,60,1,'inputdelay',80); %描述被控对象dsys=c2d(sys,ts,'zoh'); %进行Z变换 num,den=tfdata(dsys,'v');%求Z变换分子分母u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;for k=1:1:200; time(k)=k*ts; % 离散化对象 yout(k)=-den(2)*y_1+num(2)*u_5; %离散化后u与y的关系

17、% I separation rin(k)=40; error(k)=rin(k)-yout(k); ei=ei+error(k)*ts; %ei积分项 M=2; %通过在此处改变M取值来选择是用普通PID或积分分离PID if M=1 %采用分段积分分离方式 if abs(error(k)>=30&abs(error(k)<=40; beta=0.3; elseif abs(error(k)>=20&abs(error(k)<=30; beta=0.6; elseif abs(error(k)>=10&abs(error(k)<=2

18、0; beta=0.9; else beta=1.0; end elseif M=2 %不采用积分分离方式 beta=1.0; end kp=0.80; ki=0.005; kd=3.0; u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+beta*ki*ei; % 控制器的输出限制 if u(k)>=110 u(k)=110; end if u(k)<=-110 u(k)=-110; end u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); error_2

19、=error_1; error_1=error(k); end plot(time,rin,'b',time,yout,'r'); xlabel('time(s)');ylabel('rin,yout');比较曲线得出有关结论,并改变Kp值观察曲线的变化。三、 实验报告画出各段语句的图形,得出相关结论。实验4 PID调节器参数的工程整定一、实验目的采用动态特性法对PID调节器的参数进行工程整定。二、实验内容 动态特性法以广义被控对象阶跃响应为依据,根据经验公式求取PID调节器的最佳参数整定值,由Ziegler-Nichols提出。

20、在系统处于开环并处于稳定的情况下,给系统输入一个阶跃信号,测量系统的输出响应曲线,一般的响应曲线如下图所示。 该广义对象可以用如下数学模型来近似: 其中K、T和t可以有下式来求: K=y()-y(0)/u 如果在曲线上取y(t1)=0.39 y(t2)=0.63 则有 T=2(t2-t1) t=2t1-t2在K、T和t求得的情况下,根据Z-N参数整定公式求得控制器的参数。试采用动态特性法整定PID控制器的参数。%用动态特性参数法确定P、PI、PID调制器的参数%采用曲线拟合法,可近似得到广义对象的一阶惯性加纯滞后对象的参数%假设被控对象的传递函数为1/(s+1)(2s+1)(5s+1)(10s

21、+1)num=1;den=conv(conv(1,1,2,1),conv(5,1,10,1);Gp=tf(num,den); %原系统figure(1),hold onstep(Gp)pausek=0.993;T=14.4;L=6.6; %请从曲线用鼠标读取数组,并计算相应参数值G0=tf(k,T 1);np,dp=pade(L,2);G1=tf(np,dp);G=G0*G1; %近似模型step(G) pause%采用Ziegler-Nichols控制器参数整定PI调节器Kp1=T/(1.1*k*L);Ti1=3.3*L;Gc1=tf(Kp1*1,1/Ti1,1,0);G_c1=feedba

22、ck(G*Gc1,1);figure(2),step(G_c1)观察曲线形状,求取有关数值,了解整定公式三、 实验报告画出各段语句的图形,描述整定过程。附录:MATLAB简介MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。从而能够很好的帮助工程师及科学家解决实际的技术问题。MATLAB的含义是矩阵实验室(Matrix Laboratory),最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。经过十几年的扩

23、充和完善,现已发展成为包含大量实用工具箱(Toolbox)的综合应用软件,不仅成为线性代数课程的标准工具,而且适合具有不同专业研究方向及工程应用需求的用户使用。MATLAB最重要的特点是易于扩展。它允许用户自行建立完成指定功能的扩展MATLAB函数(称为M文件),从而构成适合于其它领域的工具箱,大大扩展了MATLAB的应用范围。目前,MATLAB已成为国际控制界最流行的软件,控制界很多学者将自己擅长的CAD方法用MATLAB加以实现,出现了大量的MATLAB配套工具箱,如控制系统工具箱(control systems toolbox),系统识别工具箱(system identification

24、 toolbox),鲁棒控制工具箱(robust control toolbox),信号处理工具箱(signal processing toolbox)以及仿真环境SIMULINK等。(1)MATLAB的安装本节将讨论操作系统为Microsoft Windows环境下安装MATLAB6的过程。将MATLAB6的安装盘放入光驱,系统将自动运行auto-run.bat文件,进行安装;也可以执行安装盘内的setup.exe文件启动MATLAB的安装程序。启动安装程序后,屏幕将显示安装MATLAB的初始界面,根据Windows安装程序的常识,不断单击Next,输入正确的安装信息,具体操作过程如下:输入

25、正确的用户注册信息码;选择接收软件公司的协议;输入用户名和公司名;选择MATLAB组件(Toolbox);选择软件安装路径和目录;单击Next按钮进入正式的安装界面。安装过程界面如图1所示。图1 MATLAAB安装过程界面图2MATLAAB启动过程界面安装完毕后,选择Restart my computer now选项以重新启动计算机。重新启动计算机后,用户就可以点击图标使用MATLAB6了。MATLAB启动过程界面如图2所示。(2)MATLAB桌面系统MATLAB的桌面系统由桌面平台以及桌面组件共同构成,如图3。桌面平台是各桌面组件的展示平台,它提供了一系列的菜单操作以及工具栏操作,而不同功能

26、的桌面组件构成了整个MATLAB操作平台。其组件主要包含如下8个组件部分:命令窗口(Command Window)历史命令窗口(Command History)组件平台(Launch Pad)路径浏览器(Current Directory Browser)帮助浏览器(Help Browser)工作空间浏览器(Workspace Browser)数组编辑器(Array Editor)M文件编辑调试器(Editor-Debugger)。用户可以在View菜单下选择打开或关闭某个窗口。图3MATLAB桌面平台(3) MATLAB命令窗口MATLAB可以认为是一种解释性语言。在MATLAB命令窗口中,

27、标志>>为命令提示符,在命令提示符后面键入一个MATLAB命令时,MATLAB会立即对其进行处理,并显示处理结果。这种方式简单易用,但在编程过程中要修改整个程序比较困难,并且用户编写的程序不容易保存。如果想把所有的程序输入完再运行调试,可以用鼠标点击快捷或File|New|M-file菜单,在弹出的编程窗口中逐行输入命令,输入完毕后点击Debug|Run(或F5)运行整个程序。运行过程中的错误信息和运行结果显示在命令窗口中。整个程序的源代码可以保存为扩展名为“.m”的M文件。在介绍MATLAB的强大计算和图象处理功能前,我们可以先运行一个简单的程序。设系统的闭环传递函数为:求系统的

28、时域响应图,可输入下面的命令:>> num=1,4; den=1,2,8; step(num,den)图4动态响应时域图程序运行后会在一个新的窗口中显示出系统的时域动态响应曲线,如图4。用鼠标左键点击动态响应曲线的某一点,系统会提示其响应时间和幅值。按住左键在曲线上移动鼠标的位置可以很容易的根据幅值观察出上升时间、调节时间、峰值及峰值时间,进而求出超调量。如果想求根轨迹,可将程序的第三行变为rlocus(num,den),求伯德图可改为bode(num,den)。所不同的是,在根轨迹和伯德图中,G(s)为开环传递函数。MATLAB的语法规则类似于C语言,变量名、函数名都与大小写有关

29、,即变量A和a是两个完全不同的变量。应该注意所有的函数名均由小写字母构成。MATLAB是一个功能强大的工程应用软件,它提供了相当丰富的帮助信息,同时也提供了多种获得帮助的方法。如果用户第一次使用MATLAB,则建议首先在>>提示符下键入DEMO命令,它将启动MATLAB的演示程序。用户可以在此演示程序中领略MATLAB所提供的强大的运算和绘图功能。2MATLAB基本操作命令本节简单介绍与本书内容相关的一些基本知识和操作命令。(1)简单矩阵的输入MATLAB是一种专门为矩阵运算设计的语言,所以在MATLAB中处理的所有变量都是矩阵。这就是说,MATLAB只有一种数据形式,那就是矩阵,

30、或者数的矩形阵列。标量可看作为1×1的矩阵,向量可看作为n×1或1×n的矩阵。这就是说,MATLAB语言对矩阵的维数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB会自动获取所需的存储空间。输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下:(1) 元素之间用空格或逗号间隔;(2) 用中括号()把所有元素括起来;(3) 用分号(;)指定行结束。例如,在MATLAB的工作空间中,输入:>> 则输出结果为:矩阵a被一直保存在工作空间中,以供后面使用,直至修改它。MATLAB的矩阵输入方式很灵活,大矩阵可以分成n行输入,用回车符代替分号或用续行

31、符号()将元素续写到下一行。例如:以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号()。在MATLAB中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:(1) 利用内部语句或函数产生矩阵;(2) 利用M文件产生矩阵;(3) 利用外部数据文件装入到指定矩阵。(2)复数矩阵输入MATLAB允许在计算或函数中使用复数。输入复数矩阵有两种方法:(1) a=12;34+i*56;78(2) a=1+5i 2+6i;3+7i 4+8i注意,当矩阵的元素为复数时,在复数实部与虚部之间不允许使用空格符。如1 5i将被认为是1和

32、5i两个数。另外,MATLAB表示复数时,复数单位也可以用j。(3) MATLAB语句和变量MATLAB是一种描述性语言。它对输入的表达式边解释边执行,就象BASIC语言中直接执行语句一样。MATLAB语句的常用格式为:变量表达式;或简化为:表达式;表达式可以由操作符、特殊符号、函数、变量名等组成。表达式的结果为一矩阵,它赋给左边的变量,同时显示在屏幕上。如果省略变量名和“”号,则MATLAB自动产生一个名为ans的变量来表示结果,如:190081结果为:ans是MATLAB提供的固定变量,具有特定的功能,是不能由用户清除的。常用的固定变量还有eps、pi、Inf、NaN等。其特殊含义可以用7

33、.2.10节介绍的方法查阅帮助。MATAB允许在函数调用时同时返回多个变量,而一个函数又可以由多种格式进行调用,语句的典型格式可表示为:返回变量列表fun-name(输入变量列表)例如用bode()函数来求取或绘制系统的Bode图,可由下面的格式调用:其中变量num、den表示系统传递函数分子和分母,W表示指定频段,mag为计算幅值,phase为计算相角。(4)语句以“”开始和以分号“;”结束的特殊效用在MATLAB中以“”开始的程序行,表示注解和说明。符号“”类似于C+中的“/”。这些注解和说明是不执行的。这就是说,在MATLAB程序行中,出现“”以后的一切内容都是可以忽略的。分号用来取消打

34、印,如果语句最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再在命令窗口或其它窗口中显示。这一点在M文件中大量采用,以抑制不必要的信息显示。(5)获取工作空间信息MATLAB开辟有一个工作空间,用于存储已经产生的变量。变量一旦被定义,MATLAB系统会自动将其保存在工作空间里。在退出程序之前,这些变量将被保留在存储器中。为了得到工作空间中的变量清单,可以在命令提示符>>后输入who 或whos 命令,当前存放在工作空间的所有变量便会显示在屏幕上。命令clear能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clear

35、x。(6)常数与算术运算符MATLAB采用人们习惯使用的十进制数。如:3990.00019.63972382i-3.14159i 3e5i其中。数值的相对精度为eps,它是一个符合IEEE标准的16位长的十进制数,其范围为:。MATLAB提供了常用的算术运算符:+,(),(幂指数)。应该注意:()右除法和()左除法这两种符号对数值操作时,其结果相同,其斜线下为分母,如14与41,其结果均为0.25,但对矩阵操作时,左、右除法是有区别的。(7)选择输出格式输出格式是指数据显示的格式,MATLAB提供format命令可以控制结果矩阵的显示,而不影响结果矩阵的计算和存储。所有计算都是以双精度方式完成

36、的。(1) 如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。如输入:则显示:(2) 如果矩阵中至少有一个元素不是整数,则有多种输出格式。常见格式有以下四种:format short(短格式,也是系统默认格式)format short e(短格式科学表示)format long(长格式)format long e(长格式科学表示)如:对于以上四种格式,其显示结果分别为:短格式5位表示短格式科学表示长格式16位表示长格式科学表示一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。(8)MATLAB图形窗口当调用了一个产生图形的函数时,MATLAB会自动建立一个图形窗口

37、。这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。图形窗口中的图形可通过打印机打印出来。若想将图形导出并保存,可用鼠标点击菜单File|Export,导出格式可选emp、bmp、jpg等。命令窗口的内容也可由打印机打印出来:如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。(9)剪切板的使用利用Windows的剪切板可在MATLAB与其它应用程序之间交换信息。(1) 要将MATLAB的图形移到其它应用程序,首先按Alt-Print Screen键,将图形复制到剪切板中,然后激活其它应用程序,选择edit(编辑)中的pa

38、ste(粘贴),就可以在应用程序中得到MATLAB中的图形。当然还可以借助于copy to Bitmap或copy to Metafile选项来传递图形信息。(2) 要将其它应用程序中的数据传递到MATLAB,应先将数据放入剪切板,然后在MATLAB中定义一个变量来接收。如键入:q= 然后选择Edit中的paste,最后加上“”,这样可将应用程序中的数据送入MATLAB的q变量中。(10)MATLAB编程指南MATLAB的编程效率比BASIC、C、FORTRAN和PASCAL等语言要高,且易于维护。在编写小规模的程序时,可直接在命令提示符>>后面逐行输入,逐行执行。对于较复杂且经常

39、重复使用的程序,可按7.1.3介绍的方法进入程序编辑器编写M文件。M文件是用MATLAB语言编写的可在MATLAB环境中运行的磁盘文件。它为脚本文件(Script File)和函数文件(Function File),这两种文件的扩展名都是.m。(1) 脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。脚本文件的语句可以访问MATLAB工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。例如下述语句如果以.m为扩展名存盘,就构成了M脚本文件,我们不妨将其文件名取为“Step_Response”。 % 用于求取一阶跃响应。 num=1 4; den=1 2 8;step(num,de

40、n)当你键入help Step_Response时,屏幕上将显示文件开头部分的注释:用于求取一阶跃响应。很显然,在每一个M文件的开头,建立详细的注释是非常有用的。由于MATLAB提供了大量的命令和函数,想记住所有函数及调用方法一般不太可能,通过联机帮助命令help可容易地对想查询的各个函数的有关信息进行查询。该命令使用格式为:help命令或函数名注意:若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在MATLAB的搜索路径上。当调用时,只需输入文件名,MATLAB就会自动按顺序执行文件中的命令。(2) 函数文件是用于定义专用函数的,文件的第一行是以function作为关键字引导的,

41、后面为注释和函数体语句。函数就像一个黑箱,把一些数据送进去,经加工处理,再把结果送出来。在函数体内使用的除返回变量和输入变量这些在第一行functon语句中直接引用的变量外,其它所有变量都是局部变量,执行完后,这些内部变量就被清除了。函数文件的文件名与函数名相同(文件名后缀为.m),它的执行与命令文件不同,不能键入其文件名来运行函数,M函数必须由其它语句来调用,这类似于C语言的可被其它函数调用的子程序。M函数文件一旦建立,就可以同MATLAB基本函数库一样加以使用。例1求一系列数的平均数,该函数的文件名为“mean.m” function y=mean(x)% 这是一个用于求平均数的函数w=l

42、ength(x); % length函数表示取向量x的长度y=sum(x)/w; % sun函数表示求各元素的和该文件第一行为定义行,指明是mean函数文件,y 是输出变量,x是输入变量,其后的开头的文字段是说明部分。真正执行的函数体部分仅为最后二行。其中变量w是局部变量,程序执行完后,便不存在了。在MATLAB命令窗口中键入>> r=1:10; % 表示r变量取1到10共10个数mean(r)运行结果显示ans = 5.5000 该例就是直接使用了所建立的M函数文件,求取数列r的平均数。3 MATLAB在控制系统中的应用MATLAB是国际控制界目前使用最广的工具软件,几乎所有的控

43、制理论与应用分支中都有MATLAB工具箱。本节结合前面所学自控理论的基本内容,采用控制系统工具箱(Control Systems Toolbox)和仿真环境(Simulink),学习MATLAB的应用。(1) 用MATLAB建立传递函数模型1有理函数模型线性系统的传递函数模型可一般地表示为: (1)将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量和,就可以轻易地将传递函数模型输入到MATLAB环境中。命令格式为:; (2); (3)在MATLAB控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加

44、方便。该函数的调用格式为:Gtf(num,den);(4)例2一个简单的传递函数模型:可以由下面的命令输入到MATLAB工作空间中去。>>num=1,5;den=1,2,3,4,5;G=tf(num,den)运行结果:Transfer function: s + 5-s4 + 2s3 + 3s2 + 4s + 5这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量。例3一个稍微复杂一些的传递函数模型:该传递函数模型可以通过下面的语句输入到MATLAB工作空间。>> num=6*1,5; den=conv(conv(1,3,1,1,3,1),1,6);tf(n

45、um,den)运行结果Transfer function: 6 s + 30-s5 + 12 s4 + 47 s3 + 72 s2 + 37 s + 6其中conv()函数(标准的MATLAB函数)用来计算两个向量的卷积,多项式乘法当然也可以用这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。2.零极点模型线性系统的传递函数还可以写成极点的形式: (5)将系统增益、零点和极点以向量的形式输入给三个变量、Z和P,就可以将系统的零极点模型输入到MATLAB工作空间中,命令格式为: (6) (7) (8)在MATLAB控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB变量

46、构造出零极点对象,用于简单地表述零极点模型。该函数的调用格式为:G=zpk(Z,P,KGain) (9)例4某系统的零极点模型为:该模型可以由下面的语句输入到MATLAB工作空间中。>> KGain=6;z=-1.9294;-0.0353+0.9287j;-0.0353-0.9287j;p=-0.9567+1.2272j;-0.9567-1.2272j;0.0433+0.6412j;0.0433-0.6412j;G=zpk(Z,P,KGain)运行结果:Zero/pole/gain: 6 (s+1.929) (s2 + 0.0706s + 0.8637)-(s2 - 0.0866s

47、 + 0.413) (s2 + 1.913s + 2.421)注意:对于单变量系统,其零极点均是用列向量来表示的,故Z、P向量中各项均用分号(;)隔开。3. 反馈系统结构图模型设反馈系统结构图如图5所示。图5反馈系统结构图 控制系统工具箱中提供了feedback()函数,用来求取反馈连接下总的系统模型,该函数调用格式如下:G=feedback(G1,G2,sign); (10)其中变量sign用来表示正反馈或负反馈结构,若sign=-1表示负反馈系统的模型,若省略sign变量,则仍将表示负反馈结构。G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。例5若反馈系统图5中的两个传递函

48、数分别为: ,则反馈系统的传递函数可由下列的MATLAB命令得出>> G1=tf(1,1,2,1); G2=tf(1,1,1); G=feedback(G1,G2)运行结果:Transfer function: s + 1-s3 + 3 s2 + 3 s + 2若采用正反馈连接结构输入命令>> G=feedback(G1,G2,1)则得出如下结果:Transfer function: s + 1-s3 + 3 s2 + 3 s例6若反馈系统为更复杂的结构如图6所示。其中,则闭环系统的传递函数可以由下面的MATLAB命令得出:>>G1=tf(1,7,24,24

49、,1,10,35,50,24);G2=tf(10,5,1,0);H=tf(1,0.01,1);G_a=feedback(G1*G2,H)得到结果:Transfer function: 0.1 s5 + 10.75 s4 + 77.75 s3 + 278.6 s2 + 361.2 s + 120-0.01 s6 + 1.1 s5 + 20.35 s4 + 110.5 s3 + 325.2 s2 + 384 s + 120 图6复杂反馈系统 4. 有理分式模型与零极点模型的转换有了传递函数的有理分式模型之后,求取零极点模型就不是一件困难的事情了。在控制系统工具箱中,可以由zpk()函数立即将给定的

50、LTI对象G转换成等效的零极点对象G1。该函数的调用格式为: G1=zpk(G) (11)例7 给定系统传递函数为:对应的零极点格式可由下面的命令得出>>num=6.8, 61.2, 95.2;den=1, 7.5, 22, 19.5, 0;G=tf(num,den);G1=zpk(G)显示结果:Zero/pole/gain: 6.8 (s+7) (s+2)-s (s+1.5) (s2 + 6s + 13)可见,在系统的零极点模型中若出现复数值,则在显示时将以二阶因子的形式表示相应的共轭复数对。同样,对于给定的零极点模型,也可以直接由MATLAB语句立即得出等效传递函数模型。调用格

51、式为: G1=tf(G) (12)例8给定零极点模型:可以用下面的MATLAB命令立即得出其等效的传递函数模型。输入程序的过程中要注意大小写。>>Z=-2,-7;P=0,-3-2j,-3+2j,-1.5;K=6.8;G=zpk(Z,P,K);G1=tf(G)结果显示:Transfer function: 6.8 s2 + 61.2 s + 95.2-s4 + 7.5 s3 + 22 s2 + 19.5 s5. Simulink建模方法在一些实际应用中,如果系统的结构过于复杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的Simulink程序可以用来建立新的数学模型。Simulink是由Math Works 软件公司1990年为MATLA

温馨提示

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

评论

0/150

提交评论