电热锅炉温度控制器的设计
【摘要】 本文介绍了以 AT89S51 单片机为核心的温度控制器的设计,在该设计中采用高精度的温度传感器
AD590 对电热锅炉的温度进行实时精确测量,用超低温漂移高精度运算放大器 OP07 将温度-电压信号进行放
大,再送入 12 位的 AD574A 进行 A\D 转换,从而实现自动检测,实时显示及越限报警。控制部分采用 PID 算法,
实时更新 PWM 控制输出参数,控制可控硅的通断时间,最终实现对炉温的高精度控制。
【关键词】 水温控制系统 PID 控制单片机
温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质
量,因而设计一种较为理想的温度控制系统是非常有价值的。
一 系统设计方案的论证与比较
根据题目要求,电热锅炉温度控制系统由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等
组成。
方案一
采用 8031 作为控制核心,以使用最为普遍的器件 ADC0809 作模数转换,控制上使用对电阻丝加
电使其升温和开动风扇使其降温。此方案简易可行,器件的价格便宜,但 8031 内部没有程序存储器,需要扩
展,增加了电路的复杂性,且 ADC0809 是 8 位的模数转换,不能满足本题目的精度要求。
方案二
采用比较流行的 AT89S51 作为电路的控制核心,使用 12 位的高精度模数转换器 AD574A 进行数
据转换,控制电路部分采用 PWM 控制可控硅的通断以实行对锅炉温度的连续控制,此方案电路简单并且可以
满足题目中的各项要求的精度。
综上分析,我们采用方案二。系统设计总体框图如下。
图 1 控制器设计总体框图
根据温度变化慢,并且控制精度不易掌握的特点,我们设计了以 AT89S51 单片机为检测控制中心的电热锅炉
温度自动控制系统。温度控制采用改进的 PID 数字控制算法,显示采用 3 位 LED 静态显示。该设计结构简单,
控制算法新颖,控制精度高,有较强的通用性。所设计的控制系统有以下功能:
· 温度控制设定波动范围小于±1%,测量精度小于±1%,控制精度小于±2%,超调整量小于±4%;
· 实现控制可以升温也可以降温;
· 实时显示当前温度值;
· 按键控制:设置复位键、运行键、功能转换键、加一键、减一键;
· 越限报警。
二 硬件电路设计
硬件电路主要有两大部分组成:模拟部分和数字部分:从功能模块上来分有:主机电路、数据采集电路、
键盘显示电路、控制执行电路。
1 主机电路的设计
主机选用 ATMEL 公司的 51 系列单片机 AT89S51 来实现,利用单片机软件编程灵活、自由度大的特点,力求用
软件完善各种控制算法和逻辑控制。本系统选用的 AT89S51 芯片时钟可达 12MHz,运算速度快,控制功能完
善。其内部具有 128 字节 RAM,而且内部含有 4KB 的 flash ROM 不需要外扩展存储器,可使系统整体结构更
为简单、实用。
2
I/0 通道的硬件电路的设计
就本系统来说,需要实时采集水温数据,然后经过 A/D 转换为数字信号,送入单片机中的特定单元,然后一
部分送去显示;另一部分与设定值进行比较,通过 PID 算法得到控制量并经由单片机输出去控制电热锅炉加
热或降温。
2.1 数据采集电路的设计
数据采集电路主要由 AD590, 0P07,74LS373,AD574A 等组成。由于控制精度要求为 0.1 度,而考虑到测量干
扰和数据处理误差,则温度传感器和 AD 转化器的精度应更高才能保证控制精度的实现,这个精度可处粗略
定为 0.1 度。故温度传感器需要能够区分 0.1 度;而对于 AD 转换器,由于测量范围为 40-90 度,以 0.1 度
作为响应的 AD 区分度要求,则 AD 需要区分(90-40)/0.1=500 个数字量,显然需要 10 位以上的 AD 转换器。
为此,选用高精度的 12 位 AD574A。
为了达到测量高精度的要求,选用温度传感器 AD590,AD590 具有较高精度和重复性(重复性优于 0.1℃,其
良好的非线形可以保证优于 0.1℃ 的测量精度,利用其重复性较好的特点,通过非线形补偿,可以达到
0.1℃测量精度.)超低温漂移高精度运算放大器 0P07 将温度一电压信号进行放大,便于 A/D 进行转换,以提
高温度采集电路的可靠性。模拟电路硬件部分见图 2。
图 2 温度电压转换电路
2.2 电控制执行电路的设计
由输出来控制电炉,电炉可以近似建立为具有滞后性质的一阶惯性环节数学模型。其传递函数形式为:
可控硅可以认为是线形环节实现对水温的控制。单片机输出与电炉功率分别属于弱电与强电部分,需要进行
隔离处理,这里采用光耦元件 TLP521 在控制部分进行光电隔离,此外采用变压器隔离实现弱强电的电源隔
离。
单片机 PWM 输出电平为 0 时,光耦元件导通,从而使三极管形成有效偏置而导通,通过整流桥的电压经过集
电极电阻以及射集反向偏压,有 7V 左右的电压加在双向可控硅控制端,从而使可控硅导通,交流通路形成,
电阻炉工作;反之单片机输出电平为 0 时,光耦元件不能导通,三极管不能形成有效偏置而截止,可控硅控制
端电压几乎为零,可控硅截止从而截断交流通路,电炉停止工作。此外,还有越限报警,当温度低于下限时发
光二极管亮;高上限时蜂鸣器叫。控制执行部分的硬件电路如下图。
图 3 控制执行部分电路
3 键盘及显示的设计
键盘采用软件查询和外部中断相结合的方法来设计,低电平有效。图 3 中按键 AN1,AN2,AN3,AN4, AN5 的功
能定义如表 1 所示。
按键 AN3 与 P3.2 相连,采用外部中断方式,并且优先级定为最高;按键 AN5 和 AN4 分别与 P1.7 和 P1.6 相连,
采用软件查询的方式;AN1 则为硬件复位键,与 R、C 构成复位电路。
表 1 按键功能
按键
AN1
AN2
AN3
AN4
AN5
键名
复位键
运行键
功能转换键
加一键
减一键
功能
使系统复位
使系统开始数据采集
按键按下(D1 亮)时,显示温度
设定值;按键升起(D1 不亮)时,
显示前温度值
设定温度渐次加一
设定温度渐次减一
显示采用 3 位共阳 LED 静态显示方式,显示内容有温度值的十位、个位及小数点后一位,这样可以只用
P3.0(RXD)口来输出显示数据,从而节省了单片机端口资源,在 P1.4 口和 P3.1(TXD)的控制下通过 74LS164
来实现 3 位静态显示。数字电路硬件部分见图
4.
图 4 数字硬件电路示意图
三 系统软件设计
系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。
1 主程序模块
在主程序中首先给定 PID 算法的参数值,然后通过循环显示当前温度,并且设定键盘外部中断为最高优先级,
以便能实时响应键盘处理;软件设定定时器 T0 为 5 秒定时,在无键盘响应时每隔 5 秒响应一次,以用来采集
经过 A/D 转换的温度信号;设定定时器 T1 为嵌套在 T0 之中的定时中断,初值由 PID 算法子程序提供。在主
程序中必须分配好每一部分子程序的起始地址,形式如下:
ORG
0000H
AJMP
MAIN
ORG
0003H
AJMP
INTO
ORG
000BH
AJMP
TT0
ORG
001BH
AJMP
TT1
主程序流程图见图 5。
图 5 主程序流程图
图 6 键盘及中断程序图
2 功能实现模块
以用来执行对可控硅及电炉的控制。功能实现模块主要由 A/D 转换子程序、中断处理子程序、键盘处理子
程序、显示子程序等部分组成。
2.1 T0 中断子程序
该中断是单片机内部 5s 定时中断,优先级设为最低,但却是最重要的子程序。在该中断响应中,单片机要完
成 A/D 数据采集转换、数字滤波、判断是否越限、标度转换处理、继续显示当前温度、与设定值进行比较,
调用 PID 算法子程序并输出控制信号等功能。
2.3 T1 中断子程序
T1 定时中断嵌套在 T 中断之中,优先级高于 T 中断,其定时初值由 PID 算法子程序提供,T1 中断
响应的时间用于输出可控硅(电炉)的控制信号。
3 运算控制模块
运算控制模块涉及标度转换、PID 算法、以及该算法调用到的乘法子程序等。
3.1 标度转换子程序
该子程序作用是将温度信号(00H~FFH)转换为对应的温度值,以便送显示或与设定值在相同量纲下进行比
较。所用线形标度变换公式为:
式中,Ax: 实际测量的温度值;Nx:经过 A/D 转换的温度量;
Am =90; Ao=40; Nm =FEH; No=01H;
单片机运算采用定点数运算,并且在高温区和低温区分别用程序作矫正处理,温度计测量值与 LED 显示见图
7。
3.2 PID 算法子程序
系统算法控制采用工业上常用的位置型 PID 数字控制,并且结合特定的系统加以算法的改进,形成了变速积
分 PID 一积分分离 PID 控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量(见图 9),而且有
效地克服了积分饱和的影响,使控制精度大大提高。PID 控制算法的流程图如图 8。
图 7 温度计测量值与报警方式图
图 8
PID 控制算法流程图
图 9 中,初始水温为 26 C。实现思想:Ui(k)为第 k 次采样温度值,Ur 为设定值。
e(k) ≥ε 使用 PD 算法;
e(k) <ε使用变速积分 PID 算法。