计算机控制技术课程设计整理版.docx

上传人:b****6 文档编号:7407844 上传时间:2023-01-23 格式:DOCX 页数:28 大小:354.95KB
下载 相关 举报
计算机控制技术课程设计整理版.docx_第1页
第1页 / 共28页
计算机控制技术课程设计整理版.docx_第2页
第2页 / 共28页
计算机控制技术课程设计整理版.docx_第3页
第3页 / 共28页
计算机控制技术课程设计整理版.docx_第4页
第4页 / 共28页
计算机控制技术课程设计整理版.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

计算机控制技术课程设计整理版.docx

《计算机控制技术课程设计整理版.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计整理版.docx(28页珍藏版)》请在冰豆网上搜索。

计算机控制技术课程设计整理版.docx

计算机控制技术课程设计整理版

电阻加热炉温度控制系统设计

1、摘要

温度是工业对象中主要的被控参数之一。

尤其是在冶金、化工、机械各类工业中,广泛使用各种加热炉、热处理炉、反应炉等。

由于炉子的种类不同,所采用的加热方法及燃料也不相同,如煤气、天然气等。

但就控制系统本身的动态特性而言,均属于一阶纯滞后环节,在控制算法上基本相同,可采用PID控制或其他纯滞后补偿算法。

但对于电阻加热炉来说,当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确模型和确定参数。

而传统PID控制是一种建立在经典控制理论基础上的控制策略,其设计依赖于被控对象的数学模型,因此对于加热炉这类控制对象采用传统PID的控制方案很难达到理想的控制效果。

为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。

因此,在工农业生产或科学实验中常常对温度不仅要不断地测量,而且要进行控制。

在电阻炉温度控制系统的设计中,应尽量考虑到如何有效地避免各种干扰因素而采用一个较好的控制方案,选择合适芯片及控制算法是非常有必要的本设计要用单片机设计一个电阻炉温度控制系统。

电阻炉的类型根据其热量产生的方式不同,可分为间接加热式和直接加热式两大类。

间接加热式电阻炉,就是在炉子内部有专用的电阻材料制作的加热元件,电流通过加热元件时产生热量,再通过热的传导、对流、辐射而使放置在炉中的炉料被加热。

直接加热式电阻炉,是将电源直接接在所需加热的材料上,让强大的电流直接流过所需加热的材料,使材料本身发热从而达到加热的效果。

工业电阻炉,大部分采用间接加热式,只有一小部分采用直接加热式。

由于电阻炉具有热效率高、热量损失小、加热方式简单、温度场分布均匀、环保等优点,应用十分广泛。

2、总体方案设计

1、设计任务:

电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。

本控制对象电阻加热炉功率为8KW,由220V交流电源供电,采用双向可控硅进行控制。

2、工艺要求:

按照规定的曲线进行升温和降温,温度控制范围为50~350℃,升温和降温阶段的温度控制精度为±5℃,保温阶段温度控制精度为±2℃。

3、基本功能:

微机自动调节:

正常工况下,系统投入自动。

模拟手动操作:

当系统发生异常,投入手动控制。

微机监控功能:

显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。

4、对象分析:

本次设计中,要求电阻炉炉内的温度按照上图所示的规律变化:

从室温开始到50℃为自由升温阶段,当温度到达50℃时,进入系统调节阶段,当温度到达350℃时,进入保温阶段。

要始终在系统控制下,以保证所需的炉内温度的精度。

加工结束,要进行降温控制。

保温阶段的时间为600~1800s。

过渡过程时间:

即从开始控制到进入保温阶段的时间要小于600s。

在保温段当温度高于352℃或低于348℃时要报警,在升温和降温阶段也要进行控制,使炉内温度按照曲线的斜率升或降。

5、系统整体设计:

采用MCS—51单片机作为控制器,ADC0809模数转换芯片为模拟量输入,DAC0832数模转换芯片为模拟量输出,铂电阻为温度检测元件,运算放大器和可控硅作为功率放大,电阻炉为被控对象,组成电阻炉炉温控制系统,另外,系统还配有数字显示,以便显示和记录生产过程中的温度和输出值。

