基于数字PID和51单片机的温度控制系统

发布者:闪耀的星空最新更新时间:2011-11-24 关键字:数字PID  51单片机  温度控制系统 手机看文章 扫描二维码
随时随地手机看文章
    在工业生产过程中,温度是工业生产过程中常见的工艺参数之一,对温度控制的好坏直接影响产品的质量。及时准确地得到温度信息并对其进行适当的控制,在许多工业场合中都是重要的环节。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式和控制方式均不同。本文介绍了一种基于89C52单片机的温度控制系统,本系统的任务是对温度进行实时监控与控制。它以温度传感器DSl820对温度进行测量、采样与转换,并将测量结果送给单片机;单片机将输人的温度值与内部指定单元的给定温度值进行比较,根据比较结果,通过一个执行机构(可控硅)对加热源(加热炉的温度)的开关状态进行控制。在控制环节中,本系统采用的是数字PID控制算法来实现上述功能。传统的PID控制电路结构复杂,需配合相应的可控硅控制电路完成对温度的控制。具有器件多、生产成本高、电路调试复杂的缺点。所以,在该温度控制系统的设计中,运用单片机89C52进行数字PID运算能充分发挥软件系统的灵活性,具有控制方便、简单和灵活性大等优点。

1 系统结构及主要硬件电路设计
1.1 系统结构

    该系统的控制对象是水温,水温经测温传感器DSl820转换成电压信号,经A/D转换成计算机可以接收的数字信号,保存在89C52单片机采样值单元中;再利用键盘输入设定温度,经温度标度转换成二进制数,保存在单片机内设定值单元;然后,调用显示子程序,显示设定温度和采样温度,然后把采样值与设定值输入单片机内进行数字PID控制算法的运算,运算结果由单片机输出,通过可控硅交流调压装置来控制时间的导通和关断,在达到设定温度后利用PWM方法来保持此温度,以此来调节温度。该系统原理图如图1所示。


l.2 硬件电路设计
    根据任务要求,确定了器件和系统电路。系统电路简图如图2所示。该系统以高性能/价格比的89C252单片机为控制系统的核心,采用新型单片机数字测温传感器DSl820来测量温度,由双向可控硅驱动电路MOC3854和双向可控硅TLC253A组成输出控制通道。除此之外,还有键盘电路、显示电路、报警电路等。[page]


    89C52单片机是控制系统的核心,实现水温检测、数字滤波、控制算法运算、信息存储等功能。89C52通过数据、地址、控制总线与A/D转换器相连,完成模拟量与数字量之间的转换。测量机构采用温度传感器DSl820作为温度测量电路的核心器件,DSl820是一款两端器件,只需要一个直流电压源,功率的需求比较低,可量测范围-40~180℃,其输出是高阻抗电流,因而大阻值的电阻对器件工作影响不大,具有非常好的线性输出性能。执行机构是可控硅交流调压装置,其输入信号为高低电平,通过改变输入信号来调节加热炉丝的电压。键盘部分主要在程序中引入3个中断,即串位键、+l键、-1键分别对应3个中断,当某个键按下时,中断口便产生一个下降沿,从而进入相应的中断服务子程序。显示利用8155进行扩展成4位BCD码,前2位为设定值,后2位为采样值,实现了动态循环显示特性。

2 程序流程及温控算法
2.1 程序流程

    系统的程序流程主要包括系统的主程序、对89C52单片机硬件电路的初始化、环境温度采集子程序、温度控制子程序、键盘控制子程序、报警子程序等部分构成。程序流程图如图3所示,该系统的软件是在89C5l单片机仿真开发环境下采用基于51系列的C语言编写的,用C语言来设计程序大大提高了开发调试的工作效率,使得程序结构清晰,便于进一步扩展系统的功能。

[page]

2.2 温控算法
    温控系统采用数字PID算法,并由软件实现,所谓PID控制就是按设定值与测量值之间偏差的比例、偏差的积累和偏差变化的趋势进行控制。它根据采样时刻的偏差值计算控制量。因此PID控制律的实现,必须用数值逼近法。当采样周期相当短时,可以用求和代替积分,用差商代替微分,即做如下近似变换:
   
式中,k为采样序号,k=l,2,…;T为采样周期。
    显然,上述离散化过程中,采样时间T必须足够短,才能保证有足够的精度。为了书写方便,将e(kT)简化表示成e(k)等,即省去T。可以得到离散的PID表达式为:
   
式中,k为采样序号,k=1,2,…,;u(k)为第k次采样时刻的计算机输出值;e(k)为第k次采样时刻输入的偏差值;e(k-1)为第(k-1)次采样时刻输入的偏差值;K1为积分系数,;KD为积分系数。

    该系统采用增量式PID控制算法,是指数字控制器输出只是控制量的增量,该算法编程简单,数据可以递推使用,占用存储空间少,运算快。
    根据递推原理可得:
   

