资源描述
合肥学院自动化专业计算机控制技术课程设计报告Hefei University基于大林算法的电加热炉温度控制系统设计基于大林算法的电加热炉温度控制系统设计课程名称课程名称 计算机控制技术课程设计计算机控制技术课程设计 任课教师任课教师 丁丁 健健 班班 级级 10 级自动化级自动化 1 班班 姓姓 名名 学学 号号 1005072 1005072 10050720 日日 期期 2013/06/20 合肥学院自动化专业计算机控制技术课程设计报告22010 级自动化专业级自动化专业计算机控制技术计算机控制技术课程设计任务书课程设计任务书任务分工:针对本次设计课题,我们明确了各自的分工,顾胜池顾胜池主要负责软件程序的编写、连接和调试,黄安福黄安福主要负责各个模块硬件的仿真和调试论文题目基于大林算法的电加热炉温度控制系统基于大林算法的电加热炉温度控制系统设计设计设计类型设计型设计型导师姓名丁健主要内容及目标电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。在本控制对象电阻加热炉功率为 8KW,有 220V 交流电源供电,采用双向可控硅进行控制。本设计针对一个温区进行控制,要求控制温度范围 50350,保温阶段温度控制精度为1。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压,其对象温控数学模型为: 其中:时( )1sddK eG sT s间常数=350 秒,放大系数=50,滞后时间 =10 秒,控制算法选用大林算dTdK法 。件条1PC 机一台,教学实验箱一台;计划学生数及任务3 人(1):明确课题功能。(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(3):存储器资源分配(4):编制程序,根据流程图来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。计划设计进程一、总体方案设计二、控制系统的建模和数字控制器设计三、硬件的设计和实现1、 选择计算机字长(选用 51 内核的单片机)2、 设计支持计算机工作的外围电路(EPROM、RAM、I/O 端口、键盘、显示接口电路等);3、 设计输入信号接口电路;4、 设计 DA 转换和电流驱动接口电路;5、 其它相关电路的设计或方案(电源、通信等)。四、软件设计1、 分配系统资源,编写系统初始化和主程序模块框图;2、 编写 AD 转换和温度检测子程序框图;3、 编写控制程序和 DA 转换控制子程序模块框图;4、 其它程序模块(显示与键盘等处理程序)框图。五、编写课程设计说明书,绘制完整的系统电路图(A3 幅面)。合肥学院自动化专业计算机控制技术课程设计报告3和部分模块程序的编写,柴文峰柴文峰负责报告的整理。摘摘 要要电加热炉在化工、冶金等行业应用广泛,因此温度控制在工业生产和科学研究中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等方面具有重要的现实意义。 常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。电加热炉是典型的工业过程控制对象,在我国应用广泛。电加热炉的温度控制具有升温单向性,大惯性,大滞后,时变性等特点。其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确的模型和确定参数,应用传统的控制理论和方法难以达到理想的控制效果。本设计采用大林算法进行温度控制,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节相串联来实现温度的较为精确的控制。关键词关键词:单片机;A/D、D/A;达林算法;传感器;炉温控制合肥学院自动化专业计算机控制技术课程设计报告4目 录一、绪论 .51.1 系统设计背景.51.2 技术综述.5二、系统总体设计 .52、1 系统概述.52、2 系统的结构框图.5三、 硬件设计 .73、1 微处理器 80C51 .73、2 温度传感器.83、3 驱动电路.93、4 键盘模块.93、5 LED 显示模块 .10四、软件设计 .114、1 系统软件设计.114、2 大林算法的系统设计.114、3 程序控制流程图.13五、调试运行 .14六、课程设计总结 .15参考文献 .17附录一 系统原理图.18附录二 程序.18合肥学院自动化专业计算机控制技术课程设计报告5一、绪论1.1 系统设计背景近年来,加热炉温度控制系统是比较常见和典型的过程控制系统,温度是工业生产过程中重要的被控参数之一,冶金机械食品化工等各类工业生产过程中广泛使用的各种加热炉热处理炉反应炉,对工件的处理均需要对温度进行控制。因此,在工业生产和家居生活过程中常需对温度进行检测和监控。由于许多实践现场对温度的影响是多方面的,使得温度的控制比较复杂,传统的加热炉电气控制系统普遍采用继电器控制技术,由于采用固定接线的硬件实现逻辑控制,使控制系统的体积增大,耗电多,效率不高且易出故障,不能保证正常的工业生产。随着计算机控制技术的发展,传统继电器控制技术必然被基于计算机技术而产生的计算机控制技术所取代。1.2 技术综述自 70 年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。二、系统总体设计2、1 系统概述本设计在硬件部分选择了单片机的 AT80C51 芯片为核心控制部分,输出为K 型热电偶传感器,检测温度后传回单片机系统,最后经过温度控制系统,从而加热电阻,来达到控制电加热炉的目的。2、2 系统的结构框图合肥学院自动化专业计算机控制技术课程设计报告6电加热炉控制系统的硬件结构框图如图 2.1LED显示驱动模块热电偶传感器AT80C51电加热炉键盘图2.1 系统的总体结构框图加热炉温度控制实现过程是:首先温度传感器将加热炉的温度传回单片机,然后 AT80C51 芯片将给定的温度值与反馈回来的温度值进行比较并经过最小拍无纹波算法运算处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热。既加热炉温度控制得到实现。其中单片机的80C51 系统为加热炉温度控制系统的核心部分起着重要作用。合肥学院自动化专业计算机控制技术课程设计报告7三、 硬件设计3、1 微处理器 80C51本系统设计的单片机采用 80C51 或其兼容系列芯片,采用 24MHZ 或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。图3.1 单片机芯片引脚图合肥学院自动化专业计算机控制技术课程设计报告83、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 温度采集电路合肥学院自动化专业计算机控制技术课程设计报告93、3 驱动电路 图3.3 驱动电路3、4 键盘模块在本次设计当中,输入设备采用矩阵键盘:图 3-4 键盘模块电路当“设定”键按下时触发键盘中断服务程序,由程序程控扫描法确定那个键按下并执行相应的动作。程控扫描的任务是:(1)首先判断是否有键按下。方法:使所有的行输出均为低电平,然后从端口 A 读入列值。如果没有键按下,则读人值为 FFH如果有链按下则不为 FFH。合肥学院自动化专业计算机控制技术课程设计报告10(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 位字符编码和字符的应关系。合肥学院自动化专业计算机控制技术课程设计报告11四、软件设计4、1 系统软件设计控制系统的软件主要包括:温度的采样和处理、控制计算、控制输出、中断、显示、调节参数修改、温度设定及修改。其中控制算法采用最小拍无纹波控制算法,以达到更好的控制效果。 考虑到电加热炉是一个非线性、时变和分布参数系统,所以本文采用一种新型的智能控制算法。它充分吸取数学和自动控制理论成果,与定性知识相结合,做到取长补短,在实时控制中取得较好的成果。其中,系统的软件流程图如图4.1 系统软件流程图4、2 大林算法的系统设计大林算法中 D(z)的基本形式 设被控对象为带有纯滞后的一阶惯性环节惯性环节,其传递函数分别为: 合肥学院自动化专业计算机控制技术课程设计报告12其中 t1 为被控对象的时间常数,为被控对象的纯延迟时间,为了简化,设其为采样周期的整数倍,即 N 为正整数。 由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即 ,其中 由于一般控制对象均与一个零阶保持器相串联,所以相应的整个闭环系统的脉冲传递函数是 (2-3)于是数字控制器的脉冲传递函数为 (2-4) D(z)可由计算机程序实现。由上式可知,它与被控对象有关。下面对一阶纯滞后环节进行讨论。 一阶惯性环节的大林算法的 D(z)基本形式 当被控对象是带有纯滞后的一阶惯性环节时,由式(2-1)的传递函数可知,其脉冲传递函数为 :将此式代入(2-4) ,可得 (2-5) 式中:T采样周期 350 秒: 被控对象的时间常数 50; 闭环系统的时间常数 10 秒。合肥学院自动化专业计算机控制技术课程设计报告134、3 程序控制流程图1、程序流程基本思路:控制过程:手动输入一个温度设定值,需要调用键盘扫描子程序,再由传感器检测现场的温度值,调用 A/D 转换子程序,将模拟信号转换为数字信号送单片机处理,调用温度控制子程序来实现温度控制,调用显示子程序将处理后的结果送 LCD 显示。在使用键盘时,要考虑键盘的去抖问题,消抖处理有硬件和软件两种方法:硬件消抖是利用加抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。2、A/D 转换程序流程图如图 4-3 所示返回图 4-3 A/D 转换程序流程图合肥学院自动化专业计算机控制技术课程设计报告143、温度控制流程图如图 4-4 所示图 4-4 温度控制流程图五、调试运行通过 Proteus 仿真和程序调试,基本完成了设计任务:温度传感器将加热炉的温度传回单片机,然后 AT80C51 芯片将给定的温度值与反馈回来的温度值进行比较并经过算法处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热,使加热炉温度控制得到实现:返回合肥学院自动化专业计算机控制技术课程设计报告15图 5-1 运行显示状态六、课程设计总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次模具设计,本人在多方面都有所提高。通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次基于达林算法的加热炉温度控制系统设计从而培养和提高学生独立工作能力,巩固与达林算法设计等课程所学的内容,掌握基于达林算法的设计的方法和步骤,掌握达林算法设计的基本的模型,怎样确定设计方案,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。合肥学院自动化专业计算机控制技术课程设计报告16在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我们的丁健老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次模具设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。合肥学院自动化专业计算机控制技术课程设计报告17参考文献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附录一 系统原理图合肥学院自动化专业计算机控制技术课程设计报告18附录二 程序#include #include#include#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;ia;i+) for(j=0;j0;i-) /D15D11 SCK=0;ADH=SO;ADH=ADH0;i-) /D103 SCK=0;ADL=SO;ADL=ADL1; SCK=1;合肥学院自动化专业计算机控制技术课程设计报告20 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(0 x86);wdata(a+0 x30);wdata(b+0 x30);wdata(c+0 x30);wdata(d+0 x30);wdata( );wdata(C);CS=1;int getkey() uchar temp;int c; P2=0 x0f; temp=P2; temp=temp&0 x0f;/屏蔽高 4 位,取列值 if(temp=0 x0e) c=0; else if(temp=0 x0d) c=1; else if(temp=0 x0b) c=2; else if(temp=0 x07) c=3; P2=0 xf0;/给 P2 的高 4 位高电平,求行值 temp=P2; temp=temp&0 xf0;/屏蔽低 4 位 if(temp=0 xe0) c=c+0;合肥学院自动化专业计算机控制技术课程设计报告21 else if(temp=0 xd0) c=c+4; else if(temp=0 xb0) c=c+8; return c;/最后返回行加列的值void main() int key; init(); wcom(0 x80+0 x40); while(dis3i!=0) wdata(dis3i); i+; while(1) gettemper(); P2=0 x0f; if(P2&0 x0f)!=0 x0f)/延时后在判断一次,去除抖动影响 key=getkey();/求键盘值 wcom(0 x80+0 x46); wdata(key+0 x30); wdata(1+0 x30); wdata(4+0 x30); wdata( ); wdata(C); if(100*key+14514) ADD=0; SUB=1; HOLD=1; if(100*key+14=514) HOLD=0; SUB=1;合肥学院自动化专业计算机控制技术课程设计报告22 ADD=1;
展开阅读全文