基于大林算法的电加热炉温度控制系统设计说明.doc
2010级自动化专业计算机控制技术课程设计任务书论文题目基于大林算法的电加热炉温度控制系统设计设计类型设计型导师宏武主要容与目标电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间将炉温度稳定到给定的温度值。在本控制对象电阻加热炉功率为8KW,有220V交流电源供电,采用双向可控硅进行控制。本设计针对一个温区进行控制,要求控制温度围50350,保温阶段温度控制精度为±1。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压,其对象温控数学模型为: 其中:时间常数=350秒,放大系数=50,滞后时间=10秒,控制算法选用大林算法 。件条1 PC机一台,教学实验箱一台;计划学生数与任务3人(1):明确课题功能。(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(3):存储器资源分配(4):编制程序,根据流程图来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。计划设计进程一、 总体方案设计二、 控制系统的建模和数字控制器设计三、 硬件的设计和实现1、 选择计算机字长(选用 51核的单片机)2、 设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);3、 设计输入信号接口电路;4、 设计DA转换和电流驱动接口电路;5、 其它相关电路的设计或方案(电源、通信等)。四、 软件设计1、 分配系统资源,编写系统初始化和主程序模块框图;2、 编写AD转换和温度检测子程序框图;3、 编写控制程序和DA转换控制子程序模块框图;4、 其它程序模块(显示与键盘等处理程序)框图。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。摘 要电加热炉在化工、冶金等行业应用广泛,因此温度控制在工业生产和科学研究中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等方面具有重要的现实意义。 常规的温度控制方法以设定温度为临界点,超出设定允许围即进行温度调控:低于设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。电加热炉是典型的工业过程控制对象,在我国应用广泛。电加热炉的温度控制具有升温单向性,大惯性,大滞后,时变性等特点。其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确的模型和确定参数,应用传统的控制理论和方法难以达到理想的控制效果。本设计采用大林算法进行温度控制,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节相串联来实现温度的较为精确的控制。关键词:单片机;A/D、D/A;大林算法;传感器20 / 25 AbstractElectric heating furnace in the chemical, metallurgical and other industries are widely used, so the temperature control is of great significance in the industrial production and scientific research. The control system is a first order delay link,with great inertia, pure lag, nonlinear characteristics, causes the traditional control mode of large overshoot, adjust time is long, low control accuracy. Using single chip microcomputer for temperature control, has the advantages of simple circuit design, high accuracy, good control effect, has the important practical significanceto improve the production efficiency, promote the progress of science and technology etc.The conventional method of temperature control to the set temperature is the critical point, the allowable range is beyond the set temperature regulation: below the set value is heated, otherwise stop or cooling. This method is simple, the cost is low, but the control effect is not ideal, temperature control accuracy is not high,easy to cause concussion, reach a stable point of time is long, therefore, can only be used in less demanding situations in precisionElectric heating furnace is a typical industrial process control object, are widelyapplied in our country. The temperature control of electric heating furnace withunidirectional rising, large inertia, large delay, time-varying characteristics. Theheating, heat preservation is to rely on the resistance wire heating, cooling is to rely on the environment of natural cooling. Once its temperature overshoot cannot use control means that the cooling, so it is difficult to use mathematicalmethod to establish precise model and parameters, control theory and the application of traditional methods is difficult to achieve the ideal control effect.This design uses the Dalin algorithm for temperature control, the transfer function of the closed loop system to the desired equivalent to a delay part andan inertia link are connected in series to achieve precise control of temperature.Key word:singlechip;A/D、D/A; dahlin algorithm;sensor目 录一、绪论51.1系统设计背景51.2技术综述5二、系统总体设计52、1系统概述52、2系统的结构框图5三、硬件设计73、1微处理器80C5173、2温度传感器83、3驱动电路93、4键盘模块93、5 LED显示模块10四、软件设计114、1系统软件设计114、2大林算法的系统设计114、3程序控制流程图13五、调试运行14六、课程设计总结15参考文献17附录一系统原理图18附录二程序18一、绪论1.1系统设计背景近年来,加热炉温度控制系统是比较常见和典型的过程控制系统,温度是工业生产过程中重要的被控参数之一,冶金机械食品化工等各类工业生产过程中广泛使用的各种加热炉热处理炉反应炉,对工件的处理均需要对温度进行控制。因此,在工业生产和家居生活过程中常需对温度进行检测和监控。由于许多实践现场对温度的影响是多方面的,使得温度的控制比较复杂,传统的加热炉电气控制系统普遍采用继电器控制技术,由于采用固定接线的硬件实现逻辑控制,使控制系统的体积增大,耗电多,效率不高且易出故障,不能保证正常的工业生产。随着计算机控制技术的发展,传统继电器控制技术必然被基于计算机技术而产生的计算机控制技术所取代。1.2技术综述自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以与自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器与仪器仪表,在各行业广泛应用。二、系统总体设计2、1系统概述本设计在硬件部分选择了单片机的AT80C51芯片为核心控制部分,输出为K型热电偶传感器,检测温度后传回单片机系统,最后经过温度控制系统,从而加热电阻,来达到控制电加热炉的目的。2、2系统的结构框图电加热炉控制系统的硬件结构框图如图2.1LED显示驱动模块热电偶传感器AT80C51电加热炉键盘图2.1 系统的总体结构框图加热炉温度控制实现过程是:首先温度传感器将加热炉的温度传回单片机,然后AT80C51芯片将给定的温度值与反馈回来的温度值进行比较并经过最小拍无纹波算法运算处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热。既加热炉温度控制得到实现。其中单片机的80C51系统为加热炉温度控制系统的核心部分起着重要作用。三、 硬件设计3、1微处理器80C51本系统设计的单片机采用80C51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。图3.1 单片机芯片引脚图3、2温度传感器在温度传感器部分,选择了K型热电偶传感器。(1) K 型热电偶的测温原理热电传感器是利用转换元件的参数随温度变化的特性,将温度和与温度有关的参数的变化转换为电量变化输出的装置。两种不同的导体或半导体组成的闭合回路就构成了热电偶,热电偶两端为两个热电极,温度高的接点为热端、测量端或自由端;温度低的接点为冷端、参考端或自由端。测量时,将工作端置于被测温度场中,自由端恒定在某一温度。热电偶是基于热电效应工作的,热电效应产生的热电势是由接触电势和温差电势两部分组成的。(2) MAX6675单片热电偶数字转换器。其工作原理如下:K型热电偶产生的热电势,经过低噪声电压放大器A1和电压跟随器A2放大、缓冲后,得到热电势信号U1,再经过S4送至ADC。对于K型热电偶,电压变化率为(41V/),电压可由如下公式来近似热电偶的特性。U1=(41V/)×(T-T0)上式中,U1为热电偶输出电压(mV),T是测量点温度;T0是周围温度。在将温度电压值转换为相应的温度值之前,对热电偶的冷端温度进行补偿,冷端温度即是MAX6675周围温度与0实际参考值之间的差值。通过冷端温度补偿二极管,产生补偿电压U2经S4输入ADC转换器。U2=(41V/)×T0在数字控制器的控制下,ADC首先将U1、U2转换成数字量,即获得输出电压U0的数据,该数据就代表测量点的实际温度值T。这就是MAX6675进行冷端温度补偿和测量温度的原理如图3-2所示。图3.2 温度采集电路3、3驱动电路图3.3 驱动电路3、4键盘模块在本次设计当中,输入设备采用矩阵键盘:图3-4键盘模块电路当“设定”键按下时触发键盘中断服务程序,由程序程控扫描法确定那个键按下并执行相应的动作。程控扫描的任务是:(1)首先判断是否有键按下。方法:使所有的行输出均为低电平,然后从端口A读入列值。如果没有键按下,则读人值为FFH如果有链按下则不为FFH。(2)去除键抖动。方法:延时1020 ms,再一次判断有无键按下,如果此时仍有键按下,则认为键盘上确实有键处于稳定闭合期。(3)若有键闭合,则求出闭合键的键值。方法:对键盘逐行扫描。(4)程序中需等闭合键释放后才对其进行处理。3、5 LED显示模块图3-5 LM016L液晶模块LM016L液晶模块采用 HD44780控制器。 HD44780具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能。LM016L与单片机 MCU(Microcontroller Unit)通讯可采用 8位或者 4位并行传输两种方式。 HD44780控制器由两个 8位寄存器、指令寄存器( IR)和数据寄存器(DR)、忙标志(BF)、显示数据 RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器 RAM(CGRAM)、地址计数器( AC)。IR用于寄存指令码,只能写入不能读出;DR用于寄存数据,数据由部操作自动写入 DDRAM和CGRAM,或者暂存从DDRAM和 CGRAM读出的数据。BF为 1时,液晶模块处于部处理模式,不响应外部操作指令和接受数据。 DDRAM用来存储显示的字符,能存储 80个字符码。 CGROM由 8位字符码生成 5*7点阵字符 160种和 5*10点阵字符 32种,8位字符编码和字符的应关系。四、软件设计4、1系统软件设计控制系统的软件主要包括:温度的采样和处理、控制计算、控制输出、中断、显示、调节参数修改、温度设定与修改。其中控制算法采用最小拍无纹波控制算法,以达到更好的控制效果。 考虑到电加热炉是一个非线性、时变和分布参数系统,所以本文采用一种新型的智能控制算法。它充分吸取数学和自动控制理论成果,与定性知识相结合,做到取长补短,在实时控制中取得较好的成果。其中,系统的软件流程图如图4.1 系统软件流程图4、2大林算法的系统设计大林算法中D(z)的基本形式 设被控对象为带有纯滞后的一阶惯性环节惯性环节,其传递函数分别为: 其中t1为被控对象的时间常数,为被控对象的纯延迟时间,为了简化,设其为采样周期的整数倍,即N为正整数。 由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即 ,其中 由于一般控制对象均与一个零阶保持器相串联,所以相应的整个闭环系统的脉冲传递函数是 (2-3)于是数字控制器的脉冲传递函数为 (2-4) D(z)可由计算机程序实现。由上式可知,它与被控对象有关。下面对一阶纯滞后环节进行讨论。 一阶惯性环节的大林算法的D(z)基本形式 当被控对象是带有纯滞后的一阶惯性环节时,由式(2-1)的传递函数可知,其脉冲传递函数为 :将此式代入(2-4),可得 (2-5) 式中:T采样周期350秒: 被控对象的时间常数50; 闭环系统的时间常数10秒。4、3程序控制流程图1、 程序流程基本思路:控制过程:手动输入一个温度设定值,需要调用键盘扫描子程序,再由传感器检测现场的温度值,调用A/D转换子程序,将模拟信号转换为数字信号送单片机处理,调用温度控制子程序来实现温度控制,调用显示子程序将处理后的结果送LCD显示。在使用键盘时,要考虑键盘的去抖问题,消抖处理有硬件和软件两种方法:硬件消抖是利用加抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值一样时,则说明是某键按下。2、 A/D转换程序流程图如图4-3所示返回图4-3 A/D转换程序流程图3、 温度控制流程图如图4-4所示返回图4-4温度控制流程图五、调试运行通过Proteus仿真和程序调试,基本完成了设计任务:温度传感器将加热炉的温度传回单片机,然后AT80C51芯片将给定的温度值与反馈回来的温度值进行比较并经过算法处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热,使加热炉温度控制得到实现:图5-1 运行显示状态六、课程设计总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次模具设计,本人在多方面都有所提高。通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次基于达林算法的加热炉温度控制系统设计从而培养和提高学生独立工作能力,巩固与达林算法设计等课程所学的容,掌握基于达林算法的设计的方法和步骤,掌握达林算法设计的基本的模型,怎样确定设计方案,提高了计算能力,绘图能力,熟悉了规和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计的能力以与综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感我们的丁健老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次模具设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。同时感对我帮助过的同学们,你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感。参考文献1 梅丽凤,单片机原理与接口技术,:清华大学,2004:19-48,81-932 周继明,江世明. 传感技术与应用M,:中南大学,2005:45-563 毅刚,单片机原理与应用,:高等教育,2003:126-1354 顾兴源,计算机控制系统,:冶金工业, 1981:25-405 连华,单片机应用系统设计方法,: 科学之友, 2010, 07 :27-286楼然苗,51 系列单片机设计实例,:航空航天, 2003.3-357生明,单片机LED显示接口技术,长江职工大学学报,2003,(4):18-24 8袁强, 基于单片机89C51和89C2051点阵LED图文显示,工程地质计算机应用 2006附录一 系统原理图附录二 程序#include <reg52.h>#include<string.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit rs=P33;sbit rw=P36;sbit en=P37;uchar dis2="now T:"uchar dis3="set T:"uchar flag=0;uchar temp;sbit SO=P31;sbit CS=P34;sbit SCK=P35;sbit ADD=P05;sbit SUB=P06;sbit HOLD=P07;uchar ADH,ADL;int i,z,j;void delay(uchar a) uchar i,j; for(i=0;i<a;i+) for(j=0;j<110;j+);void wdata(uchar dat) /写数据 P1=dat; rs=1; rw=0; en=0; delay(4); en=1;void wcom(uchar ) /写命令P1=;rs=0;rw=0;en=0;delay(4);en=1; /初始程序void init(void) uchar i; wcom(0x38); wcom(0x0c); wcom(0x06); wcom(0x01); wcom(0x80); while(dis2i!='0') wdata(dis2i); i+; void gettemper()int a,b,c,d, T;ADH=ADL=0;SCK=0;/CS=0;SCK=1;CS=0;SCK=0; SCK=1;for(i=4;i>0;i-) /D15D11 SCK=0;ADH=SO;ADH=ADH<<1; SCK=1; for(i=8;i>0;i-) /D103 SCK=0;ADL=SO;ADL=ADL<<1; SCK=1; SCK=0;flag=SO; SCK=1;SCK=0; /temp=ADH;/temp<<=8;/temp=temp | ADL;/T=1023.75*temp/4095; T=ADH*256+ADL;a=T/1000;b=(T/100)%10;c=(T/10)%10;d=T%10;wcom(0x86);wdata(a+0x30);wdata(b+0x30);wdata(c+0x30);wdata(d+0x30);wdata(' ');wdata('C');CS=1;int getkey() uchar temp;int c; P2=0x0f; temp=P2; temp=temp&0x0f;/屏蔽高4位,取列值 if(temp=0x0e) c=0; else if(temp=0x0d) c=1; else if(temp=0x0b) c=2; else if(temp=0x07) c=3; P2=0xf0;/给P2的高4位高电平,求行值 temp=P2; temp=temp&0xf0;/屏蔽低4位 if(temp=0xe0) c=c+0; else if(temp=0xd0) c=c+4; else if(temp=0xb0) c=c+8; return c;/最后返回行加列的值void main() int key; init(); wcom(0x80+0x40); while(dis3i!='0') wdata(dis3i); i+; while(1) gettemper(); P2=0x0f; if(P2&0x0f)!=0x0f)/延时后在判断一次,去除抖动影响 key=getkey();/求键盘值 wcom(0x80+0x46); wdata(key+0x30); wdata(1+0x30); wdata(4+0x30); wdata(' '); wdata('C'); if(100*key+14<514) SUB=0; ADD=1; HOLD=1; if(100*key+14>514) ADD=0; SUB=1; HOLD=1; if(100*key+14=514) HOLD=0; SUB=1; ADD=1;