计算机控制课程设计-基于PID算法电加热炉温度控制系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

成绩《计算机控制技术》课程设计题目:基于数字PID的电加热炉温度控制系统设计班级:自动化09-1姓名:学号:2013年1月1日基于数字PID的电加热炉温度控制系统设计摘要:电加热炉控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。本设计采用PID算法进行温度控制,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节相串联来实现温度的较为精确的控制。电加热炉加热温度的改变是由上、下两组炉丝的供电功率来调节的,它们分别由两套晶闸管调功器供电。调功器的输出功率由改变过零触发器的给定电压来调节,本设计以AT89C51单片机为控制核心,输入通道使用AD590传感器检测温度,测量变送传给ADC0809进行A/D转换,输出通道驱动执行结构过零触发器,从而加热电炉丝。本系统PID算法,将温度控制在50~350℃范围内,并能够实时显示当前温度值。关键词:电加热炉;PID;功率;温度控制;1.课程设计方案1.1系统组成中体结构电加热炉温度控制系统原理图如下,主要由温度检测电路、A/D转换电路、驱动执行电路、显示电路及按键电路等组成。系统采用可控硅交流调压器,输出不同的电压控制电阻炉温度的大小,温度通过热电偶检测,再经过变送器变成0-5V的电压信号送入A/D转换器使之变成数字量,此数字量通过接口送到微机,这是模拟量输入通道。2.控制系统的建模和数字控制器设计2.1数字PID控制算法在电子数字计算机直接数字控制系统中,PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。kjisjeTTdeT0t0)()(1用矩形积分时,有)]1()([)(kekeTTdttdeTSDd(1)用差分代替微分00))]1()([)(()([)(ukekeTTjeTTkeKkuSDkjisp(2)由上式得001)]1()([)()()(uukekeKkeKkeKkDkjp(3)式中u0——控制量的基值,即k=0时的控制;u(k)——第k个采样时刻的控制;KP——比例放大系数;KI——积分放大系数;KD——微分放大系数;TS——采样周期。式(3)是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)(j=1,2,3,...,k)都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置,例如在阀门控制中,这种算法的输出对应了阀门的位置(开度)。所以,将这种算法称为“位置算法”。当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。由位置算法求出再求出)1()()(kukuku两式相减,得出控制量的增量算法01)]1()([)()([)(ukekeTTjeTTkeKkuSDkjISp(4)式(4)称为增量式PID算法。对增量式PID算法(4)归并后,得)2()1()()(210keqkeqkeqku]1[0SDISPTTTTKq(5)其中(5)已看不出是PID的表达式了,也看不出P、I、D作用的直接关系,只表示了各次误差量对控制作用的影响。从式(5)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。3.硬件设计3.1温度检测及功率放大电路本系统采用镍铬-镍硅热电偶检测电阻炉中的温度,热电偶测温是基于物体的热电效应,它由两种不同的金属或合金组成,其优点是结构简单,可将温度信号转换成电压信号,测温范围广、精度高,可实现远距离测量和传送,使用稳定、可靠,因此被广泛应用。其不足之处是测温精度受冷端温度(即环境温度)的影响,为了提高热电偶测温精度,需要在热电偶冷端进行温度补偿。温度检测电路及功率放大电路如图所示。热电偶冷端温度补偿采用的是集成温度传感器AD590,流过AD590的电流Iu=273μA+T0×1μA/℃,式中,T0为室温。负载电阻R3上输出电压UOUT=IuR3,选择电阻R3使UOUT在AD590允许输入电压范围内。本系统选择R3=10kΩ。这种测量方法冷端温度准确,克服了常规方法补偿误差大和不方便的缺点。热电偶传感器输出的电压信号较为微弱(只有几毫伏到几十毫伏),因此在进行A/D转换之前必须进行信号变送,由高放大倍数的电路将它放大到A/D转换器通常所要求的电压范围,热电偶的输出热电势为0~56mV。本系统前级选用自稳态高精度斩波运放ICL7650,输入信号为差动信号,放大倍数为15倍。后级运放选用较廉价的μA741,放大倍数可调,最大可达100倍,主要完成反相功能。ICL7650输入端的钳位二极管起保护作用,避免输入线路发生故障时的瞬态尖峰干扰损坏010)]2()1()()1([)1(uukekeTTjeTTkeKkSDkjISpSDPTTKq2]21[1SDPTTKq运放,输入电压可直接送入AD574A进行转换。3.2AD574A模/数转换电路如下图所示,AD574A工作在12位状态,转换值分两次输出,高8位从DB4~DB11输出,低4位从DB0~DB3输出,并直接和单片机的数据线相连,AD574A的片选端接锁存器的Q7端,低电平有效;CE为片选使能端,高电平有效;CS和CE共同用于片选控制,只有当两个信号同时有效时,才能选中本芯片工作。A0端接锁存器74LS373的Q1端。A0=0时启动A/D转换。R/接锁存器74LS373的Q0端。R/=0时,启动A/D转换;R/=1时,允许读出转换后的数据。AT89C51的和经“与非”门74LS00与AD574A的CE端相接。12/8接地表示AT89C51要分两次从AD574A读出A/D转换的12位数字量。3.3执行机构传统的SSR控制采用移相触发电路,通过改变晶闸管导通角的大小来调节输出功率,从而达到自动控温的目的。这种移相方式输出一种非正弦波,实践表明这种控制方式产生相当大的中频干扰,并通过电网传输给电力系统造成“公害”。本系统采用单片机控制的固态继电器控温电路,其波形为完整的正弦波,对电阻炉这样的惯性较大的被控对象,是一种稳定、可靠、较合理的控制方法。调功原理为:设电网连续N个完整的周波为一个控制周期TC,则若在设定的控制周期TC内控制主回路导通n(n≤N)个完整的周波,则负载功率为式中,U为电网电压有效值;为负载的有效电阻。因此,控制在设定周期TC内主回路导通的周波数n的个数,就可调节负载的功率P。采用交流过零型固态继电器控温时需交流过零检测电路,此电路输出对应于50Hz交流电压过零时刻的脉冲,在交流电压过零时刻导通。如图所示是一种由两个光电耦合器和一个单稳态电路组成的交流过零检测电路。其中,GD1、GD2为光电耦合器,具有检零和隔离功能,R10为限流电阻。在交流正半周,GD1导通,GD2截止,VA为低电平;在交流负半周,GD1截止,GD2导通,VA仍为低电平。只有在交流过零点时,GD1和GD2均截止,VA为高电平。VA再经过74LS123单稳态电路整形,得到一过零脉冲序列VB,VB波形。VB脉冲序列再与单片机P1.X输出的触发脉冲信号进行“与非”运算后得到控制信号。用它来控制固态继电器,从而调节电阻炉温度。交流过零检测电路3.4报警电路设计正常运行时绿灯亮,在保温阶段炉内温度超出系统允差范围,就要进行报警。报警时报警红灯亮,电笛响,同时发送中断信号至CPU进行处理。如图加热炉报警系统图3.5设计输入输出通道输入通道:因为所控的实际温度在50~350℃,即(350-50)=300所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现。(通过调整放大器的零点来实现偏置)这里采用一般中速芯片ADC0809。ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。这种器件无需进行零位和满量程调整。由于多路开关的地址输入部分能够进行锁存和译码,而且其三态TTL输出也可以锁存,所以它易于与微型计算机接口。其具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,故用于过程控制是比较理想的器件。ADC0809应用接线图输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片。DAC0832是8位D/A转换器,与微处理器完全兼容。期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。它的内部具有两级输入数据缓冲器和一个R-2RT型电阻网络,因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反馈电阻端。双极性电压输出的D/A转换电路通常采用偏移二进制码、补码二进制码和符号一数值编码。只要在单极性电压输出的基础上再加一级电压放大器,并配以相关电阻网络就可以构成双极性电压输出。在上图中,运算放大器A2的作用是把运算放大器A1的单向输出电压转变为双向输出。4.软件设计4.1系统程序流程图4.1.1系统主程序框图4.1.2A/D转换子程序流程图4.1.3LED显示流程图4.1.4报警程序流程图4.1.5数字控制算法子程序流程图4.2程序清单4.2.1主程序ORG0000HAJMPMAINORG0003HAJMPKEYSORG000BHAJMPPIT0ORG001BHAJMPPIT1;中断入口及优先级MAIN:MOVSP,#00HCLR5FH:清上下限越限标志MOVA,#00HMOVR7,#09HMOVR0,#28HLP1:MOV@R0,AINCR0DJNZR7,LP1MOVR7,#06HMOVR0,#39HLP2:MOV@R0,AINCR0DJNZR7,LP2MOVR7,#06HMOVRO,#50HLP3:MOV@R0,AINCR0DINZR7,LP3;清显示缓冲区MOV33H,#00HMOV34H,#00H;赋KP高低字节MOV35H,#00HMOV36H,#00H;赋KI高低字节MOV37H,#00HMOV38H,#00H;赋KD高低字节MOV42H,#00HMOV43H,#00H;赋K高低字节MOVTMOD,#56H;T0方式2,T1方式1计数MOVTLO,#06HMOVTHO,#06HMOV25H,#163H;设定值默认值350SETBTR0;键盘高优先级SETBET0SETBEX0SETBEA;开键盘T0。T1中断LOOP:MOVR0,#56HMOVR1,#55HLCALLSCACOV;标度转化MOVR0,#53HLCALLDIRNOPLCALLDLY10MSNOPLCALLDLY10MSAJMPLOOP;等中断4.2.2键盘子程序KEYS:CLREX0CLREAPUSHPSWPUSHACC;关中断LCALLDLY10MS;消抖CC:JBP3.2AASETB5DH;置“显示设定值温度值标志”MOVA,25H;取运算位的值MOVB,#10H;BCD码转化DIVABMOV52H,AMOVA,BMOV51H,AMOVR0,#50HLCALLDIR;显示设定温度NOPLCALLDLY10MSNOPLCALLDLY10MSJBP1.7,BBMOVR1,#25HLCAL

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功