作为虚拟仪器的主流开发语言,图形语言(GraphicalLanguage)在测试系统中得到广泛应用。优秀的图形语言开发环境使LabVIEW不仅包括了开发虚拟仪器面板的各种对象和进行信号分析的丰富的函数,而且提供了外挂的PID控制工具包,使用户可以将虚拟仪器拓展到自动控制领域。对于自动控制的基本形式,图(4-1)所示的闭环负反馈系统,不仅可以应用虚拟仪器技术完成它的测量部分的功能,而且可以将虚拟仪器技术拓展到系统的控制器部分,构成一种基于虚拟仪器的测量控制系统。图4-1闭环负反馈系统§4.1PID算式的确定§4.1.1PID算式的确定在测控系统中,被控量和操纵量确定之后,就可以根据对象的特性和对控制质量的要求,选择控制器的控制作用,由控制器按规定的控制规律进行运算,发出相应的控制信号去推动执行器。控制器的控制规律,即为控制器的PID算式。PID控制算式是一种在工业控制中广泛运用的控制策略。它的优点是原理简单,易于现实,稳定性能好。实际上,大多数的工业过程都不同程度的存在着非线性、参数时变性和模糊不确定性,而传统的PID控制主要是控制具有确定模型的线性过程,因此常规PID控制不具有在线整定参数的能力,其控制效果就不是十分理想。如果采用模糊推理的方法实现PID参数:、、的在线自适应,不仅保持了常规PID控制的特点,而且具有更大的灵活性、适应性和精确性等优点,是目前一种较为先进的控制算法。但是考虑到本软件应用客户所具有系统的特点:对象比较简单,非线性程度不高,大多数不具有时变性和模糊不确定性,而且设备的投资成本要求较低,比较适合采用常规PID控制,故本课题中的PID控制算式就确定为常规的PID控制算式。§4.1.2数字PID控制算式PID控制就是确定一个被控制系统的输出量(Y(t)),驱动过程变量接近设定值,其中被控制的系统参数叫做过程变量(PV—ProcessVariable),将被控制的过程变量指定的理想值叫做设定值(R(t))。理论上模拟PID控制器的理想算式为:[6](4-1)式中:控制器的输出:偏差设定值R与过程变量值PV之差。:控制器的放大系数。:控制器的积分时间常数。:控制器的微分时间常数。基于虚拟仪器的控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,式(4—1)中的积分项和微分项不能准确计算,只能用数值计算的方法逼近,称为数字PID控制算式。数字PID控制算式通常又分为位置式PID控制算式和增量式PID控制算式。1.1.位置式PID控制算式在采样时刻t=kθ(θ为采样周期)时,式(4—1)表示的PID控制规律可以通过以下数值公式近似计算:比例作用:(4-2)积分作用:(4-3)微分作用:(4-4)式(4—2)、式(4—3)、式(4—4)表示的控制算法提供了执行机构的位置u(k),所以称为位置式PID控制算法,实际的位置PID控制器输出为比例作用、积分作用与微分作用之和,即(4-5)如果采样周期θ取得足够小,这种逼近可相当准确,被控过程与连续控制过程十分接近。这种算法的缺点是,由于全量输出,所以每次输出均与过去的状态有关,计算时要对e(k)进行累加,计算机运算工作量大。而且,因为计算机输出的u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的。因而产生了增量式PID控制算式。位置式PID控制算式的系统控制示意图如图(4-2)所示。2.增量式PID控制算式增量式PID控制算式是指数字控制器的输出只是控制器的增量Δu(k)。当执行机构需要的是控制量的增量(例如驱动步进电机)时,可由式(4-5)导出提供增量的PID控制算式。根据递推原理可得:(4-6)用式(4-5)减去式(4-6)可得:(4-7)式(4-7)称为增量式PID控制算式。可以看出,由于一般计算机控制系统采用恒定的采样周期θ,一旦确定了KP、KI、KD,只要使用前后3次测量值的偏差,即可由式(4-7)求出控制增量。采用增量式算法时,计算机输出的控制增量Δu(k)对应的是本次执行机构位置(例如阀门开度)的增量。对应阀门实际位置的控制量,即控制量增量的积累需要采用一定的方法来解决,例如用有积累作用的元件(如步进电机)来实现;而目前较多的是利用算式u(k)=u(k-1)+Δu(k)通过执行软件来完成。图(4-3)给出了增量式PID控制系统的示意图。就整个系统而言,位置式与增量式控制算法并无本质区别,增量式控制虽然只是算法上作了一点改进,却带来了不少优点:(1)(1)由于计算机输出增量,所以误动作时影响小,必要时可以用逻辑判断的方法去掉。(2)(2)手动/自动切换时冲击小,便于无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能仍然保持原值。(3)(3)算式中不需要累加。控制增量Δu(k)的确定仅与最近k次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。但是增量式控制也有不足之处,积分截断效应大,有静态误差,溢出的影响大。因此,在选择时不可一概而论,一般认为在以晶闸管作为执行器或在控制精度要求高的系统中,可采用位置控制算法,而在以步进电机或电动阀门作为执行器的系统中,则可采用增量控制算法。而本文中的对象正是采用了晶闸管作为执行机构,且要求被控制温度波动小,所以采用了位置控制算法。§4.1.3数字PID控制算式的改进[13][17][19]PID数字控制是被广泛采用的一种算法,为了适应实际控制的需要,出现了多种改进后的数字PID控制算法。1.积分分离PID控制算法位置式PID算法每次输出与整个过去状态有关,计算式中要用到过去偏差的累加值,容易产生较大的积累误差。在实际过程控制中应将控制变量限制在有限的范围内,即。如果计算机给出的控制量u在上述范围内,那么控制可以按预期的效果进行。一旦超出上述范围,那么实际执行的控制量就不再是计算值。因此将引起饱和(失控)效应。在位置式PID控制算法中,“饱和效应”主要是由积分项引起的,故称为积分饱和。这种现象在设定值发生突变时特别容易发生。当设定值由R(t)突变到R(t)″时,若根据位置PID算出的输出量,那么实际输出量u只能取上限值(图4-4中曲线b),而不是计算值(图4-4中曲线a)。此时由于输出量受到限制,偏差e将比正常情况下持续更长时间(即e(t)0的正值)),而使式(4—5)的积分项进行不适当的积累,从而得到较大的累积值。当偏差e(t)出现负值后(e(t)0),由于积分项的累积值很大,还要经过相当长一段时间τ以后,u才可能脱离饱和区。这种积分项的不适当的积累,就会使系统输出u(t)大幅度明显的超调和长时间的振荡,如图(4-4)所示。[7]克服积分饱和作用的修正算法很多,积分分离PID控制算法是其中之一。当根据PID位置算法式(4—5)算出的输出量超出限制范围时,就不再把积分值累积计入积分项中,就等于去掉了积分作用,从而避免了过大的积分累积。具体做法如下:(1)(1)根据实际情况,人为设定一阈值ε0。(2)(2)当|e(k)|ε时,也即偏差值|e(k)|比较大时,采用PD控制,可避免过大的超调,又使系统有较快的响应。(3)(3)当|e(k)|≤ε时,也即偏差值|e(k)|比较小时,采用PID控制,可保证系统的控制精度。积分分离PID控制算法的表达式为:(4-8)图4-4系统存在积分饱和时控制器输出u(t)其中β按下式取值:(4-9)采用积分分离PID控制算法后,控制效果如图(4-5)所示。由图可见,采用积分分离PID控制算法使得控制系统的性能有了较大的改善。2.遇限削弱积分PID控制算法遇限削弱积分PID控制算法的基本思想是:一开始就积分,当控制进入饱和区(即限制范围)以后,即停止积分,不再进行积分项的累加,而只执行削弱积分的运算。因而,在计算u(k)时,先判断u(k-1)是否已超出限制值。若u(k-1)umax,则只累加负偏差;若u(k-1)umax,则只累加正偏差。这种算法可以避免控制量长时间停留在饱和区。3.不完全微分PID控制算法微分环节的引入,改善了系统的动态特性,但对于干扰特别敏感。在误差扰动突变时,微分项如下:(4-10)其中:当e(k)为阶跃函数时,uD(k)输出为:uD(0)=KD,uD(1)=uD(2)=···=0即仅第一个周期有输出,且幅值为KD,以后均为零。该输出的特点为:(1)微分项的输出仅在第一个周期起激励作用,对于时间常数较大的系统,其调节作用很小,不能达到超前控制误差的目的。(2)uD的幅值KD一般比较大,容易造成计算机中数据溢出;此外uD过大、过快的变化,对执行机构也会造成影响(通常θTD).克服上述缺点的方法之一是在PID算法中加一个一阶惯性环节(低通滤波器),如图(4-6)所示,即可构成不完全微分PID控制。对于图(4-6)所示的不完全微分PID结构,设它的传递函数为:(4-11)将上式离散化并整理后得:其中uP(k)与uI(k)与普通PID算式完全一致,只是uD(k)不同(4-12)在式(4-12)中,令,则;显然有α1,所以1-α1成立,则式(4-12)可简化为:(4-13)当e(k)为阶跃(即e(k)=1,k=0,1,2,···)时,可求出:uD(0)=KD(1-α)[e(0)-e(-1)]+αuD(-1)=KD(1-α)uD(1)=KD(1-α)[e(1)-e(0)]+αuD(0)=αuD(0)uD(2)=αuD(1)=α2uD(0)···uD(K)=αuD(k-1)=αkuD(0)由此可见,引入不完全微分后,微分输出在第一个采样周期内的脉冲高度下降,次后又按ekuD(0)的规律(α1)逐渐衰减。所以不完全微分能有效地克服上述不足,具有较理想的控制特性(见图(4-7))。尽管不完全微分PID控制算法比普通PID控制算法要复杂些,但由于其良好的控制特性,近年来越来越得到广泛的应用。4.微分先行PID控制算法微分先行PID控制算法特点是只对输出量y(t)进行微分,而对设定值R不作微分。这样在改变设定值时,输出不会改变,而被控量的变化通常总是比较缓和的。这种输出量先行微分控制适用于设定值R频繁升降的场合,可以避免设定值升降时所引起的系统振荡,明显地改善了系统的动态特性。微分先行PID控制的结构如图(4-8)所示。在上述介绍的四种数字PID控制算式改进方法中微分先行法一般用于有较大纯滞后的系统;再将其余的几种算法结合所选对象的特点,本课题最终选择的PID控制算式是位置控制算法和积分分离PID控制算法的结合。§4.2程序设计[15][21][17]§4.2.1程序框图应用LabVIEW提供的功能软件实现PID控制功能的程序如图(4-9)所示。图4-9PID控制功能程序流程图§4.2.2程序说明1.1.数据采集子程序:数据采集子程序的功能与前述相同(2.3.4程序流程图说明)。2.滤波子程序:同前(已在2.3.4程序流程图说明中有说明)。3.PID控制子程序:子程序包括偏差计算、位置PID算式计算、抗积分饱和措施等。4.显示子程序:将PID控制子程序中确定的PID控制曲线、设定值曲线、被控对象响应曲线及虚拟的PID控制器的控制按钮等加以显示。5.PID控制器控制作用输出子程序:将PID控制器的控制作用转换成执行机构所能接受的电压信号输出。LabVIEW中PID工具中包括用于LabVIEW环境中开发控制系统的各种函数。为了适应工程实际使用中的需要,还对式(4—1)做了必要的修正,并为用户提供接口,以便根据现场情况配置参数。应用LabVIEW提供的功能软件实现PID控制功能的程序的前面板如图(4-10)所示,流程图如(4-11)所示。图4-10PID控制程序前面板§4.3程序的仿真试验[19][25][31]为验证程序的准确性,在进行仿真时选择了三个对象,并利用LabVIEW提供的实时控制模块(RT模块)模拟对象的传递函数。在进行PID控制程序仿真演示时,对原有的程序进行了如下的改动:1.1.设定值子程序:.将原有程序中