6、系统模型:

3、硬件设计与实现

1.计算机选型和系统总线:

1)单片机:

MCS—51系列8031

2)系统总线:

PC总线

2.外围电路设计:

1)矩阵键盘技术:

图1为4×8矩阵组成的32键盘与微机接口电路。

图中8255端口C为行扫描口,工作于输出方式,端口A工作于输入方式,用来读入列值。

图中I/O口地址必须满足=0,才能选中相应的寄存器。

在每一行与列的交叉点接一个按键,故4×8共32个键。

图1:

应用8255接口的4×8键盘矩阵

2)温度输出显示技术:

LED静态显示接口技术,所谓静态显示,即CPU输出显示值后,由硬件保存输出值,保持显示结果。

图2为6位BCD码静态显示电路原理图。

图中74LS244为总线驱动器,6位数字显示共用同一组总线,每个LED显示器均配有一个锁存器(74LS377),用来锁存待显示的数据。

当被显示的数据从数据总线经74LS244传送到各锁存器的输入端后,到底哪一个锁存器选通,取决于地址译码器74LS138各输出位的状态。

总线驱动器74LS244由IOW和A9控制,当IOW和A9同时为低电平时,74LS244打开,将数据总线上的数据传送到各个显示器的锁存器74LS377上。

技术特点:

占用机时少,显示可靠,但使用元件多,线路复杂,成本高。

图2:

用锁存器连接的6位静态显示电路

3)报警电路设计:

正常运行时绿灯亮,在保温阶段,一旦炉内温度超出系统允差范围,就要进行报警。

报警时,红灯亮,电笛响,同时发送中断信号至CPU进行处理。

图3:

加热炉报警系统

3.模拟量输入通道设计:

因为所控的实际温度在50~350℃,350-50=300.所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现(通过调整放大器的零点来实现偏置)。

这里采用一般中速芯片ADC0809。

ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。

8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。

这种器件无需进行零位和满量程调整。

由于多路开关的地址输入部分能够进行锁存和译码,而且其三态TTL输出也可以锁存,所以它易于与微型计算机接口。

其具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,故用于过程控制是比较理想的器件。

图4:

ADC0809应用接线图

4.模拟量输出通道设计:

据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片。

DAC0832是8位D/A转换器,与微处理器完全兼容。

期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。

它的内部具有两级输入数据缓冲器和一个R-2RT型电阻网络,因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反馈电阻端。

双极性电压输出的D/A转换电路通常采用偏移二进制码、补码二进制码和符号一数值编码。

只要在单极性电压输出的基础上再加一级电压放大器,并配以相关电阻网络就可以构成双极性电压输出。

在图5中,运算放大器A2的作用是把运算放大器A1的单向输出电压转变为双向输出。

图5:

DAC0832双极性电压输出电路

5.元器件的选择:

1)传感器的选择:

铂铑10—铂热电偶,S型,正极性,量程0—1300℃,使用温度小于等于600℃,允差±1.5℃。

2)执行元件的选择:

电阻加热炉采用晶闸管(SCR)来做规律控制,结合电阻炉的具体要求,为了减少炉温的纹波,对输出通道采用较高的分辨率的方案,因此采用移相触发方式,并且由模拟触发器实现移相触发。

3)变送器的选择:

因为系统要求有偏置,又需要对热电偶进行冷端补偿,所以采用常规的DDZ系列温度变送器。

4)控制元件:

采用双向可控硅进行控制,其功能相当于两个单向可控硅反向连接,具有双向导通功能,其通断状态有控制极G决定。

在控制极加上脉冲可使其正向或反向导通。

图6:

可控硅加热炉控制原理图

4、数字控制器设计

1)控制算法:

整个闭环系统可用一个带纯滞后的一阶惯性环节来近似,所以其控制算法采用大林算法。

电阻加热炉温度控制系统模型为:

