电阻炉温度控制系统

更新时间:2024-01-09 07:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电阻炉温度控制系统

专 业: 电气工程及其自动化 姓 名: 王鹏旭 学 号: B11040322 班 级: B110403班 设计时间: 2014. 5. 1

1

目录

第1章 系统的描述与分析 ????????????3 1.1 系统的介绍?????????????????3 1.2 技术指标??????????????????3 第2章 设计方案?????????????????4 第3章 控制算法?????????????????4 第4章 系统软硬件设计??????????????4 4.1 总体设计 ??????????????????4 4.2 温度检测电路 ????????????????7 4.3 温度控制电路 ????????????????8 4.4 人机对话电路 ????????????????9 4.4.1 键盘管理 ????????????????9 4.4.2 数码显示????????????????10 4.4.3 报警??????????????????11 第5章 MATLAB仿真被控对象 ??????????11 第6章 心得体会?????????????????12 附:原理图 ???????????????????14

2

第1章 系统的描述与分析

1.1系统的介绍

该系统的被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为0~5伏时对应电炉温度0~500℃,温度传感器测量值对应也为0~5伏,对象的特性为带有纯滞后环节的一阶惯性系统,这里惯性时间常数取T1=30秒,滞后时间常数取τ=10秒。

该系统利用单片机可以方便地实现对PID参数的选择与设定,实现工业过程中PID控制。它采用温度传感器热电偶将检测到的实际炉温进行A/D转换,再送入计算机中,与设定值进行比较,得出偏差。对此偏差按PID规律进行调整,得出对应的控制量来控制驱动电路,调节电炉的加热功率,从而实现对炉温的控制。利用单片机实现温度智能控制,能自动完成数据采集、处理、转换、并进行PID控制和键盘终端处理(各参数数值的修正)及显示。在设计中应该注意,采样周期不能太短,否则会使调节过程过于频繁,这样,不但执行机构不能反应,而且计算机的利用率也大为降低;采样周期不能太长, 否则会使干扰无法及时消除,使调节品质下降。

1.2技术指标

设计一个基于闭环直接数字控制算法的电阻炉温度控制系统具体化技术指标如下:

1.电阻炉温度控制在0~500℃;

2. 加热过程中恒温控制,误差为±2℃;

3

3. LED实时显示系统温度,用键盘输入温度,精度为1℃; 4. 采用直接数字控制算法,要求误差小,平稳性好; 5. 温度超出预置温度±5℃时发出报警。

第2章 设计方案

系统采用89C51作为系统的微处理器来完成对炉温的控制和键盘显示功能。8051片内除了128KB的RAM外,片内又集成了4KB的ROM作为程序存储器,是一个程序不超过4K字节的小系统。系统程序较多时,只需要外扩一个容量较小的程序存储器,占用的I/O口减少,同时也为键盘、显示等功能的设计提供了硬件资源,简化了设计,降低了成本。因此89C51可以完成设计要求。

第3章 控制算法

PID调节是连续系统中技术最成熟的、应用最广泛的一种控制算方法。它结构灵活,不仅可以用常规的PID调节,而且可以根据系统的要求,采用各种PID的变型,如PI、PD控制及改进的PID控制等。它具有许多特点,如不需要求出数学模型、控制效果好等,特别是在微机控制系统中,对于时间常数比较大的被控制对象来说,数字PID完全可以代替模拟PID调节器,应用更加灵活,使用性更强。所以该系统采用PID控制算法。系统的结构框图如图3-1所示:

图3-1 系统结构框图

第4章 系统软硬件设计

4.1总体设计

4

系统的硬件包括微控制器部分(主机)、温度检测、温度控制、人机对话(键盘/显示/报警)4个主要部分,系统的结构框图如图4-1所示。

系统程序采用模块化设计方法,程序有主程序、中断服务子程序和各功能模块程序组成,各功能模块可直接调用。

报警电路光耦驱动电路可控硅控制器电阻炉按键控制单片机显示电路A/D转换器温度传感器 图4-1 系统结构框图 该部分电路主要包括89C51主程序的工作情况,主程序完成系统的初始化,温度预置及其合法性检测。预置温度的显示及定时器T0的初始化设置等。T0中断服务程序是温度控制体系的主体,用于温度检测、控制和报警。主程序和中断服务子程序的流程图如图4-2所示。 主程序如下:

