兰州理工大学计控设计(温度炉控制系统设计)董伟安 - 图文

更新时间:2024-06-03 11:15:01 阅读量: 综合文库 文档下载

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

兰州理工大学计控设计

基于51单片机温度炉控制系统设计

姓 名: 董伟安 学 院: 电信学院 专 业: 自动化 班 级: 自动化6班 指导老师:

2015/12/11

2

摘要

本文介绍了以单片机AT89C51作为核心元件构成的电阻炉温度控制系统的工作原理,详细说明了采用的新型元件,分析了系统硬件结构,最后给出了系统流程图。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等方面具有重要的现实意义。在对各种加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制中,采用单片机控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。该控制系统以AT89C51单片机为控制核心,采用增量式PID控制算法,实现对温度的智能控制。同时,具有超调量小、温度上升快、稳定性好等特点。

关键字:电阻炉;单片机;温度控制系统 ;通信

3

第一章 绪论

1.1 电阻加热炉温度控制系统的目的和意义 1.2 温度炉控制系统的基本原理

1.3温度炉控制系统的技术要求及主要问题 第二章 温度炉控制系统的总体方案 2.1 温度炉控制系统的设计及技术指标 2.2 温度炉控制系统的总体方案设计 2.3 显示电路的方案选择

2.4 总体方案总结

第三章 主要器件的使用及说明

3.1单片机AT89C51 3.2 DAC0832 3.3 ADC0804

3.4 LM741运算放大器 3.5 LED显示器接口

第四章 硬件电路设计

4.1 输入电路硬件设计 4.2 输出控制电路设计

第五章 软件电路设计

5.1 系统总体流程图

5.2 PID调节的各个环节及其调节过程

4

第六章 电路的调试 第七章 结束语 第八章 参考文献

附录一 元器件明细表 附录二 最小系统图

附录三 温度控制电路原理图附录四 主程序

5

?分辨率为8位; ?电流稳定时间1us;

(1)可单缓冲﹑双缓冲或直接数字输入; (2)只需在满量程下调整其线性度; (3)单一电源供电(+5V~+15V); (4)低功耗,200mW。 DAC0832的应用特性:

DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制力 实现对D/A转换的控制;

有两级锁存控制功能,能够实现多通道D/A的同步转换输出; DAC0832内部无参考电压源;须外接参考电压源;

DAC0832为电流输出型D/A转换器,要获得模拟电压输出是,需要外加转 换电路。

3.2.2 DAC0832芯片的引脚功能简介

DAC0832是美国数据公司的八位D/A,片内带有数据锁存器,电流输出,输出稳定时间为1uS,功耗为20mW.微处理器采用的是P89C52有非易失FLASH 并行可编程的程序存储器所有器

DAC0832是20引脚双列直插式芯片,其各个引脚的分布如下图所示, 其各个引脚的功能可以作如下解释。 D0~D7:数据输入线;

ILE:数据允许锁存信号,高电平有效;

CS:输入寄存器选择信号,低电平有效。WR1为输入寄存器的写选通信号。输入寄存器锁存信号LE1有ILE、CS 、WR1的逻辑组合产生。当ILE为高电平、CS为低电平﹑WR1输入负脉冲时,在LE1产生正脉冲;LE1为高电平是,输入锁存器的状态随数据输入线的状态变化,LE1的负跳变将数据线上的信息锁入输入寄存器。

XFER:数据传送信号,低电平有效。WR2 为DAC寄存器的写选通信号。DAC寄存器的写选通信号。DAC寄存器的锁存信号LE2,由XFER﹑WR2 的逻辑组合产生。当XFER为低电平,WR2输入负脉冲,则在LE2产生正脉冲;LE2为高电平,DAC寄存器的输出和输入寄存器的状态一致,LE2负跳变,输入寄存器的内容打入DAC寄存器。

VREF:基准电源输入引脚。

Rfb:反馈信号输入引脚,反馈电阻在芯片内部。

IOUT1﹑IOUT2:电流输出引脚。电流IOUT1与IOUT2的和为常数,IOUT1、IOUT2

16

随DAC寄存器的内容线性变化。

VCC:电源输入引脚。 AGND:模拟信号地。 DGND:数字地。

3.2.3 DAC0832与单片机的接口电路图

