煤气退火炉控制系统设计教材.docx

上传人:b****2 文档编号:11820237 上传时间:2023-06-02 格式:DOCX 页数:20 大小:126.92KB
下载 相关 举报
煤气退火炉控制系统设计教材.docx_第1页
第1页 / 共20页
煤气退火炉控制系统设计教材.docx_第2页
第2页 / 共20页
煤气退火炉控制系统设计教材.docx_第3页
第3页 / 共20页
煤气退火炉控制系统设计教材.docx_第4页
第4页 / 共20页
煤气退火炉控制系统设计教材.docx_第5页
第5页 / 共20页
煤气退火炉控制系统设计教材.docx_第6页
第6页 / 共20页
煤气退火炉控制系统设计教材.docx_第7页
第7页 / 共20页
煤气退火炉控制系统设计教材.docx_第8页
第8页 / 共20页
煤气退火炉控制系统设计教材.docx_第9页
第9页 / 共20页
煤气退火炉控制系统设计教材.docx_第10页
第10页 / 共20页
煤气退火炉控制系统设计教材.docx_第11页
第11页 / 共20页
煤气退火炉控制系统设计教材.docx_第12页
第12页 / 共20页
煤气退火炉控制系统设计教材.docx_第13页
第13页 / 共20页
煤气退火炉控制系统设计教材.docx_第14页
第14页 / 共20页
煤气退火炉控制系统设计教材.docx_第15页
第15页 / 共20页
煤气退火炉控制系统设计教材.docx_第16页
第16页 / 共20页
煤气退火炉控制系统设计教材.docx_第17页
第17页 / 共20页
煤气退火炉控制系统设计教材.docx_第18页
第18页 / 共20页
煤气退火炉控制系统设计教材.docx_第19页
第19页 / 共20页
煤气退火炉控制系统设计教材.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

煤气退火炉控制系统设计教材.docx

《煤气退火炉控制系统设计教材.docx》由会员分享,可在线阅读,更多相关《煤气退火炉控制系统设计教材.docx(20页珍藏版)》请在冰点文库上搜索。

煤气退火炉控制系统设计教材.docx

煤气退火炉控制系统设计教材

1.设计内容...................................................................................................................................1

3.控制系统的设计.........................................................................................................................6

9.程序...............................................................................................................................................19

 

 

1.设计内容

煤气罩式退火炉主要用于对冷轧钢板进行热处理,采用高炉煤气作为燃料。

炉体分内罩和外罩,在内罩内放入退火钢卷,并投入保护性气体防止氧化。

燃烧在内罩和外罩之间进行。

12个喷嘴分为上下两层,每层6个环绕排列。

煤气和空气的喷燃比由连接两个阀门的连杆所固定,这样在燃烧时,其空燃比不变。

煤气和空气阀均为蝶阀,由一台电动执行器通过连杆共同带动。

设计系统保护气体温度为输入及控制量,以电动执行器带动的蝶阀开度(对应于煤气输入量)为输出的一个单输入单输出的温度控制系统。

设计系统要求温度在升温、保温过程中按一定的工艺曲线升温和保温,在400℃温度内,保护气体温度在供气阀门开到最大情况下,以自由升温的速率再最短的时间内升到400℃。

从400℃开始到700℃的保温点,温度按45~75℃/h的速率上升,此段为升温段。

到达700℃点,则开始进入保温段,以700℃为恒值温度进行保温。

钢卷保温一定时间后停火,进入降温段,而降温过程为自由降温,在此段中温控系统停用。

选择合适的控制算法进行控制。

2.总体方案设计

2.1.系统设计方案的提出

本设计是基于51单片机的控制及显示电路设计,从系统的设计功能上看,系统可分为五大部分,即控制部分、传感器部分、数字显示部分、电源部分和执行部分,对于每一个部分都有不同的设计方案,起初我们组拟订了下面两种方案:

1.控制部分

(1)AT89C52单片机

(2)其他

2.传感器部分

(1)(J型热电偶)铁-铜镍热电偶

(2)(T型热电偶)铜-铜镍热电偶

3.数字显示部分

(1)采用LED数码管显示,利用多个数码管来显示数字。

(2)LCD液晶屏显示。

4.电源部分:

(1)购买开关电源。

(2)自制电源。

5.执行部分

(1)用交流电机。

(2)用直流电机,采用集成芯片LM298与LM297组成驱动电路。

2.2.方案比较及确定

(1)本设计中我们采用AT89C52单片机作为主控芯片,AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS8位单片机,而且可编程性好。

(2)J型热电偶具有线性度好,热电动势较大,灵敏度较高,稳定性和均匀性较好,价格便宜等优点,广为用户所采用。

其温度范围为0~750℃,符合我们的要求。

