基于增量式PID算法的水温自动控制器设计

2015-06-08 04:26孟令军张晓春韩朝辉赵盼盼
仪表技术与传感器 2015年12期
关键词:增量按键水温

文 波,孟令军,张晓春,韩朝辉,赵盼盼

(中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原 030051)



基于增量式PID算法的水温自动控制器设计

文 波,孟令军,张晓春,韩朝辉,赵盼盼

(中北大学电子测试技术国家重点实验室,仪器科学与动态测试教育部重点实验室,山西太原 030051)

设计了一种基于增量式PID算法的温度自动控制器,主要由温度采集、液晶显示、键盘输入、升温降温驱动电路等组成。系统以单片机AT89S52为控制核心,由DS18B20负责外部水温的采集。目标温度值经外部键盘输入后,通过AT89S52内部的增量式PID算法确定固态继电器的状态,实现对升温和降温电路的驱动,最终达到目标温度并保持恒定。同时液晶显示屏能够实时显示当前实际温度值、目标温度值以及水温随时间变化的曲线。实验结果表明系统能实现全量程范围内(10~80 ℃)自动升温、降温功能,在15 min内自动达到设定的目标温度值,测量误差保持在0.5 ℃以内。该系统满足现代工业控制领域智能、快速、高精度和人性化的需求。

数字温度传感器;增量式PID算法;高精度;温度;自动控制

0 引言

在现代冶金、石油、化工及电力生产过程中,温度作为重要的热工参数实现其高精度、快速准确的自动控制具有重要的意义及实用价值。由于水温的控制受散热、环境温度等诸多因素影响,其加热和制冷过程是一个非稳态过程。增量式PID控制算法由于其技术成熟、不需要建立数学模型、控制效果和鲁棒性好等优点已广泛应用在工业生产中,它使得大多数工业控制系统能够获得较好的闭环控制性能[1-2]。该控制器以AT89S52作为主控芯片,在控制器内部以软件编程形式实现增量式数字PID算法,通过控制外部继电器的通断来达到温度的自动升温和降温效果,在提高能源利用效率的同时也实现了温度的快速准确控制。

1 系统总体方案设计

系统主要包括核心控制器件AT89S52单片机及其外围电路、电源模块、温度采集模块、升温降温驱动电路、按键输入模块及液晶显示模块。系统总体结构框图如图1所示。

图1 系统总体结构框图

系统选用的单片机AT89S52是一款8位的CMOS微处理器,具有高性能、低功耗的特点。芯片内部拥有8KB的可编程FLASH存储器,支持串口下载和串口调试,同时内部具有3个16位定时/计数器,1个全双工UART串行口,32个I/O口和256bytes的RAM,内部资源非常丰富[3]。

温度采集采用一线式智能数字温度传感器DS18B20,其具有3引脚的TO-92小体积封装形式,测温范围为-55~+125 ℃,12位精度时温度分辨率为±0.062 5 ℃,可实现高精度测温。测量结果直接输出数字温度信号,无需A/D转换,以“一线总线”串行方式发送给控制器,同时可传送CRC校验码,具有极强的抗干扰纠错能力[4]。该温度传感器具有体积小、精度高、传输距离远、接口简单、可组网等优点,在工业测温领域有着极其广泛的应用[5]。

系统工作流程如下:数字温度传感器DS18B20对水温进行实时采集,交由单片机进行处理后在液晶显示屏上显示。当目标温度通过按键输入后,单片机通过增量式PID算法计算后对升温、降温电路进行驱动,以达到设定的目标温度,同时水温变化曲线能够在液晶屏通过切换按键实时显示。

2 增量式数字PID控制算法分析

连续PID的表达式为

(1)

式中:u(t)为控制器的输出;e(t)为控制器的输入,即给定值r(t)与实际输入值y(t)之间的偏差;KP、TI、TD分别为控制器的比例放大系数、积分时间常数和微分时间常数;t为时间常数。