P2.7 WR P0.0 --P0.7 +5V DI0 Rfb DI7 CS Iout1 Xfer Iout2 WR1 Vref WR2 LM327 +5V 3.3 ADC0804

17

所谓A/D转换器就是模拟/数字转换器(Analog to Digital Converter 简称ADC),是将输入的模拟信号转换成数字信号。信号输入端的信号可以是传感器(Sensor)或转换器(Transducer)的输出,而ADC输出的数字信号可以提供给微处理器,以便更广泛的应用。 3.3.1 ADC0804的主要参数

?8位COMS逐次逼近型的A/D转换器; ?三态锁定输出; ? 存取时间:135ūs;

④ 分辨率:8位; ⑤ 转换时间:100us; ⑥ 总误差:±1LSB;

⑦工作温度:ADC0804LCN——0℃----+70℃;

⑧ ADC0804LCD——--40℃----+85℃;

3.3.2 引脚图及说明 ? /CS:芯片选择信号。

?/RD:外部读取转换结果的控制脚输出信号。/RD为HI时,DB0~DB7处于高阻抗;/RD为LO时,数字数据才会输出。

?/WR:用来启动转换的控制输入,相当于ADC的转换开始,当/WR由HI变为LO时转换器被清除;当/WR回到HI时,转换正式开始。

④ CLK IN,CLK R:时钟输入或接震荡元件(R,C),频率约限制在

18

100kHz~1460kHz,如果使用RC电路则其震荡频率为1/(1.1RC)。 ⑤ /INTR:中断请求信号输出,低电平动作。

⑥VIN(+)VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地;而差动输入时,直接加VIN(+)VIN(-)。 ⑦AGND,DGND:模拟信号以及数字信号的接地。 ⑧ VREF:辅助参考电压。 ⑨DB0~DB7:8位的数字输出。

⑩VCC:电源供应以及作为电路的参考电压。

3.4 LM741运算放大器

与普通运放功能相同,只是多了调零功能,使用更精确,性能更优。

3.5 LED显示器接口

LED显示器接口与单片机接口的显示主要是LED显示器和LCD显示器两种,LED(Light Emiting Diode)是发光二极管构成的,所以在显示器前面冠以“LED”。LED显示器在单片机中的应用非常普遍。通常所说的LED显示器由7个发光二极管组成,因此也称之为七段LED显示器,其排列形状如图3-15所示。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。

LED显示器中的发光二极管共有两种连接方法: A.共阳极接法

把发光二信用证管的阳极连在一起构成公共阳极。使用时公共阳极接+5V,如图3-15中所示。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。

B.共阴极接法

反发光二极管的阴极连在一起构成公共阴极,如图3-15中所示。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就寻通点亮,而输入低电平的则不点亮。

19

图3-15 数码管显示器

使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如下表3。

表 3 代码式 显示段 D7 dp D6 G D5 f D4 e D3 d D2 c D1 b D0 a LED显示器接口比较简单,使用如图3-16译码驱动器就可以实现BCD码到七位段码的转换,完成一位LED显示器的接口。由于使用了专用的七位段码的译码器/驱动器,可以把一位十六进制数(4位二进制)译码为相应的字形代码,并提供足够的功率去驱动发光二极管。使用这种接口方法,虽然软件简单,仅需使用一条输出指令就可以进行LED显示,但使用硬件却比较多,而硬件译码又缺乏灵活性,所以较少使用。在实际应用中使用较为普遍的是以软件来代替硬件译码,这样只需要一个接口芯片就可以实现多位LED显示器显示。

我们用单片机芯片80C51作接口电路,本次设计我们用四位LED显示器数码管采用的共阳极数码管驱动,动态扫描输出显示。

20

第四章 硬件电路设计

4.1 输入电路硬件设计

输入电路系统前向通道,主要由MAX6675和热电偶组成。MAX6675是MAXIM公司开发的K型热电偶转换器,集成了滤波器、放大器等,并带有热电偶断线检测电路,自带冷端补偿,能将K型热电偶输出的电势直接转换成12位数字量,分辨率0.25℃。温度数据通过SPI端口输出给单片机,其冷端补偿的范围是-20~80℃,测量范围是0~+1023.75℃。表1为MAX6675的引脚功能图。

MAX6675引脚号 2 3 4 名称 GND T-- 功能 接地端 热电偶负极(使用时接地) 热电偶正极 电源端 串行时钟输入 片选信号 数据串行输出端 悬空不用 表1 的引脚功能图

