温度控制系统及控制方案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

温度控制系统及控制方案

08自动化侯伟08378094

【摘要】:本设计采用51单片机与pc机相结合,使用ADC0809对温度进行采样,所得的数据使用中位值平均滤波法进行滤波,然后使用专家模糊PID控制算法对加热炉进行控制,能够进行恒温定点加热,也能够使其温度按工艺所要求的温度曲线变化,在不同时段按要求加热。

【关键字】:PC机51单片机炉温控制专家模糊PID控制滤波

一、概述

温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方式也各不相同。

系统用温度传感器将检测到的实际炉温A/D转换,51单片机把所得值与设定值进行比较,使用专家模糊PID算法进行修正,求得对应的控制量控制可控硅驱动器,调节电炉的加热功率,从而实现对炉温的控制。因此采集的炉温数据精度至关重要。利用51单片机实现温度智能控制,能自动完成数据采集、处理、缓冲、转换、并进行PID实施控制,包括各参数数值的修正,并把数据传输给PC机进行动态直观显示,同时也可以通过PC机设定参数。但在控制过程中应该注意,采样周期不能太短,否则使调节过于频繁,不但执行机构不能反应,而且计算机的利用率大为降低。采样周期太长,也是不合适,因为干扰无法及时消除,使调节品质下降。随着单片机在各行业控制系统中的普遍采用,其构成的实时控制系统日臻完善,使该温度控制系统的总体性能大大提高,功能更趋完善,并详细介绍了该系统的软、硬件实施手段及系统特点。

二、温度控制系统的硬件组成框图与其详细功能介绍

PC机:根据51单片机传输过来的值绘制T-t曲线,同时在调试过程可以给单片机传输参数,而在曲线跟踪过程中也是通过pc机给单片机传输某时刻的设定值。

51机:接收adc采样得到的数值,并进行滤波处理,根据所得到的数值进行专家模糊PID控制,得到相应的PWM值,直接通过控制继电器的通断控制温控箱加热棒和风扇的通断。同时传输相关的数据给PC机进行显示,也接收PC机的温度设定值。

继电器盒:接受51机的通断信号,弱电控制强电,对加热棒及风扇进行控制。分为手

动和自动两种方式

加热棒:对温控箱加热,可通过改变通断的占空比来调节加热的速率风扇:对温控箱降热,通过改变通断的占空比来调节降热的速率

加热箱:被控对象,特点:延时大,温度在一定范围内是线性变化的。

硬件电路

三、控制流程

(一)程序设计

●51机

程序流程图如图2所示:

●PC机

程序流程图如图3所示。

1、MSComm控件

(1)通信方式

PC机和51机之间采用RS-232C串口通信,选用Visual Basic 6.0编写控制软件。使用MSComm通信控件控制串口通信。MSComm是微软公司提供的用于Windows下串口通信的ActiveX控件。应用程序可以通过它简单而方便的通过串口收发数据。MSComm控件提供了两种通信方式:事件驱动和查询。

事件驱动是串口交互通信中的一种非常有效的方法。当串口接收缓冲区中收到数据,或者串口发送完毕之类的事件发生时,系统将事件转换为消息,在MSComm控件中体现为CommEvent属性值的变化。利用MSComm控件的OnComm事件可以捕获并处理这些消息,从而实现串口通信的编程。

查询实质上还是属于事件驱动的范围,因为查询是通过每隔一段时间就查询一次MSComm控件的CommEvent属性的值来查询发生的事件和出现的错误。一旦CommEvent 的值发生变化,说明有通信事件或者错误发生。

(2)MSComm控件编程

A.MSComm控件的初始化

对MSComm串口的初始化一般要完成以下的设置:设定端口号(CommPort)、设定传输协议(Settings)、设定其他参数、打开通信端口。

B.捕捉串口事件

在窗体设计中,双击窗体中的MSComm空间,会自动弹出代码窗口,系统会自动生成OnComm子程序并定位光标在OnComm子程序。我们可以在里边编程设定发生OnComm事件后应当执行的操作。

C.串口数据的读取

在MSComm控件中,对接收缓冲区的读取有两种方式,一种是文本形式,一种是二进制形式。对于文本形式来说,需要在初始化时设置InputMode属性为comInputModeText,读取时可以直接将接收缓冲区赋值给一个String字符串变量。

对于二进制形式的数据来说,读取数据稍微麻烦一点。即使我们只接收到一个字节的数据,都无法用数值类型变量接收数据。通过查阅MSDN我们知道,Input属性通过一个Variant变体变量返回一个二进制数组,所以我们既可以用Variant变量接收,接受后的变量作为二进制数组使用,也可直接用二进制数组接收。

D.串口数据的写入。

在MSComm控件中,发送数据同样有两种方式。一种是文本方式,另一种是二进制方式。对于文本方式,直接将一个字符串变量传递给Output属性就行了。

2、温度曲线的绘制

(1)画图框

首先建立一个PictureBox画图框picture1,所有的曲线绘制工作都在这个画图框中进行。画图框有一个重要的布尔属性AutoRedraw,缺省值为False,当程序窗口被遮盖时,再切换回程序,之前绘制的图形中被挡住的部分会被擦去;设置为True后,切换回程序,系统会自动重新绘制被擦去的部分。

(2)确定绘图点的位置

VB给我们提供了自己的坐标系。即:画图框左上角为原点(0,0),往右为X方向,向下为Y方向。为画图方便,系统设定picture1的大小为(0,0)-(1200,100),而时钟为1s,所以picture1的一个点对应1秒,总时长20min,而纵坐标即温度值。但实

相关文档
最新文档