温度控制器

温度控制器

姓名: 专业班级: 指导教师:

摘 要

本文主要讨论Pt100传感器在温度控制系统中的应用。采用Pt100恒流源三线制,采集信号经过AD7705转换之后一方面传至ATmega16L 单片机处理并通过LED 数码管显示出来,另一方面通过PID 算法调节PWM ,从而控制双向可控硅控制周期内的通断占空比(即控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。本文详细阐述了基于单片机的温度控制系统的硬件组成、软件设计及相关的接口电路设计。并且充分考虑了系统的可靠性,采取了相应的措施予以保证。针对温控系统进行了实验,通过对实验数据的分析表明本文所述的基于单片机的温度控制系统的设计的合理性和有效性。 关键词:单片机 温度控制 Pt100 PID 控制

Temperature Controller

Abstract :This article focused on Pt100 temperature sensor control system. Constant current source using three-wire Pt100 system, signal acquisition on the one hand, after the conversion AD7705 single-chip processing and spread through ATmega16L digital tube LED display on the other hand, through the regulation of PID algorithm PWM, to control two-way thyristor control cycle off duty cycle (that is, temperature control box the size of the heating power), temperature-controlled box to achieve the purpose of temperature control. Described in detail in this article based on single-chip temperature control system hardware components, software interface design and circuit design. And give full consideration to the reliability of the system and take the appropriate measures to ensure that. Temperature control system for the experiment, through the analysis of experimental data described in this paper, based on single-chip temperature control system design and effectiveness of the reasonable.

KEY : Microcontroller Temperature control system Pt100 PID Control

目 录

第1章 前 言 ...................................................... 1

1.1 课题背景及实际意义........................................... 1

1.2 主要研究内容................................................. 1

1.3 主要成果..................................................... 2

第2章 系统总体方案设计 ........................................... 3

2.1 系统方案论证................................................. 3

2.2 系统方案设计 . ............................................... 5

2.2.1 Pt100的选择.............................................. 5

2.2.2 控温方案选择 ............................................. 5

2.2.3 控温测温的算法 ........................................... 6

第3章 系统硬件设计 ............................................... 8

3.1 主控模块器件选择及设计....................................... 8

3.2 输入通道设计 . .............................................. 10

3.2.1 Pt100温度传感器........................................ 11

3.2.2 AD转换.................................................. 12

3.3 输出通道设计 ............................................... 16

3.3.1 温度显示 ................................................ 16

3.3.2 加热电路 ................................................ 18

3.4 串行通信接口电路 ............................................ 19

3.5 电源电路 .................................................... 20

3.6 硬件抗干扰措施 .............................................. 21

3.7 本章小结 .................................................... 22

第4章 系统软件设计 .............................................. 23

4.1 开发环境介绍................................................ 23

4.1.1 ICCAVR介绍............................................... 23

4.1.2 ICCAVR中的文件类型及其扩展名............................. 24

4.2 系统软件组成................................................ 25

4.3 主程序模块.................................................. 25

4.4 数据采集模块................................................ 26

4.5 数据处理模块................................................ 30

4.5.1 数字滤波 ............................................... 30

4.5.2 显示处理 ............................................... 30

4.6 PID 控制 .................................................... 31

4.7 软件抗干扰措施.............................................. 32

第5章 测量调试 .................................................. 33

5.1 系统调试.................................................... 33

5.2 调试结果.................................................... 35

结 论 ........................................................... 37

致 谢 ........................................................... 38

参考文献 ......................................................... 39

第1章

1.1 课题背景及实际意义 前 言

温度是生活及生产中最基本的物理量,它表征的是物体的冷热程度。自然界中任何物理、化学过程都紧密的与温度相联系。在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。在实际的生产实验环境下,由于系统内部与外界的热交换是难以控制的,其他热源的干扰也是无法精确计算的,因此温度量的变化往往受到不可预测的外界环境扰动的影响。为了使系统与外界的能量交换尽可能的符合人们的要求,就需要采取其他手段来达到这样一个绝热的目的,例如可以让目标系统外部环境的温度与其内部温度同步变化。根据热力学第二定律,两个温度相同的系统之间是达到热平衡的,这样利用一个与目标系统温度同步的隔离层,就可以把目标系统与外界进行热隔离。另外,在大部分实际的环境中,增温要比降温方便得多。因此,对温度的控制精度要求比较高的情况下,是不允许出现过冲现象的,即不允许实际温度超过控制的目标温度。特别是隔热效果很好的环境,温度一旦出现过冲,将难以很快把温度降下来。这是因为很多应用中只有加热环节,而没有冷却的装置。同样道理,对于只有冷却没有加热环节的应用中,实际温度低于控制的目标温度,对控制效果的影响也是很大的。

近年来,温度的检测在理论上发展比较成熟,但在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。温度控制系统的设计是为了满足市场对成本低、性能稳定、可远程监测、控制现场温度的需求而做的课题,具有较为广阔的市场前景。

1.2 主要研究内容

本设计主要是完成对温度的测量和PID 控制以及LED 显示,主要研究内容包括:

① 如何实现温度信号的采集并转换为数字信号。

② 如何将采集的温度通过A VR 单片机控制运算并通过LED 数码管显示出

来。

③ 如何让将测得温度值与设定温度值进行比较,并进行PID 调节至设定值。 ④ 如何提高系统精度,对系统采取何种保护措施。

⑤ 系统的软、硬件调试工作。

1.3 主要成果

本次毕业设计按照毕业设计任务书的规划,基本完成了毕业设计课题的预期目标,并取得了良好的效果。通过毕业设计得到如下几个方面的成果:

① 对单片机温度控制系统,计算机与单片机之间的通信,以及PID 控制原理有了更进一步的了解。

② 完成系统的硬件设计,包括采样电路、A/D转换电路、主控制电路、控温电路、保护电路等等的设计。

③ 完成系统的软件设计,包括主程序模块、控制运算模块、数据输入输出及处理模块等一些子功能模块的设计。

④ 实现了单片机与计算机之间的通信。

⑤ 完成了系统的软、硬件调试工作。

第2章

2.1 系统方案论证 系统总体方案设计

温度控制仪的硬件电路一般采用模拟电路和单片机两种形式。

模拟控制电路的各控制环节一般由运算放大器、电压比较器、模拟集成电路以及电容、电阻等外围元器件组成。它的最大优点是系统响应速度快,能实现对系统的实时控制。根据计算机控制理论可知,数字控制系统的采样速率并非越快越好,它还取决于被控系统的响应特性。在本系统中,由于温度的变化是一个相对缓慢的过程,对温控系统的实时性要求不是很高,所以模拟电路的优势得不到体现。另外,模拟电路依靠元器件之间的电气关系来实现控制算法,很难实现复杂的控制算法。

单片机是大规模集成电路技术发展的产物,属于第四代电子计算机。它是把中央处理单元CPU(Central Processing Unit)、随机存取存储器RAM(Random Access Memory)、只读存储器ROM(Read Only Memory)、定时/计数器以及I/O(Input/Output)输入输出接口电路等主要计算机部件都集成在一块集成电路芯片上的微型计算机,它的特点是:功能强大、运算速度快、体积小巧、价格低廉、稳定可靠、应用广泛。由此可见,采用单片机设计控制系统,不仅可以降低开发成本,精简系统结构,而且控制算法由软件实现,还可以提高系统的兼容性和可移植性。

由于设计的温度控制器测温范围为室温至125℃,系统选用Pt100传感器,因为其在室温至125℃范围内具有信号强、精度高、稳定性和复现性好的特点。Pt100传感器检测温度并将其转换为微弱的电信号,通过AD 转换器转换为数字量,A/D转换器采用的是16位的AD 转换芯片AD7705,它包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路、∑-△调制器、可编程数字滤波器等部件组成。能直接将传感器测量到的多路微小信号进行A/D转换。

综合考虑后温度控制系统以ATmega16L 单片机为核心,温控箱的温度由Pt100 铂电阻温度传感器检测并转换成微弱的电压信号,再通过16位的A/D转换器AD7705转换成数字量。此数字量经过数字滤波之后,一方面将温控箱的温

度通过控制面板上的LED 数码管显示出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,采用PID 控制算法进行运算,最后通过控制双向可控硅控制周期内的通断占空比(即控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。如果实际测得的温度值超过了系统给定的极限安全温度,保护电路会做出反应,从而保护温控箱。

单片机的软件开发主要用到两种语言:汇编语言和C 语言。与汇编语言相比,C 语言具有以下的特点:

① 具有结构化控制语句结构化控制语言的显著特点是代码和数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护及调试。

② 适用范围大和可移植性好同其他高级语言一样,C 语言不依赖于特定的CPU ,其源程序具有良好的可移植性。目前,主流的 CPU 和常见的MCU 都有C 编译器。所以,本系统的软件选择使用C 语言开发。由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块之间数据关系松散的原则,将各功能模块组织成模块化的软件结构。

温度控制算法方面,在对温控箱数学模型辨识的基础之上,结合本温控系统的要求采用了经典的PID 控制算法,这主要是由于PID 控制相对来说算法简单、鲁棒性好以及可靠性高。此外,在设计PID 控制器时,依靠经验和试验的方法在系统调试时确定PID 控制器的参数K P 、K I 、K D ,然后用代码实现算法。

系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将A/D转换的数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序;控制算法模块完成控制系统的PID 运算并且输出控制量。

综上所述:系统所选元件和设计思路、设计语言的选择合理可行。

2.2 系统方案设计

2.2.1 Pt100的选择

传感器的种类多种多样,电阻式温度检测器(RTD,Resistance Temperature Detector) 是一种物质材料做成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟著上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。大部分电阻式温度检测器是以金属作成的, 其中以白金(Pt)做成的电阻式温度检测器,最为稳定—耐酸碱、不会变质、相当线性,在所有的温度传感器中铂电阻是最稳定的一种,其测温范围宽达—250℃~640℃,因此是一种具有代表性的测温方法。

根据本设计系统要求我们选择Pt100作为温度传感器检测温度,Pt100型铂电阻意思即说明其铂电阻在0℃时电阻值为100Ω,在-200℃到850℃范围内是精度最高的温度传感器之一。与热电偶、热敏电阻相比较,铂的物理、化学性能都非常稳定,尤其是耐氧化能力很强,离散性很小,精度最高,灵敏度也较好。这些特点使得铂电阻温度传感器具有信号强、精度高、稳定性和复现性好的特点。铂电阻温度传感器主要有两种类型:标准铂电阻温度传感器和工业铂电阻温度传感器。在测量精度方面,工业铂电阻的测量稳定性和复现性一般不如标准铂电阻,这主要有两个方面的原因,其一是高温下金属铂与周围材料之间的扩散使其纯度受到污染,从而降低铂电阻测温的复现性能,其二是因为高温条件下的应力退火影响了其复现性能。但是标准铂电阻温度传感器也存在价格昂贵,维护起来较为困难等缺点。考虑到成本,故在本系统中采用工业级Pt100铂电阻作为温度传感器。

2.2.2 控温方案选择

首先由Pt100热电阻温度传感器所测得的温度实际值通过信号调理电路和16位的AD7705转换后送入单片机ATmega16L ;然后测量出的温度实际值和设定的目标温度值进行比较,所得的差值经自适应模糊PID 算法得出控制量, 控制PWM 波的输出占空比。利用软件脉宽调制技术, 由PD5脚输出相应的PWM 波,实现对双向可控硅的控制, 从而控制发热丝的发热功率。

其中控温电路中采用可控硅技术,可控硅一种大功率电器元件,也称晶闸管具有体积小、效率高、稳定性好、工作可靠等优点。本控温系统采用BT136双向可控硅,双向可控硅在结构上相当于两个单向的可控硅方向连接,这种可控硅具有双向导通功能,其通断状态由控制极G 决定。在控制极G 上加正脉冲(或负脉冲)可使其正向(或反向)导通。这种装置的优点是控制电路简单,没有反向耐压问题,因此特别适合做交流无触点开关使用。通过BT136双向可控硅的通断来控制发热丝的通断周期,从而控制发热丝温度。和大功率的场效应管一样,可控硅在与微型计算机接口连接时也需加接光电隔离器,触发脉冲电压应大于4V ;脉冲宽度应大于20us 。为了提高效率,要求触发脉冲与交流电压同步,采用检测交流电过零点来实现。通过光电隔离器控制双向可控硅,实现对电阻丝加热。

2.2.3 控温测温的算法

本文控温采用PID 控制方案,采集和控制的关系是:温度->PID算法->PWM控制可控硅导通角加热。这里可以看出PID 类似于数学的函数,温度和PWM 加热就是通过这个函数映射过来的。只要温度采集正确并和设置的值作比较(减法),得出一个差值,通过PID 算法后得出控制量输出,就能达到目的。接着进行PID 的参数调试,把最优参数调试出来(数学的函数)。

PID 控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差e(t)::

e(t)=r(t)-y(t)

将偏差e(t)的比例(proportional)、积分(Integral)和微分(Differential)通过线性组合构成控制量,对被控对象进行控制,因此称为PID 控制。

PID 控制系统原理如图2-1:

图2-1

在模拟系统中,PID 算法的表达式为:

P(t)=Kp[e(t)+1de (t ) ] e (t ) dt +T D ⎰T 1dt

式中 P(t)----调节器的输出信号

e(t)-----调节器的偏差信号

K p -----调节器的比例系数

T I -----调节器的积分时间

T D -----调节器的微分时间

PID 控制器各校正环节的作用如下:

(1) 比例环节 即时成比例地反映控制系统的偏差信号e(t),偏差一旦产生,

控制器立即产生控制作用,以减少偏差;

(2) 积分环节 主要用于消除静差,提高系统的无差度。积分作用的强弱取

决于积分时间常数,T I 越大,积分作用越弱,反之则越强;

(3) 微分环节 能够反映偏差信号的变化趋势(变化速率) ,并且能在偏差信号

值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作

速度,减少调节时间。

第3章 系统硬件设计

本文所研究的温度控制系统硬件部分按功能大致可以分为以下几个部分:单

片机主控模块、输入通道、输出通道、保护电路等。图3-1为硬件设计原理图,

温度控制系统以ATmega16L 单片机为核心,温控箱的温度由Pt1OO 铂电阻温度传感

器检测并转换成微弱的电压信号,再通过16位的A/D转换器AD7705转换成数字量

并经过数字滤波之后,一方面将温控箱的温度通过控制面板上的液晶显示器显示

出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,采

用PID 控制算法进行运算,最后通过控制双向可控硅控制周期内的通断占空比(即

控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。如

果实际测得的温度值超过了系统给定的极限安全温度,保护电路会做出反应,从

而保护温控箱。

图3-1

3.1 主控模块器件选择及设计

主控模块电路由ATmega16L 单片机、外部时钟电路、复位电路。其中ATmega16L

单片机的特点:

高性能、低功耗的8位AVR 微处理器。

先进的RISC 结构:131条指令-大多数指令执行时间为单个时钟周期,32个8

位通用工作寄存器,全静态工作,工作于16 MHz 时性能高达16 MIPS ,只需两个

时钟周期的硬件乘法器。

非易失性程序和数据存储器:16K 字节的系统内可编程Flash(擦写寿命:

10,000 次) ,具有独立锁定位的可选Boot 代码区(通过片上Boot 程序实现系统内

编程真正的同时读写操作),512字节的EEPROM(擦写寿命: 100,000 次),1K 字节

的片内SRAM, 可以对锁定位进行编程以实现用户程序的加密。

JTAG 接口( 与IEEE 1149.1 标准兼容):符合JTAG 标准的边界扫描功能, 支

持扩展的片内调试功能, 通过JTAG 接口实现对Flash 、EEPROM 、熔丝位和锁定位的

编程。

外设特点:两个具有独立预分频器和比较器功能的8位定时器/计数器, 一个

具有预分频器、比较功能和捕捉功能的16位定时器/计数器, 具有独立振荡器的实

时计数器RTC, 四通道PWM,8路10位ADC(8个单端通道,TQFP 封装的7个差分通道,2

个具有可编程增益(1x,10x, 或200x )的差分通道), 面向字节的两线接口, 两个可

编程的串行USART, 可工作于主机/从机模式的SPI 串行接口, 具有独立片内振荡器

的可编程看门狗定时器, 片内模拟比较器。

特殊的处理器特点:上电复位以及可编程的掉电检测,片内经过标定的RC 振

荡器,片内/片外中断源。

6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby

模式以及扩展的Standby 模式[5]

图3-2为ATmega16 TQFP封装引脚图:

图3-2

_____________单片机复位电路由外部复位电路实现,ATmega16复位引脚为RESET (4脚),

图3-3(a)为ATmega16L 复位电路;图3-3(b)为外部振荡电路,本系统采用的晶振

振荡器电路频率为7.3728M 。

图3-3 (a ) 图3-3 (b )

3.2 输入通道设计

系统输入通道的作用是将温控箱的温度(非电量) 通过传感器电路转化为电

量(电压或电流) 输出,本系统就是将温度转化为电压的输出。由于此时的电量(电

压) 还是单片机所不能识别的模拟量,所以还需要进行A/D转换,即将模拟的电量转化成与之对应的数字量,提供给单片机判断和控制。输入通道由传感器、A/D转换等电路组成。

3.2.1 Pt100温度传感器

铂电阻测温电路的工作方式一般分为恒压方式和恒流方式两种。按照接线方式的不同又可以分为二线制、三线制和四线制三种。四线制就是从热电阻两端引出4线,接线时电路回路和电压测量回路独立分开接线,测量精度高,需要导线多。三线制就是引出三线,Pt100B 铂电阻接线时电流回路的参端和电压测量回路的参考为一条线(即检测设备的I- 端子和V-端子短接)。精度稍好。 两线制就使引出两线,Pt100B 铂电阻接线时电流回路和电压测量回路合二为一(即检测设备的I-端子和 V-端子短接、I+端子和V+短接)。测量精度差。本系统采用的是恒流三线制接法对Pt100铂电阻进行采样。铂电阻温度传感器采样电路如图3-4所示。

图3-4

因为:V out -V N V N -V REF = R 5R 4

V g -V P

R 8=V P R 7

因为:R 4=R5=R7=R8

所以:2V N =Vout +VREF 2V P =Vg

得出:V g -V out =VREF

并且:I 1=I2

I 1(100+Rt)-100I2 =VOUT1

V 1V V R =2

V 2R t +100V2=100V1 V 1-V 2=2t =I2R t R t +100100100

所以:I 2R t =Vout1=Rt I

上面式子中Rt 为温度传感随着温度变化所变化的电阻值。

采用恒流三线制接法的测温电路中需要用到一个稳定的基准电压源。本系统采用精密基准电压源Ref192对温度传感器进行稳压,ref192的优点是与普通的基准电源相比具有温漂小、输出噪声小、动态内阻小、有短路保护等特点。主要参数是:基准电压V R =2.5V,温度系数T C ﹤5ppm/℃,输出噪声电压为25uv 。当基准电压V R =2.5V,温度范围在10℃~80℃时,温度传感器输出电压范围为1.5V ~2V 。图中参考电压V REF 即来自Ref192。基准电压源电路如图3-5所示。

图3-5

3.2.2 AD 转换

在单片机控制系统中,控制或测量对象的有关变量,往往是一些连续变化的

模拟量,如温度、压力、流量、位移、速度等物理量。但是大多数单片机本身只能识别和处理数字量,因此必须经过模拟量到数字量的转换(A/D转换) ,才能够实现单片机对被控对象的识别和处理。完成A/D转换的器件即为A/D转换器。 A/D转换器的主要性能参数有:

(1)分辨率 分辨率表示A/D转换器对输入信号的分辨能力。A/D转换器的分辨率以输出二进制数的位数表示。

(2)转换时间 转换时间指A/D转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。不同类型的转换器转换速度相差甚远。

(3)转换误差 转换误差表示A/D转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示。

(4)线性度 线性度指实际转换器的转移函数与理想直线的最大偏移。目前有很多类型的A/D转换芯片,它们在转换速度、转换精度、分辨率以及使用价值上都各具特色,其中大多数积分型或逐次比较型的A/D转换器对于高精度测量,其转换效果不够理想。温度控制中A/D转换是非常重要的一个环节。传统的电路设计方法是在A/D转换前增加一级高精度的测量放大器,这样就增加了成本,电路也较为复杂。综合考虑,本系统选用AD(ANALOGDEVICES) 公司生产的16位AD 转换芯片AD7705作为本温控系统的A/D转换器。

AD7705是AD 公司生产的16位∑-△型A/D转换器,用于测量低频模拟信号,它包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路、∑-△调制器、可编程数字滤波器等部件组成,可通过软件编程来直接测量传感器输出的各种微小信号。AD7705采用三线串行接口,具有两个全差分输入通道,能达到0.003%非线性的16位无误码输出,其增益和输出更新率均可编程设定,还可以选择输入模拟缓冲器,以及自校准和系统校准方式。工作电压3V 或5V 。3V 电压时;最大功耗为1mw ,等待模式下电源电流仅为8uA 。图3-6为AD7705引脚图

图3-6

AD7705引脚功能描述如下:

(1)SCLK串行时钟,将一个外部的串行时钟加于这一输入端口,以访问AD7705的串行数据。该串行时钟可以是连续时钟以连续的脉冲串传送所有数据,反之,它也可以是非连续时钟,将信息发送给AD7705。

(2)MCLKIN为转换器提供主时钟信号,能以晶体/谐振器或外部时钟的形式提供。晶体/谐振器可以接在MCLKIN 和MCLKOUT 两引脚之间,时钟频率的范围为500kHz-5MHz 。

(3)MCLKOUT:当主时钟为晶体/谐振器时,晶体/谐振器被接在MCLKIN 和MCLKOUT 之间,如果在MCLKIN 引脚处接上一个外部时钟,MCLKOUT 将提供一个反向时钟。

(4)CS片选信号,低电平有效。

(5)RESET复位输入,低电平有效。

(6)AIN2(+)差分模拟输入通道2的正输入端。

(7)AIN1(+)差分模拟输入通道l 的正输入端。

(8)AIN1(-)差分模拟输入通道1的负输入端。

(9)AIN2(-)差分模拟输入通道2的负输入端。

(10)REFIN(+)差分基准输入的正输入端,基准输入是差分的,并规定REFIN(+)————————

必须大于REFIN(-),REFIN(+)可以取VDD 和GND 之间的任何值。

(11)REFIN(-)差分基准输入的负输入端,REFIN(-)可以取VDD 和GND 之间的任何值,且必须满足REFIN(+)大于REFIN(-)。

(12)DRDY逻辑输出,这个输出端上的逻辑低电平表示可以从AD7705的数据寄存器获取新的输出字。完成对一个完全的输出字的读操作后,该引脚立即回到高电平。当该引脚处于高电平时,不能进行读操作,当数据更新后,该引脚又返回低电平。

(13)DOUT串行数据输出端,从片内的输出移位寄存器读出的串行数据由此端输出。根据通信寄存器中的寄存器选择位,移位寄存器可以容纳来自通信寄存器、时钟寄存器或数据寄存器的信息。

(14)DIN串行数据输入端,向片内的输入移位寄存器写入的串行数据由此输入。

系统AD 采样电路如图3-7所示,AD7705的SCLK 信号接ATmega16L 的PB0(XCK/T0)引脚,DIN 接ATmega16L 的PB1(T1)引脚,DOUT 接PB2(AIN0/INT2)引脚,DRDY 接PD2(INT0)引脚。

————————

图3-7

3.3 输出通道设计

3.3.1 温度显示

本温度控制系统输出温度采用的四位LED 数码管显示,HD7279A 驱动驱动四位数码管。HD7279A 是一片具有串口接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED 显示、键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受BCD 码或16进制码,并同时具有2种译码方式,该芯片具有片选信号,可方便地实现多于8位的显示或多余64键的键盘接口。

HD7279A 的特点:

● 串口接口,无需外围元件可直接驱动LED 。

● 各位独立控制译码/不译码及消隐和闪烁属性。

● (循环)左移/(循环) 右移指令。

● 具有段寻址指令,方便控制独立LED 。

● 64键键盘控制器,内含去抖动电路。

● 有DIP 和SOIC 两种封装形式供选择。

HD7279A 引脚说明:引脚图如图3-8。

图3-8

VDD 正电源

NC 无连接,必须悬空

VSS 接地

——CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据

CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效

DATA 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在‘读’指令最后一个时钟的下降沿变为输出端

KEY 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平

SG-SA 段g —段a 驱动输出

DP 小数点驱动输出

DIG0-DIG7 数字0-数字7的驱动输出

CLKO 振荡输出端

RC RC振荡器连接端

RESET 复位端

HD7279A 驱动数码管电路如图3-9,HD7279A 需要外接RC 振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15pF,如果芯片无法正常工作,应先检查此振荡电路。其中CS 接ATmega16L PC3(TMS)引脚,CLK 接ATmega16L PC2(TCK)引脚,DATA 接PC1(SDA)引脚,K E Y 接PC0(SCL)引脚。 ——————

图3-9

3.3.2 加热电路

加热电路硬件部分采用可控硅输出控制,PWM 波控制输出功率。

可控硅是一种功率半导体器件,简称SCR ,也称晶闸管。它分为单向可控硅和双向可控硅,在微机控制系统中,可作为功率驱动器件。可控硅具有控制功率小、无触点、长寿命等优点,在交流电机调速、调功、随动等系统有着广泛的应用。双向可控硅相当于两个单向可控硅反向并联。双向可控硅与单向可控硅的区别是:

(l)它在触发之后是双向导通;

(2)在控制极上不管是加正的还是负的触发信号,一般都可以使双向可控硅导通。

因此双向可控硅特别适合用作交流无触点开关。

图3-10为可控硅输出电路

图3-10

本系统中与可控硅配套使用的是MOC3041光电藕合双向可控硅驱动器,与一般的光藕器件不同之处是MOC3041输出部分是硅光敏双向可控硅,还带有过零触发检测器,以保证电压接近零时触发可控硅。单片机PWM 口接光电耦合器MOC3041,再接上BT136双向可控硅,通过PWM 控制双向可控硅的通断情况,从而控制发热丝的发热功率。其中R13和R14与C29组成的电路是为了接收浪涌电流,为了系统安全所以加上保险丝。

3.4 串行通信接口电路

目前,广泛使用的串行数据接口标准有RS-232,RS-422与RS-485三种。其中RS-232是美国电子工业协会正式公布的串口总线标准,也是目前最为常用的串行接口标准,用来实现计算机与计算机之间,计算机与外设之间的数据通讯。串行通信接口的基本任务是实现数据格式化。来自CPU 的是普通的并行数据,接口电路应具有实现不同串行通信方式下的数据格式化的任务。具体任务是:

(1) 进行串—并转换;

(2) 控制数据传输速率;

(3) 进行错误检测;

(4) 进行TTL 与EIA 电平转换;

(5) 提供EIA-RS-232接口标准所要求的信号线。

由于CMOS 电平和RS-232电平不匹配,因此要实现ATmega16L 单片机和PC 机之间的通信,必须在它们之间加接电平转换器。系统设计采用MAXIM 公司的RS-232接口芯片MAX232,这是一种标准的RS-232接口芯片。MAX232只需+5v电源供电,其内部的电源变化成±10V 电源用于RS232通信。该芯片集

成有两路收发器,可将单片机输入的TTL/CMOS电平转换为RS232电平发送给PC 机,或将从PC 机接收的RS232电平转换为TTL/CMOS电平发送给单片机。MAX232为双列直插16脚封装。系统串口通信电路如图3-11所示:

图3-11

其中T1OUT 连接上位机串口的RX 端,R1IN 连接上位机串口的TX 端,R1OUT 和T1IN 是TTL/CMOS发送器的输出和输入端,分别连接ATmega16L 的PD0和PD1端。

3.5 电源电路

系统所用直流电源由三端集成稳压器组成的串联型直流稳压电源提供。设计选用LM7805三端集成稳压器,提供5v 直流电压。变压器将220V 的市电降压后再通过整流桥整流之后采用了大容量的电解电容进行滤波,以减小输出电压纹波。由于电解电容器在高频下工作存在电感特性,对于来自电源侧的高频干扰不能抑制,因此在整流电路后加入高频电容改善纹波。电路如图3-12:

图3-12

市电经过变压器降压后变为9v 交流电压,此电压一方面经过光电耦合从而进行过零检测,一方面经过交流-直流变换和电解电容滤波,减少电压纹波,再经7805稳压器输出5v 电压经过滤后分别接模拟地和数字地。

3.6 硬件抗干扰措施

硬件抗干扰是应用系统最基本和最主要的抗干扰手段,一般从防和抗两方面入手来抑制干扰。其总的原则是:抑制或消除干扰源,切断干扰对系统的藕合通道,降低系统对干扰信号的敏感性。本系统硬件抗干扰设计具体措施有:隔离、接地、滤波等常用方法。

(l)隔离 主要用于过程通道的隔离。光电耦合器能有效地抑制尖峰脉冲及各种噪声干扰,提高信噪比。在输入、输出通道采用光电藕合器将控制系统与外围接口隔离;

(2)接地 接地应遵循的基本原则是:数字地、模拟地、屏蔽地应该合理接地,不能混用。要尽可能地使接地电路各自形成回路,减少电路与地线之间电流耦合。合理布置地线使电流局限在尽可能小的范围内,并根据地电流的大小和频率设计相应宽度的印刷电路和接地方式。模拟电源和数字电源各自并接0.1uF 的陶瓷电容(去藕电容) ;

(3)滤波 电源系统干扰源主要是高次谐波。无源滤波器是一个简单的、有效的低通滤波器,它只让电网中基波通过,而对高次谐波有急剧的衰减作用,对串模干扰和共模干扰信号具有很强的双向抑制作用。

3.7 本章小结

本章主要介绍了温度控制系统的硬件电路主要模块的设计。在介绍了单片机的基础上设计了系统采用的传感器铂电阻采样电路,这是系统的模拟电路部分,也是控制信息的源头,为本温度控制系统提供了温度电信号。然后通过A/D转换芯片AD7705把温度电信号转换成数字信号送入ATmega16L 中,通过微控制器,实现对温度信号的显示、判断及控制。最后系统输出的适当控制量驱动系统的执行机构—双向可控硅。通过对可控硅导通角的调节,调节被控对象温控箱的加热,实现系统对被控对象的温度控制。考虑到系统的安全,还设计了保险丝保护电路。

通过理论分析和实践,设计制作出系统电路板,图3-13为系统硬件电路板:

图3-13

第4章 系统软件设计

在微机测控系统中,软件与硬件同样重要。硬件是系统的躯体,软件则是灵魂,当系统的硬件电路设计好之后,系统的主要功能还是要靠软件来实现,而且软件的设计在很大程度上决定了测控系统的性能。为了满足系统的要求,编制软件时一般要符合以下基本要求:

(l)易理解性、易维护性 要达到易理解和易维护等指标,在软件的设计方法中,结构化设计是最好的一种设计方法,这种设计方法是由整体到局部,然后再由局部到细节,先考虑整个系统所要实现的功能,确定整体目标,然后把这个目标分成一个个的任务,任务中可以分成若干个子任务,这样逐层细分,逐个实现;

(2)实时性 实时性是电子测量系统的普遍要求,即要求系统及时响应外部事件的发生,并及时给出处理结果。近年来,由于硬件的集成度与运算速度的提高,配合相应的软件,实时性比较容易满足设计要求;

(3)准确性 准确性对整个系统具有重要意义,尤其是测量系统,系统要进行一定量的运算,算法的正确性和准确性对结果有着直接的影响,因此在算法的选择、计算的精度等方面都要符合设计的要求;

(4)可靠性 可靠性是系统软件最重要的指标之一,作为能够稳定运行的系统,抗干扰技术的应用是必不可少的,最起码的要求是在软件受到干扰出现异常时,系统还能恢复正常工作。

4.1 开发环境介绍

4.1.1 ICCA VR 介绍

Image Craft的ICCA VR 是一种使用符合ANSI 标准的C 语言来开发微控制器(MCU)程序的一个工具, 它有以下几个主要特点:

ICCA VR 是一个综合了编辑器和工程管理器的集成工作环境IDE 其可在

WINDOWS9X/NT 下工作。

源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成编译。错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您希望得到

的可以直接使用的INTELHEX 格式文件,INTEL HEX 格式文件可被大多数的编程器所支持,用于下载程序到芯片中去。

ICCA VR 是一个32 位的程序,支持长文件名。

4.1.2 ICCA VR 中的文件类型及其扩展名

文件类型是由它们的扩展名决定的IDE 和编译器可以使用以下几种类型的文件。

输入文件:

.c 扩展名----表示是C 语言源文件;

.s 扩展名----表示是汇编语言源文件;

.h 扩展名----表示是C 语言的头文件;

.prj 扩展名----表示是工程文件,这个文件保存由IDE 所创建和修改的一个工程的有关信息;

.a 扩展名----库文件,它可以由几个库封装在一起。libcavr.a 是一个包含了标准C 的库和A VR 特殊程序调用的基本库。如果库被引用,链接器会将其链接到您的模块或文件中。您也可以创建或修改一个符合你需要的库。

输出文件:

.s 对应每个C 语言源文件,由编译器在编译时产生的汇编输出文件;

.o 由汇编文件汇编产生的目标文件,多个目标文件可以链接成一个可执行文件;

.hex INTEL HEX 格式文件,其中包含了程序的机器代码;

.eep INTEL HEX 格式文件,包含了EEPROM 的初始化数据;

.cof COFF 格式输出文件,用于在ATMEL 的AvrStudio 环境下进行程序调试;

.lst 列表文件,在这个文件中列举出了目标代码对应的最终地址;

.mp 内存映象文件,它包含了您程序中有关符号及其所占内存大小的信息; .cmd NoICE 2.xx 调试命令文件;

.noi NoICE 3.xx 调试命令文件;

.dbg ImageCraft 调试命令文件。

ICCA VR 软件界面如图4-1所示

图4-1

4.2 系统软件组成

由于整个系统软件相对比较庞大,为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计。即整个控制软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内部数据关系紧凑,模块之间数据关系松散的原则,按功能形成模块化结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将A/D转换的数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序;控制算法模块完成控制系统的PID 运算并且输出控制量。

4.3 主程序模块

主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、A/D芯片初始化和串口初始化等。然后

等待温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。流程图如图4-2。

图4-2

4.4 数据采集模块

数据采集模块的任务是负责温度信号的采集以及将采集到的模拟量通过

A/D转换器转化为相应的数字量提供给单片机。图4-3(a)A/D转换程序流程图,图4-3(b)为数据采集模块流程图。

AD 转换的程序如下: #include #include "macros.h" #include "delay1.h" //#include "io_PC.h" //#include #define uchar unsigned char #define uint

unsigned int #define AD_DIN1

(PORTB|=(1

#define

AD_DIN0

(PORTB&=~(1

#define AD_CLK0

(PORTB&=~(1

#define AD_DOUT

(PINB&0x04) //0000 0100 //MCU IN #define AD_DRDY

(PIND&0x04)

#define BitSet(a,b) (a |= (1

unsigned char i; AD_DIN1; for( i=0; i

AD_CLK0; asm("nop"); asm("nop");

asm("nop");

AD_CLK1; asm("nop"); asm("nop");

asm("nop"); } delay_nms(2); }

unsigned char read_AD7705_byte(void) {

unsigned char data = 0; unsigned char i = 0; for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) {

data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); } return data; }

unsigned int read_AD7705_word(void) {

unsigned int data = 0; unsigned char i = 0;

for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) {

data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); } return data; }

unsigned long int read_AD7705_dword(void) {

unsigned long data = 0; unsigned char i = 0; for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) { data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); }

return data; }

void write_AD7705_byte(unsigned char data) {

unsigned char i; for( i=0;i

AD_DIN0; asm("nop"); asm("nop"); asm("nop");

AD_CLK1;

asm("nop"); asm("nop"); asm("nop"); data

AD_DIN1; }

void write_AD7705_dword(unsigned long int data) {

unsigned char i; for(i=0; i

AD_CLK0; if(data&0x800000) AD_DIN1; else

AD_DIN0; asm("nop"); asm("nop"); asm("nop"); AD_CLK1; asm("nop"); asm("nop"); asm("nop"); data

long int ReadData7705(void) {

unsigned int data=0, fiter[10]={0}; unsigned long int temp=0; unsigned char i=0,sort_flag=1; //AD_CS0; delay_nus(5);

//init_AD7705();//初始化7705

for( i=0; i

//start_timer0();//启动计时器 delay_nms(6);

while(AD_DRDY);//{printf("111");} write_AD7705_byte(0x38)

fiter[i] = read_AD7705_word(); }

//return fiter[3]; //AD_CS1; sort_flag = 1; while( sort_flag ) {

sort_flag = 0; for( i=0; i

if( fiter[i] > fiter[i+1] ) {

data = fiter[i]; fiter[i] = fiter[i+1]; fiter[i+1] = data; sort_flag = 1; } } }

temp = ((unsigned long int)fiter[1] + (unsigned long int)fiter[2] +(unsigned long int)fiter[3]+ (unsigned long int)fiter[4]+(unsigned long int) fiter[5]+(unsigned long int)fiter[6])/6; return temp;

if( (data0x0008 ) ) {

data >>= 4; data++; } else {

data >>= 4; } if( 1 != scale ) {

data -= 0x0800; }

*pdata = data & 0x0fff;*/ }

void init_AD7705(void) { uchar i; //DDRA=0b11110011; //PORTA=0;

BitSet(DDRB,0);

BitSet(DDRB,1);

BitClr(DDRB,2); BitClr(DDRD,2); reset_AD7705(); for(i=10;i>0;i--)

{write_AD7705_byte(0xff);}

write_AD7705_byte(0x20);

}

write_AD7705_byte(0x0a); write_AD7705_byte(0x10); write_AD7705_byte(0x46); delay_nus(100);

4.5 数据处理模块

数据处理模块负责处理A/D转换后的数字量。其中最重要的环节是数字滤波,所以这里主要讨论系统采用的数字滤波程序。 4.5.1 数字滤波

模拟信号都必须经过A/D转换后才能为单片机接受,如果模拟信号受到扰

动影响,将使A/D转换结果偏离真实值。因此仅仅对模拟量采样一次,我们是无法确定该结果是否可信的,必须经过多次采样,得到一个A/D转换的数据序列,通过某种处理后,才能得到一个可信度较高的结果。这种从数据序列中提取逼近真值数据的软件算法,通常称为数字滤波算法。

数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比具有以下几个方面的优点:

(l) 由于数字滤波是用程序实现的,因而不需要增加硬件设备,而且可以多个输入通道共用一个滤波程序;

(2) 由于数字滤波不需要硬件设备,因而可靠性高、稳定性好,各回路之间不存在阻抗匹配等问题;

(3) 数字滤波可以对频率很低(如0.01HZ) 的信号实现滤波,克服了模拟滤波器的缺陷,而且通过改变数字滤波程序,可以实现不同的滤波方法或改变滤波参数,这比改变模拟滤波器的硬件要更灵活方便。

常用的数字滤波方法有程序判断滤波法、中值滤波法、算术平均滤波法、一阶滞后滤波法、去极值平均滤波法等等。

由于系统采用的AD 转换器AD7705本身就具有很好的滤波作用,所以在软件滤波方面采用算术平均滤波进行轻微的滤波处理。 4.5.2 显示处理

显示处理模块主要完成人机交互作用,具体实现将采样温度值、设定温度值

以字符的形式通过LED 数码管显示出来。本系统使用HD7279作为显示驱动器。

4.6 PID 控制

PID 调节是Proportional(比例) 、Integral(积分) 、Differential(微分) 三者的缩写,PID 控制是最早发展起来的控制策略之一,现今使用的PID 控制器产生并发展于1915-1940年期间。尽管自1940年以来,许多先进的控制方法不断推出,但由于PID 控制方法具有结构简单、鲁棒性好、可靠性高、参数易于整定,P 、I 、D 控制规律各自成独立环节,可根据工业过程进行组合,而且其应用时期较长,控制工程师们已经积累了大量的PID 控制器参数的调节经验。因此,PID 控制器在工业控制中仍然得到广泛应用。据统计,有90﹪以上的工业控制器采用PID 控制器。PID 控制器的发展经历了液动式、气动式、电动式几个阶段,目前正由模拟控制器向着数字化、智能化控制器的方向发展。

PID 控制理论上方案选择里已具体介绍过,现将PID 调节的部分程序写出来,部分程序设计如下:

#include float kp=15,ki=0,kd=0; //PID数学模型

//u(t) = kp * e(t) + ki * [e(1) + e(2) + ....+ e(t)] + kd * [e(t) - e(t-1)] //参考数据:Kp=5.98 T=5 Td=27 Ti=112.5

int PID(float set_temperture, float measure_temperture) {

float derror;

static float sum=0,ek_pre=0,ek_last=0,ek_now=0; ek_now=set_temperture-measure_temperture; //printf("ek_now=%d\n",ek_now); sum+=ek_now;

//积分项

derror=ek_now-ek_last; //微分项

//printf("derror=%d\n",derror);

ek_pre=ek_last; ek_last=ek_now;

//上上一次 //上一次

//printf("pid_result=%f\n",(kp*ek_now+kd*derror)); //return(kp*ek_now+kd*derror); //PD control

return(kp*ek_now+ki*sum+kd*derror); //PID control }

4.7 软件抗干扰措施

本系统中,在软件方面的抗干扰措施主要从以下两个个方面来考虑:

(l) 按键的软件消抖措施

按键是一个机械开关,当键按下时,开关闭合;当键松开时,开关断开。其特点之一就是它的抖动性,这是由按键的机械特性所决定的,抖动的时间一般约为10ms-20ms 。

对于按键消抖的具体措施目前有两种:一是用硬件电路来实现,即用RC 滤波电路滤除抖动。另一种是用软件延时的方法来解决,即利用软件的延时避开按键的按下与抬起时都有的抖动期,从而避免检测到干扰信号。本文采用的就是软件延时消抖的方法。附录中给出了延时程序的源程序,同时延时程序还作为通用功能模块被其他模块调用。

(2) 数字滤波

数字滤波是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的方法,采用软件滤波算法不需要增加硬件设备,可靠性高,功能多样,使用灵活,但是要占用一定的处理器运行时间。在本系统设计中,采用了数字滤波的软件抗干扰措施,所采用的数字滤波算法是算术平均滤波法。

第5章

5.1 系统调试

测量调试

在前几章介绍了系统的硬件和软件的设计,了解了系统的PID 调节的方案和算法,这章主要是对系统测温控温的调试,以证明该系统确实达到了预期的目标,实现了设计任务要求。

系统采用LabWindows/CVI开发虚拟仪器软件,LabWindows/CVI是一个完全的ANSI C开发环境,用于仪器控制、自动检测、数据处理的应用软件。它以ANSI C为核心,将功能强大、使用灵活的C 语言平台与用数据采集、分析和显示的测控专业工具有机结合起来。它的交互式开发平台、交互式编程方法、丰富的功能面板和函数库大大增强了C 语言的功能,为熟悉C 语言的开发人员激励自动化检测系统、数据采集系统、过程控制系统等提供了一个理想的软件开发环境。LabWindows/CVI软件把C 语言的有力与柔性同虚拟仪器的软件工具库结合起来,包含了各种总线、数据采集和分析库。同时,LabWindows/CVI软件提供了国内外知名厂家生产的三百多种仪器的驱动程序。LabWindows/CVI软件的重要特征就是在Windows 和Sun 平台上简化了图形用户接口的设计,使用户很容易的生成各种应用程序,并且这些应用程序可以在不同的平台上移植。

LabWindows/CVI是为C 语言程序员提供的软件开发环境,在其交互式开发环境中编写的程序必须符合标准C 语言的规范。 使用LabWindows/CVI可以完成如下工作: (1)交互式的程序开发。

(2)具有功能强大的功能库,用来创建数据采集和仪器控制的应用程序。 (3)充分利用完备的软件工具进行数据采集、分析和显示。 (4)利用向导开发IVI 仪器驱动程序和创建ActiveX 服务器。 (5)为其他程序开发C 目标模块、动态链接库(DLL )、C 语言库。

在虚拟仪器技术当中“软件”是其核心,虚拟仪器软件框架从底层到顶层分为VISA 库,仪器驱动程序和应用软件。系统的人机界面、参数的输入、采集数据实时显示、数据存储和回放、信号处理与分析及智能诊断等都是通过软件实的。

而用于本系统温度控制器调试软件的生成流程图如图5-1,其中主线程主要负责界面运行用户事件响应,次线程从主线程处得到采集温度在面板中画曲线更新。

主线程 次线程

图5-1

经过LabWindows/CVI开发出虚拟器软件的安装程序temperature_con.exe,安装并运行程序后程序运行界面图如图5-2:

图5-2

我们将编辑调试好的程序烧入ATmega16L 单片机芯片中,将电源和串口线接好之后,打开调试工具软件temperature_con进行PID 调试。

5.2 调试结果

多次调试结果表明系统设计完全达到预期目的,完成系统设计要求,达到了测温控温的目的和控制温度的精度(±2℃)要求,调试要点:先把其他参数去掉,只进行比例调节(p ),待得出的温度跟随曲线基本无误后再加上微分参数(d ), 这样可以减少超调量。积分参数可起提高控制精度的作用,根据系统要求做适当调节。调试效果图如图5-3。

图5-3

温度控制在工业生产中起着非常重要的作用。本文完成了基于单片机的温度控制系统的开发。包括系统的硬件开发、软件编程与仿真调试等。在论文完成过程中,主要做的工作有:

(l) 以ATMEL 公司的ATmega16L 单片机为核心进行系统硬件设计,输入通道采用Pt100铂电阻温度传感器,AD7705作为A/D转换器;输出通道采用可控硅作为输出单元,大大地简化了系统硬件电路。通过对占空比的调节可实现温控箱温度的自动控制。由于输入端与输出端有光电隔离,能够有效地抑制干扰;

(2) 在温度控制系统中采用常规的PID 控制方法,这需要知道被控对象的数学模型,以及对PID 控制器的参数进行整定。因此,在分析了温控箱的特性的基础上,对PID 控制器的参数进行整定,并且做了仿真实验;

(3) 采用C 语言对系统的软件编程,在开发过程中使用了ICCA VR 编译器和A VRstudio 调试工具,这些都大大缩短了软件的开发周期。为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。

参考文献

[1] [日]松井邦彦(著 )梁瑞林(译). 传感器实用电路设计与制作[J].科学出版社出版

[2] 马潮 编著.AVR 单片机嵌入式系统原理与应用实践[J].北京航空航天大学出版社

[3] 孙传友,孙晓斌, 张一编. 感测技术与系统设计[J]. 科学出版社

[4] 杨正忠,耿德根.AVR 单片机应用开发指南及实例精解[J].中国电力出版社

[5] 耿德根, 宋建国, 马潮等.AVR 高速嵌入式单片机原理与应用[J]. 北京航空航天大学出版社

[6] 张洪润,张亚凡主编. 传感技术与应用教程[J]. 清华大学出版社

[7] 沈怀洋. 高精度铂电阻温度调节器[D]. 沈阳工业大学硕士学位论文,2004

[8] 陈忠华. 基于单片机的温度智能控制系统的设计与实现[D].大连理工大学硕士学位论文,2006

[9] 谭浩强.C 语言程序设计[J]. 北京:清华大学出版社,1998

[10] 于海生等. 微型计算机控制技术[J]. 北京:清华大学出版社,1999

[11] 赖寿宏. 微型计算机控制技术[J]. 北京:机械工业出版社,1999

[12] 导向科技编著 .Protel DXP电子电路设计培训教程[J].人民邮电出版社

[13] 阎石主编. 数字电子技术基础[J]. 高等教育出版社

[14] 郑国平主编. 模拟电子技术[J]. 清华大学出版社 2006

[15] 周兴华编著.AVR 单片机C 语言高级程序设计[J]. 中国电力出版社 2008

[16] 胡翔骏. 电路分析. 高等教育出版社 2007

[17] 张凤均等.LABWINDOWS/CVI开发入门和进阶. 北京航空航天大学出版社 2001

温度控制器

姓名: 专业班级: 指导教师:

摘 要

本文主要讨论Pt100传感器在温度控制系统中的应用。采用Pt100恒流源三线制,采集信号经过AD7705转换之后一方面传至ATmega16L 单片机处理并通过LED 数码管显示出来,另一方面通过PID 算法调节PWM ,从而控制双向可控硅控制周期内的通断占空比(即控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。本文详细阐述了基于单片机的温度控制系统的硬件组成、软件设计及相关的接口电路设计。并且充分考虑了系统的可靠性,采取了相应的措施予以保证。针对温控系统进行了实验,通过对实验数据的分析表明本文所述的基于单片机的温度控制系统的设计的合理性和有效性。 关键词:单片机 温度控制 Pt100 PID 控制

Temperature Controller

Abstract :This article focused on Pt100 temperature sensor control system. Constant current source using three-wire Pt100 system, signal acquisition on the one hand, after the conversion AD7705 single-chip processing and spread through ATmega16L digital tube LED display on the other hand, through the regulation of PID algorithm PWM, to control two-way thyristor control cycle off duty cycle (that is, temperature control box the size of the heating power), temperature-controlled box to achieve the purpose of temperature control. Described in detail in this article based on single-chip temperature control system hardware components, software interface design and circuit design. And give full consideration to the reliability of the system and take the appropriate measures to ensure that. Temperature control system for the experiment, through the analysis of experimental data described in this paper, based on single-chip temperature control system design and effectiveness of the reasonable.

KEY : Microcontroller Temperature control system Pt100 PID Control

目 录

第1章 前 言 ...................................................... 1

1.1 课题背景及实际意义........................................... 1

1.2 主要研究内容................................................. 1

1.3 主要成果..................................................... 2

第2章 系统总体方案设计 ........................................... 3

2.1 系统方案论证................................................. 3

2.2 系统方案设计 . ............................................... 5

2.2.1 Pt100的选择.............................................. 5

2.2.2 控温方案选择 ............................................. 5

2.2.3 控温测温的算法 ........................................... 6

第3章 系统硬件设计 ............................................... 8

3.1 主控模块器件选择及设计....................................... 8

3.2 输入通道设计 . .............................................. 10

3.2.1 Pt100温度传感器........................................ 11

3.2.2 AD转换.................................................. 12

3.3 输出通道设计 ............................................... 16

3.3.1 温度显示 ................................................ 16

3.3.2 加热电路 ................................................ 18

3.4 串行通信接口电路 ............................................ 19

3.5 电源电路 .................................................... 20

3.6 硬件抗干扰措施 .............................................. 21

3.7 本章小结 .................................................... 22

第4章 系统软件设计 .............................................. 23

4.1 开发环境介绍................................................ 23

4.1.1 ICCAVR介绍............................................... 23

4.1.2 ICCAVR中的文件类型及其扩展名............................. 24

4.2 系统软件组成................................................ 25

4.3 主程序模块.................................................. 25

4.4 数据采集模块................................................ 26

4.5 数据处理模块................................................ 30

4.5.1 数字滤波 ............................................... 30

4.5.2 显示处理 ............................................... 30

4.6 PID 控制 .................................................... 31

4.7 软件抗干扰措施.............................................. 32

第5章 测量调试 .................................................. 33

5.1 系统调试.................................................... 33

5.2 调试结果.................................................... 35

结 论 ........................................................... 37

致 谢 ........................................................... 38

参考文献 ......................................................... 39

第1章

1.1 课题背景及实际意义 前 言

温度是生活及生产中最基本的物理量,它表征的是物体的冷热程度。自然界中任何物理、化学过程都紧密的与温度相联系。在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。在实际的生产实验环境下,由于系统内部与外界的热交换是难以控制的,其他热源的干扰也是无法精确计算的,因此温度量的变化往往受到不可预测的外界环境扰动的影响。为了使系统与外界的能量交换尽可能的符合人们的要求,就需要采取其他手段来达到这样一个绝热的目的,例如可以让目标系统外部环境的温度与其内部温度同步变化。根据热力学第二定律,两个温度相同的系统之间是达到热平衡的,这样利用一个与目标系统温度同步的隔离层,就可以把目标系统与外界进行热隔离。另外,在大部分实际的环境中,增温要比降温方便得多。因此,对温度的控制精度要求比较高的情况下,是不允许出现过冲现象的,即不允许实际温度超过控制的目标温度。特别是隔热效果很好的环境,温度一旦出现过冲,将难以很快把温度降下来。这是因为很多应用中只有加热环节,而没有冷却的装置。同样道理,对于只有冷却没有加热环节的应用中,实际温度低于控制的目标温度,对控制效果的影响也是很大的。

近年来,温度的检测在理论上发展比较成熟,但在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。温度控制系统的设计是为了满足市场对成本低、性能稳定、可远程监测、控制现场温度的需求而做的课题,具有较为广阔的市场前景。

1.2 主要研究内容

本设计主要是完成对温度的测量和PID 控制以及LED 显示,主要研究内容包括:

① 如何实现温度信号的采集并转换为数字信号。

② 如何将采集的温度通过A VR 单片机控制运算并通过LED 数码管显示出

来。

③ 如何让将测得温度值与设定温度值进行比较,并进行PID 调节至设定值。 ④ 如何提高系统精度,对系统采取何种保护措施。

⑤ 系统的软、硬件调试工作。

1.3 主要成果

本次毕业设计按照毕业设计任务书的规划,基本完成了毕业设计课题的预期目标,并取得了良好的效果。通过毕业设计得到如下几个方面的成果:

① 对单片机温度控制系统,计算机与单片机之间的通信,以及PID 控制原理有了更进一步的了解。

② 完成系统的硬件设计,包括采样电路、A/D转换电路、主控制电路、控温电路、保护电路等等的设计。

③ 完成系统的软件设计,包括主程序模块、控制运算模块、数据输入输出及处理模块等一些子功能模块的设计。

④ 实现了单片机与计算机之间的通信。

⑤ 完成了系统的软、硬件调试工作。

第2章

2.1 系统方案论证 系统总体方案设计

温度控制仪的硬件电路一般采用模拟电路和单片机两种形式。

模拟控制电路的各控制环节一般由运算放大器、电压比较器、模拟集成电路以及电容、电阻等外围元器件组成。它的最大优点是系统响应速度快,能实现对系统的实时控制。根据计算机控制理论可知,数字控制系统的采样速率并非越快越好,它还取决于被控系统的响应特性。在本系统中,由于温度的变化是一个相对缓慢的过程,对温控系统的实时性要求不是很高,所以模拟电路的优势得不到体现。另外,模拟电路依靠元器件之间的电气关系来实现控制算法,很难实现复杂的控制算法。

单片机是大规模集成电路技术发展的产物,属于第四代电子计算机。它是把中央处理单元CPU(Central Processing Unit)、随机存取存储器RAM(Random Access Memory)、只读存储器ROM(Read Only Memory)、定时/计数器以及I/O(Input/Output)输入输出接口电路等主要计算机部件都集成在一块集成电路芯片上的微型计算机,它的特点是:功能强大、运算速度快、体积小巧、价格低廉、稳定可靠、应用广泛。由此可见,采用单片机设计控制系统,不仅可以降低开发成本,精简系统结构,而且控制算法由软件实现,还可以提高系统的兼容性和可移植性。

由于设计的温度控制器测温范围为室温至125℃,系统选用Pt100传感器,因为其在室温至125℃范围内具有信号强、精度高、稳定性和复现性好的特点。Pt100传感器检测温度并将其转换为微弱的电信号,通过AD 转换器转换为数字量,A/D转换器采用的是16位的AD 转换芯片AD7705,它包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路、∑-△调制器、可编程数字滤波器等部件组成。能直接将传感器测量到的多路微小信号进行A/D转换。

综合考虑后温度控制系统以ATmega16L 单片机为核心,温控箱的温度由Pt100 铂电阻温度传感器检测并转换成微弱的电压信号,再通过16位的A/D转换器AD7705转换成数字量。此数字量经过数字滤波之后,一方面将温控箱的温

度通过控制面板上的LED 数码管显示出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,采用PID 控制算法进行运算,最后通过控制双向可控硅控制周期内的通断占空比(即控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。如果实际测得的温度值超过了系统给定的极限安全温度,保护电路会做出反应,从而保护温控箱。

单片机的软件开发主要用到两种语言:汇编语言和C 语言。与汇编语言相比,C 语言具有以下的特点:

① 具有结构化控制语句结构化控制语言的显著特点是代码和数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护及调试。

② 适用范围大和可移植性好同其他高级语言一样,C 语言不依赖于特定的CPU ,其源程序具有良好的可移植性。目前,主流的 CPU 和常见的MCU 都有C 编译器。所以,本系统的软件选择使用C 语言开发。由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块之间数据关系松散的原则,将各功能模块组织成模块化的软件结构。

温度控制算法方面,在对温控箱数学模型辨识的基础之上,结合本温控系统的要求采用了经典的PID 控制算法,这主要是由于PID 控制相对来说算法简单、鲁棒性好以及可靠性高。此外,在设计PID 控制器时,依靠经验和试验的方法在系统调试时确定PID 控制器的参数K P 、K I 、K D ,然后用代码实现算法。

系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将A/D转换的数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序;控制算法模块完成控制系统的PID 运算并且输出控制量。

综上所述:系统所选元件和设计思路、设计语言的选择合理可行。

2.2 系统方案设计

2.2.1 Pt100的选择

传感器的种类多种多样,电阻式温度检测器(RTD,Resistance Temperature Detector) 是一种物质材料做成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟著上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。大部分电阻式温度检测器是以金属作成的, 其中以白金(Pt)做成的电阻式温度检测器,最为稳定—耐酸碱、不会变质、相当线性,在所有的温度传感器中铂电阻是最稳定的一种,其测温范围宽达—250℃~640℃,因此是一种具有代表性的测温方法。

根据本设计系统要求我们选择Pt100作为温度传感器检测温度,Pt100型铂电阻意思即说明其铂电阻在0℃时电阻值为100Ω,在-200℃到850℃范围内是精度最高的温度传感器之一。与热电偶、热敏电阻相比较,铂的物理、化学性能都非常稳定,尤其是耐氧化能力很强,离散性很小,精度最高,灵敏度也较好。这些特点使得铂电阻温度传感器具有信号强、精度高、稳定性和复现性好的特点。铂电阻温度传感器主要有两种类型:标准铂电阻温度传感器和工业铂电阻温度传感器。在测量精度方面,工业铂电阻的测量稳定性和复现性一般不如标准铂电阻,这主要有两个方面的原因,其一是高温下金属铂与周围材料之间的扩散使其纯度受到污染,从而降低铂电阻测温的复现性能,其二是因为高温条件下的应力退火影响了其复现性能。但是标准铂电阻温度传感器也存在价格昂贵,维护起来较为困难等缺点。考虑到成本,故在本系统中采用工业级Pt100铂电阻作为温度传感器。

2.2.2 控温方案选择

首先由Pt100热电阻温度传感器所测得的温度实际值通过信号调理电路和16位的AD7705转换后送入单片机ATmega16L ;然后测量出的温度实际值和设定的目标温度值进行比较,所得的差值经自适应模糊PID 算法得出控制量, 控制PWM 波的输出占空比。利用软件脉宽调制技术, 由PD5脚输出相应的PWM 波,实现对双向可控硅的控制, 从而控制发热丝的发热功率。

其中控温电路中采用可控硅技术,可控硅一种大功率电器元件,也称晶闸管具有体积小、效率高、稳定性好、工作可靠等优点。本控温系统采用BT136双向可控硅,双向可控硅在结构上相当于两个单向的可控硅方向连接,这种可控硅具有双向导通功能,其通断状态由控制极G 决定。在控制极G 上加正脉冲(或负脉冲)可使其正向(或反向)导通。这种装置的优点是控制电路简单,没有反向耐压问题,因此特别适合做交流无触点开关使用。通过BT136双向可控硅的通断来控制发热丝的通断周期,从而控制发热丝温度。和大功率的场效应管一样,可控硅在与微型计算机接口连接时也需加接光电隔离器,触发脉冲电压应大于4V ;脉冲宽度应大于20us 。为了提高效率,要求触发脉冲与交流电压同步,采用检测交流电过零点来实现。通过光电隔离器控制双向可控硅,实现对电阻丝加热。

2.2.3 控温测温的算法

本文控温采用PID 控制方案,采集和控制的关系是:温度->PID算法->PWM控制可控硅导通角加热。这里可以看出PID 类似于数学的函数,温度和PWM 加热就是通过这个函数映射过来的。只要温度采集正确并和设置的值作比较(减法),得出一个差值,通过PID 算法后得出控制量输出,就能达到目的。接着进行PID 的参数调试,把最优参数调试出来(数学的函数)。

PID 控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差e(t)::

e(t)=r(t)-y(t)

将偏差e(t)的比例(proportional)、积分(Integral)和微分(Differential)通过线性组合构成控制量,对被控对象进行控制,因此称为PID 控制。

PID 控制系统原理如图2-1:

图2-1

在模拟系统中,PID 算法的表达式为:

P(t)=Kp[e(t)+1de (t ) ] e (t ) dt +T D ⎰T 1dt

式中 P(t)----调节器的输出信号

e(t)-----调节器的偏差信号

K p -----调节器的比例系数

T I -----调节器的积分时间

T D -----调节器的微分时间

PID 控制器各校正环节的作用如下:

(1) 比例环节 即时成比例地反映控制系统的偏差信号e(t),偏差一旦产生,

控制器立即产生控制作用,以减少偏差;

(2) 积分环节 主要用于消除静差,提高系统的无差度。积分作用的强弱取

决于积分时间常数,T I 越大,积分作用越弱,反之则越强;

(3) 微分环节 能够反映偏差信号的变化趋势(变化速率) ,并且能在偏差信号

值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作

速度,减少调节时间。

第3章 系统硬件设计

本文所研究的温度控制系统硬件部分按功能大致可以分为以下几个部分:单

片机主控模块、输入通道、输出通道、保护电路等。图3-1为硬件设计原理图,

温度控制系统以ATmega16L 单片机为核心,温控箱的温度由Pt1OO 铂电阻温度传感

器检测并转换成微弱的电压信号,再通过16位的A/D转换器AD7705转换成数字量

并经过数字滤波之后,一方面将温控箱的温度通过控制面板上的液晶显示器显示

出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,采

用PID 控制算法进行运算,最后通过控制双向可控硅控制周期内的通断占空比(即

控制温控箱加热平均功率的大小) ,进而达到对温控箱温度进行控制的目的。如

果实际测得的温度值超过了系统给定的极限安全温度,保护电路会做出反应,从

而保护温控箱。

图3-1

3.1 主控模块器件选择及设计

主控模块电路由ATmega16L 单片机、外部时钟电路、复位电路。其中ATmega16L

单片机的特点:

高性能、低功耗的8位AVR 微处理器。

先进的RISC 结构:131条指令-大多数指令执行时间为单个时钟周期,32个8

位通用工作寄存器,全静态工作,工作于16 MHz 时性能高达16 MIPS ,只需两个

时钟周期的硬件乘法器。

非易失性程序和数据存储器:16K 字节的系统内可编程Flash(擦写寿命:

10,000 次) ,具有独立锁定位的可选Boot 代码区(通过片上Boot 程序实现系统内

编程真正的同时读写操作),512字节的EEPROM(擦写寿命: 100,000 次),1K 字节

的片内SRAM, 可以对锁定位进行编程以实现用户程序的加密。

JTAG 接口( 与IEEE 1149.1 标准兼容):符合JTAG 标准的边界扫描功能, 支

持扩展的片内调试功能, 通过JTAG 接口实现对Flash 、EEPROM 、熔丝位和锁定位的

编程。

外设特点:两个具有独立预分频器和比较器功能的8位定时器/计数器, 一个

具有预分频器、比较功能和捕捉功能的16位定时器/计数器, 具有独立振荡器的实

时计数器RTC, 四通道PWM,8路10位ADC(8个单端通道,TQFP 封装的7个差分通道,2

个具有可编程增益(1x,10x, 或200x )的差分通道), 面向字节的两线接口, 两个可

编程的串行USART, 可工作于主机/从机模式的SPI 串行接口, 具有独立片内振荡器

的可编程看门狗定时器, 片内模拟比较器。

特殊的处理器特点:上电复位以及可编程的掉电检测,片内经过标定的RC 振

荡器,片内/片外中断源。

6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby

模式以及扩展的Standby 模式[5]

图3-2为ATmega16 TQFP封装引脚图:

图3-2

_____________单片机复位电路由外部复位电路实现,ATmega16复位引脚为RESET (4脚),

图3-3(a)为ATmega16L 复位电路;图3-3(b)为外部振荡电路,本系统采用的晶振

振荡器电路频率为7.3728M 。

图3-3 (a ) 图3-3 (b )

3.2 输入通道设计

系统输入通道的作用是将温控箱的温度(非电量) 通过传感器电路转化为电

量(电压或电流) 输出,本系统就是将温度转化为电压的输出。由于此时的电量(电

压) 还是单片机所不能识别的模拟量,所以还需要进行A/D转换,即将模拟的电量转化成与之对应的数字量,提供给单片机判断和控制。输入通道由传感器、A/D转换等电路组成。

3.2.1 Pt100温度传感器

铂电阻测温电路的工作方式一般分为恒压方式和恒流方式两种。按照接线方式的不同又可以分为二线制、三线制和四线制三种。四线制就是从热电阻两端引出4线,接线时电路回路和电压测量回路独立分开接线,测量精度高,需要导线多。三线制就是引出三线,Pt100B 铂电阻接线时电流回路的参端和电压测量回路的参考为一条线(即检测设备的I- 端子和V-端子短接)。精度稍好。 两线制就使引出两线,Pt100B 铂电阻接线时电流回路和电压测量回路合二为一(即检测设备的I-端子和 V-端子短接、I+端子和V+短接)。测量精度差。本系统采用的是恒流三线制接法对Pt100铂电阻进行采样。铂电阻温度传感器采样电路如图3-4所示。

图3-4

因为:V out -V N V N -V REF = R 5R 4

V g -V P

R 8=V P R 7

因为:R 4=R5=R7=R8

所以:2V N =Vout +VREF 2V P =Vg

得出:V g -V out =VREF

并且:I 1=I2

I 1(100+Rt)-100I2 =VOUT1

V 1V V R =2

V 2R t +100V2=100V1 V 1-V 2=2t =I2R t R t +100100100

所以:I 2R t =Vout1=Rt I

上面式子中Rt 为温度传感随着温度变化所变化的电阻值。

采用恒流三线制接法的测温电路中需要用到一个稳定的基准电压源。本系统采用精密基准电压源Ref192对温度传感器进行稳压,ref192的优点是与普通的基准电源相比具有温漂小、输出噪声小、动态内阻小、有短路保护等特点。主要参数是:基准电压V R =2.5V,温度系数T C ﹤5ppm/℃,输出噪声电压为25uv 。当基准电压V R =2.5V,温度范围在10℃~80℃时,温度传感器输出电压范围为1.5V ~2V 。图中参考电压V REF 即来自Ref192。基准电压源电路如图3-5所示。

图3-5

3.2.2 AD 转换

在单片机控制系统中,控制或测量对象的有关变量,往往是一些连续变化的

模拟量,如温度、压力、流量、位移、速度等物理量。但是大多数单片机本身只能识别和处理数字量,因此必须经过模拟量到数字量的转换(A/D转换) ,才能够实现单片机对被控对象的识别和处理。完成A/D转换的器件即为A/D转换器。 A/D转换器的主要性能参数有:

(1)分辨率 分辨率表示A/D转换器对输入信号的分辨能力。A/D转换器的分辨率以输出二进制数的位数表示。

(2)转换时间 转换时间指A/D转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。不同类型的转换器转换速度相差甚远。

(3)转换误差 转换误差表示A/D转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示。

(4)线性度 线性度指实际转换器的转移函数与理想直线的最大偏移。目前有很多类型的A/D转换芯片,它们在转换速度、转换精度、分辨率以及使用价值上都各具特色,其中大多数积分型或逐次比较型的A/D转换器对于高精度测量,其转换效果不够理想。温度控制中A/D转换是非常重要的一个环节。传统的电路设计方法是在A/D转换前增加一级高精度的测量放大器,这样就增加了成本,电路也较为复杂。综合考虑,本系统选用AD(ANALOGDEVICES) 公司生产的16位AD 转换芯片AD7705作为本温控系统的A/D转换器。

AD7705是AD 公司生产的16位∑-△型A/D转换器,用于测量低频模拟信号,它包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路、∑-△调制器、可编程数字滤波器等部件组成,可通过软件编程来直接测量传感器输出的各种微小信号。AD7705采用三线串行接口,具有两个全差分输入通道,能达到0.003%非线性的16位无误码输出,其增益和输出更新率均可编程设定,还可以选择输入模拟缓冲器,以及自校准和系统校准方式。工作电压3V 或5V 。3V 电压时;最大功耗为1mw ,等待模式下电源电流仅为8uA 。图3-6为AD7705引脚图

图3-6

AD7705引脚功能描述如下:

(1)SCLK串行时钟,将一个外部的串行时钟加于这一输入端口,以访问AD7705的串行数据。该串行时钟可以是连续时钟以连续的脉冲串传送所有数据,反之,它也可以是非连续时钟,将信息发送给AD7705。

(2)MCLKIN为转换器提供主时钟信号,能以晶体/谐振器或外部时钟的形式提供。晶体/谐振器可以接在MCLKIN 和MCLKOUT 两引脚之间,时钟频率的范围为500kHz-5MHz 。

(3)MCLKOUT:当主时钟为晶体/谐振器时,晶体/谐振器被接在MCLKIN 和MCLKOUT 之间,如果在MCLKIN 引脚处接上一个外部时钟,MCLKOUT 将提供一个反向时钟。

(4)CS片选信号,低电平有效。

(5)RESET复位输入,低电平有效。

(6)AIN2(+)差分模拟输入通道2的正输入端。

(7)AIN1(+)差分模拟输入通道l 的正输入端。

(8)AIN1(-)差分模拟输入通道1的负输入端。

(9)AIN2(-)差分模拟输入通道2的负输入端。

(10)REFIN(+)差分基准输入的正输入端,基准输入是差分的,并规定REFIN(+)————————

必须大于REFIN(-),REFIN(+)可以取VDD 和GND 之间的任何值。

(11)REFIN(-)差分基准输入的负输入端,REFIN(-)可以取VDD 和GND 之间的任何值,且必须满足REFIN(+)大于REFIN(-)。

(12)DRDY逻辑输出,这个输出端上的逻辑低电平表示可以从AD7705的数据寄存器获取新的输出字。完成对一个完全的输出字的读操作后,该引脚立即回到高电平。当该引脚处于高电平时,不能进行读操作,当数据更新后,该引脚又返回低电平。

(13)DOUT串行数据输出端,从片内的输出移位寄存器读出的串行数据由此端输出。根据通信寄存器中的寄存器选择位,移位寄存器可以容纳来自通信寄存器、时钟寄存器或数据寄存器的信息。

(14)DIN串行数据输入端,向片内的输入移位寄存器写入的串行数据由此输入。

系统AD 采样电路如图3-7所示,AD7705的SCLK 信号接ATmega16L 的PB0(XCK/T0)引脚,DIN 接ATmega16L 的PB1(T1)引脚,DOUT 接PB2(AIN0/INT2)引脚,DRDY 接PD2(INT0)引脚。

————————

图3-7

3.3 输出通道设计

3.3.1 温度显示

本温度控制系统输出温度采用的四位LED 数码管显示,HD7279A 驱动驱动四位数码管。HD7279A 是一片具有串口接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED 显示、键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受BCD 码或16进制码,并同时具有2种译码方式,该芯片具有片选信号,可方便地实现多于8位的显示或多余64键的键盘接口。

HD7279A 的特点:

● 串口接口,无需外围元件可直接驱动LED 。

● 各位独立控制译码/不译码及消隐和闪烁属性。

● (循环)左移/(循环) 右移指令。

● 具有段寻址指令,方便控制独立LED 。

● 64键键盘控制器,内含去抖动电路。

● 有DIP 和SOIC 两种封装形式供选择。

HD7279A 引脚说明:引脚图如图3-8。

图3-8

VDD 正电源

NC 无连接,必须悬空

VSS 接地

——CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据

CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效

DATA 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在‘读’指令最后一个时钟的下降沿变为输出端

KEY 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平

SG-SA 段g —段a 驱动输出

DP 小数点驱动输出

DIG0-DIG7 数字0-数字7的驱动输出

CLKO 振荡输出端

RC RC振荡器连接端

RESET 复位端

HD7279A 驱动数码管电路如图3-9,HD7279A 需要外接RC 振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15pF,如果芯片无法正常工作,应先检查此振荡电路。其中CS 接ATmega16L PC3(TMS)引脚,CLK 接ATmega16L PC2(TCK)引脚,DATA 接PC1(SDA)引脚,K E Y 接PC0(SCL)引脚。 ——————

图3-9

3.3.2 加热电路

加热电路硬件部分采用可控硅输出控制,PWM 波控制输出功率。

可控硅是一种功率半导体器件,简称SCR ,也称晶闸管。它分为单向可控硅和双向可控硅,在微机控制系统中,可作为功率驱动器件。可控硅具有控制功率小、无触点、长寿命等优点,在交流电机调速、调功、随动等系统有着广泛的应用。双向可控硅相当于两个单向可控硅反向并联。双向可控硅与单向可控硅的区别是:

(l)它在触发之后是双向导通;

(2)在控制极上不管是加正的还是负的触发信号,一般都可以使双向可控硅导通。

因此双向可控硅特别适合用作交流无触点开关。

图3-10为可控硅输出电路

图3-10

本系统中与可控硅配套使用的是MOC3041光电藕合双向可控硅驱动器,与一般的光藕器件不同之处是MOC3041输出部分是硅光敏双向可控硅,还带有过零触发检测器,以保证电压接近零时触发可控硅。单片机PWM 口接光电耦合器MOC3041,再接上BT136双向可控硅,通过PWM 控制双向可控硅的通断情况,从而控制发热丝的发热功率。其中R13和R14与C29组成的电路是为了接收浪涌电流,为了系统安全所以加上保险丝。

3.4 串行通信接口电路

目前,广泛使用的串行数据接口标准有RS-232,RS-422与RS-485三种。其中RS-232是美国电子工业协会正式公布的串口总线标准,也是目前最为常用的串行接口标准,用来实现计算机与计算机之间,计算机与外设之间的数据通讯。串行通信接口的基本任务是实现数据格式化。来自CPU 的是普通的并行数据,接口电路应具有实现不同串行通信方式下的数据格式化的任务。具体任务是:

(1) 进行串—并转换;

(2) 控制数据传输速率;

(3) 进行错误检测;

(4) 进行TTL 与EIA 电平转换;

(5) 提供EIA-RS-232接口标准所要求的信号线。

由于CMOS 电平和RS-232电平不匹配,因此要实现ATmega16L 单片机和PC 机之间的通信,必须在它们之间加接电平转换器。系统设计采用MAXIM 公司的RS-232接口芯片MAX232,这是一种标准的RS-232接口芯片。MAX232只需+5v电源供电,其内部的电源变化成±10V 电源用于RS232通信。该芯片集

成有两路收发器,可将单片机输入的TTL/CMOS电平转换为RS232电平发送给PC 机,或将从PC 机接收的RS232电平转换为TTL/CMOS电平发送给单片机。MAX232为双列直插16脚封装。系统串口通信电路如图3-11所示:

图3-11

其中T1OUT 连接上位机串口的RX 端,R1IN 连接上位机串口的TX 端,R1OUT 和T1IN 是TTL/CMOS发送器的输出和输入端,分别连接ATmega16L 的PD0和PD1端。

3.5 电源电路

系统所用直流电源由三端集成稳压器组成的串联型直流稳压电源提供。设计选用LM7805三端集成稳压器,提供5v 直流电压。变压器将220V 的市电降压后再通过整流桥整流之后采用了大容量的电解电容进行滤波,以减小输出电压纹波。由于电解电容器在高频下工作存在电感特性,对于来自电源侧的高频干扰不能抑制,因此在整流电路后加入高频电容改善纹波。电路如图3-12:

图3-12

市电经过变压器降压后变为9v 交流电压,此电压一方面经过光电耦合从而进行过零检测,一方面经过交流-直流变换和电解电容滤波,减少电压纹波,再经7805稳压器输出5v 电压经过滤后分别接模拟地和数字地。

3.6 硬件抗干扰措施

硬件抗干扰是应用系统最基本和最主要的抗干扰手段,一般从防和抗两方面入手来抑制干扰。其总的原则是:抑制或消除干扰源,切断干扰对系统的藕合通道,降低系统对干扰信号的敏感性。本系统硬件抗干扰设计具体措施有:隔离、接地、滤波等常用方法。

(l)隔离 主要用于过程通道的隔离。光电耦合器能有效地抑制尖峰脉冲及各种噪声干扰,提高信噪比。在输入、输出通道采用光电藕合器将控制系统与外围接口隔离;

(2)接地 接地应遵循的基本原则是:数字地、模拟地、屏蔽地应该合理接地,不能混用。要尽可能地使接地电路各自形成回路,减少电路与地线之间电流耦合。合理布置地线使电流局限在尽可能小的范围内,并根据地电流的大小和频率设计相应宽度的印刷电路和接地方式。模拟电源和数字电源各自并接0.1uF 的陶瓷电容(去藕电容) ;

(3)滤波 电源系统干扰源主要是高次谐波。无源滤波器是一个简单的、有效的低通滤波器,它只让电网中基波通过,而对高次谐波有急剧的衰减作用,对串模干扰和共模干扰信号具有很强的双向抑制作用。

3.7 本章小结

本章主要介绍了温度控制系统的硬件电路主要模块的设计。在介绍了单片机的基础上设计了系统采用的传感器铂电阻采样电路,这是系统的模拟电路部分,也是控制信息的源头,为本温度控制系统提供了温度电信号。然后通过A/D转换芯片AD7705把温度电信号转换成数字信号送入ATmega16L 中,通过微控制器,实现对温度信号的显示、判断及控制。最后系统输出的适当控制量驱动系统的执行机构—双向可控硅。通过对可控硅导通角的调节,调节被控对象温控箱的加热,实现系统对被控对象的温度控制。考虑到系统的安全,还设计了保险丝保护电路。

通过理论分析和实践,设计制作出系统电路板,图3-13为系统硬件电路板:

图3-13

第4章 系统软件设计

在微机测控系统中,软件与硬件同样重要。硬件是系统的躯体,软件则是灵魂,当系统的硬件电路设计好之后,系统的主要功能还是要靠软件来实现,而且软件的设计在很大程度上决定了测控系统的性能。为了满足系统的要求,编制软件时一般要符合以下基本要求:

(l)易理解性、易维护性 要达到易理解和易维护等指标,在软件的设计方法中,结构化设计是最好的一种设计方法,这种设计方法是由整体到局部,然后再由局部到细节,先考虑整个系统所要实现的功能,确定整体目标,然后把这个目标分成一个个的任务,任务中可以分成若干个子任务,这样逐层细分,逐个实现;

(2)实时性 实时性是电子测量系统的普遍要求,即要求系统及时响应外部事件的发生,并及时给出处理结果。近年来,由于硬件的集成度与运算速度的提高,配合相应的软件,实时性比较容易满足设计要求;

(3)准确性 准确性对整个系统具有重要意义,尤其是测量系统,系统要进行一定量的运算,算法的正确性和准确性对结果有着直接的影响,因此在算法的选择、计算的精度等方面都要符合设计的要求;

(4)可靠性 可靠性是系统软件最重要的指标之一,作为能够稳定运行的系统,抗干扰技术的应用是必不可少的,最起码的要求是在软件受到干扰出现异常时,系统还能恢复正常工作。

4.1 开发环境介绍

4.1.1 ICCA VR 介绍

Image Craft的ICCA VR 是一种使用符合ANSI 标准的C 语言来开发微控制器(MCU)程序的一个工具, 它有以下几个主要特点:

ICCA VR 是一个综合了编辑器和工程管理器的集成工作环境IDE 其可在

WINDOWS9X/NT 下工作。

源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成编译。错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您希望得到

的可以直接使用的INTELHEX 格式文件,INTEL HEX 格式文件可被大多数的编程器所支持,用于下载程序到芯片中去。

ICCA VR 是一个32 位的程序,支持长文件名。

4.1.2 ICCA VR 中的文件类型及其扩展名

文件类型是由它们的扩展名决定的IDE 和编译器可以使用以下几种类型的文件。

输入文件:

.c 扩展名----表示是C 语言源文件;

.s 扩展名----表示是汇编语言源文件;

.h 扩展名----表示是C 语言的头文件;

.prj 扩展名----表示是工程文件,这个文件保存由IDE 所创建和修改的一个工程的有关信息;

.a 扩展名----库文件,它可以由几个库封装在一起。libcavr.a 是一个包含了标准C 的库和A VR 特殊程序调用的基本库。如果库被引用,链接器会将其链接到您的模块或文件中。您也可以创建或修改一个符合你需要的库。

输出文件:

.s 对应每个C 语言源文件,由编译器在编译时产生的汇编输出文件;

.o 由汇编文件汇编产生的目标文件,多个目标文件可以链接成一个可执行文件;

.hex INTEL HEX 格式文件,其中包含了程序的机器代码;

.eep INTEL HEX 格式文件,包含了EEPROM 的初始化数据;

.cof COFF 格式输出文件,用于在ATMEL 的AvrStudio 环境下进行程序调试;

.lst 列表文件,在这个文件中列举出了目标代码对应的最终地址;

.mp 内存映象文件,它包含了您程序中有关符号及其所占内存大小的信息; .cmd NoICE 2.xx 调试命令文件;

.noi NoICE 3.xx 调试命令文件;

.dbg ImageCraft 调试命令文件。

ICCA VR 软件界面如图4-1所示

图4-1

4.2 系统软件组成

由于整个系统软件相对比较庞大,为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计。即整个控制软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内部数据关系紧凑,模块之间数据关系松散的原则,按功能形成模块化结构。系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将A/D转换的数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序;控制算法模块完成控制系统的PID 运算并且输出控制量。

4.3 主程序模块

主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、A/D芯片初始化和串口初始化等。然后

等待温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。流程图如图4-2。

图4-2

4.4 数据采集模块

数据采集模块的任务是负责温度信号的采集以及将采集到的模拟量通过

A/D转换器转化为相应的数字量提供给单片机。图4-3(a)A/D转换程序流程图,图4-3(b)为数据采集模块流程图。

AD 转换的程序如下: #include #include "macros.h" #include "delay1.h" //#include "io_PC.h" //#include #define uchar unsigned char #define uint

unsigned int #define AD_DIN1

(PORTB|=(1

#define

AD_DIN0

(PORTB&=~(1

#define AD_CLK0

(PORTB&=~(1

#define AD_DOUT

(PINB&0x04) //0000 0100 //MCU IN #define AD_DRDY

(PIND&0x04)

#define BitSet(a,b) (a |= (1

unsigned char i; AD_DIN1; for( i=0; i

AD_CLK0; asm("nop"); asm("nop");

asm("nop");

AD_CLK1; asm("nop"); asm("nop");

asm("nop"); } delay_nms(2); }

unsigned char read_AD7705_byte(void) {

unsigned char data = 0; unsigned char i = 0; for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) {

data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); } return data; }

unsigned int read_AD7705_word(void) {

unsigned int data = 0; unsigned char i = 0;

for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) {

data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); } return data; }

unsigned long int read_AD7705_dword(void) {

unsigned long data = 0; unsigned char i = 0; for( i=0; i

data

AD_CLK0; asm("nop"); asm("nop"); asm("nop"); if(AD_DOUT) { data++; }

AD_CLK1; asm("nop"); asm("nop"); asm("nop"); }

return data; }

void write_AD7705_byte(unsigned char data) {

unsigned char i; for( i=0;i

AD_DIN0; asm("nop"); asm("nop"); asm("nop");

AD_CLK1;

asm("nop"); asm("nop"); asm("nop"); data

AD_DIN1; }

void write_AD7705_dword(unsigned long int data) {

unsigned char i; for(i=0; i

AD_CLK0; if(data&0x800000) AD_DIN1; else

AD_DIN0; asm("nop"); asm("nop"); asm("nop"); AD_CLK1; asm("nop"); asm("nop"); asm("nop"); data

long int ReadData7705(void) {

unsigned int data=0, fiter[10]={0}; unsigned long int temp=0; unsigned char i=0,sort_flag=1; //AD_CS0; delay_nus(5);

//init_AD7705();//初始化7705

for( i=0; i

//start_timer0();//启动计时器 delay_nms(6);

while(AD_DRDY);//{printf("111");} write_AD7705_byte(0x38)

fiter[i] = read_AD7705_word(); }

//return fiter[3]; //AD_CS1; sort_flag = 1; while( sort_flag ) {

sort_flag = 0; for( i=0; i

if( fiter[i] > fiter[i+1] ) {

data = fiter[i]; fiter[i] = fiter[i+1]; fiter[i+1] = data; sort_flag = 1; } } }

temp = ((unsigned long int)fiter[1] + (unsigned long int)fiter[2] +(unsigned long int)fiter[3]+ (unsigned long int)fiter[4]+(unsigned long int) fiter[5]+(unsigned long int)fiter[6])/6; return temp;

if( (data0x0008 ) ) {

data >>= 4; data++; } else {

data >>= 4; } if( 1 != scale ) {

data -= 0x0800; }

*pdata = data & 0x0fff;*/ }

void init_AD7705(void) { uchar i; //DDRA=0b11110011; //PORTA=0;

BitSet(DDRB,0);

BitSet(DDRB,1);

BitClr(DDRB,2); BitClr(DDRD,2); reset_AD7705(); for(i=10;i>0;i--)

{write_AD7705_byte(0xff);}

write_AD7705_byte(0x20);

}

write_AD7705_byte(0x0a); write_AD7705_byte(0x10); write_AD7705_byte(0x46); delay_nus(100);

4.5 数据处理模块

数据处理模块负责处理A/D转换后的数字量。其中最重要的环节是数字滤波,所以这里主要讨论系统采用的数字滤波程序。 4.5.1 数字滤波

模拟信号都必须经过A/D转换后才能为单片机接受,如果模拟信号受到扰

动影响,将使A/D转换结果偏离真实值。因此仅仅对模拟量采样一次,我们是无法确定该结果是否可信的,必须经过多次采样,得到一个A/D转换的数据序列,通过某种处理后,才能得到一个可信度较高的结果。这种从数据序列中提取逼近真值数据的软件算法,通常称为数字滤波算法。

数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比具有以下几个方面的优点:

(l) 由于数字滤波是用程序实现的,因而不需要增加硬件设备,而且可以多个输入通道共用一个滤波程序;

(2) 由于数字滤波不需要硬件设备,因而可靠性高、稳定性好,各回路之间不存在阻抗匹配等问题;

(3) 数字滤波可以对频率很低(如0.01HZ) 的信号实现滤波,克服了模拟滤波器的缺陷,而且通过改变数字滤波程序,可以实现不同的滤波方法或改变滤波参数,这比改变模拟滤波器的硬件要更灵活方便。

常用的数字滤波方法有程序判断滤波法、中值滤波法、算术平均滤波法、一阶滞后滤波法、去极值平均滤波法等等。

由于系统采用的AD 转换器AD7705本身就具有很好的滤波作用,所以在软件滤波方面采用算术平均滤波进行轻微的滤波处理。 4.5.2 显示处理

显示处理模块主要完成人机交互作用,具体实现将采样温度值、设定温度值

以字符的形式通过LED 数码管显示出来。本系统使用HD7279作为显示驱动器。

4.6 PID 控制

PID 调节是Proportional(比例) 、Integral(积分) 、Differential(微分) 三者的缩写,PID 控制是最早发展起来的控制策略之一,现今使用的PID 控制器产生并发展于1915-1940年期间。尽管自1940年以来,许多先进的控制方法不断推出,但由于PID 控制方法具有结构简单、鲁棒性好、可靠性高、参数易于整定,P 、I 、D 控制规律各自成独立环节,可根据工业过程进行组合,而且其应用时期较长,控制工程师们已经积累了大量的PID 控制器参数的调节经验。因此,PID 控制器在工业控制中仍然得到广泛应用。据统计,有90﹪以上的工业控制器采用PID 控制器。PID 控制器的发展经历了液动式、气动式、电动式几个阶段,目前正由模拟控制器向着数字化、智能化控制器的方向发展。

PID 控制理论上方案选择里已具体介绍过,现将PID 调节的部分程序写出来,部分程序设计如下:

#include float kp=15,ki=0,kd=0; //PID数学模型

//u(t) = kp * e(t) + ki * [e(1) + e(2) + ....+ e(t)] + kd * [e(t) - e(t-1)] //参考数据:Kp=5.98 T=5 Td=27 Ti=112.5

int PID(float set_temperture, float measure_temperture) {

float derror;

static float sum=0,ek_pre=0,ek_last=0,ek_now=0; ek_now=set_temperture-measure_temperture; //printf("ek_now=%d\n",ek_now); sum+=ek_now;

//积分项

derror=ek_now-ek_last; //微分项

//printf("derror=%d\n",derror);

ek_pre=ek_last; ek_last=ek_now;

//上上一次 //上一次

//printf("pid_result=%f\n",(kp*ek_now+kd*derror)); //return(kp*ek_now+kd*derror); //PD control

return(kp*ek_now+ki*sum+kd*derror); //PID control }

4.7 软件抗干扰措施

本系统中,在软件方面的抗干扰措施主要从以下两个个方面来考虑:

(l) 按键的软件消抖措施

按键是一个机械开关,当键按下时,开关闭合;当键松开时,开关断开。其特点之一就是它的抖动性,这是由按键的机械特性所决定的,抖动的时间一般约为10ms-20ms 。

对于按键消抖的具体措施目前有两种:一是用硬件电路来实现,即用RC 滤波电路滤除抖动。另一种是用软件延时的方法来解决,即利用软件的延时避开按键的按下与抬起时都有的抖动期,从而避免检测到干扰信号。本文采用的就是软件延时消抖的方法。附录中给出了延时程序的源程序,同时延时程序还作为通用功能模块被其他模块调用。

(2) 数字滤波

数字滤波是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的方法,采用软件滤波算法不需要增加硬件设备,可靠性高,功能多样,使用灵活,但是要占用一定的处理器运行时间。在本系统设计中,采用了数字滤波的软件抗干扰措施,所采用的数字滤波算法是算术平均滤波法。

第5章

5.1 系统调试

测量调试

在前几章介绍了系统的硬件和软件的设计,了解了系统的PID 调节的方案和算法,这章主要是对系统测温控温的调试,以证明该系统确实达到了预期的目标,实现了设计任务要求。

系统采用LabWindows/CVI开发虚拟仪器软件,LabWindows/CVI是一个完全的ANSI C开发环境,用于仪器控制、自动检测、数据处理的应用软件。它以ANSI C为核心,将功能强大、使用灵活的C 语言平台与用数据采集、分析和显示的测控专业工具有机结合起来。它的交互式开发平台、交互式编程方法、丰富的功能面板和函数库大大增强了C 语言的功能,为熟悉C 语言的开发人员激励自动化检测系统、数据采集系统、过程控制系统等提供了一个理想的软件开发环境。LabWindows/CVI软件把C 语言的有力与柔性同虚拟仪器的软件工具库结合起来,包含了各种总线、数据采集和分析库。同时,LabWindows/CVI软件提供了国内外知名厂家生产的三百多种仪器的驱动程序。LabWindows/CVI软件的重要特征就是在Windows 和Sun 平台上简化了图形用户接口的设计,使用户很容易的生成各种应用程序,并且这些应用程序可以在不同的平台上移植。

LabWindows/CVI是为C 语言程序员提供的软件开发环境,在其交互式开发环境中编写的程序必须符合标准C 语言的规范。 使用LabWindows/CVI可以完成如下工作: (1)交互式的程序开发。

(2)具有功能强大的功能库,用来创建数据采集和仪器控制的应用程序。 (3)充分利用完备的软件工具进行数据采集、分析和显示。 (4)利用向导开发IVI 仪器驱动程序和创建ActiveX 服务器。 (5)为其他程序开发C 目标模块、动态链接库(DLL )、C 语言库。

在虚拟仪器技术当中“软件”是其核心,虚拟仪器软件框架从底层到顶层分为VISA 库,仪器驱动程序和应用软件。系统的人机界面、参数的输入、采集数据实时显示、数据存储和回放、信号处理与分析及智能诊断等都是通过软件实的。

而用于本系统温度控制器调试软件的生成流程图如图5-1,其中主线程主要负责界面运行用户事件响应,次线程从主线程处得到采集温度在面板中画曲线更新。

主线程 次线程

图5-1

经过LabWindows/CVI开发出虚拟器软件的安装程序temperature_con.exe,安装并运行程序后程序运行界面图如图5-2:

图5-2

我们将编辑调试好的程序烧入ATmega16L 单片机芯片中,将电源和串口线接好之后,打开调试工具软件temperature_con进行PID 调试。

5.2 调试结果

多次调试结果表明系统设计完全达到预期目的,完成系统设计要求,达到了测温控温的目的和控制温度的精度(±2℃)要求,调试要点:先把其他参数去掉,只进行比例调节(p ),待得出的温度跟随曲线基本无误后再加上微分参数(d ), 这样可以减少超调量。积分参数可起提高控制精度的作用,根据系统要求做适当调节。调试效果图如图5-3。

图5-3

温度控制在工业生产中起着非常重要的作用。本文完成了基于单片机的温度控制系统的开发。包括系统的硬件开发、软件编程与仿真调试等。在论文完成过程中,主要做的工作有:

(l) 以ATMEL 公司的ATmega16L 单片机为核心进行系统硬件设计,输入通道采用Pt100铂电阻温度传感器,AD7705作为A/D转换器;输出通道采用可控硅作为输出单元,大大地简化了系统硬件电路。通过对占空比的调节可实现温控箱温度的自动控制。由于输入端与输出端有光电隔离,能够有效地抑制干扰;

(2) 在温度控制系统中采用常规的PID 控制方法,这需要知道被控对象的数学模型,以及对PID 控制器的参数进行整定。因此,在分析了温控箱的特性的基础上,对PID 控制器的参数进行整定,并且做了仿真实验;

(3) 采用C 语言对系统的软件编程,在开发过程中使用了ICCA VR 编译器和A VRstudio 调试工具,这些都大大缩短了软件的开发周期。为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。

参考文献

[1] [日]松井邦彦(著 )梁瑞林(译). 传感器实用电路设计与制作[J].科学出版社出版

[2] 马潮 编著.AVR 单片机嵌入式系统原理与应用实践[J].北京航空航天大学出版社

[3] 孙传友,孙晓斌, 张一编. 感测技术与系统设计[J]. 科学出版社

[4] 杨正忠,耿德根.AVR 单片机应用开发指南及实例精解[J].中国电力出版社

[5] 耿德根, 宋建国, 马潮等.AVR 高速嵌入式单片机原理与应用[J]. 北京航空航天大学出版社

[6] 张洪润,张亚凡主编. 传感技术与应用教程[J]. 清华大学出版社

[7] 沈怀洋. 高精度铂电阻温度调节器[D]. 沈阳工业大学硕士学位论文,2004

[8] 陈忠华. 基于单片机的温度智能控制系统的设计与实现[D].大连理工大学硕士学位论文,2006

[9] 谭浩强.C 语言程序设计[J]. 北京:清华大学出版社,1998

[10] 于海生等. 微型计算机控制技术[J]. 北京:清华大学出版社,1999

[11] 赖寿宏. 微型计算机控制技术[J]. 北京:机械工业出版社,1999

[12] 导向科技编著 .Protel DXP电子电路设计培训教程[J].人民邮电出版社

[13] 阎石主编. 数字电子技术基础[J]. 高等教育出版社

[14] 郑国平主编. 模拟电子技术[J]. 清华大学出版社 2006

[15] 周兴华编著.AVR 单片机C 语言高级程序设计[J]. 中国电力出版社 2008

[16] 胡翔骏. 电路分析. 高等教育出版社 2007

[17] 张凤均等.LABWINDOWS/CVI开发入门和进阶. 北京航空航天大学出版社 2001


相关文章

  • 9FA燃机AGC模式下主.再热蒸汽温度控制策略
  • [摘 要]介绍美国GE公司9FA级燃气蒸汽联合循环机组余热锅炉特点及蒸汽减温配置,联合循环机组正常运行中通过串联布置的两个回路控制主.再热蒸汽温度,包含最小流量和过热度保护的实现方法.机组启动阶段,IGV参与燃机排气温度控制,前馈调节来稳定 ...查看


  • 基于单片机的恒温控制系统 1
  • 摘要:在工业生产中,电流.电压.温度.压力.流量.流速和开关量都是常用的主要被控参数.其中,温度控制也越来越重要.在工业生产的很多领域中,人们都需要对各类加热炉.热处理炉.反应炉和锅炉中的温度进行检测和控制.采用单片机对温度进行控制不仅具有 ...查看


  • 蔬菜大棚温度控制器设计
  • 辽 宁 工 业 大 学 单片机原理及接口技术 课程设计(论文) 题目: 蔬菜大棚温度控制器设计 院(系): 专业班级: 学 号: 学生姓名: 指导教师: (签字) 起止时间:2015.06.22-2015.7.05 课程设计(论文)任务及评 ...查看


  • 几种温度控制方法的特点及应用
  • 创意与实践 文章编号:100129944(2001) 0620062202 Ξ 几种温度控制方法的特点及应用 田秀华, 杨 顺 (辽宁工程技术大学, 辽宁阜新 123000) 摘 要:此文介绍几种温度控制方法, 包括控温系统组成.控温电路. ...查看


  • 多路温度采集系统设计与实现资料
  • 学校代码:11517 学 号:[1**********]7 ENGINEERING HENAN INSTITUTE OF 毕业设计(论文) 题 目 多路温度采集系统设计与实现 学生姓名 高宇照 专业班级 电气工程及其自动化1121 学 号 ...查看


  • 基于单片机的锅炉温度控制
  • 本 科 毕 业 设 计 1 引言 第 1 页 共 37 页 随着工业技术的不断发展,温度控制在国民经济和生活中的作用显著提升.在工业生产的过程当中,有很多极为重要的被控参数,温度即是其中最重要的参数之一,在众多的工业生产中,所需温度的控制效 ...查看


  • KSY-6-16A温度控制器使用说明书
  • 一.简介 KSY-6-16A型温度控制器为1300℃电炉的配套设备,与铂铑-铂热电偶配套使用,可对电炉内的温度进行测量.显示.控制,并可使炉膛内的温度自动保持恒温.以硅碳棒为加热元件的高温电阻炉,其加热元件的冷态与热态时的电阻值相差较大,在 ...查看


  • 表面活性剂生产过程控制系统
  • 绪论 .......................................... 1 2 工艺流程与控制参数简述 ...................... 2 2.1工艺流程 ......................... ...查看


  • 啤酒发酵温度过程控制
  • PLC在啤酒发酵温度控制中的应用 概 述 啤酒的发酵过程是在啤酒酵母的参与下,对麦汁的某些组成进行一系列代谢,从而将麦汁风味转变为啤酒风味的过程.啤酒发酵是啤酒生产工艺流程中关键环节之一,也是一个极其复杂的在发酵罐内发生并释放大量热量的生化 ...查看


  • 检测仪表与传感器习题解答
  • 第3章 检测仪表与传感器 3-1 什么叫测量过程? 解 测量过程就是将被测参数与其相应的测量单位进行比较的过程 3-5 某一标尺为0~1000℃的温度仪表出厂前经校验,其刻度标尺上的各点测量结果分 (2)确定该温度仪表的精度等级: (3)如 ...查看


热门内容