TEMP1 EQU 50H ;当前检测温度(高位) TEMP2 EQU TEMQ1+1 ;当前检测温度(低位) ST1 EQU 52H ;预置温度(高位) ST2 EQU 53H ;预置温度(低位)

T100 EQU 54H ;温度BCD码显示缓冲区(百位) T10 EQU T100+1 ;温度BCD码显示缓冲区(十位) T EQU T100+2 ;温度BCD码显示缓冲区(个位) BT1 EQU 57H ;温度二进制码显示缓冲区(高位) BT2 EQU BT1+1 ;温度二进制码显示缓冲区(低位) ADIN0 EQU 7FF8H ;ADC 0809通道IN0的端口地址

5

F0 BIT PSW.5 ;报警允许标志

TEMP1 DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;50H~58H单元初始化(清零)

ORG 0000H

AJMP MAIN ;转主程序 ORG 00BH

AJMP PT0 ORG 0030H

MAIN: MOV SP,#59H CLR F0 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH MOV R7,#150 SETB ET0 SETB EA SETB TRO MAIN1:ACALL KIN ACALL DISP SJMP MAIN1

定时器0中断服务子程序PT0: PT0: MOV TL0,#0BOH

MOV TH0,#3CH DJNZ R7,BACK MOV R7,#150 ACALL TIN MOV BT1,TEMP1 MOV BT0,TEMP0

ACALL DISP

;转T0中断服务子程序 ;设堆栈标志 ;报警标志清零

0初始化(方式1) 100ms定时常数

;置15s软计数器初值 ;允许定时器0中断 ;开中断 0 ;调键盘管理子程序 ;重置定时器0初值 ;15s到否,不到返回 ;重置软计数器初值 ;温度检测

;当前温度送到显示缓冲区 ;显示当前温度

6 ;定时器 ;定时器 ;启动定时器 ;调用显示子程序

ACALL CONT ;温度控制 ACALL ALARM ;温度越限报警 BACK:RETI

4.2温度检测电路

温度检测电路包括温度传感器、变送器和A/D转换三部分。传感器选用型号为WZB-003的铂热电阻,可满足本系统0~500℃测量范围的要求。变送器将电阻信号转换成与温度成正比的电压,当温度在0~500℃时变送器输出0~4.9v左右的电压。A/D转换可采用ADC0809进行,亦可采用单片机内部A/D功能进行。电路设计好后调整变送器的输出,使0~500℃的温度变化对应于0~4.9v的输出,则A/D转换对应的数字量位00H~FAH,即0~250,转换结果乘以2正好是温度值。用这种方法一方面可以减少标度变换的工作量,另一方面还可以避免标度变换带来的计算误差。

本设计A/D转换采用查询方式(由P1.4查询ADC0809的ECO转换结束信号)。为提高采样的可靠性,对采样温度进行数字滤波。数字滤波的方法很多,这里采用4次采样取平均值的方法。因此,4次采样的数字量之和除以2就是检测的当前温度。温度检测子程序流程图如图4-3所示。

7

开始检测结果缓冲区清零采样次数4送R2N启动A/D转换Y4次累加结果除以2送检测结果缓冲区(R2)-1送R2 R2=0?N转换结束?Y累加采样结果结果低8位送51H高8位送50H返回 图4-3 温度检测子程序流程图 4.3温度控制电路

控制电路采用可控硅来实现,双向可控硅SCR和电路电阻丝串接在交流220V市电回路中,单片机信号通过光电隔离器和驱动电路送到可控硅的控制端,由端口的高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。

将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电路保持原来状态;当温度降低到比预置温度低2℃时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。由于电炉加热时,当前温度有可能低于报警下限,为防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志位F0。温度控制模块流程图见图4-4。

8

开始当前温度与预设温度比较当前温度<预设温度?NYN当前温度<预设温度-2?置允许报警标志Y开电炉关电炉返回 图4-4 温度控制模块流程图 4.4 人机对话电路

4.4.1键盘管理

