基于大林算法的炉温控制仿真.doc_第1页
基于大林算法的炉温控制仿真.doc_第2页
基于大林算法的炉温控制仿真.doc_第3页
基于大林算法的炉温控制仿真.doc_第4页
基于大林算法的炉温控制仿真.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

电气工程及自动化学院课程设计报告(控制基础实践)题 目:基于大林算法的炉温控制仿真专业班级:自动化101班姓 名:周 强学 号:33号指导老师:杨国亮2012年12月22日摘要电阻炉在化工、冶金等行业应用广泛,因此温度控制在工业生产和科学研究中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等方面具有重要的现实意义。常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。电加热炉是典型的工业过程控制对象,在我国应用广泛。电加热炉的温度控制具有升温单向性,大惯性,大滞后,时变性等特点。其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确的模型和确定参数,应用传统的控制理论和方法难以达到理想的控制。在温度控制技术领域中,普通采用PID控制算法。但是在一些具有纯滞后环节的系统中,PID控制很难兼顾动、静两方面的性能,而且多参数整定也很难实现最佳控制。若采用大林算法,可做到无或者小超调,无或小稳态误差。大林算法是运用于自动控制领域中的一种算法,是一种先设计好闭环系统的响应再反过来综合调节器的方法。设计的数字控制器(算法)使闭环系统的特性为具有时间滞后的一阶惯性环节,且滞后时间与被控对象的滞后时间相同。此算法具有消除余差、对纯滞后有补偿作用等特点。本设计主要采用大林算法来实现炉温控制,并与PID算法进行比较。关键词:PID控制;大林算法;控制算法;MATLAB目录第一章 系统方案11.1设计任务和要求11.2大林算法11.3 PID算法3第二章 设计流程52.1大林算法软件设计流程图52.2 PID算法程序设计流程图5第三章 设计过程及结果73.1 GUI界面设计73.1.1 GUI界面的建立73.1.2 制作GUI界面93.2 Simulink设计103.2.1 大林算法Simulink103.2.2 PID控制算法Simulink113.3 程序设计123.3.1 大林算法编程123.3.2 PID控制算法编程143.4 两种算法的比较16第四章 总结17致谢18参考文献19附录201、大林算法程序202、PID控制器算法程序20基于大林算法的炉温控制仿真第一章 系统方案1.1设计任务和要求已知电阻炉对象数学模型为 其中,k=12, T=400, ,电阻炉的温度设定为1000.要求:(1) 设计大林控制算法;(2) 设计PID控制器,并与PID算法进行比较;(3) 改变模型参数,考察模型扰动下系统性能变化情况。1.2大林算法在一些实际工程中,经常遇到纯滞后调节系统,它们的滞后时间比较长。对于这样的系统,往往允许系统存在适当的超调量,以尽可能地缩短调节时间。人们更感兴趣的是要求系统没有超调量或只有很小超调量,而调节时间则允许在较多的采样周期内结束。也就是说,超调是主要设计指标。对于这样的系统,用一般的随动系统设计方法是不行的,用PID算法效果也欠佳。 针对这一要求,IBM公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯滞后对象的控制算法。其目标就是使整个闭环系统的传递函数 相当于一个带有纯滞后的一阶惯性环节。该算法具有良好的控制效果。 大林算法中D(z)的基本形式 设被控对象为带有纯滞后的一阶惯性环节或二阶惯性环节,其传递函数分别为: (1-1) (1-2)其中为被控对象的时间常数,为被控对象的纯延迟时间,为了简化,设其为采样周期的整数倍,即N为正整数。 由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即 ,其中 由于一般控制对象均与一个零阶保持器相串联,所以相应的整个闭环系统的脉冲传递函数是 (1-3)于是数字控制器的脉冲传递函数为 (1-4)D(z)可由计算机程序实现。由上式可知,它与被控对象有关。下面分别对一阶或二阶纯滞后环节进行讨论。 一阶惯性环节的大林算法的D(z)基本形式 当被控对象是带有纯滞后的一阶惯性环节时,由式(1-1)的传递函数可知,其脉冲传递函数为 :将此式代入(2-4),可得 (1-5)式中:T采样周期: 被控对象的时间常数; 闭环系统的时间常数。 二阶惯性环节大林算法的D(z)基本形式 当被控对象为带有纯滞后的二阶惯性环节时,由式(1-1)的传递函数可知,其脉冲传递函数为 其中, 将式G(z)代入式(1-3)即可求出数字控制器的模型: (1-6)由此,我们可以设计出控制器的传递函数,利用MATLAB工具在SIMULINK里画出整个控制系统,给定一个阶跃信号就可得到整个控制系统的响应曲线。1.3 PID算法根据偏差的比例(P)、积分(I)、微分(D)进行控制(简称PID控制),是控制系统中应用最为广泛的一种控制规律。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到满意的效果。不过,用计算机实现PID控制,不是简单地把模拟PID控制规律数字化,而是进一步与计算机的逻辑判断功能结合,使PID控制更加灵活,更能满足生产过程提出的要求。它的结构如图1.1所示:图1-1 PID 结构图在计算机控制系统中,PID控制规律的实现必须用数值逼近的方法。当采样周期相当短时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。数字PID增量型控制算式为 (2-7)式中 称为比例增益; 称为积分系数; 称为微分系数。为了编程方便,可将式整理成如下形式 (1-8)其中 (1-9)第二章 设计流程2.1大林算法软件设计流程图数字控制器是控制系统的核心,用它对被测参数进行自动调节,这里采用直接程序设计法继续设计。程序设计流程图如图1。图2-1 大林算法设计程序流程图2.2 PID算法程序设计流程图PID控制算法种类繁多,各种控制条件下产生的响应又是有区别的。在本设计中采用的是普通PID控制算法。PID算法程序设计流程图如图2。图2-2 PID算法程序设计流程图第三章 设计过程及结果3.1 GUI界面设计MATLAB可以创建图形用户界面GUI(GraphicalUserInterface),它是用户和计算机之间交流的工具。MATLAB将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。由窗口、光标、按键、菜单、文字说明等对象(Ob2ject)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。假如科技工作者仅仅执行数据分析、解方程等工作,一般不会考虑GUI的制作。但是如果想向客户提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面是最好的选择之一。Matlab为表现其基本功能而设计的演示程序demo是使用图形界面的最好范例。Matlab的用户在指令窗口中运行demo打开图形界面后,只要用鼠标进行选择和点击,就可浏览丰富多彩的内容。开发实际的应用程序时应该尽量保持程序的界面友好,因为程序界面是应用程序和用户进行交互的环境。在当前情况下,使用图形用户界面是最常用的方法。提供图形用户界面可使用户更方便地使用应用程序,不需要了解应用程序怎样执行各种命令,只需要了解图形界面组件的使用方法;同时,不需要了解各种命令是如何执行的,只要通过用户界面进行交互操作就可以正确执行程序3.1.1 GUI界面的建立1、打开GUI或在MATLAB指令窗中运行guide得到如图3-1所示:图3-1 创建GUI2、选则Blank GUI 空白GUI设计工作台,如下图所示,包含以下4个功能区:菜单条、编辑工具条、控件模板区、设计工作区。图形用户界面设计在该区域进行,引出图所示的界面设计工具。用鼠标拖动“工作区”右下角的“小黑块”,使工作区的大小与图与图大小相当。点击“轴Axes”控件图标,然后在工作区中的适当位置,拉出适当大小的绘图区。类似上步操作,通过点击相应的“静态文本Static Text”、可编辑文本“Edit Text”、按键“Push Button”用鼠标拖拉出相应的控件,如图图3-2 GUI空白页3、图形窗口和控件的某些参数进行设置双击工作区或控件可引出图形和相应控件的“属性编辑框Property Inspector”。图显示的是轴属性的编辑框。 图3-3属性框4、创建菜单点击“菜单编辑器”图标,引出空白菜单编辑对话窗点击“菜单编辑对话窗”最左上方的“新菜单New Menu”图标,在左侧空白窗口中,出现“Untitled1”图标;再点击此图标,就在右侧引出类似于图右侧的填写栏;在“Lable”中填写Options;在“Tag”中填写optios;于是左侧的“Untiled1”图标变成“Options”图标。先点亮左侧的“Options”图标,再点击菜单编辑对话窗上的“心菜单项New Menu Iterm”图标,就引出待定义的菜单项;在左侧的“Lable”填写Box on,在“Tag”填写box_on。重复该小步的操作,建立另一个菜单项Box off,如图:图3-4 菜单项界面的激活和回调函数生成经以上操作后,工作台上所制作的界面外形及所含构件已经符合设计要求,但这个界面各构件之间的通讯还没有建立,为此必须激活处理。点击工作台上“激活Activate Figure”工具图标,就引出2个界面:名为Myguil的图形用户界面;展示名为myguil的M函数文件的文件编辑器界面。在此同时,在当前目录上,由MATLAB自动生成2个文件,即Myguil.fig和目myguil.m。3.1.2 制作GUI界面 首先找到所需要的相应控件,然后根据自己的设计想法进行摆正控件。本设计中所需要的控件主要是按钮,文本,波形图以及输入框。 按照自己的思路摆放成的总结面如下: 图3-5大林算法总界面 图3-6 PID控制总界面3.2 Simulink设计3.2.1 大林算法Simulink根据设计任务要求,进行数学建模。首先是大林算法的,根据第一章介绍的算法过程中所得到的,进行数据代入,算出D(z)的最终表达式。并根据任务要求进行参数的填入,如图所示:设置控制温度为1000,系统时间周期为10,时间常数为60,最后得到大林算法的Simulink图:图3-7 大林算法Simulink图运行得到波形图:图3-8大林算法Simulink下的波形图3.2.2 PID控制算法Simulink同理进行PID控制器的Simulink进行设计,根据第一章所得到的公式和进行参数数据的定义。给出q0=P,q1=I,q2=D的数值,时间周期为10,时间常数为60,最后的Simulink仿真图为:图3-9 PID控制算法Simulink图运行得到波形图:图3-10 PID控制算法Simulink下的波形图3.3 程序设计本次课程设计主要使用的是MATLAB编程语言。早期用于科学计算的计算机语言,由于计算机内存容量和运算速度的限制等原因,常常要定义常量、变量、向量和矩阵等的不同的数据类型,结果导致编程过于复杂化。和这些语言不一样,MATLAB语言对他们进行了高度抽象,实现了数据类型的高度统一,即常量、变量、向量和矩阵等都具有相同的数据类型。MATLAB语言认为所有的数据都是一个对象类,都具有相同的属性。因此,用户不需要事先分别定义常量、变量、向量和矩阵等的数据类型就可以直接使用他们,当然MATLAB的这种设计思想是以高性能计算机的出现和普及作为前提条件的,编程得到了很大简化。MATLAB语言是一种“数学形式的语言”。它的操作和功能函数指令就是用平时计算机和数学书上的英文单词和符号来表达的,比BASIC、FORTRAN和C等语言更接近于人们书写的数学计算公式、更接近于人们进行科学计算的思维方式。用MATLAB语言编写程序犹如在演算纸上排列公式与求解问题,故有人称MATLAB编程语言为“演算纸”式科学算法语言。因此,MATLAB语言简单自然,学习和使用更容易。MATLAB程序文件是一个纯文本文件,扩展名为.m,用任何字处理软件都可以对它进行编辑。MATLAB本身就像一个解释系统,对其中的函数程序的执行以一种解释执行的方式进行,程序不必经过编译就可以直接运行,而且能够及时报告出现的错误,进行出错原因分析。因此,程序调试容易、编程效率高。MATLAB的用户界面精致,接近Windows的标准界面,人机交互性强,操作简单。新版本的MATLAB提供了完整的联机查询、帮助系统,极大地方便了用户的使用。3.3.1 大林算法编程首先根据所画的界面图可知,需先得到放大倍数K,时间常数T,仿真时间Tf和采样周期Tm的输入值,所以这里就用到get()和str2double()两条语句,具体程序如下:a=get(handles.edit1,String); /得到handles.edit1的数值;Tf=str2double(a); /把值赋给Tf;b=get(handles.edit2,String);Tm=str2double(b);c=get(handles.edit5,String);K=str2double(c);d=get(handles.edit4,String);Ti=str2double(d);接下来就是设计任务给定的控制温度,及时间周期,r=1000,T=10。数学模型G(s)的表达式A,B,C,D=tf2ss(K,Ti 1),G,H,Cd,Dd=c2dt(A,B,C,T,60)。然后就是根据第一章所介绍的大林算法的计算过程进行程序编译,具体如下:a0=1/8;a1=exp(-Tm/400)/8;b1=exp(-Tm/400);b2=1-exp(-Tm/400);u1=0;u2=0;u3=0;u4=0;u5=0;u6=0;u7=0;e1=0;y=0;y1=0;t=0;x=zeros(size(G,1),1);for i=1:Tf/Tm e=r-y(end); u=a0*e-a1*e1+b1*u1+b2*u7;for j=1:Tm/T x=G*x+H*u; y=y,Cd*x+Dd*u; t=t,t(end)+T;endu7=u6;u6=u5;u5=u4;u4=u3;u3=u2;u2=u1;u1=u;y1=y(end);e1=e;end最后把编出的程序放到运行按钮的callback下,即在function pushbutton1_Callback(hObject, eventdata, handles)这条语句下进行编程。 完成编译,写入K=12,T=10,Tf=4000,Tm=10,运行得到图形如下:图3-11 大林算法波形图3.3.2 PID控制算法编程与大林算法的步骤基本相同,只是在算法编程过程中改变了。这里同样用到get()和str2double()两条语句,并写出G(s)的表达式和给定的控制温度及时间周期。具体如下:a=get(handles.edit4,String);K=str2double(a);b=get(handles.edit5,String);T=str2double(b);c=get(handles.edit1,String);kp=str2double(c);d=get(handles.edit2,String);ki=str2double(d);e=get

温馨提示

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

评论

0/150

提交评论