温度控制原理说明书内页讲解Word文档格式.docx
《温度控制原理说明书内页讲解Word文档格式.docx》由会员分享,可在线阅读,更多相关《温度控制原理说明书内页讲解Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
第2章系统总体设计及原理
本系统由单片机AT89C52、温度检测电路、键盘显示及报警电路、时钟电路、温度控制电路等部分组成。
系统中采用了新型元件,功能强、精度高、硬件电路简单。
其硬件原理图如图2-1所示
电
阻
炉
传感器
温度检测电路
时钟电路
AT89C52
单片机
键盘
液晶显示
温度控制
报警电路
图2-1硬件原理图
在系统中,利用热电偶测得电阻炉实际温度并转换成毫伏级电压信号。
该电压信号经过温度检测电路转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过液晶显示器显示温度并判断是否报警,同时将温度与设定温度比较,根据设定的PID算法计算出控制量,根据控制量通过控制固态继电器的导通和关闭从而控制电阻丝的导通时问,以实现对炉温的控制。
该系统中的时钟电路可以根据要求进行准确计时
第3章硬件设计
3.1温度检测电路
本系统采用的K型(镍铬一镍硅)热电偶淇可测量1312℃以内的温度,其线性度较好,而且价格便宜。
K型热电偶的输出是毫伏级电压信号,最终要将其转换成数字信号与CPU通信。
传统的温度检测电路采用“传感器一滤波器一放大器一冷端补偿一线性化处理一A/D转换”模式,转换环节多、电路复杂、精度低。
在本系统中,采用的是高精度的集成芯片MAX6675来完成“热电偶电势一温度”的转换,不需外围电路、I/O接线简单、精度高、成本低。
MAX6675是MAXIM公司开发的K型热电偶转换器,集成了滤波器、放大器等,并带有热电偶断线检测电路,自带冷端补偿,能将K型热电偶输出的电势直接转换成l2位数字量,分辨率0.25℃。
温度数据通过SPI端口输出给单片机,其冷端补偿的范围是20~80℃,测量范围是0~1023.75℃。
图3-1为MAX6675的引脚功能图。
引脚号
名称
功能
1
GND
接地端
2
T-
热电偶负极(使用时接地)
3
T+
热电偶正极
4
VCC
电源端
5
SCK
串行时钟输入端
6
CS
片选信号
7
SO
数据串行输出端
8
NC
悬空不用
图3-1MAX6675的引脚功能
图3-2为本系统中温度检测电路。
图3-2温度检测电路
当P25为低电平且PZ4口产生时钟脉冲时,MAX6675的SO脚输出转换数据。
在每一个脉冲信号的下降沿输出一个数据,l6个脉冲信号完成一串完整的数据输出,先输出高电位D15,最后输出的是低电位DO,D14-D3为相应的温度转换数据。
当P2.5为高电平时,MAX6675开始进行新的温度转换。
在应用MAX6675时,应该注意将其布置在远离其它I/O芯片的地方。
以降低电源噪声的影响;
MAX6675的T_端必须接地,而且和该芯片的电源地都是模拟地要和数字地混淆而影响芯片读数的准确性。
3.2时钟电路
在系统中需要准确显示升温时间、恒温时间等,因而选用了时钟芯片DS1302构成定时电路来完成对时间的准确计时。
DS1302具有时钟、闹钟、12/24小时选择和闰年自动补偿功能;
包含有10B的时钟控制寄存器、4B的状态寄存器和114B的通用RAM;
具有可编程方波输出功能;
报警中断、周期性中断、时钟更新中断可由软件屏蔽或测试。
使用时不需任何外围电路,并具有良好的外围接口。
在本系统中,DS1302的地址傲据复用总线与单片机的P0口相连。
通过定时器中断,CPU每隔0.4秒读一次DS1302的内部时标寄存器,得到当前的时间,并送到液晶显示器进行显示。
每当电阻炉从一个状态转入另一个状态,CPU通过DS1302把时间清零,重新开始计时。
此外,通过DS1302,还可以设定电阻炉的加热时间和恒温时间。
电路如图3中所示。
图3-3键盘、时钟、报警、和控温电路
3.3键盘显示和报警电路
本系统采用3*3键盘,由单片机I/O口控制,可通过按键设定温度和时间,有的按键在不同情况下可以实现不同功能。
显示器选用点阵字符型液晶显示器TC1602,系统中将扩展芯片8155的P0口、PC.0一PC.2口与TC1602接口相连,TCl602的显示形式是16"
2行,可显示炉温、设定时间、实际时间等。
报警电路是将单片机的I/O口与驱动芯片MC1413相连,通过MC1413驱动蜂鸣器。
键盘电路和时钟电路如图3-3中所示。
3.4控温电路
控温电路包括驱动芯片MC1413、过零型交流固态继电器(Z型SSa)。
报警和控温电路如图3中所示。
z型SSR内部含有过零检测电路,当加入控制信号。
且负载电源电压过零时,SSR才能导通;
而控制信号断开后,SSR在交流电正负半周交界点处断开。
也就是说,当z型SSR在1秒内为全导通状态时,其被触发频率为100HZ;
当z型SSR在1秒内导通时间为0.5秒时,其被触发频率为50HZ。
在本系统中,采用PID控制算法,通过改变z型SSR在单位时间内的导通时间达到改变电阻炉的加热功率、调节炉内温度的目的。
第4章PID控制设计
4.1PID算法设计
对温度的控制算法,采用技术成熟的PID算法,对于时问常数比较大的系统来说,其近似于连续变化,因此用数字PID完全可以得到比较好的控制效果。
简单的比例调节器能够反应很快,但不能完全消除静差,控制不精确,为了消除比例调节器中残存的静差,在比例调节器的基础上加入积分调节器,积分器的输出值大小取决于对误差的累积结果,在误差不变的情况下,积分器还在输出直到误差为零,因此加入积分调节器相当于能自动调节控制常量,消除静差,使系统趋于稳定。
积分器虽然能消除静差,但使系统响应速度变慢。
进一步改进调节器的方法是通过检测信号的变化率来预报误差,并对误差的变化作出响应,于是在P1调节器的基础上再加上微分调节器,组成比例、积分、微分(PID)调节器,微分调节器的加入将有助于减小超调,克服振荡,使系统趋于稳定,同时加快了系统的稳定速度,缩短调整时间,从而改善了系统的动态性能,其控制规律为:
单片机是一种采样控制,它只能根据采样时刻的误差值计算控制变量,不能直接计算公式中的积分项和微分项,采用数值计算法逼近后,PID的调节规律可以通过数值公式为:
如果采样取得足够小,这种逼近可相当准确,被控过程与连续过程十分接近。
我们变换上式得:
把,带入上式得:
试中ei=W-Yi,W设定值,Yi为第i次实际输出值,Kp为比例系数,积分系数I=T/Ti,微分系数D=T/Td,T为采样周期。
用PID控制算法实现锅炉温度控制是这样一个反馈过程:
比较实际炉温和设定炉温得到偏差,通过对偏差的处理获得控制信号,再去调节炉子的加热功率,从而实现对炉温的控制,由于电阻炉一般都是下一阶段对象和带纯滞后的一阶对象,所以式中Kp、Kd和Ki的选择取决于电阻炉的响应特性和实际经验。
本程序先将用户设定温度和电阻炉实际温度T比较,计算出偏差ei,然后分两种情况进行计算控制变量:
(1)大于等于设定的偏差e时,由于积分控制器使系统响应速度变慢,不采用积分控制器调节,直接使用PD调节,获得比较快的动态响应,计算Pd和Pp,最终得到控制量获得比较快的动态响应。
(2)小于设定的设定的偏差e时,正常的分别计算Pi、Pd和Pp,然后根据算法公式计算出控制变量。
控制流程图如图4.1所示。
图4.1PID控制流程图
4.2PID程序设计
PID算法函数voidPID(void),根据误差的大小算出固态继电器的导通时间。
程序如下:
voidPID()
{
ucharCtrhab[20]={8,15,2O,4O,5O,6O,7O,80,100,120,140,160,180,
200};
//控制时间参数表
kp=200;
kd=3;
ki=10;
//初始化PID参数
tempsv=controlnum;
temppv=T;
//读入实际、设定温度
e2=temsv—temppv;
//计算误差
e0=el;
el=e2;
u0=u;
//误差及输出量的转赋
P=e2一el;
//计算P值
D=kd*(e2—2el+e0);
//计算D值
if(e2>
=50)I=kp+e2;
//判断采用PD还是PID控制
elseI=0;
u=kp(P+I+D)+uO;
controltime=ctrhab[u];
//查表赋控制时间
}
第5章软件设计
在系统软件中,主程序完成系统初始化和电炉丝的导通和关断;
炉温测定、键盘输入、时间确定和显示、控制算法等都由子程序来完成;
中断服务程序实现定时测温和读取时间。
流程图如图4-1所示。
开始
系统初始化设置
键盘输入及目标炉温设置
Y
结束
等于目标温度并稳定时间到?
炉温测量与显示
PID算法控制炉温加热
炉温等于上限温度?
炉温等于下限温度?
全速加热
停止加热
N
图5-1控制系统程序流程图
5.1MAX6675温度采集设计
温度测量开始进行温度测量,这一部分程序作为一个独立的程序段,定时调用,主要包括MAX6675数据读取、开路判断、数据处理和码制转换等几个部分。
程序流程图如下:
图5-2MAX6675温度采集程序流程
5.2键盘显示程序设计
本次显示用LCD1602完成,利用单片机完成对LCD1602的配置,来完成対时钟的显示和温度的显示,对LCD1602进行配置的第一件事就是要把它的器件手册上有用的内容提取,掌握。
最后写出时序,完成显示功能。
技术参数如下图4-3所示:
显示容量
16×
2个字符
芯片工作电压
4.5-5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95×
4.35(W×
H)mm
图5-3主要技术参数
基本操作时序
1.1读状态:
输入:
RS=L.RW=H.E=H输出D0~D7=状态字
1.2写指令:
RS=L.RW=L.D0~D7=指令码.E=高脉冲输出:
无
1.3读数据:
RS=H.RW=H.E=H输出:
D0~D7=数据
1.4写数据:
RS=H.RW=L.D0~D7=数据.E=高脉冲输出:
5.3键输入子程序
在键输入子程序设计中,键盘采用编程扫描工作方式。
键输入程序的功能有以下4个方面:
(1)判别键盘上有无键闭合,其方法为扫描口PAO~PA7输出全“0”,读PC口的状态,若PC0~PC3为全“1”(键盘上行线全为高电平),则键盘上没有闭合键,若PC0~PC3不为全“1”,则键处于闭合状态。
(2)去除键的机械抖动,其方法为判断出键盘上有键闭合后,延迟一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合期,否则认为是键抖动。
(3)判