1 T+ VCC 5 T+ 3 SCK 5 6 CS T-- 2 非 6 7 SO MAX6675 1 NC 7 8 +5V 4 8

图2为本系统中温度检测电路

当P2.5为低电平且P2.4口产生时钟脉冲时,MAX6675的SO脚输出转换数据。

在每一个脉冲信号的下降沿输出一个数据,16个脉冲信号完成一串完整的数据输出,先输出高电位D15,最后输出的是低电位D0,D14-D3为相应的温度转换数据。当P2.5为高电平时,MAX6675开始进行新的温度转换。在应用MAX6675时,应该注意将其布置在远离其它I/O芯片的地方,以降低电源噪声的影响;MAX6675的T-端必须接地,而且和该芯片的电源地都是模拟地,不要和数字地混淆而影响芯片读数的准确性。

4.2 输出控制电路设计

控温电路包括驱动芯片MC1413、过零型交流固态继电器(Z型SSR)。报警和

21

控温电路如图3中所示。Z型SSR内部含有过零检测电路,当加入控制信号,且负载电源电压过零时,SSR才能导通;而控制信号断开后,SSR在交流电正负半周交界点处断开。也就是说,当Z型SSR在1秒内为全导通状态时,其被触发频率为100HZ;当Z型SSR在1秒内导通时间为0.5秒时,其被触发频率为50HZ。在本系统中,采用PID控制算法,通过改变Z型SSR在单位时间内的导通时间达到改变电阻炉的加热功率、调节炉内温度的目的。本次设计中AT89C51对温度的控制是通过控制Z型SSR的通断实现的。如单片机温度控制系统电路原理图所示,SSR和加热丝串接在交流220v、50HZ的用电回路上。在给定周期T内,只要改变SSR的接通时间即可改变加热丝的功率,以达到调节温度的目的。SSR的接通时间可以通过AT89C51在控制回路中加触发脉冲控制。该触发脉冲由AT89C51用软件在输出管脚上产生。

温度控制电路原理图

22

第五章 软件电路设计

5.1 系统总体流程图

在系统软件中,主程序完成系统初始化和电炉丝的导通和关断;炉温测定和显示、键盘输入、控制算法等都由子程序来完成;中断服务程序实现定时测温。流程图如图4所示。

停止加热

开始 系统初始化设置 键盘输入及目标炉温设置 炉温测量与显示 全速加热 是 炉温等于下限温度? 否 是 炉温等于上限温度? 否 PID算法控制炉温加热 炉温测定并显示 23

等于目标温度并稳定时间到? 否 是 结束 软件设计流程图

5.2 PID调节的各个环节及其调节过程 5.2.1 PID控制的原理和特点

工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。

(1)比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

(2)积分(I)控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

(3)微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。

自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是

24

由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

5.2.2 比例控制及其调节过程

在人工调节的实践中,如果能使阀门的开度与被调参数偏差成比例的话,就有可能使输出量等于输入量,从而使被调参数趋于稳定,达到平衡状态。这种阀门开度与被调参数的偏差成比例的调节规律,称为比例调节。

比例调节规律及其特点

比例调节作用,一般用字母P来表示。如果用一个数学式来表示比例调节作用,可写成:

?u?Kp?e (3-1)

式中 ?u——调节器的输出变化值; ?e——调节器的输入,即偏差;

Kp——比例调节器的放大倍数。

放大倍数KP是可调的,所以比例调节器实际上是一个放大倍数可调的放大器。 比例调节作用虽然及时、作用强,但是有余差存在,被调参数不能完全回复到给定值,调节精度不高,所以有时称比例调节为“粗调”。纯比例调节只能用于干扰较小、滞后较小,而时间常数又不太小的对象。

5.2.3 比例积分调节

对于工艺条件要求较高余差不允许存在的情况下,比例作用调节器不能满足要求了,克服余差的办法是引入积分调节。

因为单纯的积分作用使过程缓慢,并带来一定程度的振荡,所以积分调节很少单独使用,一般都和比例作用组合在一起,构成比例积分调节器,简称PI调节器,其作用特性可用下式表示:

11(?e???edt) (3-2) PTI ?uPI??uP??uI?这里,表示PI调节作用的参数有两个:比例度P和积分时间TI。而且比例度不仅影响比例部分,也影响积分部分,使总的输出既具有调节及时、克服偏差