其广义的传递函数为:

大林算法的设计目标是设计一个合适的数字控制器,使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即:

通常认为对象与一个零阶保持器相串联,相对应的整个闭环系统的脉冲传递函数是:

2)计算过程:

连同零阶保持器在内的系统广义被控对象的传递函数:

系统闭环传递函数:

数字控制器:

消除振铃现象后的数字控制器:

离散化:

U(Z)—U(Z)Z—1=1.279E(Z)—1.226E(Z)Z—1

U(K)—U(K—1)=1.279E(K)—1.226E(K—1)

最终得:

U(K)=U(K—1)+1.279E(K)—1.226E(K—1)

图7:

电阻加热炉温度控制系统框图

5、软件设计

1)程序流程图:

a、系统主程序框图:

b、A/D转换子程序流程图:

 

c、LED显示流程图:

d、报警程序流程图:

e、数字控制算法子程序流程图:

2)源程序:

ORG0000H

AJMPMAIN

ORG0003H

AJMPKEYS

ORG000BH

AJMPPIT0

ORG001BH

AJMPPIT1;中断入口及优先级

MAIN:

MOVSP,#00H

CLR5FH;清上下限越限标志

MOVA,#00H

MOVR7,#09H

MOVR0,#28H

LP1:

MOV@R0,A

INCR0

DJNZR7,LP1

MOVR7,#06H

MOVR0,#39H

LP2:

MOV@R0,A

INCR0

DJNZR7,LP2

MOVR7,#06H

MOVRO,#50H

LP3:

MOV@R0,A

INCR0

DINZR7,LP3;清显示缓冲区

MOV33H,#00H

MOV34H,#00H;赋KP高低字节

MOV35H,#00H

MOV36H,#00H;赋KI高低字节

MOV37H,#00H

MOV38H,#00H;赋KD高低字节

MOV42H,#00H

MOV43H,#00H;赋K高低字节

MOVTMOD,#56H;T0方式2,T1方式1计数

MOVTLO,#06H

MOVTHO,#06H

MOV25H,#163H;设定值默认值350

SETBTR0;键盘高优先级

SETBET0

SETBEX0

SETBEA;开键盘T0。

T1中断

LOOP:

MOVR0,#56H

MOVR1,#55H

LCALLSCACOV;标度转化

MOVR0,#53H

LCALLDIR

NOP

LCALLDLY10MS

NOP

LCALLDLY10MS

AJMPLOOP;等中断

;键盘子程序

KEYS:

CLREX0

CLREA

PUSHPSW

PUSHACC;关中断

LCALLDLY10MS;消抖

CC:

JBP3.2AA

SETB5DH;置“显示设定值温度值标志”

MOVA,25H;取运算位的值

MOVB,#10H;BCD码转化

DIVAB

MOV52H,A

MOVA,B

MOV51H,A

MOVR0,#50H

LCALLDIR;显示设定温度

NOP

LCALLDLY10MS

NOP

LCALLDLY10MS

JBP1.7,BB

MOVR1,#25H

LCALLDAAD1

NOP

LCALLDLY10MS

AJMPCC

BB:

JBP1.6CC

MOVR1,#25H

LCALLDEEC1

NOP

LCALLDLY10MS

AJMPCC

AA:

POPACC

POPPSW

SETBEX0

SETBEA;出栈

RETI

;显示子程序

DIR:

MOVSCON,#00H;置串行口移位寄存器状态

SETBP1.4;开显示

JB5DH,DL1;显示设定温度

DL2:

MOVDPTR,#SEGT

DL0:

MOVA,@R0

MOVCA,@A+DPTR

MOVSBUF,A

LOOP1:

JNBTI,LOOP1

CLRTI

INCR0

MOVA,@R0

MOVCA,@A+DPTR

ANLA,#7FH;使数带小数点

MOVSBUF,A

LOOP2:

JNBTI,LOOP2

CLRTI

INCR0

MOVA,@R0

MOVCA,@A+DPTR

