太原理工课程设计陶瓷隧道窑微机温度控制系统.docx

上传人:b****3 文档编号:12638460 上传时间:2023-04-21 格式:DOCX 页数:19 大小:122.88KB
下载 相关 举报
太原理工课程设计陶瓷隧道窑微机温度控制系统.docx_第1页
第1页 / 共19页
太原理工课程设计陶瓷隧道窑微机温度控制系统.docx_第2页
第2页 / 共19页
太原理工课程设计陶瓷隧道窑微机温度控制系统.docx_第3页
第3页 / 共19页
太原理工课程设计陶瓷隧道窑微机温度控制系统.docx_第4页
第4页 / 共19页
太原理工课程设计陶瓷隧道窑微机温度控制系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

太原理工课程设计陶瓷隧道窑微机温度控制系统.docx

《太原理工课程设计陶瓷隧道窑微机温度控制系统.docx》由会员分享,可在线阅读,更多相关《太原理工课程设计陶瓷隧道窑微机温度控制系统.docx(19页珍藏版)》请在冰豆网上搜索。

太原理工课程设计陶瓷隧道窑微机温度控制系统.docx

太原理工课程设计陶瓷隧道窑微机温度控制系统

陶瓷隧道窑微机温度控制系统

摘要

目前我国陶瓷隧道窑炉大多采用人工或简单仪表控制,要想使窑炉长期达到最佳工作状态是不可能的,造成产品合格率、一级品率一直处于较低的水平。

陶瓷隧道窑炉是由预热带、烧成带和冷却带三个部分组成,瓷件烧成温度在1320℃左右,窑内温度场主要由烧成带12对喷嘴燃冷煤气产生,窑炉系统用8组风机来调节窑内的压力场。

排烟风、助燃风将直接影响烧成带的温度场,急冷风会影响最终产品的质量。

温度控制系统将采集的各点温度值,经A/D转换后与设定值进行比较,控制器输出经由D/A变换,变成4~20mA形式模拟量输出给电动执行器,驱动蝶形阀调节喷嘴的煤气进给量,从而控制烧成带的温度。

12只温度传感器与12个喷嘴一一对应。

关键词:

MSP430F149单片机、热电偶,变送器、大林算法、I2C总线、多路开关

 

.

 

一.总体方案设计

1.对象的工艺过程

陶瓷隧道窑炉是由预热带、烧成带和冷却带三个部分组成,瓷件烧成温度在1320℃左右,窑内温度场主要由烧成带12对喷嘴燃冷煤气产生,窑炉系统用8组风机来调节窑内的压力场。

排烟风、助燃风将直接影响烧成带的温度场,急冷风会影响最终产品的质量。

温度控制系统将采集的各点温度值,经A/D转换后与设定值进行比较,控制器输出经由D/A变换,变成4~20mA形式模拟量输出给电动执行器,驱动蝶形阀调节喷嘴的煤气进给量,从而控制烧成带的温度。

12只温度传感器与12个喷嘴一一对应。

窑温控制示意图

2.对象分析

被控过程传递函数

是一个大的延迟环节,而且温度的控制对系统的输出超调量有严格的限制,用最少拍无纹波数字控制器的设计,和PID算法效果欠佳,所以本设计采用大林算法设计数字控制器。

3.控制系统设计要求

窑温控制在1320±10℃范围内。

微机自动调节:

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

模拟手动操作:

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

微机监控功能:

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

二、硬件的设计和实现

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

本系统控制的回路12个,所以只需要一片微控制器即可实现,本设计采用TI公司的MSP430系列单片机,MSP430系列是一个16位的、具有精简指令集的、超低功耗的混合型单片机,有较高的处理速度,在8MHz晶体驱动下指令周期为125ns。

这些特点保证了可编制出高效率的源程序。

采用的是1.8~3.6V电压。

MSP430系列单片机的各成员都集成了较丰富的片内外设。

它们分别是看门狗(WDT)、模拟比较器A、定时器A(Timer_A)、定时器B(Timer_B)、串口0、1(USART0、1)、硬件乘法器、液晶驱动器、10位/12位ADC、I2C总线直接数据存取(DMA)、端口O(P0)、端口1~6(P1~P6)、基本定时器(BasicTimer)等的一些外围模块的不同组合。

16位定时器(Timer_A和Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、PWM等;具有较多的I/O端口,最多达6*8条I/O口线;P0、P1、P2端口能够接收外部上升沿或下降沿的中断输入;A/D转换器有较高的转换速率,最高可达200kbps,能够满足大多数数据采集应用;硬件I2C串行总线接口实现存储器串行扩展;

2.设计支持计算机工作的外围电路(EPROM、RAM、键盘、显示、通信端口等)

本设计采用MSP149作为主控芯片,内有2K的RAM和60K的FLASH在程序运行中已经足够了不需扩展RAM了,扩展一片AT24C128(EPROM)以保存一些断电时的RAM的值和一些报警信息值以便查询,AT24C128采用I2C总线进行传

输数据方便且占用端口少,可用MSP149的I/O端口的一位即可实现。

键盘采用非编码键盘,设计5个按键,其中一个+键,一个-键,用于设定数据时的数据值

的加和减,一个菜单键按一下进入设定模式,用+键-键查找需要设定的模式选项(模式有设定手自动控制,设定报警限度,),还有一个确定键,确定键按下后系统将按照设定值运行,和一个显示切换按键,以显示不同组的温度值。

显示部分采用数码管显示,采用两片4级联的共阳极数码管实现,用以显示温度值,通信端口采用单片机内部的串行异步通信模块用RS485标准通信,实现下位机到上位机的通信,以使数据传入计算机,通过计算机可实现联网,从而实现远程监控。

3.设计输入输出通道(温度测量、控制输出电路等);

陶瓷隧道窑炉中温度通过热电偶传感器变换为微弱电压信号再经变送器转换为1-5v电压信号,送单片机A/D转换器,单片机msp430f149内部有一个带有采样保持器8通道的12位A/D转换器,由于本设计中有12个通道的值要送A/D转换,所以需外接多路开关,多路开关选用16通道的CD4067,分时地将12组模拟量送A/D转换器,实现数据的采集,输出通道有12组输出,单片机数据处理后送出数字量经D/A转换器DAC8830芯片,转换为模拟量再经过16通道的CD4067多路分配器输出经变送器变为4-20mA标准信号再通过电动调节阀来控制阀位的开度,以达到控制温度的目的。

4.所选用传感器、变送器及执行器的类型、型号及量程范围

4.1传感器部分

采用标准化把B型热电偶铂铑30--铂铑6测量温度。

该元件长期最高使用温度为1600℃,短期使用最高温度为1800℃。

具有准确度高,稳定性好,测温范围宽,使用权用寿命长等优点,适用于氧化性和惰性气氛中,也可短期用于真空中,但不适用于还原性气氛或含有金属或非金属蒸气中。

能用做工业测温元件,且此元件线形较好。

等级3,允许偏差±0.5%*t,符合控制精度的要求,同时也满足长期测量1310℃-1330℃的要求。

4.2变送器部分

由于热电偶输出毫伏信号所以需要变送器将其转换为1-5v标准电压信号送A/D进行转化,本设计选用产品型号为:

XPZX温度变送器主要特点:

1.二线制传送。

信号转换器供电的两根导线同时也传送输出信号。

2.输出恒流信号(4~20mA)。

抗干扰能力强、远传性能好。

3.信号转换器用环氧树脂封装成模块,具有抗震动、耐腐蚀、防潮湿等优点,可用于条件较差的场所。

4.热电偶的毫伏信号经信号转换器直接转换成4~20mA电流输出、用普通电缆线传送信号,可省去价格昂贵的补偿导线。

5.带现场显示的温度变送器既输出4~20mA的电流信号,又能在测温现场读到实测温度,给操作人员带来很大方便。

供电电压:

13~30V,DC负载电阻:

0~850Ω,输出信号:

4~20mA,基本误差:

±0.2%,±0.5%

当负载电阻为250欧姆时输出1-5伏电压信号

4.3电动调节阀

选用3610系列电子式电动调节阀其主要特点:

1.伺服控制器和执行器合二为一,集机电于一体,控制精度高,可构成高品质的调节系统。

2.伺服控制器功能多,高度集成化,可靠性高,操作简便。

3.具有选择功能:

控制信号:

DCO~10mA/DC4~20mA.动作方向:

正作用/反作用。

4.位置检测采用高可靠性器件,并有间隙补偿装置,通过发送器可输出DCO-10MA、DC4-20MA阀位信号。

具有自诊断及处理和指示功能。

5.具有状态设定功能,断信号后自动进入设定状态(开启、保持原位、关闭)。

6.在运行过程中,遇到断电,具有自锁功能,保持其原位。

7.行程零位及满位、死区、反馈零位及满位调整方便。

型号

量程范围

传感器

铂铑30--铂铑6

温度0-1800℃

变送器

XPZX变送器

输出4mA~20mA

执行器

3610系列

输入4mA~20mA

三.数字控制器的设计

被控过程传递函数:

是一个大的延迟环节,而且温度的控制对系统的输出超调量有严格的限制,用最少拍无纹波数字控制器的设计,和PID算法效果欠佳,所以本设计采用大林算法设计数字控制器。

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

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

由于三阶大林算法太复杂,而且实际生产中的传递函数也不一定是三阶,所以本设计将传递函数简化为一阶惯性环节,取T=10s,N=4

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

系统闭环传递函数

数字控制器:

由于选取系统时间常数大于被控对象的时间常数所以不会产生振铃现象。

离散后数字控制器为:

其中:

K1=

K2=

最终得:

U(K)=0.128e(K)—0.086e(K—1)+0.905U(K—1)+0.095U(K—5)

四.软件的设计

1.系统程序框图

2.数字调节器软件模块

floatDalin(floatM,floatR)

{

inti;

floatu;//用于返回输出值

floate[2]={0};//定义数组用于存放偏差e(k)和输出u(k)

floatu[5]={0};

e[0]=R-M;//本次偏差

u[0]=0.128e[0]-0.086e[1]+0.905u[1]+0.0095u[4];

u=u[0];

e[1]=e[0];

for(i=0;i<4;i++)//将最后面的输出赋以新值

{

u[i+1]=u[i];

}

return(u)//返回控制量

}

3.A/D及D/A转换器处理程序模块

A/D转换程序:

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//关闭WDT

ADC12CTL0=SHT0_2+ADC12ON;//设置采样时间,打开ADC12

ADC12CTL1=SHP;//使能采样保持器

ADC12IE=0x01;//中断使能

ADC12CTL0|=ENC;//转换使能

P6SEL|=0x01;//P6.0ADC作为输入通道t

P3DIR|=0x02;//P3.1设为输出

for(;;)

{

ADC12CTL0|=ADC12SC;//采集开始

_BIS_SR(CPUOFF+GIE);//进入低功耗,等待转化完毕

}

}

