计算机控制技术课程设计温控.docx
《计算机控制技术课程设计温控.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计温控.docx(19页珍藏版)》请在冰豆网上搜索。
![计算机控制技术课程设计温控.docx](https://file1.bdocx.com/fileroot1/2023-4/19/013cb435-49b5-4c2d-a5d0-389ef5203bca/013cb435-49b5-4c2d-a5d0-389ef5203bca1.gif)
计算机控制技术课程设计温控
计算机控制技术
课程设计报告
题目电加热炉计算机温度控制系统
学院(部)电子信息工程学院
专业自动化
2011年6月20日
目录
1.引言1
2.系统工作原理1
3.硬件的设计与实现2
3.1系统硬件设计2
3.2单片机最小系统2
3.3A/D转换器3
3.4LED数码管4
3.5键盘电路4
3.6晶闸管及其控制电路5
3.7炉温检测电路5
4.系统控制流程及软件设计6
4.1总体流程图6
4.2程序块流程图6
4.2.1温度控制系统主程序及流程图6
4.2.2LED数码管显示子程序及其流程图8
4.2.3A/D转换程序及流程图8
4.2.4数字控制器的设计9
4.2.5键盘控制流程图10
5.设计工作总结及心得体会12
参考文献13
1.引言
温度是工业对象中主要的被控参数之一。
为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。
工业生产过程中,用模拟控制来控制电加热炉温已经取得了较为成熟的经验,但他的控制精度较低,显示操作不方便,为此引入了计算机控制系统对温度进行数字算法控制。
由于电炉加热的时间常数相对于采样周期来说很大,所以电炉加热控制系统的动态特性可以看作一阶滞后环节来近似,在控制算法上可采用PID控制或其他纯滞后补偿算法。
本课程设计所控制的电加热炉的加热能源是热阻丝,根据控制系统要求,设计控制方案和主电路及各检测控制模块电路,然后针对温度控制要求计算电路元件所需参数,应用PID控制算法,实现温箱的闭环控制。
进而了解温度控制系统的特点及运用计算机设计控制程序实现计算机自动控制温度的方法。
2.系统工作原理
整个加热炉的温度控制系统采用典型的反馈式闭环控制,系统结构框图如图2.1所示。
炉内温度
给定值
电加热炉
执行器
数字控制器
-
温度测量与变送器
图2.1电加热炉计算机控制系统框图
数字控制器的功能采用单片机AT89c51实现,执行器的作用由可控硅实现,温度有采样与测量采用热电偶及变送器实现。
数字控制器的设计:
在温度调节系统中,由于加热炉温度的时间常数很大(相对于采样周期而言),所以其闭环调节可以用一个一阶滞后环节来近似。
可以采用直数字控制,也可以采用模糊控制和PID控制,本设计中采用PID控制,其控制系统的调节原理如图2.2所示:
e(t)
r(t)
P(k)
加热炉
m(t)
-
单片机
图2.2电加热炉计算机控制系统的调节原理
炉温控制的基本原理是:
改变可控硅的导通角即改变电热炉加热丝两端的有效电压,有效电压可在0—140V内变化。
温度传感器是通过一只热敏电阻及其放大电路组成,温度越高其输出电压越小。
外部LED灯的亮灭表示可控硅的导通与关断的占空比时间,如果炉温低于设定值则可控硅导通,系统加热,否则系统停止加热,炉温自然冷却到设定值。
3.硬件的设计与实现
3.1系统硬件设计
本系统的硬件设计主要包括:
单片机最小系统、模数转换器、温度变送器、控制键盘、LED显示数码管、光电隔离可控硅触发电路。
硬件系统框图如图3.1所示:
图3.1电加热炉计算机控制系统硬件框图
键盘
可控硅触发信号
光电隔离
0—5V
4—20mA
单片机
AT89S51
供电
可控硅电
压调整器
A/D转换器
温度变送器
1—5V
加热炉
热电偶
脉冲电平
LED显示
3.2单片机最小系统
本系统采用AT89C51单片机作为该控制系统的核心,实现对温度的采集、检测和控制。
单片机控制A/D转换器,接收由A/D转换器转换得到的二进制温度数据,并对其进行数字滤波、标度变换并与输入的参照温度相比较,得出误差,根椐PID算法求出控制温度达到期望值所需要的控制量。
通过调节高低电平输出时间,控制可控硅的接通时间,从而改变电炉的输出功率,达到调温的作用。
单片机及其接口电路图如图3.2所示:
四位数码管段选位
A/D转换器D0-D7
四位键盘接口
四位数码管位选
图3.2单片机最小系统及其外围电路接口图
3.3A/D转换器
A/D转换器在该系统中的功能是将温度变送器输出的1—5V电压信号转换为单片机能识别的二进制代码,供给单片机做进一步的处理。
电热炉的温度变化范围为室温到1000℃,将控制精度确定限定在5℃范围内,则可选择8位A/D转换器,其最小精度可以达到1000℃÷256=3.921℃<5℃,则选择ADC0808或ADC0809均可满足设计要求,这里选择ADC0809。
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成,其内部结构如图3.3所示。
ADC0809的工作过程:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
本设计中只需要用到ADC0809的一个通道即可,故将ADC0809的输入通道选通地址A、B、C均接地(即只使用输入通道IN0)。
ADC0809的工作时钟为500KHz,由于单片机的ALE能自动输出单片机时钟频率的1/6(即当单片机的时钟晶振选择12MHz时,ALE自动输出2MHz时钟信号),ADC0809的时钟信号通过对单片机ALE的输出时钟进行四分频得到,进行四分频的器件可采用集成有两个二分频器的74LS74。
单片机的PA口作ADC0809的控制口,P0口作转换结束后转换数据的接收口。
ADC0809与单片机的接口电路如图3.4所示。
图3.3ADC0809内部结构图
图3.4ADC0809与单片机接口电路
3.4LED数码管
数码管主要用以显示设定温度值与实际测量温度值。
数码管根据其连接方式可以分为共阴数码管与共阳数码管,根据其显示的段数可以分为七段数码管和八段数码管,其中八段数码管相比七段数码管要多一个小数位。
由于本设计所需用到的最大温度值为1000,故需选用4位数码,在这里选用4位共阴8段数码管作为本设计的LED显示。
四位共阴数码管的引脚图如图3.5所示,数码管与单片机的接口电路如图3.6所示。
图3.5四位共阴数码管引脚图
图3.6数码管与单片机接口电路
3.5键盘电路
停止自动控制系统
启动自动控制系统
数码位向右移位
对应数码加1
键盘主要用来完成对系统参数的设置和启动及停止计算机自动控制系统。
本系统主要采用四位独立键盘完成上述控制功能。
键盘电路如图3.7所示,其中,S1、S2对预温度进行设置,S2为数码管移位选择按扭,被选中的数位小数点被点亮,此时再按S1,可以使被选中位从0—9依次循环,循环到所需要值的时候,再按S2移到下一位,依次设置完4位数码管组成的预设温度值。
S3、S4分别为启动和停止计算机自动控制系统,当S3有按下信号时,单片机开始对系统进行自动调节控制,当S4有输入信号时,退出自动控制。
图3.7键盘电路
3.6晶闸管及其控制电路
晶闸管属于半控器件,当在基极输入电流触发信号满足其导通电流强度时,晶闸管即导通,且导通后触发信号将失去作用。
要使晶闸管关断,第一可以不断减小电源电压或是加大回路电阻,使阳极电流Ia低于维持电流IH之下,晶闸管即可恢复关断;第二可以给晶闸管施加反电压,使晶闸管自行关断。
本系统中晶闸管的关断方式采用第二种,由于我们生活所用的交流电是频率为50Hz的正弦交变电压,系统所要求晶闸管控制电压有效值在0—140V内变化,故采用如图3.8所示的电路接线方式。
当电源电压处于正弦变化的正半周的时修,通过调节晶闸管的导通角,即可改变电阻两端的电压有效值,当电源电压处于正弦负半周的时候,加在晶闸管两端的反电压使晶闸管自动关断。
由于触发晶闸管导通的电流信号是模拟信号,故需要采取隔离措施,使数字控制电路与模拟负载电路隔离开,防止模拟信号串入数字电路造成误动作或损坏数字电路。
这里采用的隔离措施是使用光电隔离器4N25,当P1.7输出高电平时,经7404反向为低电平,发光二极管发光触发模拟电路部分导通,晶闸管IRF640得到触发信号从而导通。
根据单片机发出脉冲的间隔时间不同,即可改变晶闸管的导通角,从而起到调压的作用。
图3.8晶闸管及其控制电路
3.7炉温检测电路
电炉的温度先由热电偶温度传感器检测并转换成微弱的电压信号,温度变送器将此弱信号进行非线性校正及电压放大后,送至A/D转换器转换为数字量,此数字量经过单片机数字滤波误差校正及查表等处理后,得到电炉内的实测温度值。
温度检测原理结构如图3.9所示:
ADC0809
变送器
热电偶
图3.9温度检测原理图
4.系统控制流程及软件设计
4.1总体流程图
单闭环电加热炉温度计算机控制系统总体流程如图4.1所示
图4.1程序总体流程图
相等
不相等
结束
控制可控硅导通
智能算法程序
求出输出控制量
与给定值相比较
送LED显示
非线性转换
数字滤波
启动A/D转换器
键盘输入给定温度值
系统初始化
开始
4.2程序块流程图
4.2.1温度控制系统主程序及流程图
主程序主要进行初始化,定义I/O端口及定时器参数,调用子程序以便为系统正常工作创造条件。
主程序如下,主程序流程序如图4.2.1所示:
主程序
#include
键入预设温度
#include
/*.....定义四位数码管的位选脚.....*/
调用:
启动A/D转换
sbitw1=P3^0;
sbitw2=P3^1;
调用:
显示转换温度
sbitw3=P3^2;
sbitw4=P3^3;
调用:
PID计算控制输出
/*.....定义AD转换器的启动引脚.....*/
sbitST=P1^1;
结束
/*.....定义AD转换器的控制脚.....*/
图4.2.1主程序流程图
sbitEOC=P1^2;
sbitOE=P1^3;
/*.....定义0~9十个数字代码.....*/
unsignedcharwu_ds[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
/*.....定义按键引脚.....*/
SbitS1=P3.4;
SbitS2=P3.5;
SbitS3=P3.6;
SbitS4=P3.7;
/*.....声明程序中将会调用到的子程序.....*/
voiddelay(intt);//声明程序延时子程序
intset_temp(ints);//声明设置初始值子程序
voidcont_temp(intx);//声明数据处理,与工程量变换子程序
voidstart_temp(void);//声明启动A/D转换器子程序
void_PID_(inty,intz);//声明PID控制程序
/*.....开始主函数.....*/
voidmain()
{
intdata_in;//定义一个用来存放AD转换器转换结果的变量
inta1,a2,a3,a4,m,t;
m=set_temp(0);
P0=0xFF;//初始化AD转换器数据端口
while
(1)
{
cont_temp(data_in);
display(a1,a2,a3,a4);//调用数码管分时显示函数显示测得温度
t=a1*1000+a2*100+a3*10+a4;
_PID_(m,t);
}
}
4.2.2LED数码管显示子程序及其流程图
本系统采用4位共阴数码管用动态显示的方式显示预设值和测得温度值,其动态扫显示程序如下,程序流程图如图4.2.2所示:
关闭第2位段选和位选
voiddisplay(longinta,longintb,longintc,longintd)
{
开启第3位位选
显示程序
P0=0;//先关闭全部数码管
w1=0;//显示千位数,从左到右
P0=wu_ds[a];
显示第3位
关闭段选口消除阴影
delay(3);
w1=1;
调用程序延时
选通第1位
P0=0;
w2=0;
关闭第3位段选和位选
显示第1位
P0=you_ds[b];显示百位数
delay(3);
开启第4位位选
调用程序延时
w2=1;
P0=0;
显示第4位
关闭第1位的段选和位选
w3=0;
P0=wu_ds[c];显示十位数
调用程序延时
开启第2位位选
delay(3);
w3=1;
关闭第4位
显示第2位
P0=0;
w4=0;
返回
调用程序延时
P0=wu_ds[d];显示个位数
delay(3);
图4.2.2显示程序流程图
w4=1;
}
4.2.3A/D转换程序及流程图
本系统所使用的A/D转换器ADC0809接线图如图3.4所示,控制其启动及转换程序如下,启动A/D转换流程图如图4.2.3所示:
voidstart_temp(void)
{
ALE=1;_nop_();_nop_();ALE=0;//锁存通道地址,这里采用通道IN0
ST=1;_nop_();_nop_();ST=0;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();//START下降沿,开始进行A/D转换
while(EOC==0)//转换时间约为100us,在转换期间EOC为低电平,利用条件延时
{
_nop_();
}
OE=1;//转换结束,给OE高电平,请求输出转换结果
data_in=P3;//用P3口来接收AD转换器的转换结果,将结果存入data_in
OE=0;
}
图4.2.3A/D转换程序流程图
返回
将OE置0
读出转换结果
OE==1
转换是否结束
(EOC=0?
)
使ST由高电平跳转到低电平,启动A/D转换器
锁存通道地址
确定通道选择地址
A/D转换程序
4.2.4数字控制器的设计
数字控制器是本控制系统的核心,用它对被测参数进行自动调节,这里采用PID程序设计法进行设计。
根据位置型PID设计方法可写出表达式4-1
P(k)=PP(k)+PI(k)+PD(k)式4-1
其中:
PP(k)=KPE(k)
PI(k)=KI
=KIE(k)+KI
=KIE(k)+PI(k-1)
PD(k)=KD[E(k)-E(k-1)]
根据4-1式和图2.2所示的PID调节控制图可得PID数字控制程序的流程图如图4.2.4所示:
返回
图4.2.4位置型PID运算程序流程图
E(k-1)←E(k)
计算P(k)=PP(k)+PI(k)+PD(k)
计算PD(k)=KD[E(k)-E(k-1)]
计算PI(k)=KIE(k)+PI(k-1)
计算PP(k)=PPE(k)
计算E(k)=R(k)-M(k)
PID位置型运算程序
将P(k)转换成双字字整数→R2R3
4.2.5键盘控制流程图
本系统采用4位键盘设置基本参数及启动与停止计算机自动控制系统的自动运行。
键盘控制程序采用定时器延时扫描的方法控制,当按键被按下时输入一个低电平,其流程图如图4.2.5所示:
图4.3.5键盘程序流程图
否
是
是
否
否
是
否
是
否
是
否
是
停止自动控制系统
S4是否按下
启动自控系统
S3是否按下
是否为第4位
该位所示温度值是否为所需温度
温度值该位数字加1
S1是否按下
是
否
S2是否按下
扫描键盘的按下状态
键盘控制程序
是否为所需设置
温度位
5.设计工作总结及心得体会
通过对电加热炉计算机温度控制系统的设计,使我对实际工程中的自动控制系统的应用有了初步的设计理念。
理论与实践的结合,使我对自算机控制系统的特点以及其组成原理与应用程序有了更进一步的学习,通过对整个系统的设计,使我更进一步的巩固了专业基础知识,提高了用理论知识解决实际问题的实践能力。
通过资料的收集及整理,也使我学到了许多相关专业课程的知识,并从中分析得到启发,确立系统方案。
通过对数字控制器的设计,使我掌握了运用单片机实现PID算法控制、单片机与A/D转换器的接口电路、键盘与单片机的接口电路、LED与单片机的接口电路以及编程实现数码管的动态显示、A/D转换器的编程、键盘控制的编程和通过单片机触发可控硅导通的方法。
这次对计算机自动控制系统的设计更加深了我对闭环控制系统的了解,使我对小型计算机控制系统的硬件及软件设计有了综合分析、独立思考的能力。
参考文献
[1]潘新民.微型计算机控制技术.第2版.电子工业出版社.2011
[2]林锦国.过程控制.第3版.东南大学出版社.2011
[3]郁有文.传感器原理及工程应用.第3版.西安电子科技大学出版社.2010
[4]谢维成.单片机原理与应用及C51程序设计.第2版.清华大学出版社.2009
[5]阎石.数字电子技术基础.第5版.高等教育出版社.2009
[6]谭浩强.C程序设计.第3版.清华大学出版社.2008
[7]张荣标.微型计算机原理与接口技术.第2版.机械工业出版社.2010
[8]王兆安.电力电子技术.第5版.机械工业出版社.2010