虽然T型热电偶也具有这些优点,但是其测量温区为-200~350℃,不能满足我们的要求。

(3)若用LED数码管显示,LED数码管亮度高、小巧轻便,但是电路复杂,显示信息量较小;LCD的优点是:

工作电流较小、功耗很低,而且可以清晰显示大量信息,趣味性强。

所以选用LCD液晶显示。

(4)购买的开关电源带负载的能力比较好,比较稳定,但是为了提升自己的动手能力,我们选择自己焊接所需的电路。

(5)若用交流电机,转动速度固定,一般为水平转动速度为4°/秒~6°/秒,垂直转动速度为3°/秒~6°/秒。

其缺点是无法大电流驱动.降低了工作效率且不容易实现。

若选用集成芯片LM298驱动直流步进电机,具有转速高、可变速的优点,十分适合需要快速捕捉目标的场合。

其水平最高转速可达40~50°/秒,垂直可达10~24°/秒。

这种电路通过芯片产生正反向电压.开关速度很快.稳定性极强.效率也非常高。

基于上述考虑.我们拟选用方案二。

3.控制系统的设计

 

AT89C52单片机作为主控模块,通过传感器进行温度的采集,采集的数据经过A/D转换变成计算机能够接收的数字信号,然后在经过D/A转换将数字信号转变成模拟信号去控制执行机构(直流电机)的转动,并且电机的转动分为三个阶段:

第一阶段:

当采集到的数据在(0~400)℃范围内时,单片机就会控制直流电机转动,

而且转动的非常快。

电机转动带动阀门,从而控制阀门的开度,使温度快速升高。

第二阶段:

当采集到的数据在(400~700)℃范围内时,单片机就会控制直流电机转动,

而且转动速度减慢。

电机转动带动阀门,从而控制阀门的开度,并且使速率控制在45~75℃

/h之间,温度由400℃升温到700℃。

第三阶段:

当采集的数据达到700℃时,电机就停止转动。

同时系统整个过程都通过LCD液晶屏对温度进行实时跟踪与显示。

4.系统硬件设计

4.1.系统硬件电路设计

图2系统硬件电路图

4.2单元模块设计

根据系统要实现的功能,本系统分为五个模块:

电源模块、控制模块、执行模块、温度采集模块和显示模块。

分别将各单元模块功能介绍如下:

4.2.1.电源模块

稳压电源模块我们采用三端集成线性稳压集成块:

L7805CV芯片。

本设计中我们所需的5V电源使用L7805CV芯片完成。

因为它的外围电路比较简单,并且工作比较稳定。

它的稳压精度为2%,工作电流1.5A,封装为TO-220(A),工作温度也很不错,并且具有过温保护和短路保护,最大输入电压为35V,能对电路的长时间工作有很大的保障,故用其作为稳压芯片。

4.2.2.控制模块

本设计中我们采用AT89C52单片机作为主控芯片,AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

其引脚图如下所示:

图3引脚图

  主要功能特性:

  ·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM

  ·32个双向I/O口·256x8bit内部RAM

  ·3个16位可编程定时/计数器中断·时钟频率0-24MHz

  ·2个串行中断·可编程UART串行通道

  ·2个外部中断源·共6个中断源

  ·2个读写中断口线·3级加密位

  ·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能

4.2.3.执行模块

  执行机构我们采用直流电机作为被控对象,直流电机是电机的主要类型之一。

一台直流电机即可作为发电机使用,也可作为电动机使用,用作直流发电机可以得到直流电源,而作为直流电动机,由于直流电机的启动性能好,具有良好的调速性能,运行稳定;直流电动机的调速范围宽广,调速特性平滑,而且直流电动机的过载能力较强,热动和制动转矩较大。

在许多调速性能要求较高的场合,仍得到广泛使用。

尤其是在调速性能要求较高的大型设备,比如轧钢机上都采用直流电动机拖动。

在本实验中直流电机的作用是:

根据电动机转动的快慢来反映煤气退火炉温度上升的快慢。

在0℃~400℃时,电动机快速转动打开供气阀门快速供气,使火炉在最短的时间内快速升温到400℃;从400℃~700℃为火炉的保温点,此时直流电机的转速将慢慢降低;当温度上升到700℃时,阀门供气量将会下降,使火炉进入保温阶段。

这时直流电机将停止转动

4.2.4.温度采集模块

在本次实验中用到的A/D转换器是ADC0808,其原理图及控制原理如下:

(1)①模拟量输入;②A/D转换器;③数据输出

图4ADC0808的原理框图

(2)引脚介绍:

主电源输入端。

REF(+)、REF(-):

基准电源输入端,使用中REF(-)一般接地,REF(+)最大可接

,要求不高时,REF(+)接

电源。

GND:

模拟地数字地共用的接地端。

