电阻炉温度控制系统.docx

上传人:b****6 文档编号:8814009 上传时间:2023-02-01 格式:DOCX 页数:25 大小:209.85KB
下载 相关 举报
电阻炉温度控制系统.docx_第1页
第1页 / 共25页
电阻炉温度控制系统.docx_第2页
第2页 / 共25页
电阻炉温度控制系统.docx_第3页
第3页 / 共25页
电阻炉温度控制系统.docx_第4页
第4页 / 共25页
电阻炉温度控制系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

电阻炉温度控制系统.docx

《电阻炉温度控制系统.docx》由会员分享,可在线阅读,更多相关《电阻炉温度控制系统.docx(25页珍藏版)》请在冰豆网上搜索。

电阻炉温度控制系统.docx

电阻炉温度控制系统

目录

摘要2

温度控制系统设计3

1设计任务及分析3

1.1设计任务和要求3

1.2系统的分析3

2方案比较及论证4

3控制算法6

3.1PID控制算法6

3.2积分分离PID控制算法7

4系统硬件设计8

4.1ADC0809芯片8

4.2DAC0832芯片9

4.3AT89C51单片机11

4.4系统滤波原理12

5系统仿真13

5.1simulink仿真13

5.2kp改变对系统的影响14

5.3调试分析15

6心得与体会16

参考文献17

附录118

附录226

 

摘要

随着科学技术的迅猛发展,各个领域对温度控制系统的精度、稳定性等要求越来越高,控制系统也千变万化,温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。

对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。

采用单片机进行炉温控制,可大大地提高控制质量和自动化水平,具有良好的经济效益和推广价值。

本文主要介绍了利用AT89C51为主控制电路实现的炉温调节控制系统,详细阐述了系统的功能,硬件组成以及软件设计,利用热电偶采集温度信号经A/D转换器转化后与给定信号送入微机系统,系统分析控制算法,信号再经D/A转换后控制调节可控硅控制器来改变炉内的温度。

关键字:

温度控制自动化单片机转换器

 

温度控制系统设计

1设计任务及分析

1.1设计任务和要求

被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。

可控硅控制器输入为0~5伏时对应电炉温度0-300℃,温度传感器测量值对应也为0~5伏,对象的特性为积分加惯性系统,惯性时间常数为T1=40秒。

要求完成的主要任务:

1)设计温度控制系统的计算机硬件系统,画出框图;

2)编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及β的值;

3)计算机仿真被控对象,编写仿真程序;

4)通过数据分析Kp改变时对系统超调量的影响。

5)撰写设计说明书。

1.2系统的分析

该系统利用单片机可以方便地实现对PID参数的选择与设定,实现工业过程中PID控制。

它采用温度传感器热电偶将检测到的实际炉温进行A/D转换,再送入计算机中,与设定值进行比较,得出偏差。

对此偏差按PID规律进行调整,得出对应的控制量来控制驱动电路,调节电炉的加热功率,从而实现对炉温的控制。

利用单片机实现温度智能控制,能自动完成数据采集、处理、转换、并进行PID控制和键盘终端处理(各参数数值的修正)及显示。

在设计中应该注意,采样周期不能太短,否则会使调节过程过于频繁,这样,不但执行机构不能反应,而且计算机的利用率也大为降低;采样周期不能太长,否则会使干扰无法及时消除,使调节品质下降。

2方案比较及论证

用温度传感器来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度变送器放大并转换成电流信号。

由电阻网络讲电流信号变成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值之间的偏差,并与β进行比较,从而确定算法。

计算得到的控制量输出给可控硅控制器,改变可控硅的导通角,达到调压的目的,是电阻丝两端的电压增大或较小,进而实现对炉温的控制。

方案一:

热电偶温度自动控制系统。

方案二:

数字温度传感器温度控制系统。

这两个方案都是采用单片机控制,两个方案的比较部分为温度检测部分。

方案一温度检测部分检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换和D/A转换器接口,若采用8位A/D转换器,ADC0809则输人端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。

由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。

这种系统具有测量温度范围可以从零下一XX到早上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。

但构成系统复杂,抗干扰能力不强。

方案二采用数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。

它具有直接输出数字信号和数据处理,并且它和单片机接口只需要一位I/O口,因此由它构成的系统简单使用,由于DS18B20,按照工业设计要求设计,抗干扰性能强。

但温度测量范围从-55℃—125℃。

根据设计要求,综合考虑选择方案一。

主要的控制芯片采用AT89C51,要求传感器测量的电压范围和可控硅控制器的电压在0-5℃,所以A/D与D/A转换芯片采用ADC0809和DAC0832。

