温度控制是工业对象中主要的控制参数之一,其控制系统本身的动态特性属于一阶纯滞后环节,象冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的处理温度要求严格控制,计算机温度控制系统使温度控制指标得到了大幅度提高。以8031单片机为核心,采用温度变送器桥路和固态继电器控温电路,实现对电炉温度的自动控制。该控制系统具有硬件成本低、控温精度较高、可靠性好、抗干扰能力强等特点。电阻炉炉温控制系统的控制过程是:单片机定时对炉温进行检测,经A/D转换芯片得到相应的数字量,经过计算机进行数据转换,得到应有的控制量,去控制加热功率,从而实现对温度的控制。
关键词:电炉 温度控制系统 ADC0809AD转换器
目 录
1 控制方案总述 ....................................................................................................... 1 2 硬件电路设计 ....................................................................................................... 1
2.1 温度检测和变送器部分 .................................................................................................. 2 2.2 接口电路 .......................................................................................................................... 3
2.2.1 主要特性 ............................................................................................................... 3 2.2.2 内部结构 ............................................................................................................... 3 2.2.3 外部特性(引脚功能) ....................................................................................... 3 2.3 接口电路 .......................................................................................................................... 6
3 软件设计 ............................................................................................................... 6
3.1 主程序 .............................................................................................................................. 7 3.2 T0中断服务程序.............................................................................................................. 7 3.3 子程序 .............................................................................................................................. 8
3.3.1采样子程序SAMP ................................................................................................ 8 3.3.2 数字滤波子程序FILTER ..................................................................................... 9 3.3.3积分分离PID控制算法的程序设计 ................................................................. 10
4 基于MATLAB仿真被控对象 .......................................................................... 12 5 结果分析 ............................................................................................................. 14 设计小结 ................................................................................................................. 15
参考文献 ................................................................................................................. 16 附录 ......................................................................................................................... 16
温度控制系统设计
1 控制方案总述
随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,特别是微型计算机的出现使现代的科学研究得到了质的飞跃,利用单片机来改造落后的设备具有性价比高、提高设备的使用寿命、提高设备的自动化程度的特点。本设计就是利用单片机来控制高温加热炉的温度,传统的以普通双向晶闸管(SCR)控制的高温电加热炉采用移相触发电路改变晶闸管导通角的大小来调节输出功率,达到自动控制电加热炉温度的目的。这种移相方式输出一种非正弦波,实践表明这种控制方式产生相当大的中频干扰,并通过电网传输,给电力系统造成“公害”。采用固态继电器控温电路,通过单片机控制固态继电器,其波形为完整的正弦波,是一种稳定、可靠、较先进的控制方法。为了降低成本和保证较高的控温精度,采用普通的ADC0809芯片和具有零点迁移、冷端补偿功能的温度变送器桥路,使实际测温范围缩小。
采
用
AT80C51为核心,结合温度传感器热电偶和AD转换器来监测被控温度数据,并把数据传递给单片机同时显示实时数据。同时键盘会给和要求的控制温度大小供单片机把其和测量温度进行比较处理,从而控制执行系统的开关量的通断状态,达到温度检测、赋值和控制的作用。其系统结构框图如图1所示:
2 硬件电路设计
硬件电路如图2所示:
图2 硬件电路图
现对各部分电路分述如下:
2.1 温度检测和变送器部分
温度计的检测元件和变送器的类型选择和被控温度及进度等级有关。镍鉻/镍铝热电偶适用于0~1000摄氏度的温度测量范围,相应输出电压为0~41.32mV。
变送器由毫伏变送器和电流/电压变送器组成:毫伏变送器用于把热电偶输出的0~41.32mV变换成0~10mA范围内的电流;电流/电压变送器用于把毫伏变送器输出的0~10mA电流变换成0~5V范围内的电压。
为了提高测量精度,变送器可以进行零点迁移。例如,若温度测量范围为0~300摄氏
度,则热电偶输出为0~12.396mV,毫伏变送器零点迁移后输出0~10mA范围的电流。这样,采用8位A/D转换器就可以量化温度误差达到正负2.34摄氏度以内。
2.2 接口电路
8031的接口电路有8155、2732和ADC0809等芯片。8155用于键盘LED显示器接口,2372可以作为8031的外部ROM存储器,ADC0809为温度测量电路的输入接口。
ADC0809是采样频率为8位的、以逐次逼近原理进行模——数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
2.2.1 主要特性
1)8路8位A/D转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100μs 4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。
2.2.2 内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存和译码器、比较器、8位开关树型D/A转换器、逐次逼近。
2.2.3 外部特性(引脚功能)
ADC0809芯片有2引脚,采用双列直插式封装,如图3所示。
图3 ADC0809引脚图
下面说明各引脚功能。 IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动信号,输入,高电平有效。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于0KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器
中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
8155有40条引脚,如图4所示。
图4 8155引脚图 下面说明各引脚功能: AD0~AD7:三态地址/据复用线。地址可以是8155口地址。AD0~AD7上的地址8155片内地址锁存器。也就AD0~AD7上出现的地址信
ALE:地址锁存允许信ADO~AD7上的8位地址信号都锁存到8155内部存储
数据线。是低8位地址和数片内RAM单元地址或I/O端由ALE的下降沿素存到是由AIE信号来区别息还是数据信息。 号。在ALE信号的下降沿把息,CE片选信号及IO/M信器中。
IO/M:I/O端口和RAM选择信号。当IO/M=1时,AD0~AD7的地址位8155I/O端口地址,选择I/O端口。当IO/M=0时,AD0~AD7的地址位8155片内RAM单元地址,选择RAM存储单元。
CE:片选信号。低电平有效。由ALE信号的下降沿锁存到8155内部存储器。 RD:读选通信号。低电平有效。当RD=0,CE=0时开启AD0~AD7的缓冲器,被选中的片内RAM单元或IO口的内容送到AD0~AD7上。
WR:写选通信号。低电平有效,当CE,WR都有效时,CPU输出到AD0~AD7上的信息想偶尔到8155片内PAM单元或I/O端口。
PA0~PA7:A口的I/O线。 PB0~PB7:B口的I/O线。 PC0~PC5:C口的I/O线。 TMRIN:定时器输入。 TMROUT:定时器输出。
2.3 接口电路
8031对温度的控制是通过可控硅调功器电路实现的,如硬件电路图(图2)所示。双向可控硅管和加热丝串接在交流220V,50Hz交流电回路中。在给定周期T内,8031只要改变可控硅的接通时间便可改变加热丝的功率,以达到调节温度的目的。如下图所示,可控硅在给定周期T内具有不同接通时间的情况。显然,可控硅在给定周期T的100%时间内接通时的功率最大。
可控硅接通时间可以通过可控硅控制极上的触发脉冲控制。该触发脉冲由8031用软件在P1.3引脚上产生,经过零同步脉冲同步后经光耦管和驱动器输出送到可控硅的控制极上。可控硅调功器输出功率和通断时间的关系如图5所示。
图5 可控硅调功器输出功率和通断时间的关系
3 软件设计
温度控制程序的设计应考虑如下问题:1.键盘扫描、键码识别和温度显示;2.炉温采样,数字滤波;3.数据处理时把所有数按定点纯小数补码形式转换,然后把8位温度采样值Umin和Umax都变成16位参加运算,运算结果取8位有效值;4.越限报警和处理;5.PID
计算,温度标度转换。
通常,符合上述功能的温度控制程序由主程序和T0中断服务程序组成。
3.1 主程序
主程序应包括8051本身的初始化、8155初始化等。流程图如6所示。
设定堆栈指针 T1中断程序 清标志和暂存单元 清标志D5H 清显示缓冲器区 停止输出 T0初始化 开CPU中返回 扫描键盘 温度显示 图6 主程序流程图
3.2 T0中断服务程序
T0中断服务程序时温度控制系统的主体程序,用于启动A/D转换、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的同步触发脉冲等。P1.3引脚上输出的该同步脉冲宽度由T1计数器的溢出中断控制,8051利用等待T1溢出中断空隙时间完成把本次采样值转换成显示值并放入显示缓冲区和调用温度显示程序。8051从T1中断服务程序返回后便可恢复现场并返回主程序,以等待下次T0中断。流程图如图7所
示。
图7 T0中断服务流程图
3.3 序
子程
3.3.1采样子程序SAMP
采样子程序流程图如图8所示。
采样起始地址送R0,采样次数送R2 选通IN0,启动ADC 延时 A/D完成? Y 所有采样结束? Y 返回 图8 采样子程序流程图
3.3.2 数字滤波子程序FILTER
数字滤波子程序用于滤去来自控制现场对采样值的干扰。流程图如图9所示。
图9 数字滤波子程序流程图
3.3.3积分分离PID控制算法的程序设计
PID算法的表达式为:
1u(t)Kp[e(t)TIt0e(t)dtTDde(t)]dt
式中u(t):调节器的输出信号;
e (t):偏差信号;
Kp:调节器的比例系数;
TI:调节器的积分时间; TD:调节器的微分时间。
在计算机控制中,为实现数字控制,必须对上式进行离散化处理。用数字形式的差分方程代替连续系统的微分方程。设系统的采样周期为T,在t=kT时刻进行采样,
e(t)dtTe(i)0i0tk
de(t)e(k)e(k1)dtT
式中e(k):根据本次采样值所得到的偏差;
e(k-1):由上次采样所得到的偏差。 将上面的三个式子代入,则有
Tu(k)Kp[e(k)TITDe(i)i0kke(k)e(k1)]TKpe(k)kie(i)kdi0e(k)e(k1)T
式中,T为采样时间,项为积分项的开关系数
01e(k)e(k)
积分分离PID控制算法程序流程图如图10所示。
开始参数初始化采入r(k)及y(k)yPID控制E(k)<ß?nPD控制控制器输出参数更新返回
图10 积分分离PID控制算法程序流程图
4 基于MATLAB仿真被控对象
采用simulink仿真,通过simulink模块实现积分分离PID控制算法。仿真图如图11所示。
图11 Simulink仿真
选择合适的Kp,Ki,Kd使系统的仿真效果趋于理想状态。MATLAB编写程序如下: clear all; close all;
ts=10; %采样时间10s sys=tf([1],[30,1],'inputdelay',80); dsys=c2d(sys,ts,'zoh'); %将sys离散化
[num,den]=tfdata(dsys,'v'); %求sys多项式模型参数 kp=5.2; Ti=0.005; Td=0.005; end
仿真波形如图12所示。
图12 Matlab仿真波形图
5 结果分析
当Ti,Td一定,即当Ti=Td=0.005时,改变Kp的值观察波形可以知道其对系统超调量的影响。
当Kp增大时,设Kp=5.8,此时的波形如图13。
图13 Kp=5.8时的波形图
当Kp减小时,设Kp=4.6,此时的波形如图14。
图14 Kp=4.6时的波形图
由图12,图13,图14我们可以观察到当Kp增大时系统超调量增大,当Kp减小时系统超调量减小。
设计小结
通过两周的课程设计对温度控制系统有了初步的了解,在本次课程设计中,通过查阅资料基本完成了硬件的设计,然后根据硬件电路进行软件设计,基本实现了电炉的温度控制。
传统的以普通双向晶闸管(SCR)控制的高温电加热炉采用移相触发电路改变晶闸管导通角的大小来调节输出功率,达到自动控制电加热炉温度的目的。这种移相方式输出一种非正弦波,实践表明这种控制方式产生相当大的中频干扰,并通过电网传输,给电力系统造成“公害”。采用固态继电器控温电路,通过单片机控制固态继电器,其波形为完整的正弦波,是一种稳定、可靠、较先进的控制方法。为了降低成本和保证较高的控温精度,采用普通的ADC0809芯片和具有零点迁移、冷端补偿功能的温度变送器桥路,使实际测温范围缩小。
在老师的指导和同学们的帮助下,我顺利完成了这次课程设计,通过这次课程设计,使我对单片机的使用、微控控制技术、传感器技术等等好多专业知识有了更深的了解,解
决了许多在学习过程中不能理解的知识,并且提高了自己理论联系实际的能力,为今后在工作中专业知识的使用积累了宝贵的经验。
通过这次毕业设计,使我对单片机原理有了更新的认识,掌握了常用芯片如AT80C51、ADC0809、8155等器件的功能,懂得了这些器件在实际生产中的最基础的使用,掌握计算机的一些画图、排版等软件的使用 ,真的是受益非浅。
参考文献
[1] 张艳兵,王忠庆,鲜浩编著,计算机控制技术.北京:国防工业出版社,2006 [2] 于海生编著,微型计算机控制技术.北京:清华大学出版社,1999
[3] 杨进才,沈显君,刘蓉编著,C++语言程序设计教程.北京:清华大学出版社,2006 [4] 夏云龙编著,最新Visual C++ 使用手册.北京:电子工业出版社,2005
[5] 黄迪明,许家珆,胡德昆编著,C语言程序设计.成都:电子科技大学出版社,2008 [6] 颜永军等,Protel99电路设计和使用,国防工业出版社,2001 [7] 楼然苗,李光飞,51系列单片机设计实例(第二版),2006
附录
主程序
ORG 0400H DISM0 DATA 78H DISM1 DATA 79H DISM2 DATA 7AH DISM3 DATA 7BH DISM4 DATA 7CH DISM5 DATA 7DH
MOV SP,#50H ;50H送SP CLR 5EH ;清本次越限标志 CLR 5FH ;清上次越限标志 CLR A ;清累加器A
MOV 2FH,A ; MOV 30H,A ; MOV 3BH,A ; MOV 3CH,A ;
MOV 3DH,A ; 清暂存单元 MOV 3EH,A ; MOV 44H,A ; MOV DISM0,A ; MOV DISM1,A ; MOV DISM2,A ;
MOV DISM3,A ; 清显示缓冲区 MOV DISM4,A ; MOV DISM5,A ;
MOV TMOD,#56H ;设T0为计数器方式2,T1为方式1 MOV TL0,#06H ;
MOV TH0,06H ; T0赋初值 CLR PT0 ;令T0为低中断优先级 SETB TR0 ;启动T0工作 SETB ET0 ;允许T0中断
SETB EA ;开CPU中断 LOOP:ACALL DISPLY ;调用显示程序 ACALL SCAN ;调用扫描程序 AJMP LOOP ;等待中断 T0中断服务程序 ORG 000BH AJMP CT0 ORG 0100H CT0: PUSH ACC ; PUSH DPL ; 保护现场
PUSH DPH ;
SETB D5H ;置标志
ACALL SAMP ;调用采样子程序 ACALL FILTER ;调用数字滤波程序
CJNE A,42H,TPL ;若Ui(k)不等于Umax,则TPL WL: MOV C,5EH ;
MOV 5FH,C ; 5EH送5FH CLR 5EH ;清5EH单元 ACALL UPL ;转上限处理程序 POP DPH POP DPL POP ACC
RETI ;中断返回
TPL: JNC TPL1 ;若Ui(k)大等Umax,则TPL1 CLR 5FH ;清上次越限标志
CJNE A,43H,MTPL ;若Ui(k)不等于Umin,则MTPL HAT: SETB P1.1 ;若温度不越限则令绿灯亮 ACALL PID ;调用计算PID子程序 MOV A,2FH ;PID值送A CPL A ;
INC A ; 对PID值求补,作为TL1值 NM: SETB P1.3 ;令p1.3输出高电平脉冲 MOV TL1,A ;
MOV TH1,#0FFH ; T1赋初值 SETB PT1 ;T1高优先级中断 SETB TR1 ;启动T1 SETB ET1 ;允许T1中断 ACALL TRAST ;调用标度转换程序 LOOP: ACALL DISPLY ; 显示温度
JB D5H,LOOP ;等待T1中断 POP DPH ;
POP DPL ; 恢复现场 POP ACC ; RETI ;中断返回
MTPL: JNC HAT ;若Ui(k)大于Umin,则HAT SETB P1.0 MOV A,45H CPL A INC A AJMP NM TPL1: SETB 5EH JNB 5FH,WL INC 44H MOV A,44H CLR C SUBB A,#N JNZ WL SETB P1.2 CLR 5EH CLR 5FH POP DPH
POP DPL POP ACC RETI T1中断服务程序 ORG 001BH AJMP CT1 ORG 0200H
;否则越下限声光报警 ;取PID最大值输出 ;
; 对PID值求补,作为TL1 ;转NM执行
;若Ui(k)大于Umax,则5EH单元置位 ;若上次未越限,则转WL ;越限计数器加1
;越限N次?
;越限小于N次,则WL ;否则,越上限声光报警 ;
; 清越限标志 ;
; 恢复现场 ; ;中断返回 CT1: CLR D5H ;清标志
CLR P1.3 ;令p1.3变为低电平 RETI ;中断返回 子程序
采样子程序SAMP:
SAMP: MOV R0,#2CH ;采样值起始地址送R0 MOV R2,#03H ;采样次数初值送R2 MOV DPTR,#03F8
SAM1:MOVX @DPTR,A ;启动ADC0809工作 MOV R3,#20H DLY: DJNZ R3,DLY ;延时
HERE:JB P3.3,HERE ;等待A\\D完成 MOVX A,@DPTR ;采样值送A MOV @R0,A ;存放采样值 INC R0
DJNZ R2,SAM1 ;若采样未完,则SAM1 RET ;若已采样完,则返回
数字滤波子程序FILTER:用于滤去来自控制现场对采样值的干扰 FILTER:MOV A,2CH ;2CH送A
CJNE A,2DH,CMP1 ;若2CH不等于2DH,则CMP1 AJMP CMP2 ;否则转CMP2
CMP1 JNC CMP2 ;若2CH大于2DH,则CMP XCH A,2D ;2CH和2DH交换 XCH A,2C ;
CMP2: MOV A,2DH ;2DH送A
CJNE A,2EH,CMP3 ;若2DH不等于2EH,则CMP3 MOV 2AH,A ;否则,2DH送2AH RET ;返回
CMP3: JC CMP4 ;若2DH小于2EH,则CMP4
MOV 2AH,A ;否则,2DH送2AH RET ;返回 CMP4: MOV A,2EH ;2EH送A
CJNE A,2CH,CMP5 ;若2EH不等于2CH,则CMP5 MOV 2AH,A ;否则,2EH送2AH RET ; 返回
CMP5: JC CMP6 XCH A,2CH CMP6: MOV 2AH,A RET ;若2EH小于2CH则CMP6 ;否则,2EH和2CH交换 ;A送2AH ;返回
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务