CLK:

时钟输入引脚,时钟频率范围

,典型值

,此时转换时间约为

8路模拟量单极性电压的输入引脚。

ADDA、ADDB、ADDC:

8选1模拟开关的三位通道地址输入端。

用来选择对应的输入通道,其对应关系如图9-4所示。

比如CBA=011,则选中

引脚的输入电压。

C、B、A通常与系统数据总线的

连接。

但也有与系统地址总线相连的,此种用法需小心处理端口地址的组织。

ALE:

为通道地址锁存允许选通控制端,输入上跳沿有效;它有效时,C、B、A的通道地址值才能进入通道地址锁存器,ALE下跳为低电平(无效)时,锁存器锁存进入的通道地址。

START:

启动A/D转换控制引脚,由高电平下跳为低电平时有效;即对该引脚输入正脉冲下跳沿后,ADC开始逐次比较;也可将START与ALE连接在一起使用,安排一个CPU写端口地址;正脉冲上升沿通道地址(码)被写入通道地址锁存器,下降沿启动A/D转换。

EOC:

ADC转换状态输出信号引脚;未启动转换时,EOC为高电平,启动转换后,正在逐次逼近比较期间EOC为低电平,低电平持续时间为A/D转换时间,约

(与时钟频率有关),一旦转换完毕,EOC端上跳为高电平,此信号可供CPU查询或向CPU发中断。

8位数字量输出引脚,

(MSB),

(LSB),它是三态输出数据锁存器的输出引脚,未被选通时,8个引脚对片内均为高阻断开;因此可与系统数据总线

直接相连。

OE:

数字量输出允许控制端,输入正脉冲有效;它有效时,数据输出三态门被打开,转换好的数字量各位被送到

引脚上;它无效时,

浮空(高阻隔离);显然OE端必须设置一个CPU读数据的端口地址,未访问时,必须为低电平。

(3)公式

①单极性

图5ADC0808/9芯片的引脚图

②双极性

可见此系列ADC本身是单极性转换器,也可以通过外偏置电路方法,变成双极性输入电压的A/D转换器。

4.2.5.显示模块

本系统我们采用LCD液晶显示屏进行显示。

LCD为英文LiquidCrystalDisplay的缩写,即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。

LCD占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。

在系统中,LCD主要进行温度的显示。

本设计中我们选用LCD1602进行显示,下面是1602的管脚功能说明。

图6引脚说明

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线

VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚功能如下:

表1引脚功能

引脚

符号

功能说明

1

VSS

一般接地

2

VDD

接电源(+5V)

3

V0

液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

4

RS

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5

R/W

R/W为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

6

E

E(或EN)端为使能(enable)端,下降沿使能。

7

DB0

底4位三态、双向数据总线0位(最低位)

8

DB1

底4位三态、双向数据总线1位

9

DB2

底4位三态、双向数据总线2位

10

DB3

底4位三态、双向数据总线3位

11

DB4

高4位三态、双向数据总线4位

12

DB5

高4位三态、双向数据总线5位

13

DB6

高4位三态、双向数据总线6位

14

DB7

高4位三态、双向数据总线7位(最高位)(也是busyflag)

15

BLA

背光电源正极

16

BLK

背光电源负极

4.3.元器件清单

表2器件清单

器件名称

个数

单片机

1

A/D转换器

1

D/A转换器

1

LCD1602

1

滑动变阻器

1

运算放大器

1

电流源

5

直流电动机

1

温度传感器

1

5.系统软件设计

5.1.软件流程图

图为软件流程图

7.总结

通过本次的课程设计,我受益匪浅。

不用说在其中学到的新知识是多么有价值,也不用说它拓宽了多少我的眼界,只是说它让我的能力得到的提高就已足以成为我努力付出的回报。

课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。

虽然作的还不是很完善,但还是让我收获了很多的东西,在遇见问题的时候,应从总的方面找原因,不能一味的注意小环节,小环节再对大的方向不对也是没有意义的。

同时了解了很多的硬件知识。

很多涉及到实际问题时,感到了自己的知识的不足,完全不能满足需要。

对于硬件的使用很多都时在同学的知道下才完成的。

让我对学习的方向和方法有了新的认识。

 

8.参考文献

【1】于海生计算机控制技术北京:

机械工业出版社2007.5

【2】周泽魁.控制仪表与计算机控制装置.北京:

化学工业出版社,2002.9

【3】徐科军.传感器与检测技术.北京:

电子工业出版社,2004.9

【4】谢建英.微型计算机控制系统.北京:

清华大学出版社,2004.

9程序:

9.1#include

voidLcd_WriteData(unsignedcharTempData);

voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC);

voidLcd_ReadStatus(void);

voidLcd_Init(void);//LCM初始化