炉温控制在0-300℃内,因此采用镍铬-铜镍热电偶,同时选用运算放大器将信号放大。

在系统中,利用热电偶测得电阻炉实际温度并转换成毫伏级电压信号。

该电压信号经过温度检测电路转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过液晶显示器显示温度,同时将温度与设定温度比较,根据设定计算出控制量,根据控制量通过控制继电器的导通和关闭从而控制电阻丝的导通时间,以实现对炉温的控制。

由以上分析控制过程,可以得到如图1的设计框图,程序流程图如图2所示。

 

图1系统结构框图

 

 

图2系统程序流程图

4.1ADC0809芯片

A/D转换器是将模拟电压或电流转换成数字量的期间或装置,它是一种模拟系统和计算机之间的接口,它在数据采集和控制系统中,得到了广泛的应用,常用的A/D转换器有ADC0809。

它是一种带有8通道模拟开关的8位逐次逼近式A/D转换器,转换时间为100us左右,线性误差为±1/2LSB,采用28脚双立直插式封装,ADC0809由8通道模拟开关、通道选择逻辑、8位A/D转换器及三态输出锁存缓冲器组成。

1)8通道模拟开关及通道选择逻辑

该部分的功能是实现8选1操作,通道选择信号C、B、A与所选通道的关系如表1。

表1选择逻辑功能

C

B

A

输出

0

0

0

Vin0

0

0

1

Vin1

...

...

...

...

1

1

1

Vin7

地址锁存允许信号(ALE、正脉冲)用于通道选择信号C、B、A的锁存。

加至C、B、A上的通道选择信号在ALE的作用下送入通道选择逻辑后,通道i上的模拟输入被送至A/D转换器转换。

2)8位A/D转换器

图3ADC0809引脚图

为模拟信号的8个输入通道。

为基准电压的正极和负极。

为模拟信号输入通道的地址选择线。

为地址锁存信号,由低电平到高电平正跳变时讲地址选择线的状态锁存,一选通相应的输入通道。

为启动信号,正脉冲的上升沿使内部寄存器清零,从下降沿开始进行A/D转换。

为转换结束信号,在

信号之后变低,转换结束为高电平,用来申请中断。

为输出允许信号,有效时将输出寄存器中的数据放到数据总线上。

为数码输出端,

为最低有效位,

为最高有效位。

4.2DAC0832芯片

D/A转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。

常用D/A转换器为DAC0832芯片。

DAC0832工作在单缓冲寄存器方式,即当

信号来时,

数据线送来的数据直通进行D/A转换,当

变高时,则此数据便被锁存在寄存器中,因此D/A转换的输出也保持不变。

DAC0832将输入的数字量转换成差动的电流输出(

),为了将其编程电压输出,必须经过运算放大器,使其输出0~5V(

为-5V)或0~10V(

为-10V),若要形成负电压输出,则

需接正的基准电压。

DAC0832是双列直插式8位D/A转换器。

能完成数字量输入到模拟量(电流)输出的转换。

图4为DAC0832的引脚图。

其主要参数如下:

分辨率为8位,转换时间为1μs,满量程误差为±1LSB,参考电压为(+10/span>-10)V,供电电源为(+5~+15)V,逻辑电平输入

与TTL兼容。

在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号

 

图4DAC0832引脚图

当ILE为高电平,片选信号

和写信号

为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。

此后,当

由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。

对第二级锁存来说,传送控制信号

和写信号

同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当

由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。

其余各引脚的功能定义如下:

8位的数据输入端,DI7为最高位。

模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。

模拟电流输出端2,IOUT2与IOUT1的和为一个常数。

反馈电阻引出端,DAC0832内部已有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。

参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为

VREF端与D/A内部T形电阻网络相连。

芯片供电电压,范围为

模拟量地/数字量地,即模拟/数字电路接地端。

4.3AT89C51单片机

AT89C51提供以下的功能标准:

4K字节闪烁存储器,128字节随机存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。

另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。

8951单片机的内部结构十分复杂,但封装之后,只有引脚是面向用户的,所以使用者需要熟悉各引脚的用途。

常用的8951芯片是用双列直插40脚封装。

图5AT89C51引脚图

供电电压。

  

接地。

  

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并作为输入时,P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。

  

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,可用作对外部输出的脉冲或用于定时目的。

 

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次

有效。

但在访问外部数据存储器时,这两次有效的

信号将不出现。

  

保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,

将内部锁定为RESET;当

端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  