连续PID控制算法控制器无法直接使用,将式(1)进行离散化采样后(采样周期为T),以和式代替积分,以增量代替微分,得到位置式PID算法表达式为

(2)

式中:j为采样次数,j=0,1,…k;KP、KI、KD分别为比例系数、积分系数和微分系数。

位置式PID算法,其当前采样时刻的输出与过去的各个状态有关,计算时需要对e(k)进行累加,运算量大。对式(2)取增量,得到控制量的增量Δu(k)为:

Δu(k) =u(k)-u(k-1)

=Ae(k)+Be(k-1)+Ce(k-2)

(3)

式中:A=KP+KI+KD;B=-(KP+2KD);C=KD。

式(3)为增量式数字PID表达式,控制系统采用恒定的采样周期T,一旦确定了系数A、B、C,只要使用前后3次测量值的偏差,就可以由式(3)求出控制增量。图2为增量式PID控制系统结构图。与位置式PID算法式(2)相比,增量式PID控制算法仅需输出控制的增量,执行器每次变化量较小,使被控对象的参数变化缓慢,误差动作影响小,控制系统相对稳定,因此在实际中应用广泛,非常适合水温自动控制系统[6]。

图2 增量式PID控制系统结构图

3 系统硬件电路设计

系统硬件电路主要由电源模块、温度采集模块、按键输入模块、液晶显示模块和升降温驱动电路5大模块组成,系统硬件电路原理图如图3所示。

3.1 电源模块

电路采用+5 V电源为单片机、温度采集、驱动电路、按键输入、液晶显示等电路供电。

3.2 温度采集模块

温度传感器DS18B20既可以由寄生电源供电,也可采用外部电源供电,为提高温度转换精度并减少干扰,设计采用外部电源单独供电方式。DS18B20采用单总线协议,通过4.7 kΩ上拉电阻把温度输出端DQ与单片机的P3.0口相连,单片机通过该端口实现对传感器的初始化及温度采集[7]。

3.3 键盘输入模块

设计中通过键盘输入模块实现人机交互,分别进行目标温度值和PID参数的设定。目标温度值设定需要3个按键,分别对应温度值的十位、个位和小数位。PID参数的设定需要7个按键,即P参数的十位及P、I、D参数各自的个位和小数位,各数值大小通过增加键和减少键调节。同时系统还加入了温度图形切换按键与图形放大的按键,以及确认键和返回键,共需要16个按键,因此采用4×4矩阵式键盘。设计采用线反转法确定按键,各个按键的功能将通过软件编程控制来确定,键盘的行线与单片机P1口的低4位相连,列线与单片机P1口的高4位相连。

图3 系统硬件电路原理图

3.4 液晶显示模块

液晶显示模块采用汉字图形点阵液晶QC12864B,可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)[8]。其接口方式灵活,操作指令简单方便,可构成全中文人际交互图形界面。该液晶主要用来显示系统的工作状态,当选择基础功能时,显示当前温度值与目标温度值。第二功能键显示水温变化的动态曲线,通过键盘输入中的温度图形切换键即可实现,同时液晶显示还具有温度曲线放大显示功能。

3.5 升温、降温驱动电路

执行机构采用过零式固态继电器(SSR,Solid State Relays)来实现对加热和制冷电路的通断控制。在控制端加入TTL高低电平(由单片机发出)即可改变SSR的输出状态。在图3中,当单片机的P3.4口为高电平时,三极管导通,驱动固态继电器接通,加热器开始工作。当单片机的P3.4口为低电平时固态继电器关断,加热器不工作[9]。同理,当单片机的P0.2口为高电平时,固态继电器导通,半导体制冷片开始工作。为提高制冷片的制冷效果,采用在制冷片的晶格上加装风扇的方法,加快热量的散发,缩短控制所需时间。

4 系统软件程序设计

4.1 系统主程序设计