unsignedcharLcd_ReadData(void);

voidDisplayString(unsignedcharX,unsignedcharY,unsignedchar*DData);

voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);

voidDelay(unsignedintdelaytime);

sbitLcd_RS=P2^0;

sbitLcd_RW=P2^1;

sbitLcd_E=P2^2;

unsignedintdianya[11]={0,50,100,150,200,250,300,350,400,450,500};//0--5V

#defineLcd_DataP0

#defineDA_DataP3

//-------------------------------------------------------------------------

sbitST=P2^5;

sbitEOC=P2^6;

sbitOE=P2^7;

sbitCLK=P2^4;

#defineADC_OUTP1

//-------------------------------------------------------------------------

unsignedcharb;

unsignedinttemp;

unsignedchartable[3];

//==================DAC转换输出控制电热丝加热功率====================

voidDAConvert(unsignedlongintVoltage)

{Voltage=255*Voltage/500;

DA_Data=Voltage;}

//-------------------------------------------------------------------------

unsignedintADC0808();

//-------------------------------------------------------------------------

voidmain(void)

{

Lcd_Init();//lcd初始化

while

(1)

{

temp=ADC0808();

//temp=100;

table[2]=temp%10;

table[1]=(temp/10)%10;

table[0]=(temp/100)%10;

DisplayString(0,1,"T:

");

DisplayOneChar(10,1,table[0]+0x30);

DisplayOneChar(11,1,table[1]+0x30);//LCD显示测量值

DisplayOneChar(12,1,table[2]+0x30);

DisplayOneChar(13,1,'C');

if(temp<=400)

DAConvert(dianya[9]);

elseif(temp>400&&temp<=700)

DAConvert(dianya[5]);

elseDAConvert(dianya[0]);

}

}

unsignedintADC0808()

{

unsignedintadc;unsignedlongintgetdata;

ST=0;OE=0;ST=1;ST=0;

while

(1)

{

CLK=~CLK;

if(EOC==1)break;

}//AD时钟脉冲

OE=1;

getdata=ADC_OUT;

OE=0;

adc=getdata*704/255;

//adc=adc;

return(adc);

}

 

voidLcd_WriteData(unsignedcharTempData)

{

Lcd_ReadStatus();

Lcd_Data=TempData;

Lcd_RS=1;

Lcd_RW=0;

Lcd_E=0;

Lcd_E=0;

Lcd_E=1;

Lcd_E=0;

}

//写指令

voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC)

{

if(BuysC)Lcd_ReadStatus();

Lcd_Data=TempData;

Lcd_RS=0;

Lcd_RW=0;

Lcd_E=0;

Lcd_E=0;

Lcd_E=1;

Lcd_E=0;

Lcd_E=0;

}

//读数据

unsignedcharLcd_ReadData(void)

{

Lcd_RS=1;

Lcd_RW=1;

Lcd_E=0;

Lcd_E=0;

Lcd_E=0;

Lcd_E=0;

Lcd_E=1;

Lcd_E=0;

return(Lcd_Data);

}

voidLcd_ReadStatus(void)

{

Delay(100);

}

voidLcd_Init(void)//LCM初始化

{

Lcd_Data=0;

Lcd_WriteCmd(0x38,0);//三次显示模式设置,不检测忙信号

Delay(6000);

Lcd_WriteCmd(0x38,0);

Delay(6000);

Lcd_WriteCmd(0x38,0);

Delay(6000);

Lcd_WriteCmd(0x38,1);//显示模式设置,开始要求每次检测忙信号

Lcd_WriteCmd(0x08,1);//关闭显示

Lcd_WriteCmd(0x01,1);//显示清屏

Lcd_WriteCmd(0x06,1);//显示光标移动设置

Lcd_WriteCmd(0x0C,1);//显示开及光标设置

}

//按指定位置显示一个字符

voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)

{

Y&=0x1;

X&=0xF;//限制X不能大于15,Y不能大于1

if(Y)X|=0x40;//当要显示第二行时地址码+0x40;

X|=0x80;//算出指令码

Lcd_WriteCmd(X,0);//这里不检测忙信号,发送地址码

Lcd_WriteData(DData);

}

//按指定位置显示一串字符

voidDisplayString(unsignedcharX,unsignedcharY,unsignedchar*DData)

{

unsignedcharListLength;

ListLength=0;

Y&=0x1;

X&=0xF;//限制X不能大于15,Y不能大于1

while(DData[ListLength]!

='\0')//若到达字串尾则退出

{

if(X<=0xF)//X坐标应小于0xF

{

DisplayOneChar(X,Y,DData[ListLength]);//显示单个字符

ListLength++;

X++;

}

}

}

voidDelay(unsignedintdelaytime)

{

while(delaytime--);

}

 

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2