反向振荡放大器的输入及内部时钟工作电路的输入。

  

来自反向振荡器的输出。

  

 

6心得与体会

经过了一个学期的计算机控制技术的学习,但是除了实验外并没有多少实际设计的机会,课程设计与理论课程和实验有着很大的区别,它是一个综合性很强的课程环节,也是我们所必须经历的一个学习阶段。

在课程设计中,我们在学会学会理论知识的同时,还会加深自己对这门课程的理解,在这门课程设计当中,能学到一些软件的运用,结合一些其他课程,如matlab等软件,通过互相结合,相互渗透,来得到我们所需的数据、结论以及使我们掌握更多的知识。

在此次课程设计中,很多东西以前都没有实际了解到,比如芯片ADC0809,现在经过课设,通过查阅资料,我拓宽了自己的知识面,在课设中学会了独立思考和锻炼了自己的实践动手能力。

这次电力电子课程设计过程中,我参考了很多资料,发现自己现在学到的只是很小的一部分,在设计上有一定的难度。

就我设计的题目而言,平时在书上介绍的只是一些原理,并没有实际的运用与操作,具体要怎么设计一个完整的架构就需要我们对现有和过去学的知识有一个大概的了解。

通过课程设计的学习工作,使我接触了很多新的知识,比如相关软件的拓展,也让我对这门课有了更深的了解,培养了我们求真务实的态度。

 

参考文献

[1]于海生.计算机控制原理.北京:

机械工业出版社,2007

[2]潘新民.王燕芳.微型计算机控制技术.北京:

高等教育出版社,2001

[3]何立民.单片机应用系统设计.北京:

北京航空航天大学出版社,2000

[4]韩志军,沈晋源,王振波.单片机应用系统设计.北京:

机械工业出版社,2005

[5]周航慈.单片机程序设计基础.北京:

北京航空航天大学出版社,2000

 

附录1

START:

MOV68H,KP;分别将KP,TI,TD,T,β送入指定的存储单元

MOV54H,TI

MOV55H,TD

MOV56H,T

MOV57H,β

MOVA,68H;计算KI=KP*T/TI

MOVB,56H

MULAB

MOVB,54H

DIVAB

MOV69H,A

MOVA,68H;计算KD=KP*TD/T

MOVB,55H

MULAB

MOVB,56H

DIVAB

MOV6AH,A

LOOP0:

MOVDPTR#7FF0H;读取预定温度值,送ADC0809的IN0口地址

MOV@DPTR,A;启动A/D转换

LOOP1JBP3.3,LOOP1;等待转换数据

MOVXA,@DPTR;读取ADC0809的IN0口转换后的数据

MOV5CH,A;将预定值数据放入指定的存储单元

MOVDPTR,#7FF1H;读取采样温度值,送ADC0809的IN1口地址

MOVX@DPTR,A;启动A/D转换

LOOP2:

JBP3.3,LOOP2;等待转换数据

MOVXA,@DPTR;读取ADC0809的IN1口转换后的数据

MOV49H,A;将采样值数据放入指定的存储单元

MOVA,5CH;计算ei,先取温度给定值

CLRC

SUBBA,50H;温度给定值-采样值

JNCAA0;判断ei的正负,如果为正,跳至AA0

CPLA;ei为负,下两条指令求补

ADDA,#01H

AA0:

MOVR0,57H

SUBBA,57H;|ei|-β

JNCAA1;|ei|>β跳至AA1

SJMPAA2;|ei|<β跳至AA2

AA1:

LCALLPD;调用PD算法

AA2:

LCALLPID;调用PID算法

MOVA,7CH;将△Ui通过DAC0832输出

MOVDPTR,#7FF2H

MOVX@DPTR,A

INCDPTR

MOVX@DPTR,A

LCALLDELAY;调用延时子程序,等待下一次采样计算

SJMPLOOP0;进入下一次控制计算

DELAYPROCNEAR

DL0:

MOVR6,#FFH

DL1:

MOVR7,#FFH

DL2:

MOVR5,#FFH

DLS:

DJNZR5,DLS

DJNZR7,DL2

DJNZR6DL1

RET

DELAYENDP

PIDPROCNEAR

PID:

MOVA,5CH;计算ei,先取温度给定值

CLRC

SUBBA,50H;温度给定值-温度检测值

JNCPID1;判断ei正负,如果为正,跳至PID1

CPLA;ei为负,下两条指令求补

ADDA,#01H

SETB30H;ei为负,符号位置1

SJMPPID2

PID1:

CLR30H;ei为正,符号位置0