为使系统简单紧凑,键盘只设置四个功能键,分别是“启动键”、“百位”、“十位”和“个位”。由P1口低四位作为键盘接口。利用数字键可以分别对预置温度的百位、十位和个位进行0~500℃的温度设置。程序设有预置温度合法检测报警,当预置温度超过500℃时会报警并且将温度设为500℃。键盘管理子程序流程图如图4-5所示。

9

开始预置温度合法检查P1.1=0?NY百位键输入值处理预置温度送显示缓冲区P1.2=1?NY百位键输入值处理N有键闭合?Y调用显示子程序P1.3=1?NP1.0=1?YY百位键输入值处理N保存新的温度预设值有键闭合?NY启动加热返回 图4-5 键盘管理子程序流程图 4.4.2 数码显示 本系统设有3位LED数码显示器,用于显示电阻炉的设定温度和实际温度。采用串行口扩展的静态显示电路作为显示接口电路。

显示子程序DISP如下:

DISP: ACALL HTB ;调用将显示数据转换成BCD码的子程序HTB

MOV SCON,#00H ;置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ;显示缓冲区首地址送R0 LD: MOV DPTR,#TAB ;指向字符码表首地址 MOV A,@R0 ;取出显示数据 MOVC A,@A+DPTR ;查表

MOV SBUF,A ;字符码送串行口

WAIT: JBC TI,NEXT ;发送结束转下一个数据并清除

10

中断标志

SJMP WAIT ;发送未完等待 NEXT: INC R0 ;修改显示缓冲区指针

DJNZ R2,LD ;判断3位显示完否,未完继续 RET

TAB: ? ;字符码表

4.4.3报警

报警功能由蜂鸣器实现,当由于意外因素导致电阻炉温度高于设置温度时,单片机驱动蜂鸣器鸣叫报警。报警上限温度值为预置温度+5℃,即当前温度上升到高于预置温度+5℃时报警,并停止加热;报警下限温度值设为预置温度-5℃,即当前温度下降到低于预置温度-5℃,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电电炉。

第5章 MATLAB仿真被控对象

采用simulink仿真,通过simulink模块实现积分分离PID控制算示。设采样时间Ts=10s,被控对象为:

e?10sG(s)?

1?30s Simulink仿真图如图5-1所示。

图5-1 Simulink仿真图

11

选择合适的Kp,Ki,Kd是系统的仿真效果趋于理想状态。MATLAB编写程序如下:

clear all; close all; ts=4;

sys=tf([1],[30,1],'inputdelay',10); dsys=c2d(sys,ts,'zoh'); [num,den]=tfdata(dsys,'v'); kp=13; ki=0.4; kd=0.2;

MATLAB仿真波形如图5-2所示。

图5-2 MATLAB仿真波形

第6章 心得体会

作业设计是对我们在这学期学到的微型计算机控制技术这门课的理论知识

12

的一个综合测评,是对我们将理论结合时间的综合能力的考查,是培养我们发现问题、解决问题的能力,是激发我们内在创新意识的途径。在此在课程设计中学习了很多相关知识:单片机系统的开发与可行性分析、电炉的设计与制作、器件的选型、程序的设计与调试、系统的调试以及平时没有接触到的在线编程与相关软件等等。在设计过程中我遇到了许多难以解决的问题,通过去图书馆看书、上网查资料以及请教同学,努力最终一步一步得以解决。通过这次课程设计,不仅锻炼了我的动手能力,更培养了我发现问题、解决问题的能力,巩固了我以前学过的专业知识,促进了我的自学能力。

通过本次设计,我还了解了微机控制中DDC算法的基本概念及其对系统设计的相关应用。什么样的课程设计都离不开理论与实际相结合的真理,设计过程中的方案选择和参数设定使我进一步深刻认识到算法的控制对整个系统的重要作用。一个细小的参数设定出现偏差,可能导致最后的性能指标不和标准。所以选择一个优良的方案对于实验至关重要。

参考文献:

潘新民、王燕芳 微型计算机控制技术 电子工业出版社 2010.7 林锦国、张利、李丽娟 过程控制(第三版) 东南大学出版社 2009.8 谢维成、杨加国 单片机原理与应用 清华大学出版社 2009.7

13

附:原理图:

14

本文来源:https://www.bwwdw.com/article/4tco.html

Top