1、第 4 章PID控制的实现技术4.1PID控制原理回顾控制原理回顾4.2连续系统的模拟连续系统的模拟PID控制仿真控制仿真4.3连续系统的数字连续系统的数字PID控制仿真控制仿真4.4离散系统的数字离散系统的数字PID控制仿真控制仿真4.5增量式增量式PID控制算法及仿真控制算法及仿真4.6积分分离积分分离PID控制算法及仿真控制算法及仿真4.7不完全微分不完全微分PID控制算法及仿真控制算法及仿真4.8微分先行微分先行PID控制算法及仿真控制算法及仿真4.9PID控制器的设计控制器的设计4.10WINPC32 PID控制模块简介控制模块简介4.1 PID控制原理回顾控制原理回顾在模拟控制系统
2、中,控制器最常用的控制规律是PID控制。模拟PID控制系统的原理框图如图4-1所示,系统由模拟PID控制器和被控对象组成。图4-1 模拟PID控制系统的原理框图PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案,它们的偏差为e(t)=rin(t)yout(t)(4-1)PID的控制规律为写成传递函数的形式,即(4-2)(4-3)式中,kp为比例系数;TI为积分时间常数;TD为微分时间常数。简单来说,PID控制器各环节的作用如下:(1)比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器就立即产生控制作用,以减少偏差。(2)积分环节:主要用于
3、消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。4.2 连续系统的模拟连续系统的模拟PID控制仿真控制仿真仿真实例 Simulink仿真图如图4-2所示,参考程序见附表1 chap 4_0。以三阶线性传递函数为被控对象,进行模拟PID控制。仿真时,在信号发生器中选择正弦信号,取A=1.0,F=0.20 Hz,则输入指令为rin(t)=A sin(2Ft),PID控制的参数取kp=60,ki
4、=1,kd=3,采用ODE45(MATLAB的功能函数)迭代方法,仿真时间为10 s。图4-2 连续系统PID的Simulink仿真PID控制器采用的封装形式的内部结构如图4-3所示。图4-3 模拟PID控制器的内部结构连续系统的模拟PID控制的正弦响应波形如图4-4所示。图4-4 连续系统的模拟PID控制的正弦响应 4.3 连续系统的数字连续系统的数字PID控制仿真控制仿真仿真实例一 采用MATLAB编程形式进行仿真,参考程序见chap 4_1和chap 4_2,被控对象为一个电机模型的传递函数,其表达式为式中,J=0.0067,B=0.10。仿真结果如图4-5所示。图4-5 连续PID控制
5、的正弦响应仿真实例二 采用Simulink形式进行仿真,参考程序见附录1 chap 4_3和chap 4_4。被控对象为三阶传递函数,采用Simulink模块与M函数相结合的形式,利用ODE45的方法求解连续对象方程。主程序由Simulink模块实现,控制器由MJP2函数实现。输入指令信号为一个采样周期为1 ms的正弦信号。采用PID控制方法设计控制器,其中,kp=1.5,ki=2.0,kd=0.05。误差的初始化是通过时钟功能实现的,从而在M函数中实现了误差的积分和微分。Simulink仿真图如图4-6所示,仿真结果如图4-7所示。图4-6 Simulink仿真图图4-7 连续PID控制的正
6、弦响应 4.4 离散系统的数字离散系统的数字PID控制仿真控制仿真仿真实例 Simulink仿真图如图4-8所示,参考程序见附录1 chap 4_5,其仿真结果如图4-9所示。图4-8 Simulink仿真图图4-9 数字PID控制的阶跃响应被控制对象为采样时间为1 ms,采用Z变换进行离散化,经过Z变换后的离散化对象为上述PID控制算法的缺点是由于采用全量输出,所以每次的输出均与过去的状态有关,计算式要对偏差量进行累加,计算机输出控制量对应的是执行机构的实际位置偏差,如果位置传感器出现故障,控制量可能出现大幅度的变化,这种大幅度的变化可能会引起执行机构位置的大幅度的变化,这种情况在实际生产中
7、是不允许发生的,在某些重要场合还有可能造成重大事故。为避免这种情况的发生,采用增量式PID控制算法。4.5 增量式增量式PID控制算法及仿真控制算法及仿真当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得10(1)(1)()(1)(2)kpidju kke kke jke ke k增量式PID的算法为)1()()(kukuku()()(1)()()2(1)(2)pidu kke ke kk e kke ke ke k根据增量式PID控制算法,设计仿真程序,参考程序见chap 4_6。设被控对象的传递函数为sssG50400)(2PID控制参数为:kp
8、=8,ki=0.10,kd=10。仿真结果如图4-10所示。图4-10 增量式PID控制的阶跃响应由于控制算法中不需要累加偏差量,控制增量u(k)仅与最近k次的采样有关,所以误动作时影响小,而且较容易通过加权处理获得比较好的控制效果。在计算机控制系统中,PID控制是通过计算机程序实现的,因此它的灵活性很大。一些原来的模拟PID控制器中无法实现的问题,在引入计算机以后就可以得到解决,于是产生了一系列的改进算法,形成非标准的控制算法,以改善系统品质,满足不同控制系统的需要。4.6 积分分离积分分离PID控制算法及仿真控制算法及仿真在普通PID控制中,引入积分环节的目的主要是为了消除稳态误差,提高控
9、制精度。但在过程的启动、结束或大幅度增减设定时,短时间内系统的输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的振荡,这在生产中是绝对不允许出现的。积分分离控制具体的实现步骤是:(1)根据实际情况,人为设定阈值0;(2)当|e(k)|时,采用PID控制,可避免产生过大的超调,又使系统有较快的响应;(3)当|e(k)|时,采用PID控制,以保证系统的控制精度。积分分离控制算法可表示为0()()()()(1)/kpidju kk e kke j Tke ke kT式中,T为采样时间,为积分项的开关系数:()e k()e k01
10、=根据积分分离式PID控制算法的步骤得到其程序的流程图如图4-11所示。图4-11 积分分离式PID控制的程序流程图仿真实例 采用MATLAB编程方式,参考程序见附录1 chap 4_7,设被控对象为一个延迟对象80601seG(s)s采样时间为20 s,延迟时间为四个采样时间,即80 s,被控对象可离散化为y(k)=den(2)y(k1)+num(2)u(k5)取M=1,采用积分分离式PID控制器进行阶跃响应仿真,对积分分离式PID控制算法进行改进,采用分段积分分离方式,即根据误差绝对值的不同采用不同的积分分离强度,其阶跃响应结果如图4-12。取M=2,采用普通PID控制,其阶跃响应结果如图
11、4-13所示。图4-12 积分分离式PID的阶跃响应图4-13 普通PID的阶跃响应积分分离式PID控制的Simulink仿真如图4-14所示,仿真结果如图4-15所示。图4-14 积分分离式PID控制的Simulink仿真图4-15 积分分离式PID控制的阶跃响应 4.7 不完全微分不完全微分PID控制算法及仿真控制算法及仿真在PID控制中,微分信号的引入可以改善系统的动态特性,但也容易引进高频干扰,在误差扰动突变时更能显出微分项的不足。若在控制算法中加入一个一阶惯性环节(低通滤波器),则可使系统的性能得到改善。不完全微分PID的结构如图4-16所示。图4-16(a)是将低通滤波器直接加在微
12、分环节上,(b)是将低通滤波器加在整个PID控制器之后。图4-16 不完全微分算法的结构图(a)低通滤波器直接加在微分环节上;(b)低通滤波器加在PID控制器之后对图(a)所示的不完全微分结构,经整理可得不完全微分的算法为uD(k)=KD(1a)(e(k)e(k1)+uD(k1)其中,KD=kpTD/Ts,=Tf(Ts+Tf),Ts为采样时间,TI和TD为积分时间常数和微分时间常数,Tf为滤波器系数。仿真实例 采用MATLAB编程方式,参考程序见附录1 chap 4_8。采用第一种不完全微分方法,被控对象为时滞系统传递函数80601seG(s)s在对象的输出端加幅值为0.01的随机信号,采样时
13、间为20 ms。低通滤波器为11801Q(s)s采用不完全微分PID控制方法,其控制的阶跃响应如图4-17所示。采用普通PID控制方法,阶跃响应如图4-18所示。由仿真结果可以看出,引入不完全微分后,能有效地克服普通PID的不足。尽管不完全微分PID控制算法比普通PID控制算法要复杂些,但由于其具有良好的控制性能,近年来得到越来越广泛的应用。图4-17 不完全微分PID控制的阶跃响应图4-18 普通PID控制的阶跃响应 4.8 微分先行微分先行PID控制算法及仿真控制算法及仿真微分先行PID控制如图4-19所示,其特点是只对输出量yout(k)进行微分,而对给定值rin(k)不进行微分。这样,
14、在改变给定值的时候,输出不会改变,而被控量的变化通常是比较缓和的。这种输出量先行微分控制适用于给定值rin(k)频繁升降的场合,可以避免给定值升降时引起的系统振荡,从而明显地改善系统的动态特性。图4-19 微分先行PID控制的结构图微分部分的传递函数为11)()(sTsTsysuDDD1式中,1/(TDs+1)相当于低通滤波器。仿真实例 采用MATLAB编程方式,参考程序见附录1 chap 4_9。设被控对象为一个延迟对象160)(80sesGs采样时间T=20 s,延迟时间为4T。输入信号为带有高频干扰的方波信号Rin(t)=1.0sgn(sin(0.0005At)+0.05 sin(0.0
15、3At)取M=1,采用微分先行PID控制方法,其方波响应结果如图4-20和图4-21所示。取M=2,采用普通PID控制方法,其方波响应结果如图4-22和图4-23所示。由仿真结果可以看出,对于给定值rin(k)频繁升降的场合,引入微分先行环节后,可以避免给定值升降时所引起的系统振荡,明显地改善了系统的动态特性。图4-20 微分先行PID控制的方波响应图4-21 微分先行PID控制方波响应的控制器输出图4-22 普通PID控制的方波响应图4-23 普通PID控制方波响应的控制器输出4.9 PID控制器的设计控制器的设计4.9.1 系统辨识系统辨识1.系统辨识简介所谓系统辨识,即是在不知道系统的传
16、递函数时,根据系统的特性辨识出系统的模型的方法。若被控对象的数学模型是简单线性的(linear),且各项参数都可知道,则可用控制理论来设计PID控制器的系数大小。所以工业上设计PID控制器时,常常使用实验方法而较少用理论方法来设计。在调整PID控制器的方法中,最有名的是ZieglerNichols调整法则,它是基于带有延迟的一阶传递函数模型提出的,这种对象模型可以表示为 1)(TsKesGLs在实际的过程控制系统中,有大量的对象模型可以近似的由这样的一阶模型来表示,如果不能从物理上建立起系统的模型,我们还可以由实验提取相应的模型参数。将幅值为1的阶跃信号加到被控对象上,如图4-24所示。图4-
17、24 将阶跃信号加到被控对象上图4-25 被控对象的阶跃响应 以空调系统为例,求解系统的传递函数。空调系统的示意图如图4-26所示,其方块图如图4-27所示,传递函数未知。图4-26 空调系统的示意图图4-27 空调系统的方块图 由图4-26及图4-27可得知,此系统的传递函数推导如下(推导过程仅作了解):QcQoQdtdTCRTQCSTRTQ11SRRCSRQT2.系统特性分析继续以空调系统为例,当系统为制热状态时,使用最大信号去控制系统,直到稳定之后,也就是温度无法再上升时,系统特性就会出现,如图4-28所示。图4-28 系统制热的特性图当系统为制冷状态时,使用最大信号去控制系统,直到稳定
18、之后,也就是温度无法再下降时,系统特性就会出现,如图4-29所示。图4-29 系统制冷的特性图3.系统辨识方法1)传递函数的确定一阶系统K(Ts+1)加一个延迟eLs来近似被控对象,则其近似传递函数公式为其中,K、T、L可由图4-30求得。K是稳态值;T是时间常数(注:系统越大,时间常数越大);L是延迟时间。1)(TsKesGLs2)K、T、L的求法K值相当于c(t)的稳态值。T及L值与c(t)及切线的关系如图4-30所示。在S形状曲线上划一条斜率最大的切线,T及L值可以直接从图上得知。图4-30 一阶系统带有延迟特性图4.9.2 PID控制器参数的计算控制器参数的计算用波德图及跟轨迹法求取P
19、ID值需要先确定系统的传递函数。以此,首先通过转移函数系统辨识方法辨识出系统的传递函数,如图4-31所示,再用MATLAB里的Simulink画出反馈方块图,最后调节出PID控制器的参数。具体方法可参考PID控制器理论、调整与实现一书。图4-31 系统辨识方法求转移函数 4.10 WINPC32 PID控制模块简介控制模块简介4.10.1 控制模块的结构控制模块的结构(1)控制人机界面:提供给使用者操作的控制画面。(2)控制参数设定:使用者在编辑模式下,可通过系统ON/OFF、PID闭回路输入/出环境模块接口,设定过程控制卡硬件驱动设置和过程控制平台的控制参数、报警极限值、量测补偿、输出饱和等
20、过程控制参数。(3)PLC逻辑程式:过程控制动作流程的程序,使用者可设计过程控制应用程序的逻辑。例如,在某种情况下,为保护控制平台的输出过载或安全保护机制,可由PLC逻辑程式来达成。(4)使用者自定控制逻辑:使用者可利用呼叫标准C语言撰写控制演算式逻辑,来进行复杂的控制演算式运算,创建客户本身的专业技术。图4-32 PID控制模块的结构图(5)过程控制板卡的方框图如图4-33所示。图4-33 过程控制板卡方框图4.10.2 控制模块的功能控制模块的功能(1)控制机制:提供32个独立的PID循环过程控制机制,供使用者应用于温度控制、压力控制、流量控制以及一般常用的连续制程程控。(2)控制模式:O
21、N/OFF控制、P控制、PI控制、PID控制以及使用者自定逻辑控制。(3)设定方式:为使用者提供良好的PID参数输入/出设定环境,控制回路具有优先层次,可设定控制回路的优先级、控制周期以及控制参数。(4)调谐功能:具有Zingler-Nichols PID自我调谐(Self-Tuning)功能,以产生最佳初始化的控制参数;动态自动调谐(Auto-Tuning)功能,调节出过程控制系统最佳P、I、D参数。(5)使用者自定逻辑:客户可自定控制演算式逻辑,利用呼叫标准C语言的使用者自定逻辑程序撰写控制算法,以符合使用者的实际应用要求。(6)正逆向动作控制:系统默认值为逆动作控制模式(E=SPPV),
22、例如加热控制,当测量温度(PV)比目标设定值(SP)低时,提高控制输出量;反之,正动作控制模式(E=PVSP)应用于冷却控制的场合。(7)自动/手动控制模式:支持自动/手动控制的切换模式,默认值为自动模式,控制器进行标准的反馈控制(ON/OFF或是PID控制逻辑)。使用者亦可强制切换至手动控制的模式,在线上进行强制输出操作。其中手动/自动模式切换为连续的输出控制值(CV),防止在瞬间切换的过程时发生很大的输出变化,称之为无扰动切换。(8)值无效频带(Deadband):被控系统常因量测输入值受环境影响的持续变动,造成控制输出频繁地震荡,系统可通过设定量测输入值的值无效频带,抑制量测输入值有效的
23、变动幅度,避免太频繁的控制输出变化。(9)数字滤波:提供一到十层级数位的三阶低通滤波器(Low Pass Filter)的设计。(10)警报模式:提供上限警报、超高上限警报、下限警报以及超低下限警报。(11)输出饱和:提供输出饱和上限以及输出饱和下限的范围设定。(12)输入补正:量测值通过输入补正设定值进行调整,PV为PVactual输入补正值之和。(13)前馈补偿:控制器通过前馈补偿值的设计,进行控制输出的调整。(14)硬件支持:应用于温度、压力、流量以及一般常用的连续制程程控。(15)断线侦测:具有输入感测线(热电偶)断线自动侦测功能,以及输出负载组件(加热器)断线自动侦测功能。输出负载断线侦测针对负载组件的通电电流,利用电流检测器CT(Current Transformer)将其电流信号转换成电压值加以检测。