PID2:

MOV6BH,A;ei值存放在6BH单位元中

MOVR1,6BH;计算ei-ei-1,先将ei值,送R1

MOVC,30H;将ei的符号位值送20H位

MOV20H,C

MOVR2,6CH;将ei-1值送R2

MOVC,31H;将ei-1的符号位值送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV6EH,R3;将差值ei-ei-1送6EH单元

MOVC,22H;将差值ei-ei-1的符号位送33H位

MOV33H,C

MOVR1,6CH;计算ei-1-ei-2,先将ei-1值送R1

MOVC,31H;将ei-1符号位送20H位

MOV20H,C

MOVR2,6DH;将ei-2的值送R2

MOVC,32H;将ei-2的符号位值送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV6FH,R3;将差值ei-1-ei-2送6FH单元

MOVC,22H;将差值ei-1-ei-2的符号位送34H位

MOV34H,C

MOVR1,6EH;计算(ei-ei-1)-(ei-1-ei-2),将ei-ei-1值送R1

MOVC,33H;将ei-ei-1符号位送20H位

MOV20H,C

MOVR2,6FH;将ei-1-ei-2值送R2

MOVC,34H;将ei-1-ei-2符号位送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV70H,R3;将差值(ei-ei-1)-(ei-1-ei-2)送70H单元

MOVC,22H;将差值(ei-ei-1)-(ei-1-ei-2)的符号位值送35H位

MOV35H,C

MOVA,68H;计算Kp*(ei-ei-1),将Kp值送A

MOVB,6EH;将ei-ei-1值送B

MULAB;两数相乘

MOV71H,B;Kp*(ei-ei-1)值存71H,72H单元

MOV72H.A

MOVA,69H;计算KI*ei,将KI值送A

MOVB,6BH;将ei值送B

MULAB;两数相乘

MOV73H,B;KI*ei值存73H,74H单元

MOV74H,A

MOVA,6AH;计算KD*[(ei-ei-1)-(ei-1-ei-2)],将KD送A

MOVB,70H;将(ei-ei-1)-(ei-1-ei-2)值送B

MULAB;两数相乘

MOV75H,B;KD*[(ei-ei-1)-(ei-1-ei-2)]值存75H,76H单元

MOV76H,A

MOVR1,71H;计算Kp*(ei-ei-1)+KI*ei,将Kp*(ei-ei-1)值送R1,R2

MOVR2,72H

MOVC,33H;将Kp*(ei-ei-1)的符号位值送23H位

MOV23H,C

MOVR3,73H;将KI*ei值送R3,R4

MOVR4,74H

MOVC,30H;将KI*ei值的符号位懂24H位

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

MOV77H,R5;将Kp*(ei-ei-1)+KI*ei值送77H,78H

MOV78H,R6

MOVC,25H;将Kp*(ei-ei-1)+KI*ei值的符号位送36H位

MOV36H,C

MOVR1,77H;计算△Ui,将将Kp*(ei-ei-1)+KI*ei值送R1,R2

MOVR2,78H

MOVC,36H;将Kp*(ei-ei-1)+KI*ei值的符号位送23H位

MOV23H,C

MOVR3,75H;将KD*[(ei-ei-1)-(ei-1-ei-2)]的值送R3,R4

MOVR4,76H

MOVC,35H;将KD*[(ei-ei-1)-(ei-1-ei-2)]的符号位送23H位

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

MOV79H,R5;将△Ui值送79H,7AH

MOV7AH,R6

MOVC,25H;将△Ui值的符号位送37H

MOV37H,C

MOVR1,7DH;计算Ui,将Ui-1值送R1,R2

MOVR2,7EH

CLR23H;Ui-1值的符号位值恒为0

MOVR3,79H;将△Ui值送R3,R4

MOVR4,7AH

MOVC,37H;将△Ui值的符号位送24H

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

JNB25H,PID3;判断计算结果是否为负

MOV7BH,#00H;如果是负数,则输出电压为0

MOV7CH,#00H

SJMPPID4

PID3:

MOV7BH,R5;否则,将计算得到的Ui值置7BH,7CH

MOV7CH,R6

PID4:

MOV6DH,6CH;数据迭代,ei-1值送ei-2存储单元

MOV6CH,6BH;ei值送ei-1存储单元

MOV7DH,7BH;Ui值送Ui-1存储单元

MOV7EH,7CH

RET

PIDENDP

PDPROCNEAR

PD:

MOVA,5CH;计算ei,先取温度给定值

CLRC

SUBBA,50

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

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

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

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