《温度控制系统设计报告最终版文档资料.pdf》由会员分享,可在线阅读,更多相关《温度控制系统设计报告最终版文档资料.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、温 度 控 制 系 统 设 计 方 案设计要求:1、大体要求 容器内环境温度设定范围:,最小区分度为1;当容器内环境温度降低时(例如用电扇降温),温度控制的静态误差1;显示容器内环境的实际温度。2、发挥部份 采用适当的控制方式,当设定容器内环境温度突变(由30提高到50)时,减小系统的调节时刻和超调量,同时自动打印其温度随时刻转变的曲线;温度控制的静态误差0.2;采用发光二极管光柱形式和数码形式显示白炽灯灯壁上的温度;其它。大体设计思路:由题目要求可知,本系统对温度控制的精度要求比较高,因此考虑利用 PID控制来控制系统温度,而热源的控制采用 PWM 波来进行精准控制。由温度传感器来传回温度数
2、据,由单片机处置数据并发出相应的动作,从而保证温度的恒定。方案论证:(1)温度传感器DS18B20 是达拉斯公司生产的数字温度传感器,测温范围在55125,采用单总线通信微处置器连接时仅需要一条口线即可实现微处置器与 DS18B20的双向通信。精度能够达到 0.0625。(2)主控芯片51系列的 8位单片机(3)显示及键盘LCD1602液晶显示。89S52单片机 温 度 信 号 采 集 电 路 温度控制驱动电路 电热元件 单片机控制部分供电 加热部分供电 系统设计概要:(1)系统外形缩略图(3)PID算法PID算法是本程序中的核心部份。咱们采用 PID模糊控制技术,通过Pvar、Ivar、Dv
3、ar(比例、积分、微分)三方面的结合调整形成一个模糊控制来解决惯性温度误差问题。其原理如下:本系统的温度控制器的电热元件之一是发烧丝。发烧丝通过电流加热时,内部温度都很高。当容器内温度升高至设定温度时,温度控制器会发出信号停止加热。但这时发烧丝的温度会高于设定温度,发烧丝还将会对被加热的器件进行加热,即便温度控制器发出信号停止加热,被加热器件的温度还往往继续上升几度,然后才开始下降。当下降到设定温度的下限时,温度控制器又开始发出加热的信号,开始加热,但发烧丝要把温度传递到被加热器件需要必然的时候,这就要视发烧丝与被加热器件之间的介质情形而定。通常开始从头加热时,温度继续下降几度。所以,传统的定
4、点开关控制温度会有正负误差几度的现象,但这不是温度控制器本身的问题,而是整个热系统的结构性问题,使温度控制器控温产生一种惯性温度误差。增量式 PID 算法的输出量为 Un=Kp(en-en-1)+(T/Ti)en+(Td/T)(en-2*en-1+en-2)式中,en、en-一、en-2别离为第 n次、n-1 次和 n-2次的误差值,Kp、Ti、Td别离为比例系数、积分系数和微分系数,T 为采样周期。运算机每隔固按时刻 T 将现场温度与用户设定目标温度的差值带入增量式PID 算法公式,由公式输出量决定PWM 方波的占空比,后续加热电路按照此 PWM恒温箱 控制器 热源 18B20 方波的占空比
5、决定加热功率。现场温度与目标温度的误差大则占空比大,加热电 路的加热功率大,使温度的实测值与设定值的误差迅速减少;反之,二者的误差 小则占空比减小,加热电路加热功率减少,直至目标值与实测值相等,达到自动 控制的目的。硬件设计 一、单片机最小系统单元 主控机系统采用了 Atmel 公司生产的 AT89S52 单片机,它含有 256 字节数据存储器,内置 8K 的电可擦除 FLASH ROM,可重复编程,大小知足主控机软件系统设计,所以没必要再扩展程序存储器。复位电路和晶振电路是 AT89S52 工作所需的最简外围电路。单片机最小系统电路图如下图所示。单片机最小系统图 AT89S52 的复位端是一
6、个史密特触发输入,高电平有效。RST端若由低电平上升到高电平并持续 2个周期,系统将实现一次复位操作。在复位电路中,按一下复位开关就使在 RST端出现一段时刻的高电平,外接 24M 晶振和两个 30pF 电容组成系统的内部时钟电路。二、18B20温度传感器 美国 DALLAS公司的产品可编程单总线数字式温度传感器 DS18B20可实现室内温度信号的收集,有很多长处:如直接输出数字信号,故省去了后继的信号放大及模数转换部份,外围电路简单,本钱低;单总线接口,只有一根信号线作为单总线与 CPU 连接,且每一只都有自己唯一的 64 位系列号存储在其内部的 ROM存储器中,故在一根信号线上能够挂接多个
7、 DS18820,便于多点测量且易于扩展。由图可知,18B20 只占用一个 IO 口,只要将传感器的第二脚接到单片机的口即可向单片机传输数据。3、键盘显示部份电路 独立按键设计比起中断键盘相对简单很多,因为本系统只有两个按键,及用程序扫描键盘即可,液晶的八个数据口接 P0口,三个控制端口 R/S、R/W、E别离接、。4、PWM驱动电路 驱动部份主要采用 IRF540N场效应管,它最大能够通过 28A电流,驱动能力相当强悍,由 R3的的一端接单片机 I/O口,高压部份和低压部份利用用光电耦合器隔离,信号单向传输,输入端与输出端完全实现了电气隔离隔离,输出信号对输入端无影响,抗干扰能力强,工作稳固
8、,无触点,利用寿命长,传输效率高。五、光柱部份电路 光柱由 74HC373来驱动,由于锁存器能够灌输较大的电流,从而能够保证LED灯的亮度,通过 LE锁存端得锁存作用,能够避免灯柱因 IO口电平快速转变而造成灯柱闪烁。当锁存端 LE为高电平时,锁存器直通,灯柱跟从 IO口的电平转变,结束后 LE变回低电平锁存数据。软件设计 一、系统主程序 本系统的系统主程序采用 C语言编写,大体流程如下:主程序开始后进行各个模块初始化,启动按时器 0和按时器 1别离用作 PWM发生器和响铃时刻控制器,而后 18B20开始检测系统环境温度,液晶显示函数输出当前的系统温度,接着键盘扫描函数开始扫描键盘,判断是不是
9、有按键按下,而且判断提高设定温度仍是降低设定温度,响铃控制函数判断温度是不是已达到检测系统温度 向液晶输出当前温度 键盘扫描 响铃 2S 定时器 0、1初始化 液晶初始化 是否达到设定温度 PID控制输出量 灯柱控制 Start END 是否有按键按下 温度设定值步进 1 是 否 是 否 设定温度,当达到时开启蜂鸣器响铃 2S,PID 控制器通过 18B20 的返回值和设 定值相较较,通过改变 PWM 的占空比来改变输出量的大小。灯柱显示当前的PWM波的占空比。(1)按时器 0中断程序(2)在按时器 0 中断程序中加入控制 PWM 占空比的计数变量,当那个变量值在 1 至 71,在 PID 控
10、制函数中只要改变那个变量的值就可以够改变输出 PWM 的占空比。变量取 1 时占空比最小,现在输出功率最小,当变量取 70时占空比最大,现在的输出功率最大。(3)蜂鸣器响铃程序(4)若是响铃程序仅仅简单的判断是不是达到设定温度响铃的话,铃声可能就会响很长时刻,这是咱们不肯看到的情形,因此响铃程序是如此实现的:(5)通过响铃标志位 flag的作用,只有温度从低温抵达高温的时候系统才会响铃。(6)灯柱控制函数(7)灯柱所显示的就是当前 PWM 的占空比,当占空比越高的时候灯柱上的灯亮的越多,为实现那个功能咱们采用了多分枝判断函数,具体流程如下:响亮标志 flag=1 响铃 2S 系统温度高于设定温
11、度&flag=0 为真 温 度 低 于设定温度 响铃标志 flag=0 是 否 是 否 响铃标志 flag=1(8)(9)PID控制程序(10)PID及 Pvar、Ivar、Dvar(比例、积分、微分),通过 PID 控制器来控制的灯泡的发烧量,测温系统的返回值作为 PID 控制函数的输入值,通过函数的处置取得相应的控制量,具体函数处置进程为,由测温系统的返回值 Temperature,和设定温度 Set 的差值计算出误差量 Error,Error*Kp 得出比例 项输出 量 PID1,积分 项变 量Integral=Error,从而得出积分项输出量 PID2=Integral*Ti,对本系统
12、实验证明,单用 PI 控制已经知足要求,因此咱们没有再加入微分项。(11)系统调试与校准 测试环境温度()测试仪器 测试仪器量程()测试仪器分度()温度计误差()32 液体酒精温度计 0100 1(1)18B20校准 因为 18B20 是存在误差,因此需要与标准温度计做矫正。第一次测量数据:PWM 占空比小于 25%是 否 PWM 占空比25%50%PWM 占空比50%75%PWM 占空比75%100%否 否 点亮四个 LED点亮两个 LED 灯不亮 点亮六个 LED 是 是 是 18B20()T1 温度计温度()T2 误差()T2-T1 30 31 32 33 34 35 36 37 38
13、39 40 第二次测量数据:18B20()T1 温度计温度()T2 误差()T2-T1 31 32 33 34 35 测量误差曲线:第一次测量温度误差曲线 00.10.20.30.40.50.60.70.80.911.11.21.31.41.51.61.71.81.9230 31 32 33 34 35 36 37 38 39 40 第二次测量温度误差曲线00.10.20.30.40.50.60.70.80.911.11.21.31.41.51.61.71.81.9230 31 32 33 34 35 36 37 38 39 40 较正后测量数据:18B20()T1 温度计温度()T2 误差(
14、)T2-T1 30 31 32 33 34 35 36 37 38 39 40 修正后误差曲线-0.500-0.400-0.300-0.200-0.1000.0000.1000.2000.3000.4000.5000 1 2 3 4 5 6 7 8 9 10(2)误差产生原因 一、本系统中误差,一部份来自 18B20的设计误差,18B20的理论设计上的误差曲线如下:咱们的系统工作在 3040之间,理论典型误差大体应在。因此 Error1是由18B20本身所产生的。二、第二部份的系统误差来自于温度计,由于咱们利用的是液体酒精温度计其本身就有专门大的误差,它的分度值为 1,十分位上会存在估读误差
15、而温度计的误差有在 之间,但为标准统一路见咱们以温度计的念书为准校对18B20。3、空气的比热约 Cv,当温度传感器所感受的的温度抵达设定值得时候,由于热量散布不均匀,温度计和温度传感器之间有必然的距离这也会造成测量温度误差。(3)减小误差的方式 一、DS18B20 的设计误差无法避免,要提精度必需采用更高精度的温度传感器。二、按照误差度数做出温度误差曲线,按照曲线的近似斜率对 18B20进行相应的温度补偿,尽可能减小系统误差。3、温度传感器和温度计尽可能靠近,以减小热量散布不均匀所产生的误差。系统设计总结:本系统主要由王文涛和陈志超完成,在制作阶段陈志超主要负责硬件和单片机最小系统的焊接,软件及编程工作主要由王文涛完成,咱们在制作的进程中碰到了很多问题,譬如 PID算法的应用,咱们之前并无接触过 PID算法,只是在系统调试时利用比例控制,但根本无法达到预期的效果,从而咱们开始了解 PID算法及其应用原理,并将其应用到咱们的系统当中。通过这次的制作,咱们进一步的掌握的系统调试的一些技能,积累了实践经验,咱们深刻的熟悉到了理论和实际仍是有专门大的差距的。原来以为不用多少时刻就可以完成任务,那时咱们感觉这是最简单的一个系统,但结果用了整整四天的时刻,虽然花了必然的时刻和精力,可是也学到了很多东西,知识是不用说的,还有就是团队合作精神。
限制150内