系统上电后,初始化系统变量,DS18B20采集当前温度值,交由单片机进行处理,并通过液晶屏进行显示。主程序循环过程中不断的扫描按键,如果有按键触发将会调用键值处理函数,实现按键的不同功能。PID参数和目标温度值通过按键进行设定后,按下确认键,秒计数器计数到3 s后启动PID子程序。单片机将当前温度值与设定温度值进行比较,判断是进行加热还是制冷。整个系统程序包括主程序、温度采集子程序、增量式PID算法子程序等。系统主程序流程图如图4所示。

图4 系统主程序流程图

4.2 温度采集子程序设计

DS18B20的操作应遵循以下顺序:初始化(复位)、ROM操作命令、暂存器操作命令[10]。初始化操作是指由主机发出复位脉冲后,由从机发出响应脉冲,即保证单片机和传感器之间建立通信。一旦总线控制器探测到响应脉冲,就可以通过总线写入时序写入ROM指令CCH,表示跳过ROM指令,允许主机进行存储器操作。然后写入RAM操作命令44H,启动温度转换,测量结果被放在DS18B20的暂存器里面。最后用一条读取暂存器内容的RAM操作命令BEH把暂存器中的温度数据读取出来。DS18B20读/写程序流程图如图5所示。

图5 DS18B20读/写流程图

4.3 增量式PID控制算法子程序设计

温控系统将DS18B20实时采集的温度值与设定的目标值进行比较,差值作为PID功能模块的输入,PID算法根据比例、积分、微分系数计算出输出控制参数[11]。根据前面的离散系统的增量式PID算法公式(3),得到增量式PID算法子程序流程图如图6 所示。

图6 增量式PID算法流程图

5 测试结果分析

在室温条件下,以1 L净水为实验对象分别进行静态温度测试和动态温度测试。

5.1 静态温度测试

在不同的水温条件下,将标准温度计和测温探头置于水中同一位置,分别记录标准温度计和测温系统显示的温度值,系统的静态温度测量误差如表1所示。从表1可以看出DS18B20测得的水温在30~50 ℃呈线性关系,测量误差在±0.3 ℃左右。

表1 静态温度测量误差℃

标准温度计温控系统差值比较25.726.00.335.535.2-0.345.045.20.255.155.40.357.858.20.465.265.0-0.272.873.00.2

5.2 动态温度测试

通过按键输入进行+20 ℃(温度升高20 ℃)的动态温度测试。表2为两个波动周期内水温变化的动态误差、静态误差及达到稳态所需时间。从表2可以看出控制系统的最大动态误差为1.7 ℃,静态误差为0.5 ℃,系统达到稳态所需时间为10 min左右。

表2 动态温度变化误差

初始温度/℃设定温度/℃静态误差/℃动态误差/℃稳态时间/min27.847.80.41.79.5730.050.00.41.69.2040.560.50.31.49.4247.867.80.51.39.9751.071.00.51.19.67

以表2中第二组实验数据为例,水温从30 ℃上升到50 ℃时的温度实时变化曲线如图7所示,虚线为目标温度值,实线为水温实时变化曲线。温度经过两个波动周期,在10 min后趋于稳定,最大动态误差为1.6 ℃,达到预期控制效果。

图7 水温实时变化曲线

6 结论

本文设计了一种基于AT89S52和DS18B20数字温度传感器的水温自动控制器,通过增量式PID算法实现对温度的精确控制。在全量程范围内能够实现目标温度的恒值自动控制,系统达到稳态所需时间短,静态误差和动态误差较小。同时该设计具有精度高、成本低、功耗小、稳定性高等优点,适用于现代工业控制领域。

[1] 王怀光,范红波,任国全,等.基于增量式PID控制的半导体制冷温控系统. 现代制造工程,2013(11):110-113.

[2] 赵高超,杨鸿武,裴东,等.基于TMS320F2812的电机增量式PID控制系统.仪表技术与传感器,2014(6):106-112.

[3] 汤锴杰,栗灿,王迪,等.基于DS18B20的数字式温度采集报警系统设计.传感器与微系统,2014,33(3):99-102.

[4] 李娟,李孝禄,王东平.太阳能电动自行车的供电方式与性能.可再生能源,2014,32 (1):19-22.