i#pragmavector=ADC_VECTOR//ADC12中断处理程序

__interruptvoidADC12_ISR(void)

{

P3OUT|=ADC12MEM0;//P3.1输出转换值

}

D/A转换程序:

voidconvert(intnValue)

{

unsignedcharhi_byte;

unsignedcharlo_byte;//取出高字节

hi_byte=(char)(nValue>>8);//取出低字节

lo_byte=(char)(nValue&0x0ff);//选通DAC8830

CS_Enable();//等待传输完成

while((IFG1&UTXIFG0)==0);//发送数据

U0TXBUF=lo_byte;//等待传输完成

while((IFG1&UTXIFG0)==0);//发送数据

U0TXBUF=hi_byte;//不选通DAC8830

CS_Disable();

return;

}

4.数字滤波程序模块

由于温度量变化缓慢所以采用中值滤波效果较好下面为中值滤波程序N值可根据实际情况调整,排序采用冒泡法

#defineN11

charfilter()

{

charvalue_buf[N];

charcount,i,j,temp;

for(count=0;count

{

value_buf[count]=get_ad();

delay();

}

for(j=0;j

{

for(i=0;i

{

if(value_buf[i]>value_buf[i+1])

{

temp=value_buf[i];

value_buf[i]=value_buf[i+1];

value_buf[i+1]=temp;

}

}

}

returnvalue_buf[(N-1)/2];

}

5.输出控制程序模块

voidDataOut(unsignedcharnValue)

{

inti;

intj;

for(i=0;i<8;i++)

{

if((nValue&0x01)==1)

{

P1OUT|=BIT0;//输出高电平

}

else

{

P1OUT&=~(BIT0);//输出低电平

}

SHCLK_Hi();//时钟高电平,上升沿有效

for(j=10;j>0;j--);//延迟一点时间

SHCLK_Lo();//时钟低电平

for(j=10;j>0;j--);

nValue>>=1;

}

return;

}

voidmain(void)

{

unsignedcharnValue;//初始化时钟

Init_CLK();//端口初始化

Init_Port();//清除锁存信号

STCLK_Lo()//输出0

nValue=0;

DataOut(seg[nValue]);//输出2

nValue=2;

DataOut(seg[nValue]);//显示上面的8位数据

STCLK_Hi();

return;

}

6.按键程序模块程序:

unsignedcharkey(void)

{

unsignedcharx=0xff;

P1DIR=0X0F;

P1OUT=0X01;//扫描第一行

if((P1IN&0X70)==0X10)

x=0;

else

if((P1IN&0X70)==0X20)

x=1;

else

if((P1IN&0X70)==0x40)

x=2;

else

{

P1OUT=0X2;//扫描第二行

if((P1IN&0X70)==0X10)

x=3;

else

if((P1IN&0X70)==0X20)

x=4;

else

if((P1IN&0X70)==0x40)

x=5;

else

{

P1OUT=0X4;//扫描第三行

if((P1IN&0X70)==0X10)

x=6;

else

if((P1IN&0X70)==0X20)

x=7;

else

if((P1IN&0X70)==0x40)

x=8;

else

{P1OUT=8;//扫描第四行

if((P1IN&0X70)==0X10)

x=9;

else

if((P1IN&0X70)==0X20)

x=10;

else

if((P1IN&0X70)==0x40)

x=11;

}

}

}

return(x);

}

7.报警程序模块程序:

voidalarm()

{

P3DIR=0X0F;

if(out>outmax)

{

P3OUT=0X7F;//高于上限值时p3.7输出低电平

out=0;//同时将输出置0

}

if(out

{

P3OUT=0Xbf;/低于下限值时p3.6输出低电平

}

}

8.I2C模块程序:

bitshout(ucharwrite_data)//从MCU移出数据到AT24C128

{

uchari;

bitack_bit;

for(i=0;i<8;i++)//循环移入8个位

{

SDA=(bit)(write_data&0x80);

_nop_();

SCL=1;

delayNOP();

SCL=0;

write_data<<=1;

}

SDA=1;//读取应答

delayNOP();

SCL=1;

delayNOP();

ack_bit=SDA;

SCL=0;

returnack_bit;//返回AT24C128应答位

}

五.总结

设计过程中,首先要熟悉系统的工艺,进行对象的分析,按照要求确定方案。

然后要进行硬件和软件的设计,调试。

通过课程设计,掌握了计算机控制系统的基本分析方法和设计方法,模拟量输入/输出通道的设计,常用控制程序的设计方法,数字滤波,以及数字控制器的设计方法。

设计过程中,采用TI公司的低功耗MSP430系列单片机,对单片机知识加深了理解,基本掌握了工业控制系统的软硬件设计过程、方法与实现,为以后设计和实现工控系统打下了良好的基础。

本次课程设计是一个综合知识的运用,使我将以前学过的知识联系了起来,总之,让我学到了很多东西,收获颇多,感受也颇多,作用重大。

六.参考文献

1.潘新民、王燕芳编著.微型计算机控制技术.高等教育出版社,2001

2.徐科军、李晓林等编著.传感器与检测技术.电子工业出版社,2007

3.谢克明、王柏林编著.自动控制原理.电子工业出版社,2005

4.沈建华、杨艳琴编著.MSP430系列16位超低功耗单片机原理与应用.清华大学出版社,2004

5.琴龙编著.MSP430单片机C语言应用程序设计实例精讲.电子工业出版社,2006

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

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

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

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