基于大林算法的温度控制_第1页
基于大林算法的温度控制_第2页
基于大林算法的温度控制_第3页
基于大林算法的温度控制_第4页
基于大林算法的温度控制_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 电气工程及自动化学院课程设计报告 (控制基础实践题 目:基于大林算法的炉温控制仿真 专业班级:自动化 101班姓 名:周 强学 号:33号指导老师:杨国亮2012年 12月 22日摘要电阻炉在化工、 冶金等行业应用广泛, 因此温度控制在工业生产和科学研究 中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线 性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进 行炉温控制, 具有电路设计简单、 精度高、 控制效果好等优点, 对提高生产效率、 促进科技进步等方面具有重要的现实意义。常规的温度控制方法以设定温度为临界点, 超出设定允许范围即进行温度调 控:低于

2、设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控 制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因 此,只能用在精度要求不高的场合。电加热炉是典型的工业过程控制对象, 在我国应用广泛。 电加热炉的温度控 制具有升温单向性,大惯性,大滞后,时变性等特点。其升温、保温是依靠电阻 丝加热, 降温则是依靠环境自然冷却。 当其温度一旦超调就无法用控制手段使其 降温, 因而很难用数学方法建立精确的模型和确定参数, 应用传统的控制理论和 方法难以达到理想的控制。在温度控制技术领域中, 普通采用 PID 控制算法。 但是在一些具有纯滞后环 节的系统中, PID 控制很难兼顾

3、动、静两方面的性能,而且多参数整定也很难实 现最佳控制。若采用大林算法,可做到无或者小超调,无或小稳态误差。大林算法是运用于自动控制领域中的一种算法, 是一种先设计好闭环系统的 响应再反过来综合调节器的方法。 设计的数字控制器 (算法 使闭环系统的特性 为具有时间滞后的一阶惯性环节, 且滞后时间与被控对象的滞后时间相同。 此算 法具有消除余差、对纯滞后有补偿作用等特点。本设计主要采用大林算法来实现炉温控制,并与 PID 算法进行比较。关键词:PID 控制;大林算法;控制算法; MATLAB目录1、大林算法程序 . 202、 PID 控制器算法程序 . 20第一章 系统方案1.1设计任务和要求已

4、知电阻炉对象数学模型为1 (+=-Ts ke s G s其中, k=12, T=400, 60=,电阻炉的温度设定为 1000 .要求:(1设计大林控制算法;(2设计 PID 控制器,并与 PID 算法进行比较;(3改变模型参数,考察模型扰动下系统性能变化情况。1.2大林算法在一些实际工程中, 经常遇到纯滞后调节系统, 它们的滞后时间比较长。 对 于这样的系统, 往往允许系统存在适当的超调量, 以尽可能地缩短调节时间。 人 们更感兴趣的是要求系统没有超调量或只有很小超调量, 而调节时间则允许在较 多的采样周期内结束。也就是说,超调是主要设计指标。对于这样的系统,用一 般的随动系统设计方法是不行

5、的,用 PID 算法效果也欠佳。针对这一要求, IBM 公司的大林 (Dahlin在 1968年提出了一种针对工业生 产过程中含有纯滞后对象的控制算法。其目标就是使整个闭环系统的传递函数 相当于一个带有纯滞后的一阶惯性环节。该算法具有良好的控制效果。大林算法中 D(z的基本形式设被控对象为带有纯滞后的一阶惯性环节或二阶惯性环节, 其传递函数分别 为: (1-1 (1-2 其中 为被控对象的时间常数, 为被控对象的纯延迟时间,为了 简化,设其为采样周期的整数倍,即 N 为正整数。由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即 ,其中 由于一般控制对象均与一

6、个零阶保持器相串联, 所以相应的整个闭环系统的 脉冲传递函数是 (1-3 于是数字控制器的脉冲传递函数为 (1-4 D(z可由计算机程序实现。 由上式可知, 它与被控对象有关。 下面分别对一 阶或二阶纯滞后环节进行讨论。一阶惯性环节的大林算法的 D(z基本形式当被控对象是带有纯滞后的一阶惯性环节时, 由式 (1-1 的传递函数可知, 其脉冲传递函数为 : 将此式代入(2-4 ,可得 (1-5 式中:T 采样周期: 被控对象的时间常数;闭环系统的时间常数。二阶惯性环节大林算法的 D(z基本形式当被控对象为带有纯滞后的二阶惯性环节时, 由式 (1-1 的传递函数可知, 其脉冲传递函数为 3其中,

7、将式 G(z代入式(1-3即可求出数字控制器的模型: (1-6由此, 我们可以设计出控制器的传递函数, 利用 MATLAB 工具在 SIMULINK 里 画出整个控制系统,给定一个阶跃信号就可得到整个控制系统的响应曲线。1.3 PID算法根据偏差的比例(P 、积分(I 、微分(D 进行控制(简称 PID 控制 ,是 控制系统中应用最为广泛的一种控制规律。实际运行的经验和理论的分析都表 明, 运用这种控制规律对许多工业过程进行控制时, 都能得到满意的效果。 不过, 用计算机实现 PID 控制, 不是简单地把模拟 PID 控制规律数字化, 而是进一步与 计算机的逻辑判断功能结合, 使 PID 控制

8、更加灵活, 更能满足生产过程提出的要 求。它的结构如图 1.1所示: 图 1-1 PID 结构图在计算机控制系统中, PID 控制规律的实现必须用数值逼近的方法。当采样 周期相当短时, 用求和代替积分、 用后向差分代替微分, 使模拟 PID 离散化变为4差分方程。数字 PID 增量型控制算式为 2( 1(2 ( ( 1( (1( ( (u -+-+-=-=k e k e k e K k e K k e k e K k u k u k D I P (2-7式中1=P K 称为比例增益;IPI T T K K = 称为积分系数;T T K K DPD = 称为微分系数。为了编程方便,可将式整理成如

9、下形式2( 1( ( (210-+-+=k e q k e q k e q k u (1-8其中 =+-=+=T T K q T T K q T T T T K q DPD P D I P 210 21(1( (1-9第二章 设计流程2.1大林算法软件设计流程图数字控制器是控制系统的核心, 用它对被测参数进行自动调节, 这里采用直 接程序设计法继续设计。程序设计流程图如图 1。 图 2-1 大林算法设计程序流程图2.2 PID算法程序设计流程图PID 控制算法种类繁多,各种控制条件下产生的响应又是有区别的。在本设 计中采用的是普通 PID 控制算法。 PID 算法程序设计流程图如图 2。5图

10、2-2 PID算法程序设计流程图 6第三章 设计过程及结果3.1 GUI界面设计MATLAB 可以创建图形用户界面 GUI (GraphicalUserInterface ,它是用户 和计算机之间交流的工具。 MATLAB 将所有 GUI 支持的用户控件都集成在这个环 境中并提供界面外观、 属性和行为响应方式的设置方法, 随着版本的提高, 这种 能力还会不断加强。由窗口、光标、按键、菜单、文字说明等对象 (Ob2ject构 成的一个用户界面。 用户通过一定的方法 (如鼠标或键盘 选择、 激活这些图形对 象 , 使计算机产生某种动作或变化 , 比如实现计算、 绘图等。 假如科技工作者仅仅 执行数

11、据分析、解方程等工作 , 一般不会考虑 GUI 的制作。但是如果想向客户提 供应用程序 , 想进行某种技术、 方法的演示 , 想制作一个供反复使用且操作简单的 专用工具 , 那么图形用户界面是最好的选择之一。 Matlab 为表现其基本功能而设 计的演示程序 demo 是使用图形界面的最好范例。 Matlab 的用户在指令窗口中运 行 demo 打开图形界面后 , 只要用鼠标进行选择和点击 , 就可浏览丰富多彩的内 容。开发实际的应用程序时应该尽量保持程序的界面友好 , 因为程序界面是应用 程序和用户进行交互的环境。 在当前情况下 , 使用图形用户界面是最常用的方法。 提供图形用户界面可使用户

12、更方便地使用应用程序 , 不需要了解应用程序怎样执 行各种命令 , 只需要了解图形界面组件的使用方法 ; 同时 , 不需要了解各种命令是 如何执行的 , 只要通过用户界面进行交互操作就可以正确执行程序1、打开 GUI 或在 MATLAB 指令窗中运行 guide 得到如图 3-1所示: 图 3-1 创建 GUI72、选则 Blank GUI空白 GUI 设计工作台,如下图所示,包含以下 4个功能区:菜单条、编辑工具条、控件模板区、设计工作区。图形用户界面设计在该区域进行,引出图所示的界面设计工具。用鼠标拖动“工作区”右下角的“小黑块” ,使工作区的大小与图与图大小 相当。点击“轴 Axes ”

13、控件图标,然后在工作区中的适当位置,拉出适当大小的 绘图区。类似上步操作, 通过点击相应的 “静态文本 Static Text ” 、 可编辑文本 “ Edit Text ” 、按键“ Push Button”用鼠标拖拉出相应的控件,如图 图 3-2 GUI空白页3、图形窗口和控件的某些参数进行设置双 击 工 作 区 或 控 件 可 引 出 图 形 和 相 应 控 件 的 “ 属 性 编 辑 框 Property Inspector ” 。图显示的是轴属性的编辑框。 图 3-3属性框4、创建菜单点击“菜单编辑器”图标,引出空白菜单编辑对话窗点击“菜单编辑对话窗”最左上方的“新菜单 New Me

14、nu”图标,在左侧空 白窗口中,出现“ Untitled1”图标;再点击此图标,就在右侧引出类似于图右 侧的填写栏;在“ Lable ”中填写 Options ;在“ Tag ”中填写 optios ;于是左侧 的“ Untiled1”图标变成“ Options ”图标。先点亮左侧的 “ Options ” 图标, 再点击菜单编辑对话窗上的 “心菜单项 New Menu Iterm”图标 , 就引出待定义的菜单项;在左侧的“ Lable ”填写 Box on,在 “ Tag ”填写 box_on。重复该小步的操作,建立另一个菜单项 Box off,如图: 图 3-4 菜单项界面的激活和回调函数

15、生成经以上操作后,工作台上所制作的界面外形及所含构件已经符合设计要求, 但这个界面各构件之间的通讯还没有建立,为此必须激活处理。点击工作台上“激活 Activate Figure ”工具图标,就引出 2个界面:名为 Myguil 的图形用户界面;展示名为 myguil 的 M 函数文件的文件编辑器界面。在 此同时,在当前目录上,由 MATLAB 自动生成 2个文件,即 Myguil.fig 和目 myguil.m 。首先找到所需要的相应控件,然后根据自己的设计想法进行摆正控件。本设 计中所需要的控件主要是按钮,文本,波形图以及输入框。按照自己的思路摆放成的总结面如下: 图 3-5大林算法总界面

16、 图 3-6 PID控制总界面3.2 Simulink设计根据设计任务要求, 进行数学建模。 首先是大林算法的, 根据第一章介绍的算法过程中所得到的 ,进 行数据代入,算出 D (z 的最终表达式。并根据任务要 求进行参 数的填入, 如图所示 :设置控制 温度为 1000 , 系 统 时间 周 期为 10, 时 间 常数 为 60,最后得到大林算法的 Simulink 图: 图 3-7 大林算法 Simulink 图运行得到波形图: 同理进行 PID 控制器的 Simulink 进行设计,根据第一章所得到的公式 2( 1(2 ( ( 1( (1( ( (u -+-+-=-=k e k e k

17、e K k e K k e k e K k u k u k D I P和=+-=+=T T K q T T K q T T T T K q D P D P D I P 210 21( 1(进行参数数据的定义。 给出 q0=P,q1=I,q2=D的数值, 时 间周期为 10,时间常数为 60,最后的 Simulink 仿真图为: 图 3-9 PID控制算法 Simulink 图运行得到波形图: 图 3-10 PID 控制算法 Simulink 下的波形图3.3 程序设计本次课程设计主要使用的是 MATLAB 编程语言。早期用于科学计算的计算机语言, 由于计算机内存容量和运算速度的限制等 原因,常

18、常要定义常量、变量、向量和矩阵等的不同的数据类型,结果导致编程 过于复杂化。和这些语言不一样, MATLAB 语言对他们进行了高度抽象,实现 了数据类型的高度统一,即常量、变量、向量和矩阵等都具有相同的数据类型。 MATLAB 语言认为所有的数据都是一个对象类,都具有相同的属性。因此,用 户不需要事先分别定义常量、 变量、 向量和矩阵等的数据类型就可以直接使用他 们,当然 MATLAB 的这种设计思想是以高性能计算机的出现和普及作为前提条 件的,编程得到了很大简化。MATLAB 语言是一种 “数学形式的语言” 。 它的操作和功能函数指令就是用 平时计算机和数学书上的英文单词和符号来表达的, 比

19、 BASIC 、 FORTRAN 和 C 等语言更接近于人们书写的数学计算公式、 更接近于人们进行科学计算的思维方 式。用 MATLAB 语言编写程序犹如在演算纸上排列公式与求解问题,故有人称 MATLAB 编程语言为“演算纸”式科学算法语言。因此, MA TLAB 语言简单自 然,学习和使用更容易。MATLAB 程序文件是一个纯文本文件,扩展名为 .m ,用任何字处理软件都 可以对它进行编辑。 MATLAB 本身就像一个解释系统,对其中的函数程序的执 行以一种解释执行的方式进行, 程序不必经过编译就可以直接运行, 而且能够及 时报告出现的错误, 进行出错原因分析。 因此, 程序调试容易、 编

20、程效率高。 MATLAB 的用户界面精致,接近 Windows 的标准界面,人机交互性强,操作简单。新版本 的 MATLAB 提供了完整的联机查询、帮助系统,极大地方便了用户的使用。首先根据所画的界面图可知, 需先得到放大倍数 K , 时间常数 T , 仿真时间 Tf 和采样周期 Tm 的输入值,所以这里就用到 get(和 str2double(两条语句,具体 程序如下:a=get(handles.edit1,'String' /得到 handles.edit1的数值;Tf=str2double(a; /把值赋给 Tf ;b=get(handles.edit2,'Str

21、ing'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

22、;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/Tme=r-y(end;u=a0*e-a1*e1+b1*u1+b2*u7;for j=1:Tm/Tx=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_Ca

23、llback(hObject, eventdata, handles这条语句下进行编程。完成编译,写入 K=12, T=10, Tf=4000, Tm=10,运行得到图形如下: 图 3-11 大林算法波形图与大林算法的步骤基本相同,只是在算法编程过程中改变了。这里同样用到 get(和 str2double(两条语句,并写出 G(s的表达式和给定 的控制温度及时间周期。具体如下:a=get(handles.edit4,'String' ;K=str2double(a;b=get(handles.edit5,'String' ;T=str2double(b;c=ge

24、t(handles.edit1,'String' ;kp=str2double(c;d=get(handles.edit2,'String' ;ki=str2double(d;e=get(handles.edit3,'String' ;kd=str2double(e;ts=10;sys=tf(K,T,1,'inputdelay' ,60;dsys=c2d(sys,ts,'zoh' ;num,den=tfdata(dsys,'v' ;在根据第一章所介绍的 PID 简单控制算法进行算法的编程,得到的具体

25、程序 如下:u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;ud_1=0;y_1=0;y_2=0;y_3=0;error_1=0;ei=0;for k=1:1:400time(k=k*ts;rin(k=1000;yout(k=-den(2*y_1+num(2*u_5;error(k=rin(k-yout(k;ei=ei+error(k*ts;gama=0.50;Td=kd/kp;Ti=0.5;c1=gama*Td/(gama*Td+ts;c2=(Td+ts/(gama*Td+ts;c3=Td/(gama*Td+ts;u(k=kp*error(k+kd*(error(k-error_

26、1/ts+ki*ei;if u(k>=1500u(k=1500;endif u(k<=-1500u(k=-1500;endu_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=error_1;error_1=error(k;end同样把编出的程序放到运行按钮的 callback 下,即在function pushbutton1_Callback(hObject, eventdata, handles这条语句下进行编程。完成编译,写入 K=1, T=400, Kp=1, Ki=0.005,

27、 Kd=0,运行得到图形如下: 图 3-12 PID控制算法波形图3.4 两种算法的比较大林算法适合用于没有超调或较小的超调,而对快速性要求不高的场合。需要消除振铃现象PID 算法PID 控制多年来受到广泛的的应用, PID 在解决快速性、稳态误差、超调量 等问题上具有很好的应用。 PID 的调整时间,动态性能都很好。但是 PID 也有需 要改进的地方。改进:积分项的改进在 PID 控制中, 积分作用是消除稳态误差, 提高控制精 度。 但是很多时候积分作用又会对系统的动态响应造成不良影响, 是系统产生大 的超调或时间震荡。 具体的改进有 (1 积分项的改进有积分分离法抗积分饱和 法(2微分项的

28、改进有不完全微分 PID 控制算法微分先行 PID 控制算法在大林算法得到的波形图中,超调量趋近于零,上升时间 1000s ,稳态误差 趋近于零。而在 PID 控制算法中,存在静差,是有差调节,对于扰动较大,且惯 性也较大的系统, 若采用单纯的比例调节, 则很难兼顾动态和静态特性仿真结果。 说明采用大林算法可显著减小超调, 也可做到很小的稳态误差。 从系统设计中我 们可以看出,大林算法的输出不仅是以偏差为依据的,还和前 N 次的输出有关, 但所起的作用不尽相同。 大林算法由于参考了历史输出情况, 且滞后越大, 参考 时间越长, 因此能更有效的抑制超调。 可见大林算法的适应能力很强, 跟踪速度

29、比较快,是具有较大滞后对象的一种较理想的控制算法。第四章 总结本文首先从电阻炉在当今社会的生产和发展,进而介绍其控制系统的优缺 点, 导出大林算法和 PID 控制器及其算法。 从而引出我们对这两种控制算法的理 解和仿真具有重大意义, 介绍了这两种控制技术的发展历史和研究进展。 进而提 出什么是大林算法, 什么是 PID 控制算法、 控制算法的基本结构。 通过网上资料 找到了大林算法的定义及由来, 找到普通 PID 控制算法。 在学习的基础上, 自定 义了自由导入参数来查看其波形图。 并进行了在同参数的情况下, 对大林算法和 PID 控制器算法进行对比。 本次课程设计的控制方法知识规则的推理都大

30、部分借 助计算机程序, 因此对这种控制器的开发需要有比较专业的计算机语言, 在这里 用到的 MATLAB 语言以及所属的 Simulink 仿真控件。在整个设计过程中, 使我对所学知识进行了一个比较大的综合巩固, 让我学 会了各种查阅资料以及整理所需材料的能力, 通过这次的课题设计, 也让我学习 到了不少新知识,在几个星期的学习实践中学到的东西比以往学到的都要丰富, 因为我不仅学到了一些新的专业知识还锻炼了自己解决问题的能力, 这是不可多 得的。 但是, 在设计过程中我也遇到了不少困难, 感觉自己对所学专业知识的欠 缺,让自己增加了紧迫感,要抓紧弥补自己的欠缺,学无止境,这也让我体会到 了不管

31、以后走上什么样的工作岗位, 都不要抛弃自己的学习, 不进则退, 别人的 进步自己的停滞不前终将导致自己的被淘汰, 这是我在整个课题设计过程中最大 的体会。基于大林算法的炉温控制仿真实践 致谢 在这里我要感谢杨国亮老师的辛苦指导, 我成功完成本次课程设计虽然主要 是来自于网络的帮助,但是杨老师的指导却是不可缺少的。开始拿到课程题目, 我根本就无从下手,是杨老师在黑板上给我们讲解题目的含义,并给出了我们所 要完成的一步步的要求。 我也要感谢我的团队组员,是他们和我一步步的完成。从一开始的计算,虽 然算了好几次都是不正确的,但是我们并没有灰心,一直在继续的努力着。这个 组员算错了,换下一位组员继续去

32、算,每一个都有自己的算法思路。最后,总结 大家的想法,黄天不负有心人,我们成功的完成了。 本次课程设计,我组主要采取分工合作,每一位组员都有自己的任务。有的 负责大林算法的计算, 有的负责去编辑大林算法的程序, 有的负责 simusink 的设 计,有的 最后,祝杨老师身体健康,同学们的课程设计都能圆满的成功。 18 基于大林算法的炉温控制仿真实践 参考文献 【1】 、刘金锟先进 PID 控制及其 MATLAB 仿真电子工业出版社,2009。 【2】 、郝丽娜计算机仿真技术及 CAD高等教育出版社,2009。 【3】 、吴寿松自动控制原理科学出版社,2007。 【4】 、杨琳娟等大林算法在炉温

33、控制中的应用仪器仪表学报,2005。 19 基于大林算法的炉温控制仿真实践 附录 1、大林算法程序 a=get(handles.edit1,'String' Tf=str2double(a; 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; 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; fo

温馨提示

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

评论

0/150

提交评论