[5] 包敬海,樊东红,陆安山,等.基于DS18B20的多点体温检测系统的研究.自动化与仪表,2010(2):20-22.

[6] 林海波,王晓曦,刘奭昕.一种基于增量式字PID算法的智能温度控制器.长春工程学院学报(自然科学版),2011,12(3):86-89.

[7] 汪铭东,梅广辉.基于单片机与DS18B20的机柜温度控制器设计.现代电子技术,2014,37(12):8-10.

[8] 肖建涛.新型断路器回路电阻测试方法的研究:[学位论文].北京:北京交通大学,2014.

[9] 王小虎,卢超.基于PID算法的温度控制系统的设计.科技信息,2009(36):112-113.

[10] 周晓,张春生,张希文,等.便携式低功耗温度检测仪设计.电子科技,2012,25(9):121-123.

[11] 王占林,王磊,冯茜.流量控制系统中基于增量式PID算法的工控组态软件设计.仪表技术与传感器,2010(5):101-102.

《仪表技术与传感器》杂志主要栏目介绍

传感器技术

该栏目主要报道传感器在研制开发中的新技术,包括各种新型传感器的结构、原理、设计、计算、工艺测试及应用技术;介绍传感器方面最新发展现状及方向,并对其应用前景和发展趋势进行展望或预测。

仪器仪表

该栏目侧重选用新技术应用与传统产业改造相结合、能显示强大应用潜力的稿件,如集散控制技术、虚拟仪器、现代控制技术、智能仪器仪表的设计思想、制造与应用技术等。

系统与应用

侧重工业自动化领域中先进控制系统的设计与应用,包括间歇控制的生产、调度、优化系统,SIS、DCS、PLC、SCADA系统以及FGS系统的应用等。

研究与开发

该栏目主要报道国内外仪器仪表行业中的新技术、新工艺、新元件及新设备的研究成果。

网址:www.17sensor.com

电话:024-88718630

Design of Water Temperature Automatic ControllerBased on Incremental PID Algorithm

WEN Bo,MENG Ling-jun,ZHANG Xiao-chun,HAN Zhao-hui,ZHAO Pan-pan

(National Key Laboratory for Electronic Measurement and Technology,Key Laboratory of InstrumentationScience & Dynamic Measurement of Ministry of Education, North University of China,Taiyuan 030051,China)

A temperature automatic controller based on incremental digital PID algorithm was designed, the entire system consists of temperature acquisition, LCD, input keyboard and heating and cooling drive circuit. MCU AT89S52 is the control core, and DS18B20 collects external water temperature. Incremental PID algorithm within the AT89S52 MCU controls the solid state relay state to drive the heating and cooling circuit when the target temperature value is inputted through the external keyboard, so that the system achieves the target temperature and keeps constant finally. While, the LCD screen can display the current actual temperature value, the target temperature value and temperature versus time curves. The experiment results show that the system can achieve full scale (10~80 ℃) of heating and cooling function, reach the target temperature value automatically within 15 minutes, and the measurement error is less than 0.5 ℃. The system meets the intelligent, fast, high-precision and humane demands in the field of modern industrial control.

digital temperature sensor;incremental PID algorithm; high precision; temperature; automatic control

国家自然科学基金(61275166)

2014-12-23 收修改稿日期:2015-07-30

TP242.6

A

1002-1841(2015)12-0113-04

文波(1987—),硕士研究生,研究方向为测试计量技术及仪器。E-mail:15135160500@139.com.

猜你喜欢
增量按键水温
某轻型卡车水温偏高的分析及验证
导弹增量式自适应容错控制系统设计
提质和增量之间的“辩证”
全现款操作,年增量1千万!这家GMP渔药厂为何这么牛?
基于有限状态机的按键检测程序设计
“价增量减”型应用题点拨
基于PLC的水温控制系统设计
基于DS18B20水温控制系统设计
按键消抖在单片机和FPGA实验教学中的应用
一种多方向导光按键结构设计