烤箱温度控制系统的设计(计算机控制技术基础课程设计)专业:自动化组员:吴传林唐思黄定肖骁重庆大学自动化学院2013年9月目录摘要 (1)序言 (1)1.设计内容 (2)1.1已知参数和设计要求 (2)1.2实现方法 (2)2.组员分工 (2)3. 硬件部分组成 (3)3.1硬件连接 (3)3.2.1 AD574 (3)3.2.2 PT100 (4)3.2.3 芯片8255 (4)4.操作说明 (5)5.设计总体思路 (5)5.1设计步骤 (6)5.1.1主程序的设计 (6)5.1.2温度设定子程序 (6)5.1.3读取当前温度子程序 (6)5.1.4温度比较以及加热子程序 (6)5.1.5报警子程序 (7)5.2原理分析 (7)6.实验结果 (7)7.原程序清单 (8)8.设计感想 (8)8.1吴传林感想 (8)8.2唐思感想 (9)8.3肖骁感想 (10)附录 (12)系统框图 (12)程序代码: (18)摘要本文是对烤箱温度控制系统进行设计,在烤箱温度控制系统中,利用计算机对烤箱的继电器发出不同的信号,来控制继电器的开断,从而能够实现控制烤箱加热与否的控制。
本系统采用了反馈控制,是经典控制理论在实际中成功应用的典型实例。
本次采用的信号输出芯片是8255。
而温度采集则是用了PT100感温电阻,将电信号送至A/D574中,利用A/D574的模数转换功能,将采集的温度模拟信号转换成计算机可以识别的电信号,进而在计算机内对这些电信号进行处理,经过反馈控制算法来输出控制烤箱的电信号。
关键词:反馈控制算法,A/D574模数转换,计算机控制序言温度控制技术广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,传统的温度控制技术中最常见的是继电器调温,但由于继电器动作频繁,温度控制范围小,精度不高,可能会因触点不良而影响正常工作。
最近几年快速发展的有PID 温控、模糊控制、神经网络以及遗传算法在温度控制中的应用。
烤箱是热处理生产中应用最广的加热设备,它电流通过电热元件产生热量,借助辐射和对流的传递方式,将热量传递给所要加热的物品,使其加热到所要求的温度。
本文设计的烤箱温度控制系统,是利用计算机对其温度进行控制,采用反馈控制算法,以实现对烤箱温度控制,达到控制性能要求的指标。
1.设计内容1.1已知参数和设计要求1.某烤箱的温度控制要求为:控制烤箱温度从室温上升到目标温度并一直保持在该目标温度,要求控制的精度达±3%,调节时间≤20秒。
2.目标温度应可以通过键盘任意修改。
3.完成温度检测、温度变松,温度显示(LED和CRT曲线)、温度控制、通过键盘设定上、下限温度报警值,温度超限报警(声、光)等功能。
1.2实现方法采用PD-32E实验装置实现(限≤5人选做)2.组员分工姓名职务负责的部分吴传林组长键盘扫描、判断控制、显示模块程序编写,程序的编译和调试唐思组员AD574转换,标度变换,控制算法,PWM波生成,程序的编译和调试肖骁组员报警程序、读入温度值拆分、键盘输入值合并,报告撰写黄定组员3.硬件部分组成3.1硬件连接1)8255部分(第5片)连线:8255(5)的CS结CS2 300H,PA0~PA3接键盘P0~P3,PB0~PB3接键盘Q0~Q3,PC0接烤箱的PWM 控制信号接收端。
2)AD574连线:AD574的CS接地址输入端CS7,AD574的12/8接VCC;AD574的A0接GND,AD574的10VIN接其上方的±5V,10VIN接PT100模块的PT_OUT。
3)蜂鸣器接8255的PC1口。
3.2硬件介绍3.2.1 AD574AD574A是单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换芯片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:在CE=1、CS=0同时满足时,AD574A才会正常工作,在AD574处于工作状态时,当R/C=0时A/D转换,当R/C=1是进行数据读出。
和A0端用来控制启动转换的方式和数据输出格式。
A0=0时,启动的是按完整12位数据方式进行的。
当A0=1时,按8位A/D转换方式进行。
当R/C=1,也即当AD574A处于数据状态时,A0和R/C控制数据输出状态的格式。
当R/C=1时,数据以12位并行输出,当R/C=0时,数据以8位分两次输出。
而当A0=0时,输出转换数据的高8位,A0=1时输出A/D转换数据的低4位,这四位占一个字节的高半字节,低半字节补零。
如果需AD574A工作于单一模式,只需将CE、端接至+5V电源端,和A0接至0V,仅用端来控制A/D转换的启动和数据输出。
当=0时,启动A/D转换器,经25us后STS=1,表明A/D转换结束,此时将置1,即可从数据端读取数据。
3.2.2 PT100pt100是铂热电阻,它的阻值会随着温度的变化而改变。
PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
它的工作原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成近似匀速的增长。
但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。
常见的pt100感温元件有陶瓷元件,玻璃元件,云母元件,它们是由铂丝分别绕在陶瓷骨架,玻璃骨架,云母骨架上再经过复杂的工艺加工而成。
PT100/PT1000铂电阻RT曲线图表:图3.13.2.3 芯片82558255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
图3.24.操作说明键盘上的A键为启动键,B键为复位键,D为设置温度上限,E为设置温度下限,0-9数字键输入温度值。
5.设计总体思路框图如图所示:控制器烤箱温度采集我们采用的是传统的反馈控制策略,其具体过程如下:一开始,给定一个输入信号,即期望温度,此时,控制程序还没有起作用,此信号通过变送器送至继电器,继电器导通,使烤箱处于工作状态。
这时,温度传感器就把烤箱内的温度转变成电信号送至计算机中。
计算机则将此电信号与输入的期望温度进行比较,通过控制器,根据不同的设定及差值,选择不同的控制算法。
由于计算机内的电信号都是脉冲信号,因此,可以调节脉冲信号的占空比来调节继电器的断开与导通的时间。
期望值与测量值的差距大,就增大占空比,使一个周期内的加热时间增长,反之,则减小占空比。
采用上述的控制策略,即可以实现温度调节,达到控制指标的要求。
5.1设计步骤5.1.1主程序的设计首先确定主程序所要实现的目标,即:预设显示输出,输入温度上限、温度下限,输入设定温度值,显示预设温度,实时刷新当前温度并显示,比较实时温度与设定温度差值并进行反馈控制,控制温度达到性能指标要求。
然后,确定了主程序所要实现的功能以后,在相应的编写各个子程序模块。
同时,要考虑在整个系统实现的过程中,所要运用到的芯片,好进行芯片的初始化。
如8255,AD574等5.1.2温度设定子程序温度设定子程序,即,从键盘上输入3个数字,将其存放在指定的空间区域内。
5.1.3读取当前温度子程序即AD574的使用过程。
首先,先将AD574初始化,启动转换,转换结果屏蔽高4位后,将所得到的结果存放在指定单元中,为当前温度。
5.1.4温度比较以及加热子程序将前一步骤采集到的当前温度进行标度变换,比较设定值的大小与当前温度和设定值之差,然后做出相应的标记,然后根据不同的标记跳到相应的加热子程序中。
其基本原则就是:实际温度和期望温度差距越大,加热子程序中,每个周期的高电平占空比就越大,若设定值比较大,则直接采用满程输出。
5.1.5报警子程序烤箱工作时,当烤箱温度超过设置温度上限和低于温度下限时,调用子程序,否则跳出子程序;其中接蜂鸣器的控制信号为第五片8255A的PC1口输出信号,输出0时,蜂鸣器发出警报,输出为1时,声音停止。
5.2原理分析制烤箱温度的系统,我们采用反馈控制算法。
利用计算机控制中的A/D转换器,将采集到的模拟信号转换成数字信号,然后送入计算机进行处理。
在计算机中,我们编写了控制算法,将送入的电信号经过该算法,输出一个控制继电器开关的脉冲信号,我们可以通过调节脉冲高电平的占空比,来控制一个信号周期内加热时间的长短。
从而实现控制。
又由于这个占空比是实时变化的,所以,这是一个变比例系数的P控制器。
利用这个控制器,我们可以使烤箱内的温度保持在我们所设定的期望值。
6.实验结果实验结果如下表所示:实验次数初始温度设定温度调节时间超调量误差1351004℃ 1.3%2401402℃ 1.2%3601602℃ 1.5%4502201℃2%本次设计总体上还是比较成功,基本上实现了任务要求。
只有调节时间的,可能是冗长的程序,或者是电烤箱的功率问题,又或者是自己反馈补偿参数设计不够完善,总之,不能达到要求的20秒以内,此为设计的瑕疵。
7.原程序清单见附录48.设计感想8.1吴传林感想作为我们团队的组长,需要确定合适的电路,对电路进行调试,将变送器调至最合适的范围。
同时还要确定与硬件相关的软件主体思想。
一个项目的成败,与组长的整体协调能力关系很大。
这次的时间比较紧张,而且之前没怎么做过过程控制类的题目,所以可以说是时间短、任务重。
热敏电阻PT100之前接触过,但是没有和计算机连起来使用,也是一个新的挑战。
这次设计我吸取的上次计算机硬件课程设计的教训,学会多利用子程序,而不是要把所有的问题都用一个主程序解决,却很少使用子程序。
这样,不但别人读不懂自己的程序,就连自己有时候都读不懂自己的程序。
这次课程设计感觉比以前进步的一点就是程序的模块化思想更加深刻。
之前总也用程序段的方式插入的主程序中,而这次则是尽量减少主程序的内容,将所有的处理部分都写成子程序,设计好入口参数,就可以是整个程序思路清晰,一目了然。
一个好的程序编写者并不是会把所有的模块都自己写出来,而是可以将自己搜索到的各种模块与自己的项目结合,设计好接口参数,达到事半功倍的效果。
这次的程序就用了之前做过的一些设计的模块,如实时显示刷新模块,延时程序,报警子程序等。
这些之前积累下来的宝贵资料大大加快了本次课程设计的速度。