水温控制系统
摘要:本水温控制系统使用单片机进行温度实时采集与控制。温度信号由数字化温度传
感器 DS18B20 提供。水温实时控制以单片机作为控制核心,采用 mos 管控制加热器进行升
温、降温控制,通过数字 PID 算法,能够实现在 10℃—70℃量程范围内对每一点温度的自动
控制,以保持设定的温度基本保持不变。系统具备高测量精度与控制精度,并能用液晶屏显
示水温随时间变化的实时曲线。
采用关键字:PID
AT89C52
半导体制冷片 DS18B20
- 1 -
水温控制系统
1 系统方案选择和论证
1.1 题目要求
1.1.1 基本要求
(1)可键盘设定控制温度值,并能用液晶显示,显示最小区分度为 0.1℃;
(2)可以测量并显示水的实际温度。温度测量误差在±0.5 ℃内;
(3)水温控制系统应具有全量程(10℃—70℃)内的升温、降温功能(降温可用半导体制
冷片、升温用 800W 以内的电加热器);
(4)在全量程内任意设定一个温度值(例如起始温度±15℃内),控制系统可以实现该给
定温度的恒值自动控制。控制的最大动态误差≤±4℃,静态误差≤±1℃,系统达到稳态的
时间≤15min(最少两个波动周期)。
1.1.2 发挥部分
(1)当设定温度突变(温度变化±20℃)时,控制的最大动态误差≤±2℃,系统达到稳态
的时间≤8min(最少两个波动周期);
(2)温度控制的静态误差≤±0.2℃(在最小稳态时间内);
(3)在设定温度发生突变(温度变化±20℃)时,用液晶屏显示水温随时间变化的实时曲
线(最少显示两个波动周期);
(4)其他。
1.2 系统基本方案
本温度控制系统采用经典的自动控制控制原理,通过 PID 运算来对水进行加热和制冷调
节,很好地控制水的温度。根据题目要求系统可划分为:温度测量模块、显示电路模块、水
温调节模块、控制模块、键盘输入模块(系统框图如图 1.21 所示)为实现个模块功能,分别
设想几种不同设计方案进行论证
Input
测温部分
键盘
输入
Output
显示电路
控温
设备
控制部分
- 2 -
水温控制系统
1.2.1 各模块方案的选择及论证
(1)控制器模块
根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制加热器和制冷片,
使其满足实验要求、控制显示电路对温度实时显示以及控制温度值的设定等。对控制器的选
择有以下两种方案
方案一:采用 FPGA 作为系统控制器。FPGA 功能强大,可以实现各种复杂的逻辑功能,
规模大,密度高,他将所有期间集成在一块芯片上,减少了体积,提高了稳定性,并且可应
用 EDA 软件仿真、调试,易于进行功能扩展。FPGA 系统处理速度快,适合大规模实时控
制系统核心。由温度传感器送来的温度信号,经 FPGA 程序处理,控制加热、制冷装置动作。
但本设计对数据处理速度要求不高,FPGA 的高速处理有事得不到充分体现,并且其成本偏
高,引脚较多,硬件电路布线复杂
方案二:采用 ATMEL 公司的 AT89C52 作为系统控制器。单片机算术运算功能强,软件编
程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,可采用 PID 算法对水温进行控
制。并可附加显示、温度设定等功能。
基于以上分析拟订方案二,由 AT89C52 作为控制核心采用数字式 PID 对温度采集和实时
显示以及控温装置进行控制。
(2)加热装置
根据题目要求,控制的最大动态误差≤±4℃,静态误差≤±1℃,系统达到稳态的时间
≤15min。根据以上要求对加热装置选择有以下两种方案。
方案一:外置(外壁)加热。控制的功率可以控制加热的速度。当水温过高时,关掉电
热炉进行降温处理,让其自然冷却。在制作中,我们装设一个小电风扇,当水温超高时关闭
电炉开启风扇散热,当需要加热时开启电炉关闭风扇。由于加热的功率较大,考虑到简化电
路的设计,可直接采用 220V 电源。但其控温精度较差,当加热器断电后外壁仍向水中散热。
方案二:内置(水中)加热。此方案虽工艺要求较高,需破环外壁安装,并且要做密封。
但其热量直接与水传递。控温方便。
因此我们拟定方案二为加热装置
(3)制冷装置
根据题目要求,水温控制系统应具有全量程(10℃—70℃)内的升温、降温功能。当设
定温度突变时,控制的最大动态误差≤±2℃,系统达到稳态的时间≤8min。因此我们对比
了一下两种方案
方案一:压缩机制冷。压缩机制冷速度快,最低温度低。但其不可短时间内反复启动,
温度控制难,价格较高,且便携性差
方案二:半导体制冷片制冷。其体积小,安装简单,易于控制,价格便宜,可短时间内
反复启动。但其制冷速率低,需要配套散热风扇,极限制冷温度相对较高。
由于题目要求量程为 10℃—70℃,半导体制冷片基本可满足要求,固拟定方案二。
(4)功率控制模块
- 3 -
水温控制系统
方案一:采用可控硅来控制加热器有效功率。可控硅是一种半控器件,应用于交流电的
功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制
交流功率。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即
移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统
的动态性能指标。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。但该方案
可以实现功率的连续调节,因此响应速度快,控制精度也高。
方案二:采用 MOS 管控制。使用 MOS 管可以很容易实现地通过较高的电压,在正常条件
下,工作十分可靠。这种电路无法精确实现电热丝功率控制,控温设备只能工作在最大功率
或零功率,对控制精度将造成影响。但可以由单片机对温差的处理实现分级功率控制提高系
统动态性能。基于以上分析以及现有器件限制选择方案二,采用 MOS 管控制省去光耦和交流
过零检测电路,在软件上选用适当的控制算法,同样可以达到较好的效果。
(5)温度采集模块
题目要求温度静态误差小于等于 0.2℃,温度信号为模拟信号,本设计要对温度进行控
制和显示,所以要把模拟量转换为数字量。该温度采集模块有以下两种方案:
方案一:采用温度传感器 AD590K。AD590K 具有较高精度和重复性,良好的非线性保证
±0.1℃的测量精度。加上软件非线性补偿可以实现高精度测量。AD590 将温度转化为电流信
号,因此要加相应的调理电路,将电流信号转化为电压信号。送入 8 为 A/D 转换器,可以获
得 255 级的精度,基本满足题目要求。
方案二:采用数字温度传感器 DS18B20。DS18B20 为数字式温度传感器,无需其他外加
电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。
基于以上分析和现有器件所限,温度采集模块选用方案二。他能够直接读出被测温度并
且可根据实际要求通过简单的编程实现 9~12 位的数字值读数方式。在测温精度、转换时间、
传输距离、分辨率等方面带来了令人满意的效果。
(4)键盘与显示模块
根据题目要求,水温要由人工设定,并能实时显示温度值。对键盘和显示模块有下面两
种方案:
方案一:采用液晶显示屏和独立按键。液晶显示屏(LCD)具有功耗小、轻薄短小无辐
射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特
点。但需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。
方案二:采用三位 LED 七段数码管分别显示温度的十位、个位和小数位。按键采用单列
3 按键进行温度设定。数码管具有:低能耗、低损耗、低压、寿命长、耐老化,对外界环境
要求较低。同时数码管采用 BCD 编码显示数字,程序编译容易,资源占用较少。但其只能输
出 3 位数字,数据不直观。
根据以上论述,采用方案一。本系统中控制器资源丰富,采用了液晶屏的动态显示,直
观清晰的了解数据。
1.2.2 系统各模块的最终方案
- 4 -
水温控制系统
根据以上分析,结合器件和设备等因素,确定如下方案:
1. 采用 AT89C52 单片机作为控制器,分别对温度采集、液晶显示屏、温度设定、控温
设备功率控制。
2. 温度测量模块采用数字温度传感器 DS18B20。此器件经软件设置可以实现高分辨率测
量。
3. 加控温设备功率控制采用 MOS 管控制,实现电路简单实用,加上温度变化缓慢可以
满足设计要求。
4. 显示用液晶屏显示实时温度值,用 SET、ENTER、UP、DOWN 四个单键实现温度值的设
定。
DS18B2
0
键
显示
主控
加 热 驱
动
制 冷 驱
电阻丝
制冷片
容
器
图 1.2.3 系统基本框图
系统的基本框图如图 1.2.3 所示。CPU(AT 89C52)首先写入命令给 DS18B20,然后 DS18B20
开始转换数据,转换后通过 89S52 来处理数据。数据处理后的结果通过设定值和测量值的比
较,进行温度调节,当温差比较大时采用开关量调节,既全速加热和制冷,当温差小时采用
PID 算法进行调节,最终达到温度得稳定控制。可用按键进行参数设定,液晶屏进行显示。
1.2.3 控制算法的选择
PID 控制有广泛的实用性,但对于大滞后、大惯性和不确定性的系统,一般很难得到非
常满意的控制效果,需要有其他控制方法与其配合。
开关控制的特点是可以使系统以最快的速度向平衡点靠近,但容易造成系统在平衡点附
近振荡,使得精度不高;将开关控制,防积分饱和、防参数突变微分饱和等方法溶入 PID 控
制组成复合 PID 控制的方法,集各控制策略的优点,既改善了常规控制的动态过程又保持了
常规控制的稳态特性,原理如图 2-2 所示。
其具体的控制过程为:当温差大时采取开关控制迅速减小温差,以缩小调节时间;当温
差进入精控区后采用 PID 控制,以使系统快速结束过渡过程。
- 5 -
水温控制系统
R
e
N
Y
改进的 PID 控制
输出控制量
C
e>key
开关控制
测量装置
图 1-2 复合 PID 控制系统方框图
2 系统硬件设计
2.1 主要单元电路
2.1.1 温度采集部分设计
本系统采用半导体温度传感器作为敏感元件。传感器我们采用了 DS18B20 单总线可编程
温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大
大简化了电路的复杂度。DS18B20 应用广泛,性能可以满足题目的设计要求。DS18B20 的测温
电路如图 2.2.1 所示。
图 2.1.1 统硬件模块关系图
2.2.2 温度控制部分
- 6 -
水温控制系统
由于本系统要控制加热器加热与制冷片制冷组合,功率较大,因此要借助功率电路。在
器件选择上留足余量,增加安全性。加热部分采用 MOS 管控制,电路简单可靠。电路如图 2.2.2
所示。
当实测温度低于设定值时,由单片机输出高电平信号。三极管 8050 导通,MOS 管开始工
作对水加温。
当设定温度低于实测温度时,由单片机输出低电平信号。三极管 8050 导通,MOS 管开始
工作对水降温。
2.2.3 键盘、显示、控制器部分
图 2.2.2 加热和制冷驱动电路
本设计中采用 128*64 液晶屏进行显示。键盘采用按键开关经上拉电阻分别接 P2.0、
图 2.2.3 键盘、显示、控制器部分原理图
- 7 -
水温控制系统
P2.2、P2.3、P2.4 口上,起到控制、上调和下调作用。每按上调和下调键,设定温度值增 1
减 1。原理图如图 2.2.3 所示。
3 系统软件设计
系统的软件设计采用 C 语言,对单片机进行变成实现各项功能。
3.1 主程序流程
开始
初始化
从 E2PROM 中调用各参数值
是否有新参数键入
N
Y
读按键值并更新各参数
显示当前温度值
判断温控方式
温度值小于下限值
N
温度值大于上限值
N
调用 PID 子程序
- 8 -
上传 PC 机
Y
Y
继续加热
停止加热开始制冷