PID校正装置(又称PID控制器或PID调节器)是一种有源校正装置,它是最早发展起来的控制策略之一,在工业过程控制中有着最广泛的应用,其实现方式有电气式、气动式和液力式。与无源校正装置相比,它具有结构简单、参数易于整定、应用面广等特点,设计的控制对象可以有精确模型,并可以是黑箱或灰箱系统。总体而言,它主要有如下优点:
(1)原理简单,应用方便,参数整定灵活。
(2)适用性强。可以广泛应用于电力、机械、化工、热工、冶金、轻工、建材、石油等行业。
(3)鲁棒性强。即其控制的质量对受控对象的变化不太敏感,这是它获广泛应用的最重要的一原因。因为在实际的受控对象,例如由于受外界的扰动时,尤其是外界负荷发生变化时,受控对象特性会发生很大变化,为得到良好的控制品质,必须经常改变控制器的参数,这在实际操作上是非常麻烦的;又如,由于环境的变化或设备的老化,受控对象模型的结构或参数均会发生一些不可知的变化,为保证控制质量,就应对控制器进行重新设计,这在有些过程中是不允许的。因此,如果控制器鲁棒性强,则就无须经常改变控制器的参数或结构。
目前,基于PID控制而发展起来的各类控制策略不下几十种,如经典的Ziegler-Nichols算法和它的精调算法、预测PID算法、最优PID算法、控制PID算法、增益裕量/相位裕量PID设计、极点配置PID算法、鲁棒PID等。本节主要介绍PID控制器的基本工作原理及几个典型设计方法。
6.5.1 PID控制器工作原理
典型PID电原理图如图6-11(b)中的有源迟后-超前校正装置,图6—26 则为它的控制结构框图。
由图6—26可见,PID控制器是通加对误差信号e(t)进行比例、积分和微分运算,其结果的加权,得到控制器的输出u(t),该值就是控制对象的控制值。PID控制器的数学描述为:
式中u(t)为控制输入,e(t)=r(t)-c(t)为误差信号,γ(t)为输入量,c(t)为输出量。
下面对PID中常用的比例P、比例-积分PI、比例-微分PD和比例-积分-微分PID四种调节器作一简要分析,从而对比例、微分和积分作用有一个初步的认识。
(一)比例调节器—比例的作用
比例调节器的传递函数Gc(S)=Kp,u(t)=Kp·e(t),即在PID控制器中使Ti→∞, Td→0 。
根据前面所学,为了提高系统的静态性能指标,减少系统的静态误差,一个可行的办法是提高系统的稳态误差系数,即增加系统的开环增益。显然,若使Kp增大,可满足上述要求。然而,只有当Kp→∞ ,系统的输出才能跟踪输入,而这必将破坏系统的动态性能和稳定性。
以一个三阶系统为例。
一单位反馈系统的开环传递函数为: ,其根轨迹如图6—27,当 时,系统将产生振荡。同时从图6—28闭环响应曲线也可以发现,当 增大时,系统稳态输出增大,系统响应速度和超调量也增大, 时,系统产生等幅振荡,已不稳定。可见,单纯采用 来改善系统的性能指标是不合适的。
Prog6-5-1:
g=tf(1,[1,3,3,1]);p=[1:1:8];
for i=1:length(p)
g_c=feedback(p(i)*g,1);
step(g_c); hold on;
end
?figure; rlocus(g); axis('square');
?K=rlocfind(g)
Select a point in the graphics window
selected_point =
0 + 1.7427i
K = 8.1112
(二)比例积分调节器—积分的作用
在PID调节器中,当Td→0 时,控制输出u(t)与e(t)具有如下关系:
首先,通过比较比例调节器和比例积分调节器可以发现,为使e(t)→0,在比例调节器中Kp→∞,这样若|e(t)| 存在较大的扰动,则输出u(t)也很大,这不仅会影响系统的动态性能,也使执行器频繁处于大幅振动中;而若采用PI调节器,如果要求e(t)→0,则控制器输出u(t)由∫e(t)dt/Ti 得到一个常值,从而使输出c(t)稳定于期望的值。其次,从参数调节个数来看,比例调节器仅可调节一个参数Kp,而PI调节器则允许调节参数Kp 和Ti ,这样调节灵活,也较容易得到理想的动、静态性能指标。
但是,因Gc(Sd)=Kp(Tis+1/Tis) ,PI调节器归根到底是一个迟后环节。根据前面介绍的迟后校正原理,在根轨迹法设计中,为避免相位迟后对系统造成的负面影响,零点-1/Ti靠近原点,即Ti足够大;在频域法设计中,也要求转折频率(1/Ti)<ωc且远离 ωc。这表明在考虑系统稳定性时,Ti应足够大。然而,若Ti太大,则PI调节器中的积分作用变小,会影响系统的静态性能,同时,也会导致系统响应速度的变慢。此时可通过合理调节Kp和Ti 的参数使系统的动态性能和静态性能均满足要求。
对于比例调节器中的示例,利用如下的Matlab程序,可得到图6-29的结果,显然,采用PI控制,系统的稳态误差为零;且当Ti的减少时,系统的稳定性变差;当Ti增加时,系统的响应速度变慢。
Function PI
G=tf(1,[1,3,3,1]);
Kp=1;Ti=[0.7:0.1:1.5];
for i=1:length(Ti)
Gc=tf(Kp*[1,1/Ti(i)],[1,0]); G_c=feedback(G*Gc,1);
step(G_c),hold on
end
axis([0,20,0,2])
(三)PD和PID调节器—微分的作用
当PID调节器的 时,校正装置成为一个PD调节器,这相当于一个超前校正装置,对系统的响应速度的改善是有帮助的。但在实际的控制系统中,单纯采用PD控制的系统较少,其原因有两方面,一是纯微分环节在实际中无法实现,同时,若采用PD控制器,则系统各环节中的任何扰动均将对系统的输出产生较大的波动,尤其对阶跃信号。因此也不利于系统动态性能的真正改善。实际的PID控制器的传递函数如下式:
式中N一般大于10。显然,当N→∞时,上式即为理想的PID控制器。
为考察PID控制器中微分环节的作用,可通过下面的Matlab程序对上例进行说明。令Kp、Td和Ti固定,N变化,研究近似微分对系统性能的影响。从图6-30可以发现,当N>10时,近似精度相当满意。
综合前面所述,PID控制器是一种有源的迟后-超前校正装置,且在实际控制系统中有着最广泛的应用。当系统模型已知时,可采用迟后-超前校正的设计方法。若系统模块未知或不准确,则可后述方法进行设计。
Function PID
N=[100,1000,10000,1:10];
G=tf(1,[1,3,3,1]);
Kp=1;Ti=1;Td=1;
Gc=tf(Kp*[Ti*Td,Ti,1]/Ti,[1,0]);
G_c=feedback(G*Gc,1);step(G_c), hold on
for i=1:length(N)
mn=Kp*([Ti*Td,0,0]+conv([Ti,1],[Td/N(i),1]))/Ti;
cd=[Td/N(i),1,0]; Gc=tf(mn,cd);
G_c=feedback(G*Gc,1);
step(G_c)
end
axis([0,20,0,2])
6.5.2 Zieloger-Niclosls整定公式 Zieloger-Niclosls整定公式是一种针对带有时延环节的一阶系统而提出的实用经验公式。此时,可将系统设定为如下形式:
在实际的控制系统中,大量的系统可用此模型近似,尤其对于一些无法用机理方法进行建模的系统,可用时域法和频域法对模型参数进行整定。
(一)基于时域响应曲线的整定 基于时域响应的PID参数整定方法有两种。
第一法:设想对被控对象(开环系统)施加一个阶跃信号,通过实验方法,测出其响应信号,如图6-31,则输出信号可由图中的形状近似确定参数k,L和T(或α),其中 α=kL/T。如果获得了参数k,L和T(或α)后,则可根据表6-1确定PID控制器的有关参数。
第二法:设系统为只有比例控制的闭环系统,则当Kp增大时,闭环系统若能产生等幅振荡,如图6-32,测出其振幅Kp'和振荡周期P' ,然后由表6-1整定PID参数。
调节器类型 |
阶跃响应整定 |
等幅振荡整定 |
Kp
|
Ti
|
Td
|
Kp
|
Ti
|
Td
|
P |
1/α
|
∞ |
0 |
0.5 Kp' |
∞ |
0 |
PI |
0.9/α |
3L |
0 |
0.45 Kp' |
0.833 P' |
0 |
PID |
1.2/α |
2L |
L/2 |
0.6 Kp' |
0.5 P' |
0.125 P' |
当然上述二法亦适用于系统模型已知的系统。但是此二法在应用中也有约束,因为许多系统并不与上述系统匹配,例如第一法无法应于开环传递中含积分项的系统,第二法就无法直接应用于二阶系统。如G0(S)=200/s(s+4)就无法利用Zieloger-Niclosls法进行整定。
下面举例说明上述整定方法。
例6-10 一伺服系统的开环传递函数为:
,要求设计一个控制器使系统的稳态位置误差为零。
解:采用Zieloger-Niclosls整定公式第一法。
(1) 根据原开环系统的传递函数,利用Matlab绘制其阶跃响应曲线如图6-33。
g=tf(10,conv([1,1],conv([1,2],conv([1,3],[1,4]))));
step(g); k=dcgain(g)
k=
0.4167
(2) 由图可近似得到一阶延迟系统的参数,
若由高阶近似一阶的方法,亦可得到
。由此可得到PI和PID控制器的参数:
(A) PI控制器:
,其控制器:
(B) PID控制器:
,其控制器:
(3) 系统闭环传递函数及其阶跃响应如下:
1.8947
G_c1(s)= ----------------------------------------------
(s^2 + 0.7215s + 3.457) (s^2 + 9.279s + 24.85)
55.7053 (s+0.4386)
G_c2(s)= --------------------------------------------------------
(s+0.3735) (s^2 + 0.5561s + 2.773) (s^2 + 9.07s + 23.59)
68.4 (s+1.316)^2
G_c3(s)=------------------------------------------------------
(s+6.827) (s^2 + 2.6s + 1.711) (s^2 + 0.5727s + 10.14)
从上图可以发现,单纯采用比例校正,系统存在静态误差;采用PID比采用PI校正响应速度快,但存在较大的超调量,为此可改用修正的PID控制器。本例程序清单如下:
function zn4 %demonstrate with time PID method 1
g=tf(10,conv([1,1],conv([1,2],conv([1,3],[1,4]))));
step(g); k=dcgain(g);
L=0.76;T=1.96;
alpha=k*L/T;
Kp=1/alpha;
gc1=tf(Kp,1)
g_c1=feedback(gc1*g,1);
zpk(g_c1)
step(g_c1); hold on
Kp=0.9/alpha;Ti=3*L;
gc2=tf(Kp*[1,1/Ti],[1,0])
g_c2=feedback(gc2*g,1);
zpk(g_c2)
step(g_c2)
Kp=1.2/alpha;Ti=2*L;Td=L/2;
gc3=tf(Kp*[Ti*Td,Ti,1]/Ti,[1,0])
g_c3=feedback(gc3*g,1);
zpk(g_c3)
step(g_c3)
例6-11 有一系统的开环传递函数为: ,要求设计一个控制器使系统的稳态速度误差为零。
解:由于系统开环中存在积分环节,无法采用第一法。因而采用Zieloger-Niclosls整定公式第二法。
(1) 首先,令,则闭环系统的传递函数为:
通过Ruth判据容易得到当 时,闭环系统产生持续等幅振荡。使用Matlab中rltool命令,并增加极点: 在根轨迹与虚轴交界处点击可得到同样结果。如图6-35。
(2) 根据Z-N第二整定法,即可分别得到PI和PID控制器的参数:
(A)PI控制器: 。
(B) PID控制器:
。
(3) 根据上面设计的控制器,分别得到其相应的闭环系统:
13.5 (s+0.4292)
G_c1(s)=-----------------------------------------------------------
(s+5.502) (s+0.4683) (s^2 + 0.02925s + 2.248)
6.3 (s+1.429)^2
G_c2(s)=------------------------------------------
(s+4.139) (s+1.122) (s^2 + 0.739s + 2.769)
(A)
function zn1
g=tf(1,conv([1,0],conv([1,1],[1,5])));
kp=13.5;Ti=2.33
gc1=tf(kp*[Ti,1]/Ti,[1,0])
g_c1=feedback(gc1*g,1)
zpk(g_c1)
step(g_c1)
(B)
function zn2
g=tf(1,conv([1,0],conv([1,1],[1,5])));
kp=18;Ti=1.4;Td=0.35;
gc2=tf(kp*[Ti*Td,Ti,1]/Ti,[1,0]);
g_c2=feedback(gc2*g,1);
zpk(g_c2)
step(g_c2)
(4) 根据校正后的阶跃响应曲线图6-36可以发现,对本题采用PID效果比PI要好。若要得到更好的效果,可在此基础上调整PID参数。
(二)基于频域法的整定 如果实验数据是由频率响应得到的,则可先画出其对应的Nyquist图,如图6-37,从图中可以容易得到系统的剪切频率ωc与系统的极限增益Kc ,若令Tc=2π/ωc ,同样我们从表6-2给出的经验公式可以得到PID控制器对应的参数。事实上,此法即时域法的第二法。
在使用Matlab进行设计时,由开环传递函数获取系统的极限增益Kc和剪切频率ωc ,即[Kc,pp,wc,wp]=margin(g),然后由上节步骤进行设计。
表6-2 Z-N频域整定法1/Kc
控制器类型 |
Kp |
Ti |
Td |
|
P |
0.5 Kc |
∞ |
0 |
PI |
0.4 Kc |
0.8 Tc |
0 |
PID |
0.6 Kc |
0.5 Tc |
0.12 Tc | |