第1个回答 2011-04-26
第三章 电阻炉温度控制系统的设计
一 系统设计方案的论证与比较
电阻炉温度控制系统由单片机主控模块、前向通道模块(温度采集模块)、后向通道模块(温度控制模块)及键盘显示模块等组成。
方案一:采用8031作为控制核心,以使用最为普遍的器件ADC0809作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。此方案简易可行,器件的价格便宜,但8031内部没有程序存储器,需要扩展,增加了电路的复杂性,且ADC0809是8位的模数转换,不能满足本题目的精度要求。
方案二:采用比较流行的AT89S51作为电路的控制核心,使用12位的高精度模数转换器AD574A进行数据转换,控制电路部分采用PWM控制可控硅的通断以实行对电阻炉温度的连续控制,此方案电路简单并且可以满足题目中的各项要求的精度。
综上分析,采用方案二。系统设计总体框图如下。
图1 控制器设计总体框图
由框图可见,本温度控制系统以AT89S51单片机为核心,外扩键盘输入、LED显示和超温报警装置等外围电路实现的。电炉的温度由温度传感器检测并转换成微弱的电压信号,温度变送器将此弱信号进行非线性校正及电压-电流变换后以4~20mA的标准信号形式传送出去,接收端的I/V变换及放大电路将4~20mA的标准信号变换放大至0~5V电压,再经有源低通滤波器滤波后,由A/D转换器转换成数字量。此数字量经数字滤波、标度变换后,一方面将电炉温度经人机面板上的LED数码管显示出来;另一方面将该温度值与被控制值(由键盘输入的设定温度值)进行比较,根据其偏差值的大小,采用PID控制算法进行运算,最后通过D/A转换电路(这里采用PWM调功方式,相当于D/A转换器)控制固态继电器在控制周期内的通断占空比(即控制电阻炉平均功率的大小),进而达到对电炉温度进行控制的目的。如果实际测得的温度值超过了系统要求的温度范围,单片机就会向报警装置发出指令,从而进行超温报警。该设计结构简单,控制算法新颖,控制精度高,有较强的通用性。所设计的控制系统有以下功能:
• 温度设定范围为40~90℃, 测量精度小于±1%,控制精度小于±0.1℃,超调整量小于±4%;
• 实现控制可以升温也可以降温;
• 具有三位设定温度值与测量温度值实时显示当前温度值;
• 按键控制:设置复位键、运行键、功能转换键、加一键、减一键;
• 越限报警。
二 硬件电路设计
硬件电路主要有两大部分组成:模拟部分和数字部分;从功能模块上来分有:主控模块的器件选型与设计、前向通道模块的设计(数据采集电路)、后向通道模块的设计(温度控制电路)、键盘显示电路。
1 主机模块的器件选型与设计
主机选用ATMEL公司的51系列单片机AT89S51来实现,利用单片机软件编程灵活、自由度大的特点,力求用软件完善各种控制算法和逻辑控制。本系统选用的AT89S51芯片时钟可达12MHz,运算速度快,控制功能完善。其内部具有128字节RAM,而且内部含有4KB的flash ROM 不需要外扩展存储器,可使系统整体结构更为简单、实用。
2 前向通道模块的硬件电路的设计
就本系统来说,需要实时采集水温数据,然后经过A/D转换为数字信号,送入单片机中的特定单元,然后一部分送去显示;另一部分与设定值进行比较,通过PID算法得到控制量并经由单片机输出去控制电热锅炉加热或降温。前向通道模块的硬件电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(AD574A)三部分组成。
2.1 温度传感器的选型
方案一 热电阻测温 热电阻测量温度,精度和灵敏度都可以,但是它的电阻值与温度的线性关系不好,不便用数字的方法处理。
方案二 热电偶测温 热电偶是温度测量中应用最广泛的一种传感器。在一般的测量和控制中,常用于中高温的温度检测。在测量中需要温度的冷端补偿,在数字电子中实现不方便。
方案三 AD590加运算放大器 二端式半导体温度传感器 AD590的工作电压要求不高,测温的范围比较宽最重要的是它的输出电流是紧随温度变化的电流源,所以它的线性非常好.选择这种方案。
为了达到测量高精度的要求,选用温度传感器AD590,AD590具有较高精度和重复性(重复性优于0.1℃,其良好的非线形可以保证优于0.1℃的测量精度,利用其重复性较好的特点,通过非线形补偿,可以达到0.1℃测量精度.)超低温漂移高精度运算放大器0P07将温度一电压信号进行放大,便于A/D进行转换,以提高温度采集电路的可靠性。模拟电路硬件部分见图2。
图2 温度采样与变换电路
2.2 温度传感器AD590
测量范围在-50℃~+150℃,满刻度范围误差为±0.3℃,当电源电压在5~10V之间,稳定度为1%时,误差只有±0.01℃ 。AD590为电流型传感器温度每变化1℃其电流变化1uA在40℃和90℃时输出电流分别为313.2uA 和363.2uA 。
2.3 模数转换电路
A/D转换器是把模拟量转换为数字量的器件,简写为ADC。ADC的品种繁多,其中逐次比较式ADC由于精度高,价格便宜而在工业控制中得到广泛应用。由于控制精度要求为0.1 度,而考虑到测量干扰和数据处理误差,则温度传感器和ADC的精度应更高才能保证控制精度的实现,这个精度可处粗略定为0.1 度。故温度传感器需要能够区分0.1 度;而对于ADC,由于测量范围为40~90℃,以0.1 度作为响应的AD 区分度要求,则AD 需要区分(90-40)/0.1=500 个数字量,显然需要10 位以上的ADC。为此,选用高精度的12位AD574A。
2.4电路原理及参数计算
前向通道模块电路的基本原理是采用电流型温度传感器AD590将温度的变化量转换成电流量,再将电流量转换成电压量通过A/D转换器AD574A将其转换成数字量交由单片机处理。
图2中三端稳压7812作为基准电压,由运放虚短虚断可知运放的反向输入端Ui的电压为零伏。当输出电压为零伏时(即Uo=0v) 列出A点的结点方程如下:
又由于AD574A的输入电压范围为0~5v ,为了提高精度所以令水温为90℃时AD574A的输入电压为5v(即Uo=5v)。此时列出A点的结点方程如下:
因此可以计算出R1、R2 、 R3、R4。
3 后向通道模块的硬件电路的设计
3.1 电阻炉的功率调节方式
电阻炉的温度控制是通过调节电阻炉的输入电功率来实现的。目前多数温控仪采用晶闸管来实现功率调节。由晶闸管实现交流功率调节的途径有两条:一种是通过改变交流电压每周期内电压波形的导通角,使得负载端电压有效值得以调节,进而实现电功率调节。由于这种调节方式下触发脉冲的触发时刻与电压波形的相位有关,因此称为相位控制调功;另一种调节方式是电压波形不变而只改变电压周波在控制周期内出现的次数,这种调节方式称为通断控制调功。就触发方式而言,前者为移相触发,后者为过零触发。两者的电压波形比较如图3所示。
图3 两种调功方式的比较
通过比较发现:相位控制的电压波形不“规整”,但正负半周对称,无直流成分,可直接用于电感负载。其最大的缺点是:大电流的切入造成对电网的冲击,不规整的脉冲负载电流引起电网波形的畸变及对其它电设备的中频干扰。输出的线性范围窄而线性度又不好,只能靠反馈来改善。通断控制的输出波形仍为正弦波,其优点是,不会对电网造成严重污染和干扰其它用电设备,而且电炉的功率愈大,优点愈突出。但通断控制也存在抗电源干扰能力弱等缺点。对于纯阻性负载的电阻炉来说,温控仪采用过零触发方式可使电路结构简单,软件计算方便。因此,在本系统中采用通断控制的方式来进行功率调节。
3.2 数/模转换及PWM
为了实现对模拟量的控制,在计算机控制系统中都设有将数字量转换为模拟量的DA转换器(DAC)。但在单片机AT89S51中并不包括这种DAC,但AT89S51具有灵活的PWM(Pulse-Width Modulation)输出功能。PWM功能可以在其输出引脚产生占空比可变的脉冲串,通过模拟滤波器可以把它整形成所需的模拟信号,从而实现数字信号到模拟信号的转换。
PWM(Pulse-Width Modulation脉冲宽度调制)是以一个固定频率的脉冲串作为基础的。为了产生不同的模拟信号电平,可以通过改变这个脉冲串占空比来实现。要输出较高的模拟电平就要增加占空比,反之则减小占空比。由于PWM输出是在片内计数器的基础上实现的,因此其在改变占空比方面非常准确。在本系统中,为达到电炉通断控制调功的目的,可以采用定时器控制一个通用输出端口的方式实现,也可以采用PWM输出功能实现。但采用通用端口需要两个定时器来完成定时采样和通断输出。而采用PWM功能可以只占用一个定时器就能实现定时采样和通断输出,故在本系统中采用AT89S51片上的PWM功能实现对电阻炉的通断控制调功。
3.2 固态继电器及其应用
固态继电器(Solid State Relays),简写成“SSR”,是一种全部由固态电子元件(如光电耦合器、晶体管、可控硅、电阻、电容等)组成的新型无触点开关器件。与普通继电器一样,它的输入侧与输出侧之间是电绝缘的。但是与普通电磁继电器比,SSR体积小,开关速度快,无机械触点,因而没有机械磨损,不怕有害气体腐蚀,没有机械噪声,耐振动、耐冲击,使用寿命长。它在通、断时没有火花和电弧,有利于防爆,干扰小(特别对微弱信号回路)。另外,SSR的驱动电压低,电流小,易于与计算机接口。因此SSR作为自动控制的执行部件得到越来越广泛的应用。SSR按使用场合可以分成交流型和直流型两大类。交流型SSR的工作原理框图如图4所示。
图4 交流SSR工作原理框图
图中的部件①~④构成交流SSR的主体。从整体上看,SSR只有两个输入端(A和B)及两个输出端(C和D),是一种四端器件。工作时只要在A、B上加上一定的控制信号,就可以控制C、D两端之间的“通”和“断”,实现“开关”的功能,其中耦合电路的功能是为A、B端输入的控制信号提供一个输入/输出端之间的通道,但又在电气上断开SSR中输入端和输出端之间的(电)联系,以防止输出端对输入端的影响,耦合电路用的元件是“光耦合器”,它动作灵敏、响应速度高、输入/输出端间的绝缘(耐压)等级高;由于输入端的负载是发光二极管,这使SSR的输入端很容易做到与输入信号电平相匹配,在使用时可直接与计算机输出接口相接,即受“1”与“0”的逻辑电平控制。触发电路的功能是产生合乎要求的触发信号,驱动开关电路④工作,但由于开关电路在不加特殊控制电路时,将产生射频干扰并以高次谐波或尖峰等污染电网,为此特设“过零控制电路”。所谓“过零”是指,当加入控制信号,交流电压过零时,SSR即为通态;而当断开控制信号后,SSR要等待交流电的正半周与负半周的交界点(零电位)时,SSR才为断态。这种设计能防止高次谐波的干扰和对电网的污染。吸收电路是为防止从电源中传来的尖峰、浪涌(电压)对开关器件双向可控硅管的冲击和干扰(甚至误动作)而设计的,一般是用“R-C”串联吸收电路或非线性电阻(压敏电阻器)。
图5 输出控制电路
图5是一种过零型交流SSR的电原理图。图中此部分电路主要由过零双向晶闸管型光耦器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100Ω电阻与0.01uF电容组成双向可控硅保护电路。
4 键盘及显示的设计
键盘采用软件查询和外部中断相结合的方法来设计,低电平有效。图3 中按键AN1,AN2,AN3,AN4, AN5的功能定义如表1所示。按键AN3与P3.2相连,采用外部中断方式,并且优先级定为最高;按键AN5和AN4分别与P1.7和P1.6相连,采用软件查询的方式;AN1则为硬件复位键,与R、C构成复位电路。
表1 按键功能
按键 键名 功能
AN1 复位键 使系统复位
AN2 运行键 使系统开始数据采集
AN3
功能转换键 按键按下(D1亮)时,显示温度设定值;按键升起(D1不亮)时,显示前温度值
AN4 加一键 设定温度渐次加一
AN5 减一键 设定温度渐次减一
显示采用3位共阳LED静态显示方式,显示内容有温度值的十位、个位及小数点后一位,这样可以只用P3.0(RXD)口来输出显示数据,从而节省了单片机端口资源,在P1.4 口和P3.1(TXD)的控制下通过74LS164来实现3位静态显示。数字电路硬件部分见图6 。
图6 数字硬件电路示意图
三 系统软件设计
1 温度控制算法
与电阻炉的时间常数相比,晶闸管调压电路,温度检测环节,信号放大环节都可以不考虑其时间常数,而简化成比例环节。理论分析和实验证明,电阻炉是一个具有自平衡能力的对象,可用一个一阶惯性环节和一个延迟环节来近似描述,考虑到零阶保持器,系统的简化动态结构图如图7所示。
图7 系统简化动态结构图
被控对象加上零阶保持器的广义对象传递函数为
本系统数字控制器采用增量式PID调节器
式中,
上式即为增量式PID算法的递推公式。其中系数K1、K2、K3可以事先算出。
2温度控制程序
由于整个系统软件相当庞大,为了便于编写、调试、修改和增删,系统程序的编制采用了模块化的设计。即整个控制软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内部数据关系紧凑,模块之间数据关系松散的原则,按功能形成模块化结构。系统软件主要由主程序模块、功能实现模块、运算控制模块等组成。
2.1 主程序模块
在主程序中首先给定PID算法的参数值,然后通过循环显示当前温度,并且设定键盘外部中断为最高优先级,以便能实时响应键盘处理;软件设定定时器T0为5秒定时,在无键盘响应时每隔5秒响应一次,以用来采集经过A/D转换的温度信号;设定定时器T1为嵌套在T0之中的定时中断,初值由PID算法子程序提供。在主程序中必须分配好每一部分子程序的起始地址,形式如下:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTO
ORG 000BH
AJMP TT0
ORG 001BH
AJMP TT1
主程序流程图见图8。
图8 主程序流程图 图9 键盘及中断程序
2.2 功能实现模块
以用来执行对可控硅及电炉的控制。功能实现模块主要由A/D转换子程序、中断处理子程序、键盘处理子程序、显示子程序等部分组成。
2.2.1 T0中断子程序
该中断是单片机内部5s定时中断,优先级设为最低,但却是最重要的子程序。在该中断响应中,单片机要完成A/D数据采集转换、数字滤波、判断是否越限、标度转换处理、继续显示当前温度、与设定值进行比较,调用PID算法子程序并输出控制信号等功能。
2.2.2 T1中断子程序
T1定时中断嵌套在T0中断之中,优先级高于T0中断,其定时初值由PID算法子程序提供,T1中断响应的时间用于输出可控硅(电炉)的控制信号。
2.3 运算控制模块
运算控制模块涉及标度转换、PID算法、以及该算法调用到的乘法子程序等。
2.3.1 标度转换子程序
该子程序作用是将温度信号(00H~FFH)转换为对应的温度值,以便送显示或与设定值在相同量纲下进行比较。所用线形标度变换公式为:
式中,Ax: 实际测量的温度值;Nx:经过A/D转换的温度量;
Am =90; Ao=40; Nm =FEH; No=01H;
单片机运算采用定点数运算,并且在高温区和低温区分别用程序作矫正处理,温度计测量值与LED显示见图7。
图10 温度计测量值与报警方式图
2.3.2 PID算法子程序
系统算法控制采用工业上常用的位置型PID数字控制,并且结合特定的系统加以算法的改进,形成了变速积分PID一积分分离PID控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量(见图11),而且有效地克服了积分饱和的影响,使控制精度大大提高。PID控制算法的流程图如图12。
图11 温度控制曲线图
图12 PID控制算法流程图
图12中,初始水温为50℃。实现思想:Ui(k)为第k次采样温度值,Ur 为设定值。
e(k) ≥ε 使用PD算法;
e(k) <ε使用变速积分PID算法。
四 结果分析论述
课程设计中运用PID算法更新T1的定时常数,PWM输出控制可控硅的通断,从而实现对温度的连续控制。设计结果由图10和图11可以看出:本设计的控制器工作稳定,控制精度高,改进的PID算法超调量大大降低;软件采用模块化结构,提高了通用性。本设计的目的不仅仅是温度控制本身,主要提供了单片机外围电路及软件包括控制算法设计的思想,应该说,这种思想比控制系统本身更为重要。