MOVSBUF,A

LOOP3:

JNBTI,LOOP3

CLRTI

CLRP1.4

CLR5DH

RET

DL1:

MOV50H,#0AH;小数位黑屏

AJMPDL2

SEGT:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

;加一子程序

DAAD1:

MOVA,#00H

ORLA,@R1

ADDA,#01H

CJNEA,#30H,DAAD2;超过48度了吗?

DAAD3:

MOV@R1,A

DAA:

RET

DAAD2:

JCDAAD3

MOV@R1,#15EH;超过48则转回到355

AJMPDAA

;减一子程序

DEEC1:

MOVA,@R1

DECA

CJNEA,#15EH,DEEC2;低于355度了吗?

DEEC3:

MOV@R1,A

DEE:

RET

DEEC2:

JNCDEEC3

MOV@R1,#30H;低于355则转回到48

AJMPDEE

;T0中断子程序

PTT0:

CLREA

PUSHACC

PUSHPSW

PUAHDPL

PUSHDPH

SETBEA;压栈后开中断响应键盘

PPP:

LCALLSMAP;采样数据

LCALLFILTER;数字滤波

MOVA,2AH;取采样值

CJNEA,#07H,AAA;下限48比较

AJMPBBB

AAA:

JCCCC;小于48度转

CJNEA,#0FEH,DDD;上限355比较

AJMPBBB;转至48~355正常范围处理

DDD:

JCBBB

CLRP1.2;大于355黄灯亮

SETB5EH

CLRP1.1;置标志启动风扇

AJMPPPP

CCC:

CLRP1.3;小于48红灯亮

SETB5FH

BBB:

CLRP1.0;置标志启动电炉

AJMPPPP

SETBP1.0

SETBP1.1

SETBP1.2

SETBP1.3

CLR5EH

CLR5FH;50~350之间正常

LCALLPID

JNB20H,EEF;设定温度小于实际值转到风扇

MOVA,29H

LCALLFFF

CLRP1.0

LOOP10:

MOVR0,#56H;存放相乘结果的首址

MOVR1,#55H;赋显示缓冲区最高位地址

LCALLSCACOV;标度转化

MOVR0,#53H;赋显示首址

CLRDIR

JBD5H,LOOP10;等待T1中断

CLREA

POPDPH

POPDPL

POPPSW

SETBEA

POPACC

RETI

EEE:

MOVA,28H;风扇处理

LCALLFFF

CLRP1.1

AJMPLOOP10

FFF:

CRLA;根据PID结果计算T1初值

INCA

MOVTL1,A

MOVTH1,#0FFH

SETBPI1

SETBTR1

SETBET1

RET

;标度转化

SCACOV:

PROCNEAR

MOVDX,0

MOVDATA1,#258H

MOVDATA2,#708H

MOVDATA3,#960H

PROCNEAR

MOVDX,0

MOVAX,DATAP;取采样时间

CMPAX,DATA3;时间大于2400?

JAEQ3DOR

CMPAX,DATA2

JAEQ3-Q2;1800<时间<2400

CMPAX,DATA3

JAEQ2-Q1;600<时间<1800

Q0:

MOVBX,0.8H;<600SQ=50+t/2

MULBX

ADCDX,0

JMPDONE

Q2-Q1:

MOVAX,#15EH;Q=350

Q3-Q2:

SUBAX,DATA2;Q=350-(t-1800)/2

MOVBX,0.8H

MULBX

MOVAX,#15EH

SUBAX,BX

MOV@R1,A

PP:

RET

;采样子程序

SWAP:

MOVR0,#20H

MOVR1,#03H

SAW1:

MOVDPTR,#7FF8H

MOVX@DPTRA;A/D转化

MOVR2,#20H

DLY:

DJNZR2,DLY;延时

HERE:

JBP3.3,HERE

MOVDPTR,#7FF8H

MOVXA,@DPTR;读转化结果

MOV@R0,A

INCR0

DJNZR1,SAM1

RET

;数字滤波

FILTER:

MOVA,20H

CJNEA,2DHCMP1

AJMPCMP2

CMP1:

JNCCMP2

XCHA,2DH

XCHA,2CH

CMP2:

MOVA,2DH

CJNEA,22EH,CMP3

MOV2AH,A

AJMPRR

CMP3:

JCCMP4

MOV2AH,A

AJMPRR

CMP4:

MOVA,2EH

CJNEA,2CH,CMP5

MOV2AH,A

AJMPRR

CMP5:

JCCMP6

XCHA,2CH

CMP6:

MOV2AH,A

RR:

RET

;T1中断

PIT1:

CLR00H

JB20H,GGG

SETBP1.0;关闭电炉

GG:

CLRPT1

RETI

GGG:

SETBP1.1;关闭风扇

CLR20H

AJMPGG

;延时10MS子程序

DLY10MS:

MOVR7,#0A0H

DLOO:

MOVR6,#0FFH

DL11:

DJNZR6,DL11

DJNZR7,DL00

RET

;数字PID算法子程序

PID:

MOVR5,#00H

MOVR4,2DH;取NX值

MOVR3,#00H

MOVR2,#32H;取50

LCALLCPL1

LCALLDSUM;求(NX-32H)值

MOVR0,#5AH;赋乘法算法运算暂存单元地址首址

MOVR5,#05H

MOVR4,#1CH;赋参数

LCALLMULT;调无符号数乘法

MOV31H,5BH

MOV32H,5AH;存放结果有效值

MOVR5,31H

MOVR4,32H;取双字节UR(设定)

MOVR3,2AH

MOVR2,#00H;取双字节实测值

ACALLCPL1;取U(K)补码

ACALLDSUM;计算E(K)

MOV39H,R7

MOV3AH,R6;存E(K)

MOVR5,35H

MOVR4,36H;取KI参数

MOVR0,#4AH

ACALLMULT1;计算PI=KI*E(K)

MOVR2,39H

MOVR4,3AH;取E(K)

MOVR3,3BH

MOVR2,3CH;取E(K-1)

MOVR5,33H

MOVR4,34H;取KP参数

MOVR0,#46H

ACALLMULT1;KP*[E(K)-E(K-1)]

MOVR5,49H

MOVR4,48H

MOVR3,4DH

MOVR2,4CH

LCALLDSUM;KP*[E(K)-E(K-1)]+KI*E(K)

MOV4AH,R7

MOV4BH,R6;保存上式之和

MOVR5,39H

MOV3CH,3AH;存E(K)到E(K-1)

MOVA,31H;取设定值

CJNEA,2AH,AA2;比较设定值与实测值

AA3:

CLR20H;清电炉标志

AA1:

RET

AA2JNCAA3

SETB20H;清风扇标志位

MOVR3,39H

MOVR2,3AH

LCALLCPL1

MOVA,R3

MOVR7,A

MOVA,R2

MOVR6,A

MOVR5,42H

MOVR4,43H;取K1风扇标志

MOVR0,#5AH

ACALLMULT1;计算P=K*E(K)且结果存在51H,50H单元中

MOV28H,5BH;取8位有效值存在28H单元

AJMPAA

DSUM:

MOVA,R4;双字节加法子程序(R5R4)+(R3R2)(R7R6)

ADDA,R2

MOVR6,A

MOVA,R5

ADDCA,R3

MOVR7,A

RET

;双字节求补

CPL1:

MOVA,R2

CPLA

ADDA,#01H

MOVR2,A

MOVA,R3

CPLA

ADDCA,#00H

MOVR3,A

RET

;乘法被乘数R7R6乘数R5R4

MULT1:

MOVA,R7

RLCA

MOV5CH,C;被乘数符号C15CH位

JNCPOS1;为正数则转

MOVA,R1;为负数求补

CPLA

ADDA,#01H

MOVR6,A

MOVA,R7

CPLA

ADDCA,#00H

MOVR7,A

POS1:

M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1