计算机控制技术课程设计之电阻炉温度控制系统

更新时间:2023-03-08 05:15:22 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

随着科学技术的迅猛发展,各个领域对温度控制系统的精度、稳定性等要求越来越高,控制系统也千变万化。电阻炉广泛应用于各行各业, 其温度控制通常采用模拟或数字调节仪表进行调节,但存在着某些固有的缺点。而采用单片机进行炉温控制,可大大地提高控制质量和自动化水平, 具有良好的经济效益和推广价值。

本设计以89C51单片机为核心控制器件,以ADC0809作为A/D转换器件,采用闭环直接数字控制算法,通过控制可控硅来控制热电阻,进而控制电炉温度,最终设计了一个满足要求的电阻炉微型计算机温度控制系统。

关键字:电阻炉 89C51单片机 温度控制 A/D转换

- 1 -

目录

摘要………………………………………………………………………………………1

电阻炉温度控制系统……………………………………………………………………2

方案的比较和确定………………………………………………………………………4

控制算法…………………………………………………………………………………4

系统软硬件设计…………………………………………………………………………7

基MATLAB仿真被控对象……………………………………………………………..15

心得体会………………………………………………………………………………….16

参考文献………………………………………………………………………………….17

- 2 -

电阻炉温度控制系统

1系统的描述与分析

1.1系统的介绍

该系统的被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为0~5伏时对应电炉温度0~500℃,温度传感器测量值对应也为0~5伏,对象的特性为带有纯滞后环节的一阶惯性系统,这里惯性时间常数取T1=30秒,滞后时间常数取τ=10秒。

该系统利用单片机可以方便地实现对PID参数的选择与设定,实现工业过程中PID控制。它采用温度传感器热电偶将检测到的实际炉温进行A/D转换,再送入计算机中,与设定值进行比较,得出偏差。对此偏差按PID规律进行调整,得出对应的控制量来控制驱动电路,调节电炉的加热功率,从而实现对炉温的控制。利用单片机实现温度智能控制,能自动完成数据采集、处理、转换、并进行PID控制和键盘终端处理(各参数数值的修正)及显示。在设计中应该注意,采样周期不能太短,否则会使调节过程过于频繁,这样,不但执行机构不能反应,而且计算机的利用率也大为降低;采样周期不能太长, 否则会使干扰无法及时消除,使调节品质下降。

1.2技术指标

设计一个基于闭环直接数字控制算法的电阻炉温度控制系统具体化技术指标如下: 1.电阻炉温度控制在0~500℃;

2. 加热过程中恒温控制,误差为±2℃;

3. LED实时显示系统温度,用键盘输入温度,精度为1℃; 4. 采用直接数字控制算法,要求误差小,平稳性好; 5. 温度超出预置温度±5℃时发出报警。

- 3 -

2方案的比较和确定

方案一

系统采用8031作为系统的微处理器。温度信号由热电偶检测后转换为电信号经过预处理(放大)送到A/D转换器,转换后的数字信号再送到8031内部进行判断或计算。从而输出的控制信号来控制锅炉是否加热。但对于8031来说,其内部只有128个字节的RAM,没有程序存储器,并且系统的程序很多,要完成键盘、显示等功能就必须对8031进行存储器扩展和I/O口扩展,并且需要容量较大的程序存储器,外扩时占用的I/O口较多,使系统的设计复杂化。

方案二

系统采用89C51作为系统的微处理器来完成对炉温的控制和键盘显示功能。8051片内除了128KB的RAM外,片内又集成了4KB的ROM作为程序存储器,是一个程序不超过4K字节的小系统。系统程序较多时,只需要外扩一个容量较小的程序存储器,占用的I/O口减少,同时也为键盘、显示等功能的设计提供了硬件资源,简化了设计,降低了成本。因此89C51可以完成设计要求。

综上所述的二种方案,该设计选用方案二比较合适。

3控制算法

3.1控制算法的确定

PID调节是连续系统中技术最成熟的、应用最广泛的一种控制算方法。它结构灵活,不仅可以用常规的PID调节,而且可以根据系统的要求,采用各种PID的变型,如PI、PD控制及改进的PID控制等。它具有许多特点,如不需要求出数学模型、控制效果好等,特别是在微机控制系统中,对于时间常数比较大的被控制对象来说,数字PID完全可以代替模拟PID调节器,应用更加灵活,使用性更强。所以该系统采用PID控制算法。系统的结构框图如图3-1所示:

