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