计算机控制技术课程设计整理版Word文档格式.docx

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

计算机控制技术课程设计整理版Word文档格式.docx

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

计算机控制技术课程设计整理版Word文档格式.docx

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:

INCR0

DJNZR7,LP2

MOVRO,#50H

LP3:

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

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

LCALLDLY10MS

JBP1.7,BB

MOVR1,#25H

LCALLDAAD1

LCALLDLY10MS

AJMPCC

BB:

JBP1.6CC

LCALLDEEC1

AJMPCC

AA:

POPACC

POPPSW

SETBEA;

出栈

RETI

显示子程序

DIR:

MOVSCON,#00H;

置串行口移位寄存器状态

SETBP1.4;

开显示

JB5DH,DL1;

DL2:

MOVDPTR,#SEGT

DL0:

MOVA,@R0

MOVCA,@A+DPTR

MOVSBUF,A

LOOP1:

JNBTI,LOOP1

CLRTI

MOVA,@R0

ANLA,#7FH;

使数带小数点

LOOP2:

JNBTI,LOOP2

CLRTI

MOVSBUF,A

LOOP3:

JNBTI,LOOP3

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中断

POPDPH

POPDPL

POPPSW

SETBEA

POPACC

EEE:

MOVA,28H;

风扇处理

LCALLFFF

CLRP1.1

AJMPLOOP10

FFF:

CRLA;

根据PID结果计算T1初值

INCA

MOVTL1,A

MOVTH1,#0FFH

SETBPI1

SETBTR1

SETBET1

标度转化

SCACOV:

PROCNEAR

MOVDX,0

MOVDATA1,#258H

MOVDATA2,#708H

MOVDATA3,#960H

PROCNEAR

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

MOVAX,#15EH

SUBAX,BX

MOV@R1,A

PP:

采样子程序

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

DJNZR1,SAM1

FILTER:

MOVA,20H

CJNEA,2DHCMP1

AJMPCMP2

CMP1:

JNCCMP2

XCHA,2DH

XCHA,2CH

CMP2:

MOVA,2DH

CJNEA,22EH,CMP3

MOV2AH,A

AJMPRR

CMP3:

JCCMP4

CMP4:

MOVA,2EH

CJNEA,2CH,CMP5

MOV2AH,A

AJMPRR

CMP5:

JCCMP6

CMP6:

RR:

PIT1:

CLR00H

JB20H,GGG

SETBP1.0;

关闭电炉

GG:

CLRPT1

GGG:

SETBP1.1;

关闭风扇

CLR20H

AJMPGG

延时10MS子程序

DLY10MS:

MOVR7,#0A0H

DLOO:

MOVR6,#0FFH

DL11:

DJNZR6,DL11

DJNZR7,DL00

数字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

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:

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

MOVA,R5

ADDCA,R3

RET

双字节求补

CPL1:

CPLA

ADDA,#01H

MOVR2,A

MOVA,R3

ADDCA,#00H

MOVR3,A

乘法被乘数R7R6乘数R5R4

MULT1:

MOVA,R7

RLCA

MOV5CH,C;

被乘数符号C15CH位

JNCPOS1;

为正数则转

MOVA,R1;

为负数求补

MOVR6,A

MOVA,R7

MOVR7,A

POS1:

M

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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