摘要
本系统以AT89C51,AT89C2051,STC89C52,STC89C51单片机为核心,主要包括传感器温度采集,A/D模/数转换,按扭操作,单片机控制,数码管数字显示等部分。本系统采用PID算法实现温度控制功能,通过串行通信完成两片单片机信息的交互而实现温度设定、控制和显示。本设计还可以通过串口与上位机(电脑)连接,实现电脑控制。系统设计有体积小、交互性强等优点。为了实现高精度的水温控制,本单片机系统采用PID算法控制和PWM脉宽调制相结合的技术,通过控制双向可控硅改变电炉和电源的接通、断开,从而改变水温加热时间的方法来实现对水温的控制。本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。
1.基本要求
一升水由1kw的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。
2.主要性能指标
- 温度设定范围:30-90℃,最小区分度为1℃。
- 温度控制的静态误差≤1℃。
- 用十进制数码显示实际水温。
- 能打印实测水温值。
3.扩展功能
- 具有通信能力,可接受其他数据设备发来的命令,或将结果传送到其他数据设备。
- 采用适当的控制方法实现当设定温度与环境温度突变时,减小系统的调节时间和超调量。
- 温度控制的静态误差≤1℃。
- 能自动显示水温随时间变化的曲线。
2、总体方案设计
2.1总体方案的确定
2.1.1、控制方法选择
由于水温控制系统的控制对象具有热存储能力大,惯性也较大的特点。水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。一般来说,热过程大多具有较大的滞后,它对任何信号的响应都会推迟一段时间,使输出与输入之间产生相移。对于这样一些存在大的滞后特性的过渡过程控制,一般来说可以采用以下几种控制方案:
(1)输出开关量控制:
对于惯性较大的过程可以简单地采用输出开关量控制的方法。这种方法通过比较给定值与被控参数的偏差来控制输出的状态:开关或者通断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易硬气反馈回路产生振荡,对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。
(2)比例控制(P控制)
比例控制的特点是控制器的输出与偏差成比例,输出量的大小与偏差之间有对应关系。当负荷变化时,抗干扰能力强,过渡时间短,但过程终了存在余差。因此它适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。使用时还应注意经过一段时间后需将累积误差消除。
a. 比例积分控制(PI控制)
由于比例积分控制的特点是控制器的输出与偏差的积分成比例,积分的作用使得过渡过程结束时无余差,但系统的稳定性降低。虽然加大比例度可以使稳定性提高,但又使过渡时间加长。因此,PI控制适用于滞后较小、负荷变化不大、被控量不允许有余差的控制系统,它是工程上使用最多、应用最广的一种控制方法。
b. 比例积分加微分控制(PID控制)
比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。因此,PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
;结合本例题设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从以上对控制方法的分析来看,PID控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。
2.1.2、.系统组成
就控制器本身而言,控制电路可以采用急经典控制理论和常规模拟控制系统实现水温的自动团结。但随着计算机与超大规模集成电路的迅速发展,以现代控制理论和计算机为基础,采用数字控制、显示、A/D与D/A转换,配额后执行器与控制阀构成的计算机控制系统,在过程控制过程中得到越来越广泛的应用。
由于本例是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机为核心的直接数字控制系统(DDC)。
2.1.3、.单片机系统选择
AT89C2051、AT89C51单片机是最常用的单片机,是一种低损耗、高性能、CMOS八位微处理器。AT89C2051与MCS-51系列的单片机在指令系统和引脚上完全兼容,而且能使系统具有许多MCS-51系列产品没有的功能,功能强、灵活性高而且价格低廉。AT89S51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于4K,四个I/O口全部提供给拥护。系统运行中需要存放的中间变量较少,可不必再扩充外部RAM。
1.1.4、温度控制
键盘输入一个需要控制的温度,通过单片机2051的串口把数据传送到AT89C51,AT89C51通过数据比较,PID分析,T0,T1产生PWM波来控制电炉是否继续加热还是停止加热。
1.1.5、方案选择
方案一:用热敏电阻:通过电阻的变化来获得电压的变化,起价格虽然便宜但是精度不是很高。对于一个精度要求高的系统不宜采用
方案二:用A/D590:通过AD590温度传感器采集温度,由于AD590是电流传感器,经过电阻转换为电压。虽然价格较高但是精度高。
经比较,我们选择方案二
第3节 系统硬件设计
3.1系统框图
3.1.2键盘显示电路
本模块以AT89C2051单片机为核心,利用138译码器对显示器动态扫描及作为键盘的扫描线,采用此方法大大简化了硬件,充分的利用了单片机的资源,这也是本设计的巧妙所在。可同过键盘来设置温度,并显示在数码管上,并通过串口发送出去,另外检测到温度通过串口接收进来,并显示在相应的数码管上键盘的扫描输入与显示器的扫描输出由单片机控制,但考虑到键盘与接口需要较多的I/O口线,如果直接由单片机控制,一方面必须扩充系统I/O口,另一方面,键盘与LED显示的扫描处理占用大量机时,增加软件编程负担。
为此在组成系统人机对话通道时采用了可编程的键盘。显示接口芯片8051,由8051负责键盘扫描、消抖处理和显示输出工作。根据认为的要求,8051键盘被设计为2*8行,扫描线有SL0-SL8经译码输出,接入键盘列线,查询RL0~RL1提供,采用键盘扫描法对16个按键进行读取状态。
使用行列式,把这16个按键分为8 2,采用74LS138对8行键盘轮流扫描,再通过P3.2和P3.7这2列读进来,从而判断按键是否按下。电路如图3所示。
键盘的系统框图如下:
2系统温度控制
- 前向通道:
以AT89C51单片机为控制核心,采集到温度,经放大,AD转换后送单片机处理,再通过串行口发送到显示模块因为考虑到PID运算时需要调用浮点数运算程序库,程序需要占用很大的存储空间,8051内部的能满足此要求,所以不需要扩展外部ROM,系统中运行中需要存放的中间变量只有给定温度和实测,PID运算中间结果及输出结果等十几个变量.因而8051片内的RAM能够满足要求,可不必再扩展。 - 后向通道:
后向通道是实现控制型号输出的通道,单片机系统产生的控制信号经过功率放大器的放大控制电炉的输入功率,以实现水温的控制的目的.根据系统的总误差要求,后向通道的控制精度也要应控制在0.83%之内.
3.2 程序流程图
系统软件由主程序、键盘扫描、LED显示、串行口中断组成。由于本模块就进行键盘与显示任务,且键盘扫描与LED扫描是用同个74LS138来完成,可以将程序精简,即把键盘和显示的程序合在一起放在主程序里。
(1)初始化。设定可编程芯片的工作方式,对内存中的工作参数区进行初始化,显示系统初始状态。
(2)读温度程序. 通过DS18B20的侧温.
(3)调用PID算法子程序通过键盘模块发送过来的数据,即给定值,和测量值进行计算,输出PWM波.对电炉的水温度进行控制.
(4)返回
(2)定时中断服务程序:
采样定时由定时器o的定时操作完成,定时器o的定时初值时间由PID的运算结果控制。程序流程如图所示:
(3)脉宽调制输出子程序: