微型计算机控制技术
课程设计
----电阻加热炉温度控制
学 院: 专业班级: 姓 名: 学 号: 指导教师:
目 录
一、摘要………………………………….……….(2) 二、总体方案设计…………………………….….(2) 设计任务
1、设计内容及要求…………………………………………(2) 2、工艺要求……………………………………..…………..(2) 3、要求实现的系统基本功能………………………………(3) 4、对象分析…………………………………………………(3) 5、系统功能设计……………………………………..……..(3)
三、硬件的设计和实现…………………………..(4) 四、数字控制器的设计…………………….…….(7) 五、软件设计…………………………….……….(9)
1、系统程序流程图………………………………………….(9) 2、程序清单…………………………………………..……..(11)
六、完整的系统电路图…………………………..(21) 七、系统调试……………………………………..(21) 八、设计总结……………………………………..(21) 九、参考文献……………………………………..(22)
1
一、摘 要
温度是工业对象中主要的被控参数之一。特别是在冶金、化工、机械各类工业中,广泛使用各种加热炉、热处理炉、反应炉等。由于炉子的种类不同,所采用的加热方法及燃料也不相同,如煤气、天然气等。但就控制系统本身的动态特性而言,均属于一阶纯滞后环节,在控制算法上基本相同,可采用PID控制或其他纯滞后补偿算法。
为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。
因此,在工农业生产或科学实验中常常对温度不仅要不断地测量,而且要进行控制。
二、总体方案设计
设计任务
用一台计算机及相应的部件组成电阻炉炉温的自动控制系统,并使系统达到工艺要求的性能指标。
1、设计内容及要求
电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。在本控制对象电阻加热炉功率为8KW,有220V交流电源供电,采用双向可控硅进行控制。
系统模型:
2、工艺要求
按照规定的曲线进行升温和降温,温度控制范围为50—350℃,升温和降温阶段的温度控制精度为+5℃,保温阶段温度控制精度为+2℃。
2
3、要求实现的系统基本功能
微机自动调节:正常工况下,系统投入自动。
模拟手动操作:当系统发生异常,投入手动控制。
微机监控功能:显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。
4、对象分析
在本设计中,要求电阻炉炉内的温度,按照上图所示的规律变化,从室温开始到50℃为自由升温阶段,当温度一旦到达50℃,就进入系统调节,当温度到达350℃时进入保温段,要始终在系统控制下,一保证所需的炉内温度的精度。加工结束,要进行降温控制。保温段的时间为600—1800s。过渡过程时间:即从开始控制到进入保温阶段的时间要小于600s。在保温段当温度高于352℃或低于348℃时要报警,在升温和降温阶段也要进行控制,使炉内温度按照曲线的斜率升或降。
采用MCS—51单片机作为控制器,ADC0809模数转换芯片为模拟量输入,DAC0832数模转换芯片为模拟量输出,铂电阻为温度检测元件,运算放大器和可控硅作为功率放大,电阻炉为被控对象,组成电阻炉炉温控制系统,另外,系统还配有数字显示,以便显示和记录生产过程中的温度和输出值。
5、系统功能设计
计算机定时对炉温进行测量和控制一次,炉内温度是由一铂电阻温度计来进行测量,其信号经放大送到模数转换芯片,换算成相应的数字量后,再送入计算机中进行判别和运算,得到应有的电功率数,经过数模转换芯片转换成模拟量信号,供给可控硅功率调节器进行调节,使其达到炉温变化曲线的要求。
3
三、硬件的设计和实现
1、计算机机型:MCS—51 8031(不包含ROM、EPROM)
系统总线:PC总线
2、设计支持计算机工作的外围电路
矩阵键盘技术:
温度输出显示技术:
LED静态显示接口技术,所谓静态显示,即CPU输出显示值后,由硬件保存输出值,保持显示结果.
特点:占用机时少,显示可靠.但元件多,线路复杂、成本高,功耗大。
报警电路设计:正常运行时绿灯亮,在保温阶段炉内温度超出系统允差范围,就要进行报警。报警时报警灯亮,电笛响,同时发送中断信号至CPU进行处理。
4
3、设计输入输出通道
输入通道:因为所控的实际温度在50 ~ 350℃左右,即(350-50)=300所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现。(通过调整放大器的零点来实现偏置)这里采用一般中速芯片ADC0809。ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。
5
输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片
DAC0832是8位D/A转换器,与微处理器完全兼容。期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反馈电阻端。
4、元器件的选择
传感器的选择:铂铑10—铂热电偶,S型,正极性,量程0—1300C,使用温度小于等于600C,允差+1.5C。
执行元件的选择:电阻加热炉采用晶闸管(SCR)来做规律控制,结合电阻炉的具体要求,为了减少炉温的纹波,对输出通道采用较高的分辨率的方案,因此采用移相触发方式,并且由模拟触发器实现移相触发。
变送器的选择:因为系统要求有偏置,又需要对热电偶进行冷端补偿,所以采用常规的DDZ系列温度变送器。
控制元件:采用双向可控硅进行控制,其功能相当于两个单向可控硅反向连接,具有双向导通功能,其通断状态有控制极G决定。在控制极加上脉冲可使其正向或反向导通。
6
四、数字控制器的设计
1、控制算法:
电阻加热炉温度控制系统框图:.
整个闭环系统可用一个带纯滞后的一阶惯性环节来近似,所以其控制算法采
用大林算法。电阻加热炉温度控制系统模型为 其广义的传递函数为:
大林算法的设计目标是设计一个合适的数字控制器,使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即: 通常认为对象与一个零阶保持器相串联, 相对应的整个闭环系统的脉冲传递函
G(s)2.8e40s数是:178s1
2、计算过程:
连同零阶保持器在内的系统广义被控对象的传递函数
G(z)Z[1es1Ts2.8e40s178s1
)z40T]2.8(1zZ[1s(178s1)]
2.8(1z1
]
)z40TZ[1s1178178s11e
]z12.8(1z1)z4[11178
0.154z511z1
10.945z
7
系统闭环传递函数
(z)C(z)R(z)Z[1esTseNTss1
T]zN1(1eT) 数字控制器:
D(z)1ez1
(z)G(z)[1(z)]
zN1[1e(1eTT)N1Tz1(1e10)z]G(z)
1[1ez105(1e)1010.945zz1(1e)z5]0.154z5
6.448(10.945z10.007z11)50.933z
1D(z)6.448(10.945z(1z1)3)[10.933z10.933z20.933z0.933z4]
消除振铃现象后的数字控制器:
D(z)6.448(10.945z1zU(z)E(z)11)
1D(z)1.2971.2970.945z1z1
将上式离散化: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)
8
五、软件设计
1、系统程序流程图
a、系统主程序框图
b、A/D转换子程序流程图
9
c、LED显示流程图
d、数字控制算法子程序流程图
10
、程序清单
ORG 0000H AJMP MAIN ORG 0003H AJMP KEYS ORG 000BH
AJMP PIT0 ORG 001BH
AJMP PIT1 MAIN: MOV SP,#00H
CLR
5FH MOV A,#00H MOV R7,#09H
MOV R0,#28H LP1:
MOV @R0,A INC R0
DJNZ R7,LP1 MOV R7,#06H
MOV R0,#39H LP2:
MOV @R0,A INC R0
DJNZ R7,LP2 MOV R7,#06H MOV
RO,#50H
LP3:
MOV @R0,A
INC R0
DINZ R7,LP3 MOV 33H,#00H
MOV
34H,#00H MOV 35H,#00H
MOV 36H,#00H MOV 37H,#00H
MOV 38H,#00H MOV 42H,#00H
MOV 43H,#00H MOV TMOD,#56H MOV TLO,#06H MOV THO,#06H
MOV 25H,#163H SETB TR0 SETB ET0 SETB EX0
SETB EA ;中断入口及优先级
:清上下限越限标志
;清显示缓冲区
;赋KP高低字节
; 赋KI高低字节 ; 赋KD高低字节
;赋K高低字节
;T0方式2,T1方式1计数
;设定值默认值350
;键盘高优先级 ;开键盘T0。T1中断
11
2
LOOP: MOV R0,#56H MOV R1,#55H
LCALL SCACOV
;标度转化
键盘子程序KEYS:
CC:
BB: AA:
MOV R0,#53H LCALL DIR NOP
LCALL DLY10MS NOP
LCALL DLY10MS
AJMP LOOP
EX0 CLR EA PUSH PSW
PUSH ACC LCALL DLY10MS P3.2 AA
SETB 5DH MOV A,25H MOV B,#10H DIV A B MOV 52H,A
MOV A, B MOV 51H, A MOV R0,#50H
LCALL DIR NOP
LCALL DLY10MS NOP
LCALL DLY10MS JB P1.7 ,BB MOV R1,#25H LCALL DAAD1 NOP
LCALL DLY10MS AJMP CC
P1.6 CC
MOV R1,#25H LCALL DEEC1 NOP
LCALL DLY10MS
AJMP CC
ACC
POP PSW
;等中断
;关中断
;消抖
;置“显示设定值温度值标志”
;取运算位的值
;BCD码转化
;显示设定温度
12
CLR JB POP JB SETB EX0
SETB EA RETI
;出栈
显示子程序
DIR: MOV SCON ,#00H ;置串行口移位寄存器状态
SETB P1.4 ;开显示 JB DL2: MOV DL0: MOV MOVC MOV LOOP1: JNB
CLR INC MOV MOVC ANL
MOV LOOP2: JNB CLR INC
MOV MOVC MOV
LOOP3: JNB
CLR CLR
CLR RET
DL1:
MOV AJMP SEGT: DB 加一子程序
DAAD1: MOV ORL ADD
CJNE DAAD3: MOV DAA: RET
DAAD2: JC MOV AJMP 减一子程序
DEEC1: MOV
5DH,DL1 ;显示设定温度
DPTR,#SEGT
A,@R0
A,@A+DPTR
SBUF ,A
TI, LOOP1 TI R0 A,@R0
A,@A+DPTR
A, #7FH
:使数带小数点
SBUF ,A
TI,LOOP2
TI R0
A,@R0
A,@A+DPTR SBUF,A TI,LOOP3 TI P1.4
5DH 50H,#0AH
;小数位黑屏
DL2
0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH A,#00H A,@R1 A,#01H
A,#30H,DAAD2 ;超过48度了吗?
@R1,A
DAAD3
@R1,#15EH
;超过48则转回到355
DAA
A,@R1
13
DEC A
CJNE A,#15EH,DEEC2
;低于355度了吗?
DEEC3: MOV @R1,A DEE : RET
DEEC2: JNC DEEC3 MOV @R1,#30H ;低于355则转回到48
AJMP DEE
T0中断子程序
PTT0: CLR EA
PUSH ACC PUSH PSW PUAH DPL
PUSH DPH
SETB EA PPP: LCALL SMAP LCALL FILTER MOV A,2AH CJNE A,#07H,AAA AJMP BBB
AAA: JC CCC CJNE A,#0FEH ,DDD AJMP BBB DDD: JC
BBB
CLR
P1.2 SETB 5EH
CLR P1.1 AJMP PPP
CCC: CLR P1.3 SETB 5FH
BBB: CLR P1.0 AJMP PPP SETB P1.0 SETB P1.1 SETB P1.2
SETB P1.3 CLR 5EH
CLR 5FH LCALL PID
JNB 20H,EEF MOV A,29H LCALL FFF
CLR P1.0
LOOP10: MOV R0,#56H MOV R1,#55H
;压栈后开中断响应键盘
:采样数据
;数字滤波
;取采样值 ;下限48比较
;小于48度转
;上限355比较
;转至48~355正常范围处理
;大于355黄灯亮
;置标志 启动风扇
;小于48红灯亮
;置标志启动电炉
;50~350之间正常 ;设定温度小于实际值转到风扇
;存放相乘结果的首址
;赋显示缓冲区最高位地址
14
LCALL SCACOV MOV R0,#53H
;标度转化 ;赋显示首址 ;等待T1中断
CLR DIR JB D5H,LOOP10 CLR EA POP
DPH
POP DPL
POP PSW
SETB EA POP ACC
RETI
EEE: MOV A,28H LCALL FFF
CLR P1.1
AJMP LOOP10
FFF: CRL A INC A
MOV TL1,A
MOV TH1,#0FFH SETB PI1
SETB TR1
SETB ET1 RET 标度转化
SCACOV :PROC NEAR MOV DX,0 MOV DATA1,#258H MOV DATA2,#708H MOV DATA3,#960H PROC NEAR
MOV DX,0 MOV AX,DATAP CMP AX,DATA3 JAE Q3DOR
CMP AX,DATA2
JAE Q3-Q2
CMP AX,DATA3 JAE Q2-Q1 Q0: MOV BX,0.8H MUL
BX
ADC DX,0
JMP DONE
Q2-Q1: MOV AX,#15EH Q3-Q2: SUB AX,DATA2
;风扇处理
;根据PID结果计算T1初值 ;取采样时间
;时间大于2400?
; 1800<时间<2400
; 600<时间<1800
;<600S Q=50+t/2
;Q=350 ;Q=350-(t-1800)/2
15
MOV BX,0.8H MUL MOV SUB MOV
BX
AX,#15EH AX,BX @R1,A
PP: RET 采样子程序
SWAP: MOV R0,#20H SAW1: DLY: HERE: 数字滤波
CMP1:
CMP2: CMP3:
CMP4: CMP5:
CMP6: RR: T1中断
PIT1:
MOV R1,#03H
MOV DPTR,#7FF8H MOVX @DPTR A MOV R2,#20H
R2,DLY JB P3.3 ,HERE
MOV DPTR,#7FF8H
MOVX A,@DPTR MOV @R0,A INC R0
DJNZ R1,SAM1 RET
FILTER: MOV A, 20H CJNE A,2DH CMP1 AJMP CMP2
JNC CMP2 XCH A,2DH XCH A,2CH
MOV A,2DH CJNE A,22EH,CMP3 MOV 2AH,A AJMP RR
JC CMP4 MOV 2AH,A AJMP RR
MOV A,2EH
CJNE A,2CH,CMP5
MOV 2AH ,A
AJMP RR
JC CMP6 XCH A,2CH
MOV 2AH,A CLR 00H
;A/D转化
;延时
;读转化结果 16
DJNZ RET JB 20H, GGG
SETB P1.0
GG: GGG:
CLR PT1 RETI
SETB P1.1 ;关闭电炉
;关闭风扇
CLR
20H
AJMP GG
延时10MS子程序
DLY10MS: MOV R7,#0A0H
DLOO: MOV R6,#0FFH DL11: DJNZ R6,DL11
DJNZ R7,DL00 RET
数字PID算法子程序
PID: MOV R5,#00H
MOV R4,2DH MOV R3,#00H
MOV R2,#32H LCALL CPL1
LCALL DSUM MOV R0,#5AH MOV R5,#05H
MOV R4,#1CH LCALL MULT
MOV 31H ,5BH
MOV 32H ,5AH MOV R5,31H
MOV R4,32H MOV R3,2AH
MOV R2,#00H ACALL CPL1 ACALL DSUM MOV 39H, R7
MOV 3AH,R6 MOV R5,35H
MOV R4,36H MOV R0,#4AH
ACALL MULT1 MOV R2,39H
MOV
R4,3AH MOV R3,3BH
MOV R2,3CH MOV R5,33H
MOV R4,34H
;取NX值
;取50 ;求(NX-32H)值
;赋乘法算法运算暂存单元地址首址 ;赋参数
;调无符号数乘法 ;存放结果有效值 ;取双字节UR(设定) ;取双字节实测值 ;取U(K)补码
;计算E(K) ;存E(K)
;取KI参数 ;计算PI=KI*E(K)
;取E(K)
;取E(K-1)
;取KP参数
17
MOV R0,#46H
ACALL MULT1 MOV R5,49H MOV R4,48H MOV R3,4DH MOV R2,4CH
LCALL DSUM
;KP*[ E(K)- E(K-1)]+ KI*E(K)
MOV 4AH, R7
MOV 4BH,R6 ;保存上式之和
;KP*[ E(K)- E(K-1)]
MOV R5,39H
MOV 3CH,3AH MOV A,31H CJNE A,2AH,AA2 AA3: CLR 20H AA1: RET AA2 JNC AA3 SETB 20H MOV R3,39H MOV R2,3AH LCALL CPL1 MOV A,R3 MOV R7,A MOV A,R2 MOV R6,A MOV R5,42H
MOV
R4,43H MOV R0,#5AH
ACALL MULT1
MOV 28H,5BH AJMP AA
DSUM: MOV A,R4 ADD
A,R2
MOV R6,A MOV A,R5 ADDC A,R3
MOV R7,A
RET 双字节求补
CPL1: MOV A,R2
CPL A ADD
A,#01H
MOV R2,A MOV A,R3 CPL A
;存E(K)到E(K-1)
;取设定值
;比较设定值与实测值 ;清电炉标志
; 清风扇标志位
;取K1风扇标志
;计算P=K*E(K)且结果存在51H,50H单元中;取8位有效值存在28H单元
;双字节加法子程序(R5R4)+(R3R2) (R7R6) 18
ADDC A,#00H
MOV R3,A RET
乘法 被乘数R7R6乘数R5R4
MULT1: MOV
A,R7
;被乘数符号C1 5CH位 ;为正数则转 ;为负数求补
RLC A
MOV 5CH,C JNC POS1 MOV A,R1 CPL
A
ADD A,#01H MOV R6,A MOV A,R7 CPL A
ADDC A,#00H MOV
R7,A
POS1: MOV
A,R5 RLC
A MOV 5DH,C
JNC POS2 MOV A,R4 CPL A
ADD A,#01H MOV R4,A MOV
A,R5
CPL A
ADDC A,#00H
MOV R5,A
POS2: ACALL MULT
MOV C,5CH
ANL C,5DH
JC
TPL
MOV C,5CH MOV C,5DH
JNC TPL DEC
R0
MOV A,@RO CPL A ADD A,#01 MOV @R0,A INC
R0
MOV A,@R0 CPL A
ADDC A,#00H
;取乘数
;乘数符号C2 5DH
;为正数则转
;负负相乘转
; 正正相乘转
19
MOV @R0,A
TPL: RET
MULT: MOV A,R6 MOV B,R4 MUL AB MOV @R0,A MOV R3,B ;取低位相乘
MOV MOV MUL ADD MOV MOV ADDC MOV MOV MOV MUL ADD
INC
MOV
CLR MOV
ADDC MOV
JNC
SETB LAST: MOV MOV MUL ADD
INC MOV MOV ADDC MOV ADDC INC MOV RET
END
A,R4 B,R7 AB A,R3 R3,A A,B A,#00H R2,A A,R6 B,R5 AB A,R3 R0 @R0,A
5BH A,R2 A,B R2,A
LAST
5BH A,R7 B,R5 AB A,R2 R0
@R0,A A,B
C,5BH R0 @R0,A
;置进位标志
;存积
20
A,#00H A,#00H 六、完整的系统电路图
七、系统调试
在设计完成后进行调试,根据设计逻辑图制作好实验样机,就可以进入硬件调试,调试的主要任务是排除样机的故障,其中包括设计错误和工艺性故障,然后在进行软件的调试用微型机对MCS51系列单片机程序进行交叉汇编。在硬件,软件单独调试后,即可进入硬件、软件联合调试阶段,找出硬件、软件之间不相匹配的地方,反复修改和调试,直到符合设计要求。
八、设计总结
在设计过程中,首先要熟悉系统的工艺,进行对象的分析,按照要求确定方案。然后要进行硬件和软件的设计,调试。由于没有实际的样机,所以不能看到系统的运行结果。只能在理论上对系统的结果进行预测分析。通过设计实验,使我掌握了微型机控制系统I/O接口的扩展方法,模拟量输入/输出通道的设计,常用控制程序的设计方法,数据处理及非线性补偿技术,以及数字控制器的设计方法。
21
九、参考文献
(1)潘新民 《微型计算机控制技术》 高等教育出版社 2001.7 (2)苗秀敏 《计算机控制系统及应用》 北京科学出版社 1995.4 (3)薛均义 《微机控制系统及应用》 西安交通大学出版社 2003.2 (4)黄胜军 《微型计算机控制应用实例集》 清华大学出版社 1987.4 (5)徐科军 《传感器与检测技术》 电子工业出版社 2004.9 (6)张凡 《微机原理与接口技术》 清华大学出版社 2003.10 (7)朱月秀 《单片机基础(修订版) 》 北京航空航天大学出版社 2001.7 (8)余锡存 (9)黄胜军 西安电子科技大学出版社 2000.7 (二) 》 清华大学出版社 1993.10
22
《单片机原理及接口技术》《微型计算机控制应用实例集
因篇幅问题不能全部显示,请点此查看更多更全内容