有力的特点,又具有克服余差的性能。

由于它是在比例调节(粗调)的基础上,有加上一个积分调节(细调),所以又称再调调节或重定调节。但是,积分时间太小,积分作用就太强,过程振荡

25

剧烈,稳定程度低;积分时间太大,积分作用不明显,余差消除就很慢。如果把积分时间放到最大,PI调节器就丧失了积分作用,成了一个纯比例调节器。

5.2.4 比例积分微分调节

微分调节的作用主要是用来克服被调参数的容量滞后。在生产实际中,有经验的工人总是既根据偏差的大小来改变阀门的开度大小(比例作用),同时又根据偏差变化速度的大小进行调节。比如当看到偏差变化很大时,就估计到即将出现很大的偏差而过量地打开(关闭)调节阀,以克服这个预计的偏差,这种根据偏差变化速度提前采取的行动,意味着有“超前”作用,因而能比较有效地改善容量滞后比较大的调节对象的调节质量。

什么是微分调节? 微分调节是指调节器的输出变化与偏差变化速度成正比,可用数学表达式表示为:

?u?TDd(?e) (3-3) dt式中: ?u——调节器的输出变化值; TD——微分时间; d(?e)——偏差信号变化的速度。 dt从上式可知,偏差变化的速度越大,微分时间TD越长,则调节器的输出变化就越大。对于一个固定不变的偏差,不管其有多大,微分作用的输出总是零,这是微分作用的特点。 由于实际微分器的比例度不能改变,固定为100%,微分作用也只在参数变化时才出现,所以实际微分器也不能单独使用。一般都是和其它调节作用相配合,构成比例微分或比例积分微分调节器。 比例积分微分调节又称PID调节,它可由下式表示: 11d(?e)[?e???edt?TD] (3-4) PTIdt ?u?

26

PID调节中,有三个调节参数,就是比例度P、积分时间TI、微分时间TD。适当选取这三个参数值,就可以获得良好的调节质量。

由分析可知,PID三作用调节质量最好,PI调节第二,PD调节有余差。纯比例调节虽然动偏差比PI调节小,但余差大,而纯积分调节质量最差,所以一般不单独使用。

第六章 电路的调试

根据原理图,可将整个电路分成温度传感器及其信号放大电路和A/D、D/A变换电路两大模块。在调试时可以按模块分别调试。

首先,对温度传感器及其信号放大电路进行调试:

? 对运算放大器LM741进行调零。将图3—4中的A,B端短接,也即使

运算放大器的输入为零,然后调节电位器R0,使输出端 UOUT = 0V 即可。

? 调节LM741的增益。方法:将热电阻置于50℃的水中,理论上要求放

大线路的输出电压UOUT = 0V 若不满足,则可调节RL电位器。

再次,对A/D、D/A部分调试输入一定的变化数值看其输出的情况如果偏差较大则从新调整参数,直到符合要求则完毕。

第七章 结束语

该基于DS18B20的多点温度测量系统具有硬件结构简单、易于制作、价格

低廉、测量值精确和易于操作等许多优点,但由于实验室条件所限,暂时只做两点的温度测量,并且控制端暂时只对一个DS18B20传感器周围环境进行控制,与另一个传感器作参考比较。但在实际应用中可根据具体情况进行更多点的扩展和对多点分别进行控制。随着现代信息技术的飞速发展和传统工业改造的逐步实

27

现,基于DS18B20的多点温度测量系统已经广泛应用于控制、化工等诸多领域。总之,本次毕业设计顺利完成,基本达到了毕业设计的要求。

本文在深入分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。

总结此次课设,得到以下结论:

①针对实验室现有测温系统的特点,提出了一套应用数字式温度传感器

DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济实用性。

②以单总线为基本结构,采用ATMEL公司的 AT89C51单片机为总线命令,

实现与DSl8B20的总线接口,并提供具体电路设计。

③.在通信的实现上,以MAX232芯片作为TTL电平与232电平的转换单元,

实现单片机和PC的RS232通信硬件线路,并设计了一套可行的通信协议和通信软件。

④.软件编程采用模块化、结构化设计,易于修改和维护。

由于时间和精力的限制,对后续的研究还应在以下方面逐步完善:

①.应用软件的完善。温度采集方面,一次命令全部单总线上的DS18B20进

行温度转换,减少系统所需时间。

②.进一步完善系统的可靠性。由于实际经验的欠缺,设计上难免有考虑不

周之处。当某一个传感器出现故障时,虽然系统能发现该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还需要在今后应用时加以完善。

③.控制部分的控制效果并不是很理想,以后可以在该部分进行PID算法控

制,以提高控制精度。

总之 ,本论文在新型数字温度测控系统方面做了一定的研究工作。该系统初步完成了温度测控方案的预定目标,为今后实现数字化与网络化的温度测控系统工程提供了一种新的参考。

第八章 参考文献

[1] 陈汝全,林水生,实用微机与单片机控制技术,电子科技大学出版社 [2] 曹立学,张鹏超 计算机控制技术,西安电子科技大学出版社 [3] 刘广扬,刘德溥,自动检测和过程控制,冶金工业出版社 [4] 谢克明,刘文定,谢刚,自动控制理论,兵器工业出版社

28

[5] 贾秀美,数字电路实践技术,中国科学技术出版社

[6] 潘新民,王燕芳,微型计算机控制技术,高等教育出版社

附录一 元器件明细表 附录二 最小系统图

附录三 温度控制电路原理图

附录四 主程序

#include

29

#define uchar unsigned char #define uint unsigned int

#define LED P0

#define ADDATA P1

#define DADATA P3

#define SELECT P2 uchar

digivalue[]={0x28,0x7e,0x0a2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};

uint indata ;

uchar outdata,inputch=0,outdatao=0; uint advalue;

sbit DA_WR=P2^6;

sbit DA_CS=P2^7; sbit SHW=P2^0 ; sbit GEW=P2^1 ; sbit XIW=P2^2 ;

sbit AD_WR=P2^3;

sbit AD_CS=P2^5;

sbit AD_RD=P2^4; float Tset; float outdatasi=0,outdatas;

30

void delay() {

unsigned int x; uchar xx=100;

for(x=0;x<1000;x++); }

void delayss(int xx) {

unsigned int x;

for(x=0;x

void delay_run() { int j;

for(j=0;j<300;j++); }

void led(uint adt) { SHW=0;

31

LED=digivalue[adt/100] ; delay() ; SHW=1; GEW=0;

LED=digivalue[adt/10]-0x20 ; delay() ; GEW=1; XIW=0;

LED=digivalue[adt] ; delay() ; XIW=1; }

/*uchar i=0; while(1) {

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

SELECT=select[i];

DIGI=digivalue[i]; delay(); } }

32

void ADC_JJ()

{ AD_CS=0;

AD_WR=0;

delay();

AD_WR=1;

AD_CS=1;

AD_CS=0;

AD_RD=0; indata=ADDATA; delay();

AD_RD=1; indata=indata+3; }

void DAC_SS(uchar x)

{

DA_CS=0;

DA_WR=0;

DADATA=x;

33

delay_run();

DA_WR=1; DA_CS=1;

}

char code SST516[3] _at_ 0x003b; main() {int i;

float kp,ki,kd;

float e1,o1,o2; P0=0xff; P1=0xff; P2=0xff; P3=0xff; outdata=0; //InitUART(); kp=40.3; ki=0.275; kd=0.3; o1=0; o2=0;

34

Tset=30; while(1) {

ADC_JJ(); advalue=(indata*2-40); e1=(Tset)-advalue/10;

if((kp*e1-ki*o1+kd*o2)<0)

outdata=0; else

outdata=(unsigned char)(kp*e1-ki*o1+kd*o2); o2=o1;

o1=outdata; if((Tset-advalue/10)>=2) {

outdata=250; outdatao=250; }

if(outdata<=0xf0) {

if(Tset>advalue/10)

35

{

outdatas+=0.8; outdatasi=outdatas;

outdatao=outdata+outdatasi; if((outdata+outdatasi)>=0xff) outdatao=0xff; }

if(Tset

outdatas-=0.8; outdatasi=outdatas; if((outdata+outdatasi)<0) outdatao=0; else

outdatao=outdata+outdatasi; } }

DAC_SS(outdatao); for (i=0;i<400;i++) {

led(advalue); }

36

}}

37

38

39

本文来源:https://www.bwwdw.com/article/2k46.html

Top