3 结束语
    本文主要从硬件和软件两个方面具体描述了基于数字PID的89C52单片机温度控制系统的构造。该系统充分发挥了89C52单片机对模拟量的采集处理和增量式数字PID控制算法的功能,可以比较灵活的调节控制信号的导通时间来控制加热电路和冷却电路的工作。该系统基本满足了温度控制的要求,具有超调量小,振荡幅度小,设定值可以随时用按键人为设定等优点,同时该系统还避免了控制过程中的不确定性及噪声,提高了系统的工作效率。理论和实践证明,该系统具有高可靠性、高性价比、控制简单方便等优点,大大提高测量的精度。

 

关键字:数字PID  51单片机  温度控制系统 引用地址:基于数字PID和51单片机的温度控制系统

上一篇:基于MSP430单片机的步进电机控制系统设计
下一篇:基于AT89S52单片机的无线光电靶

推荐阅读最新更新时间:2024-03-16 12:46

51单片机中断矢量表
8051系列单片机是现在最常用的单片机他的中断矢量表如下所示: 下面是8051单片机的各种封装形式和引脚图
[单片机]
<font color='red'>51单片机</font>中断矢量表
51单片机温度计2.0版ds18b20+0.96寸OLED IIC显示
51单片机温度计LCD1602显示成功,于是又挑战了OLED显示 main.c #include oled.h #include ds18b20_1.h void Timer0Init(void); //void Gao_Wen(void); //void GaoDiInit(void); sbit Deng=P1^0; //LED灯 sbit FengMing=P1^1; //蜂鸣器 sbit GD=P3^0; //两个功能:高限温减小,关闭LED灯 sbit GF=P3^1; //两个功能
[单片机]
基于51单片机FFT算法的源码设计
  FFT算法是计算离散傅里叶变换的方法,它大大地减少了运算量,缩短了运算时间,使实时分析成为可能。   按时间抽取的FFT算法通常将原始的数据倒位序存储,最后按照正常顺序输出结果X   下面是128点的FFT函数。   (1) 128点FFT子函数。   (2)下面给出256位的KeilC51源程序,目的是能够更好地熟悉FFT算法在 单片机 及其他嵌入式处理器中的实现方法。   我们在使用FFT算法程序的时候,可以根据需要对上面的程序进行优化处理。优化处理主要是使用直接的整数加减、移位、乘法操作去替换程序中采用定点模拟实现的加减、移位、乘法等操作。
[单片机]
基于<font color='red'>51单片机</font>FFT算法的源码设计
delphi与51单片机串行通信
说明:可能前面几次首发不太准确 //delphi源码 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SPComm, StdCtrls; type TFCOMM = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Memo1: TMemo; Comm1: TComm; procedure FormShow(Se
[单片机]
基于51单片机实现LED模拟交通灯
具体功能实现: 南北红灯亮,东西绿灯亮;南北绿灯亮,东西红灯亮;在红绿灯转换过程中,黄灯闪烁5次。 使用器件: 若干电阻、4只LED红灯、4只LED绿灯、4只LED黄灯、AT89C51芯片 Proteus仿真原理图: 仿真测试: 知识介绍: Proteus布线 为了让整个原理图看上去简洁明了,我们对元器件的导线进行标号,而不是直接和芯片相连。 LED低电平有效 LED的特性是单向导通,只有当阳极的电压大于阴极的电压才能导通。在仿真图中LED的阳极接了电源,因此阴极我们置0方可导通。 主要代码(C语言)KEIL5实现: #include REGX52.H sbit RED_A = P0^0; //east and
[单片机]
51单片机-指针方法-串口实例
1. 指针 变量a的指针=变量a的地址 再定义一个变量p,来存放a的地址(指针),p就是指针变量,简称指针 1.1 指针声明的两种方式 //直接初始化赋值 unsigned char a; unsigned char *p = //定义后再进行赋值 unsigned char a; unsigned char *p; P = 1.2 两个重要区别(P194) 第指针变量p与普通变量a的区别: a可直接赋值,p要赋地址 定义指针变量*p和取值运算*p的区别 *的三种用法: num = a * b; //乘号 unsigned char *p; //定义指针变量 num = *p; //取值运算,取p指向
[单片机]
单片机执行程序的过程,加深对51单片机指令的理解
为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发! 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路
[单片机]
C8051单片机实现多目标超声波测距的设计
超声波测距传感器以其测量精度高、响应快和价格低廉而广泛应用在工业现场测距、移动机器人导航和定位等场合。超声波测距传感器常用的方式是1 个发射头对应1 个接收头,也有多个发射头对应1 个接收头。 它们共同之处是:每个接收头只测量一个位置,这个位置就是除盲区内因发射的超声波旁瓣引起的接收信号超声波包络峰值外,第1个接收信号超声波包络峰值对应的距离。 在机器人自主导航避障时,机器人只关心最近障碍物的距离,是能够完成自主避障的。 但是在机器人定位时,尤其在动态环境下,1 个接收头同时测量多个距离,能够更多地描述环境信息,这对机器人用超声波定位具有重要意义。 1 超声波 1. 1 超声波测距原理 超声波测距原理比较简单,一般是采用时差法
[单片机]
C80<font color='red'>51单片机</font>实现多目标超声波测距的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php
设计资源 培训 开发板 精华推荐

Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php Your system folder path does not appear to be set correctly. Please open the following file and correct this: index.php
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved