青岛科技大学计算机控制技术课程设计.docx
《青岛科技大学计算机控制技术课程设计.docx》由会员分享,可在线阅读,更多相关《青岛科技大学计算机控制技术课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
青岛科技大学计算机控制技术课程设计
计算机控制技术课程设计任务书
题目3:
淬火炉炉温控制系统设计
1、设计内容
淬火是生产过程中的一道关键工序,其温度控制的精度直接影响到产品的质量。
淬火炉温度控制通常由多个温区。
本设计针对一个温区进行温度控制,要求控制温度范围500-800℃,控制精度在±1℃。
温度探头选用热电偶。
输出0-10mA电流信号通过双向可控硅控制器控制加热电阻两端的电压,输入电流输出电压线性关系。
其对象温控数学模型为:
其中:
时间常数T=400秒
放大系数K=100℃/mA
滞后时间τ=10秒
控制算法选用PID控制。
2、设计步骤
一、总体方案设计、控制系统的建模和数字控制器设计
二、硬件的设计和实现
1.选择计算机机型(采用51内核的单片机);
2.设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);
3.设热电偶检测信号放大和A/D转换接口电路;
4.设计D/A转换和电流驱动接口电路;
*5.其它相关电路的设计或方案(电源、通信等)
三、软件设计
分配系统资源,编写系统初始化和主程序模块;
编写A/D转换和温度检测子程序;
编写PID控制程序和D/A转换控制子程序模块;
*4.其它程序模块(显示与键盘等处理程序)。
四、编写课程设计说明书,绘制完整的系统电路图。
前言
温度是工业对象中一个主要的被控参数,它是一种常见的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。
温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。
温度控制是许多设备的重要的构成部分,它的功能是将温度控制在所需要的温度范围内,以利于进行工件的加工与处理。
不论是在生活中还是在工业生产过程中,温度的变化对生活、生产的某些细节环节都会造成不同程度的影响,所以适时地对温度进行控制具有重要的意义。
一直以来,人们采用了各种方法来进行温度控制,都没有取得很好的控制效果。
起先由于电阻炉的发热体为电阻丝,传统方法大多采用仪表测量温度,并通过控制交流接触器的通断时间比例来控制加热功率。
由于模拟仪表本身的测量精度差,加上交流接触器的寿命短,通断比例低,故温度控制精度低,且无法实现按程序设定的升温曲线升温和故障自诊断功能,因此要对传统的温度控制方法进行改造。
如今,随着以微机为核心的温度控制技术不断发展,用微机取代常规控制已成必然,因为它确保了生产过程的正常进行,提高了产品的数量与质量,减轻了工人的劳动强度以及节约了能源,并且能够使加热对象的温度按照某种指定规律变化。
这不但对用户来说具有很大的意义,而且对整个社会来说都是有重大意义。
1.总体方案设计
1.1控制方案选择
方案一:
系统采用8031作为系统的微处理器。
温度信号由热电偶检测后转换为电信号经过预处理(放大)送到A/D转换器,转换后的数字信号再送到8031内部进行判断或计算。
从而输出的控制信号来控制锅炉是否加热。
但对于8031来说,其内部只有128个字节的RAM,没有程序存储器,并且系统的程序很多,要完成键盘、显示等功能就必须对8031进行存储器扩展和I/O口扩展,并且需要容量较大的程序存储器,外扩时占用的I/O口较多,使系统的设计复杂化。
方案二:
AT89C51单片机是最常用的单片机,是一种低损耗、高性能、CMOS八位微处理器。
AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容,而且能使系统具有许多MCS-51系列产品没有的功能,功能强、灵活性高而且价格低廉。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。
只要程序长度小于4K,四个I/O口全部提供给拥护。
系统运行中需要存放的中间变量较少,可不必再扩充外部RAM。
综上所述的二种方案,该设计选用方案二比较合适。
1.2数学模型的建立
本设计针对一个温区进行温度控制,要求控制温度范围500-800℃,控制精度在±1℃。
温度探头选用热电偶。
输出0-10mA电流信号,通过双向可控硅控制器控制加热电阻两端的电压,输入电流输出电压线性关系。
其对象温控数学模型为:
(2-2-1)
其中,θ(s)为炉温,U(s)为输入电压,K、TP、τ为炉子的参数。
这三个参数都能通过实验的方法得到。
1.3控制算法的确定
PID调节是连续系统中技术最成熟的、应用最广泛的一种控制算方法。
它结构灵活,不仅可以用常规的PID调节,而且可以根据系统的要求,采用各种PID的变型,如PI、PD控制及改进的PID控制等。
它具有许多特点,如不需要求出数学模型、控制效果好等,特别是在微机控制系统中,对于时间常数比较大的被控制对象来说,数字PID完全可以代替模拟PID调节器,应用更加灵活,使用性更强。
所以该系统采用PID控制算法。
在计算机控制系统中,PID控制规律的实现必须用数值逼近的方法。
当采样周期相当短时,用求和代替积分,用后向差分代替微分,是模拟PID离散化变为差分方程。
数字PID位置型控制算式为:
(2-3-1)
数字PID增量型控制算式为:
(2-3-2)
其中称为比例增益;
称为积分系数;
称为微分系数。
1.4系统组成框图及工作原理
系统的硬件包括微控制器部分(主机)、A/D转换模块、温度检测、温度控制、键盘与显示、报警几个主要部分,系统的组成框图如图2.1所示。
图1.1系统组成框图
工作原理:
淬火炉的温度由温度传感器获得,经A/D转换模块转换后送给单片机,然后经相应的显示电路显示出来。
工作人员根据工序所需温度然后通过键盘把相应的指令送入单片机,经过光耦驱动电路和可控硅控制器的控制使淬火炉的温度满足工序的需要。
报警电路则是在淬火炉温度低于600℃或高于800℃的时候发出报警信号。
2.硬件电路设计
2.1微控制器
AT89C51是一种带4K字节Flash可编程可擦除的高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价格低廉的方案。
2.2A/D转换模块
系统中的AD转换模块的功能主要是由AD574来实现的,AD574是12位逐次逼近型的AD转换芯片,片内有数据输出寄存器并有三态输出的控制逻辑。
其运算方式灵活,可进行12位转换,也可进行8位转换,转换结果可直接12位输出,也可先输出高8位,后输出低4位。
片内有时钟电路,无需外部时钟。
2.3D/A转换器与微处理器的接口
D/A转换器与微处理器间的信号连接包括三部分,即数据线,控制线和地址线。
微处理器的数据线要传送给D/A转换器,首先要把数据总线的输出信号连接到D/A转换器的数据输入端。
微处理器因要进行各种信息的处理,其数据总线上的数据总是不断地变化,输出给D/A转换器地的数据,只是在执行输出指令的几微秒中出现在数据总线上。
而D/A转换器要求数字量并行输入,且其输入数据要在一定时间内保持稳定,以满足精度要求。
因此微处理数据总线上输出的数据必须用一个锁存装置锁存起来,这个锁存装置就是D/A转换器与CPU的数据接口。
下面介绍一种8位D/A转换器与CPU的接口。
对于8位D/A转换器,连接方法时通过8位数据锁存器(例如8D锁存器)与8位微处理器的总线相连,锁存器的写入/锁存由地址译码器的输出与CPU的IORQ和WR信号共同控制。
只要CPU对DR端口进行一次写操作,即执行OUTDRAL,则CPU的输出数据便锁存至8D锁存器,作为D/A的输入数据。
图2.1是DAC0832工作于双缓冲方式下,与8位微处理器的连接图。
图10-9中,CS的端口地址为320H,XFER的端口地址为321H。
CPU执行第一条输出指令,将待转换的数据写入输入寄存器;再执行第二条输出指令时,把输入寄存器的内容写入DAC寄存器,并启动D/A转换。
执行第二条输出指令时,AL中的数据为多少是无关紧要的,主要目的是使XFER有效。
一个数据通过DAC0832输出的典型程序段如下:
MOVDX,320H;指向输入寄存器
MOVAL,DATA;DATA为被转换的数据
OUTDX,AL;数据写入输入寄存器
INCDX;指向DAC寄存器
OUTDX,AL;选通DAC寄存器,启动D/A转换
图2.1DAC0832连接图
2.4温度测量电路
本系统采用热电偶来采集温度,热电偶是一种感温元件,它把温度信号转换成热电动势信号,通过电气仪表转换成被测介质的温度。
热电偶测温的基本原理是两种不同成份的均质导体组成闭合回路,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势,即热电动势,这就是所谓的塞贝克效应。
两种不同成份的均质导体为热电极,温度较高的一端为工作端,温度较低的一端为自由端,自由端通常处于某个恒定的温度下。
根据热电动势与温度的函数关系,制成热电偶分度表,分度表是自由端温度在0℃时的条件下得到的,不同的热电偶具有不同的分度表。
在热电偶回路中接入第三种金属材料时,只要该材料两个接点的温度相同,热电偶所产生的热电势将保持不变,即不受第三种金属接入回路中的影响。
因此,在热电偶测温时,可接入测量仪表,测得热电动势后,即可知道被测介质的温度。
2.5温度控制电路
电阻丝由过零触发型的双向晶闸管整流电路驱动,通过调节加热阻丝上的平均电压来控制加热功率,最终达到控制炉温的目的,其原理见图2.2。
MOC3021是晶闸管型光电隔离器件,它只能触发小功率晶闸管。
因此,本系统中通过MOC3021控制双向晶闸管T1,再由T1控制主电路的双向晶闸管T2。
将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电路保持原来状态;当温度降低到比预置温度低2℃时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。
由于淬火炉加热时,当前温度有可能低于报警下限,为防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志位F0。
图2.2加热控制电路原理图
2.6键盘与显示电路
键盘可以分为独立连接式和行列式(矩阵式)两类。
独立式键盘是各按键相互独立地接通一条输入数据线,电路简单。
但是当按键较多时,要占用较多的I/O口线。
为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常将键盘排列成行列矩阵形式。
本系统允许用户根据需要随时改变系统的工作状态和控制参数,为此设置了4位LED显示和相应的操作键盘,并由专用控制芯片8279实现与CPU的接口。
采用8279后,可以节省CPU用于查询键盘输入和管理显示输出的时间,降低了对CPU处理速度的要求,同时也减少了软件工作量。
接口电路图如图2.3所示。
图2.3键盘与显示电路
其工作原理:
用8行2列扩展14个键盘。
8条行线分别接到8279的RL0~RL7,2条列线接74LS138的BO、B1输出端。
假设B0为低电平,B1为高电平,若BO这列有键按下,则该行被拉为低电平。
因此,如果某列扫描信号为低电平,这列中有某一行输入到8279为低电平,则可以知道该行和列交叉的键被按下。
当然,这些工作是由8279自动扫描来完成的,不需要CPU的干涉。
2.7报警电路
在系统中设计报警电路是很重要的,在本系统中检测的温度信号高于或低于测温范围时发出警告信号,保证性能好、结构简单、适用,所以选择鸣音报警。
本系统中分别设计了断点报警信号和恒温完成报警信号,均采用扬声器加指示灯的方法来进行报警,其电路如图2.4所示。
若出现断偶故障,则输入P2.5由低变高,红色指示灯亮,同时扬声器发出声音。
若恒温时间到,则输入P2.4由低变高,黄色指示灯亮,同时扬声器发出声音。
图2.4报警与指示电路
3.软件设计
3.1主程序流程图及程序
主程序流程图如图3.1所示。
热电偶检测到的温度经MAX6675放大和A/D转换送入单片机,程序首先在液晶显示器上显示开始设定的温度和实际温度,接着一直扫描键盘,如果KS0按下一次,则设定温度加1,并在液晶显示器上显示出来;如果KS1按下一次,则设定温度减1,在液晶显示器上显示出来。
将设定值温度与实际值比较,计算差值,如果实际温度小于设定温度,将差值送入AD转换器,使加热电路进行加热,如果实际温度大于设定温度,因为没有冷却装置,只能不进行加热,是温度自然降下来。
运行过程对键盘扫描重复上述过程。
图3.1主程序流程图
主程序如下:
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 ;ADC0809通道INO的端口地址
F0 BIT PSW.5 ;报警允许标志
TEMP1 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H;50H~58H单元初始化
ORG 0000H
AJMP MAIN ;转主程序
ORG 00BH
AJMPPT0;转T0中断服务子程序
ORG0030H
MAIN:
MOVSP,#59H;设堆栈标志
CLRF0;报警标志清零
MOVTMOD,#01H;定时器0初始化(方式1)
MOVTL0,#0B0H;定时器100ms定时常数
MOVTH0,#3CH
MOVR7,#150;置15s软计数初值
SETBET0;允许定时器0中断
SETBEA;开中断
SETBTR0;启动定时器0
MAIN1:
ACALLKIN;调键盘管理子程序
ACALLDISP;调用显示子程序
SJMPMAIN1
定时器0中断服务子程序PT0:
PTO:
MOVTL0,#0BOH
MOVTH0,#3CH;重置定时器0初值
DJNZR7,EACK;15s到否,不到返回
MOVR7,#150;重置软计数初值
ACALLTIN;温度检测
MOVBT1,TEMP1;当前温度送到显示缓冲区
MOVBT0,TEMP0
ACALLDISP;显示当前温度
ACALLCONT;温度控制
ACALLALARM;温度越限报警
BACK:
RETI
3.2A/D转换和温度检测子程序
A/D转换程序如下:
ORG
1000H
START:
MOV
AL,98H
;方式0,A口输入,B口输出
MOV
DX,0FFFFH
;8255A控制字端口地址
OUT
DX,AL
;选8255A方式字
MOV
AL,0BH
;选IN3输入端和地址锁存信号
MOV
DL,0FDH
;8255A的B口地址
OUT
DX,AL
;选IN3通道地址
MOV
AL,1BH
;STARTPB4=1
OUT
DX,AL
;启动A/D转换
MOV
AL,0BH
;
OUT
DX,AL
;STARTPB4=0
MOV
DL,0FEH
;8255A的C口地址
TEST:
IN
AL,DX
;读C口状态
AND
AL,10H
;检测EOC状态
JZ
TEST
;如未转换完,再测试;转换完则继续
MOV
DL,0FC
;8255A的A口地址
IN
AL,DX
;读转换结果
HLT
;暂停
3.3D/A转换控制子程序模块
MOVDX,320H;指向输入寄存器
MOVAL,DATA;DATA为被转换的数据
OUTDX,AL;数据写入输入寄存器
INCDX;指向DAC寄存器
OUTDX,AL;选通DAC寄存器,启动D/A转换
4.总结
大三下学期开了十多门专业课,各种学科相互交叉,好多东西我都不是很理解不能够掌握其精髓,课程设计帮我及时梳理了这么多的知识,让我能把所学的知识应用于实践,对即将进入社会的我有很大的帮助。
课程设计是对我们这学期学的计算机控制技术这门课的理论知识的一个综合测评,是对我们将理论结合实践的综合能力的考查,是培养我们发现问题、解决问题的能力,是激发我们内在创新意识的途径。
在此次课程设计中,我学到了许多平时课堂上学不到的东西,比如:
单片机系统的可行性分析、淬火炉的设计与制作、各种器件的选型等。
在设计过程中我还遇到了许多难以解决的问题,并为之投入了大量的时间和精力。
回想起这次的课程设计,我感触颇多,为很多从没碰到的问题而绞尽脑汁,为无法找出的错误而郁闷烦躁,也曾经为取得的一小步成功而欣喜过……几分欣喜几分愁,终于,功夫不负有心人,最终我成功了,看着自己做的课程设计,看看自己亲自用Protel画的电路图及用Visio做的程序流程图,我激动不已。
在本次设计中,我发现了自己的许多缺点,比如:
知识面太窄,学习知识不牢固,在硬件上的水平还比较差,不能很好地将自己所学的知识与实际相结合等。
所以,在以后的学习中,我会努力完善自己,使自己的实践动手能力进一步提高。
参考文献:
[1]赵建领.51单片机开发与应用技术详解.北京:
电子工业出版社,2009
[2]熊静琪.计算机控制技术.北京:
电子工业出版社,2003
[3]高金源.计算机控制技术.北京:
北京航空航天大学出版社,2001
[4]张晋格.计算机控制原理与应用.北京:
电子工业出版社,1995
[5]沙占友.单片机应用技术与实例.北京:
电子工业出版社,2005
[6]楼然苗.单片机课程设计指导.北京:
北京航空航天大学出版社,2007
[7]张毅刚等,MCS-51单片机应用设计,哈工大出版社,2007年第4版
[8]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,
[9]李广弟等单片机基础北京航空航天出版社,2008.7
[10]肖洪兵.跟我学用单片机.北京:
北京航空航天大学出版社,2009.8
附录系统总原理图
系统总原理图