- 4 -

图3-1 系统结构框图

3.2数学模型的建立

具有一阶惯性纯滞后特性的电阻炉系统,其数学模型可表示为: Ke??s G(s)? (2-1) T1s?1在PID调节中,比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,Kp的加大,会引起系统的不稳定;积分控制的作用是:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现振荡;微分控制可以使减小超调量,克服振荡,提高系统的稳定性,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。将P、I、D三种调节规律结合在一起,可以使系统既快速敏捷,又平稳准确,只要三者强度配合适当,便可获得满意的调节效果。 模拟PID控制规律为: u(t)?Kp[e(t)?1TI?t0e(t)dt?TDde(t) ] (2-2)dt式中:e(t)?r(t)?y(t)称为偏差值,可作为温度调节器的输入信号,其中r(t)为给定值,y(t)为被测变量值;Kp为比例系数;TI为积分时间常数;TD为微分时间常数;u(t)为调节器的输出控制电压信号。 因为计算机只能处理数字信号,故上述数字方程式必须加以变换。设采样周期为T,第k次采样得到的输入偏差为e(k),调节器的输出为u(k),作如下近似: de(t)e(k)?e(k?1)? (用差分代替微分) dtT- 5 -

WZB-003的铂热电阻,可满足本系统0~500℃测量范围的要求。变送器将电阻信号转换成与温度成正比的电压,当温度在0~500℃时变送器输出0~4.9v左右的电压。A/D转换可采用ADC0809进行,亦可采用单片机内部A/D功能进行。电路设计好后调整变送器的输出,使0~500℃的温度变化对应于0~4.9v的输出,则A/D转换对应的数字量位00H~FAH,即0~250,转换结果乘以2正好是温度值。用这种方法一方面可以减少标度变换的工作量,另一方面还可以避免标度变换带来的计算误差。

本设计A/D转换采用查询方式(由P1.4查询ADC0809的ECO转换结束信号)。为提高采样的可靠性,对采样温度进行数字滤波。数字滤波的方法很多,这里采用4次采样取平均值的方法。因此,4次采样的数字量之和除以2就是检测的当前温度。温度检测子程序流程图如图4-3所示。

开始检测结果缓冲区清零采样次数4送R2N启动A/D转换Y4次累加结果除以2送检测结果缓冲区(R2)-1送R2 R2=0?N转换结束?Y累加采样结果结果低8位送51H高8位送50H返回 图4-3 温度检测子程序流程图 4.3温度控制电路

控制电路采用可控硅来实现,双向可控硅SCR和电路电阻丝串接在交流220V市电回

- 11 -

路中,单片机信号通过光电隔离器和驱动电路送到可控硅的控制端,由端口的高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。

将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电路保持原来状态;当温度降低到比预置温度低2℃时,再重新启动加热;当前温度超出报警上下限时将启动报警,并停止加热。由于电炉加热时,当前温度有可能低于报警下限,为防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志位F0。温度控制模块流程图见图4-4。 开始当前温度与预设温度比较当前温度<预设温度?NYN当前温度<预设温度-2?置允许报警标志Y开电炉关电炉返回 图4-4 温度控制模块流程图 4.4人机对话电路

4.4.1键盘管理

为使系统简单紧凑,键盘只设置四个功能键,分别是“启动键”、“百位”、“十位”和

- 12 -

“个位”。由P1口低四位作为键盘接口。利用数字键可以分别对预置温度的百位、十位和个位进行0~500℃的温度设置。程序设有预置温度合法检测报警,当预置温度超过500℃时会报警并且将温度设为500℃。键盘管理子程序流程图如图4-5所示。

开始预置温度合法检查P1.1=0?NY百位键输入值处理预置温度送显示缓冲区P1.2=1?NY百位键输入值处理N有键闭合?Y调用显示子程序P1.3=1?NP1.0=1?YY百位键输入值处理N保存新的温度预设值有键闭合?NY启动加热返回 图4-5 键盘管理子程序流程图 4.4.2数码显示 本系统设有3位LED数码显示器,用于显示电阻炉的设定温度和实际温度。采用串行口扩展的静态显示电路作为显示接口电路。

显示子程序DISP如下:

DISP: ACALL HTB ;调用将显示数据转换成BCD码的子程序HTB MOV SCON,#00H ;置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ;显示缓冲区首地址送R0 LD: MOV DPTR,#TAB ;指向字符码表首地址 MOV A,@R0 ;取出显示数据 MOVC A,@A+DPTR ;查表

- 13 -

MOV SBUF,A ;字符码送串行口

WAIT: JBC TI,NEXT ;发送结束转下一个数据并清除中断标志 SJMP WAIT ;发送未完等待 NEXT: INC R0 ;修改显示缓冲区指针

DJNZ R2,LD ;判断3位显示完否,未完继续 RET

TAB: ? ;字符码表 4.4.3报警 报警功能由蜂鸣器实现,当由于意外因素导致电阻炉温度高于设置温度时,单片机驱动蜂鸣器鸣叫报警。报警上限温度值为预置温度+5℃,即当前温度上升到高于预置温度+5℃时报警,并停止加热;报警下限温度值设为预置温度-5℃,即当前温度下降到低于预置温度-5℃,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电电炉。图4-6为报警子程序流程图。 开始当前温度-预设温度温差高字节送A温差低字节送B置允许报警标志当前温度≤预设温度?N温差>5°C?YNY预设温度-当前温度温差高字节送A温差低字节送B允许报警?Y开警报器,关电炉N返回 图4-6 报警子程序流程图 - 14 -

5基MATLAB仿真被控对象

采用simulink仿真,通过simulink模块实现积分分离PID控制算示。设采样时间Ts=10s,被控对象为:

e?10sG(s)?

1?30s Simulink仿真图如图5-1所示。

图5-1 Simulink仿真图

选择合适的Kp,Ki,Kd是系统的仿真效果趋于理想状态。MATLAB编写程序如下: clear all; close all; ts=4;

sys=tf([1],[30,1],'inputdelay',10); dsys=c2d(sys,ts,'zoh'); [num,den]=tfdata(dsys,'v'); kp=13; ki=0.4; kd=0.2;

- 15 -

MATLAB仿真波形如图5-2所示。

图5-2 MATLAB仿真波形

6心得体会

课程设计是对我们在这学期学到的微型计算机控制技术这门课的理论知识的一个综合测评,是对我们将理论结合时间的综合能力的考查,是培养我们发现问题、解决问题的能力,是激发我们内在创新意识的途径。在此次课程设计中,我们学到了许多平时课堂上学不到的东西,比如:单片机系统的开发与可行性分析、电炉的设计与制作、器件的选型、程序的设计与调试、系统的调试以及平时没有接触到的在线编程与相关软件等等。在设计过程中我遇到了许多难以解决的问题,通过去图书馆看书、上网查资料以及请教同学,努力最终一步一步得以解决。通过这次课程设计,不仅锻炼了我的动手能力,更培养了我发现问题、解决问题的能力,巩固了我以前学过的专业知识,促进了我的自学能力。

通过本次设计,我还了解了微机控制中DDC算法的基本概念及其对系统设计的相关应用。什么样的课程设计都离不开理论与实际相结合的真理,设计过程中的方案选择和参数设定使我进一步深刻认识到算法的控制对整个系统的重要作用。一个细小的参数设定出现偏差,可能导致最后的性能指标不和标准。所以选择一个优良的方案对于实验至关重要。

- 16 -

参考文献

[1]吴金戌, 沈庆阳, 郭庭吉.8051单片机实践与应用. 北京:清华大学出版社[2]李建忠. 单片机原理及应用. 西安:西安电子科技大学出版社[3]潘新民, 王燕芳. 微型计算机控制技术. 北京:高等教育出版社[4]何立民. 单片机应用系统设计. 北京:北京航空航天大学出版社[5]韩志军, 沈晋源, 王振波. 单片机应用系统设计. 北京:机械工业出版社[6]宋书中. 自动化技术工程设计实践. 武汉:武汉理工大学出版社, 2004. [7]周航慈.单片机程序设计基础.北京:北京航空航天大学出版社,2000.

- 17 -

致谢

课程设计论文即将完成,我的大三生涯也要告一段落了。在此期间,我曾遇到了各种各样的困难,多亏有老师和同学的关心与帮助,我才能够克服各种困难,在挫折中渐渐的成长了起来,借此机会,我要对一直以来帮助和支持过我的老师与同学表示深深的感谢!

- 18 -

附录1:

系统原理图

- 19 -

本文来源:https://www.bwwdw.com/article/9xb.html

Top