这篇讲讲PID控制的基本原理。作为久负盛名的控制规律,其原理却是非常简单,所以也受到广大工程师的喜爱。具体地调参工作并不是那么容易的,所以知道了原理,只是第一步。

PID既可以适用于有模型的系统,也可以适用于无模型的系统,这是其广为应用的另一个重要原因。经典控制中多研究有模型的系统,这时PID对系统的结构改变是可以从数学表达式中得知的。


PID控制,即Proportional (P)– Integral(I) – Derivative(D) Control, 实际上是三种反馈控制:比例控制,积分控制与微分控制的统称。根据控制对象和应用条件,可以采用这三种控制的部分组合,即P控制,PI控制,PD控制或者是三者的组合,即真正意义上的PID控制。我们可以笼统地去称呼他们为PID控制律。采取这种控制规律的控制器,我们称为PID控制器。

PID控制是经典控制理论里一个重要的控制律(control law),其历史悠久并且至今仍是实用控制中最为常用的控制方法之一。关于PID控制的优缺点我们会在本系列最后几篇文章中给出一些参考材料来帮助读者理解。不过对于PID控制的一些明显的优点,我们应该很快就能有所察觉。

PID控制的入门讲解书籍繁多,此处参考[1]作基础解释。 推荐阅读韩京清先生所著[2]的第一章《剖析经典PID调节器》作更深一步的理解。PID技术历经多年也一直在发展 ,这还需要读者自行搜索参考资料去探索。

话不多说,下面对每一种control进行解释。

比例控制Proportional Control

反馈控制的目标之一就是抗干扰从而减小稳态误差。如果只采用开环控制,开环增益一旦变化,系统稳态值就会发生变化。这并不是我们希望看到的。因此减小系统稳态误差,我们必须采用Feedback Control。

考虑一种比例反馈控制如上式(4.56)定义的,把输出与输入的误差e按照一定的比例K进行放大或者缩小作为系统的输入。

比例控制的思想可以用 RC电路来解释:已知RC电路的ODE为

[公式]传递函数为

[公式]

现在采用比例反馈P构成闭环控制系统,令增益为K。假设系统稳定,我们根据Final Value Theorem得知其闭环系统的step response:

[公式]

闭环纯比例控制的一阶系统,我们发现,稳态值并不会随着K的取值而从理论上变为阶跃响应的幅值1。通过增加K的大小,我们可以得到更接近1的稳态值,但最终与1的差确是有限大小的。反映在电路上,如果充电电压u不变,单纯提高在RC电路中纯比例提高其增益(增大K),输出电压只能不断靠近u,但不能在理论上稳态达到u。这种误差是系统机理造成的,称之为系统静差。

如果系统是一个二阶系统,如式(4.58)所示。纯比例控制 [公式] 与G组成的闭环系统的传递函数为

[公式]

对比未闭环的开环传递函数(4.58)

[公式]

前后系统的特征方程发生了变化,闭环系统的特征方程的根受到了K取值的影响。对于这里的二阶系统,其根为:

[公式]

K的大小会导致s的虚部发生变化,因此对最后响应的动态部分会产生影响。 在实部不发生变化的情况下,虚部的值越大,意味着该系统的阻尼越小,从而产生比较大超调和振荡。如果s是一个实数,那么系统没有超调和振荡,但是响应速度就比较慢。我们再检查闭环系统的稳态,假设我们采用单位阶跃响应,利用Final Value Theorem。

[公式]

显然K只要不断增大,稳态值就会无限趋近于1,稳态误差不断减小。但给定任意一个K,其最终的稳态值与1之间永远存在一个差值。我们取 [公式] , 画出不同K值时闭环系统的step response。

纯比例控制不同K值对于闭环稳态的影响

我们从上图中可以看到K值对于系统响应的影响:大的K值系统的响应速度明显提高,稳态精度也得到了提高,但代价是系统的大超调和严重的振荡。试想如果这是一部电梯的位移曲线,乘客将毫无舒适度可言。有很多系统并不允许有振荡和超调。虽然为了稳态精度和响应速度,我们需要提高K值,但我们需要平衡系统的超调和振荡带来的负面影响。 对于一般的二阶系统,K值过大还可能导致闭环系统的极点落入右半s平面,从而使得系统变得不稳定。(请自己举例并动手用MATLAB试试)。

对于常值干扰造成的稳态误差,有类似的结论。K值的增大会让扰动产生的稳态误差减小,即有效抑制扰动(reject disturbance)的作用,这从灵敏度的公式中也可以看出来。

对于一个高阶的系统来讲,K的增大对于每个模态的阻尼作用并不一致,但过大的K总是容易导致高阶系统不稳定,并且减小系统总体上的阻尼,造成比较大的超调量。

总结来讲: 比例控制P control能够提高系统的响应速度和稳态精度,抑制扰动对系统稳态的影响。但过大的比例控制容易导致系统超调和振荡,并且有可能使得系统变得不稳定。 纯比例控制并不能消除稳态误差,存在静差。

积分控制Integral Control

们前面讲到单纯的比例控制并不能消除稳态误差,无论是由于参考信号而产生的追踪误差还是由常值扰动产生的稳态误差。我们在《稳态误差和系统类型》那一篇中讲过,如果参考信号和扰动并不是一个常值,而是由k次多项式来描述的信号,那么想要稳态误差为0,则系统type必须大于k才行。现在,以k次的参考信号为例,对于某个开环系统G,假设闭环系统稳定,我们利用Final Value Theorem来计算

[公式]

对于我们的纯比例控制 [公式] ,则有

[公式]

显然,我们从中就可以看出,比例控制器 对k阶参考信号想要产生恒定的稳态误差是有条件的。这个条件就是开环系统G(s)是 k型系统,即G(s)中有且只有k个 [公式] 环节,等同于开环系统G(s)包含有k个积分器。这样我们便有:

[公式]

如果系统阶次高于k,那么稳态误差就会成为0。

我们前一节举的二阶系统的例子,就是个0型系统,只有0个积分器,因此对于阶跃信号这样的0阶常值信号,比例控制P control也就只能产生恒定的稳态误差了。如果系统是一个I型系统,包含1个积分环节,仍然是阶跃信号输入,那么代入k=0,

[公式]

这时候纯比例控制就能够让系统的稳态误差为0。

因此我们总结一下就是:纯比例控制会产生稳态误差的原因是其无法改变系统的型号。如果参考信号的阶次大于等于系统自身的阶次,那么无论如何选取纯比例控制的K值都无法使得稳态误差消除。

现在我们讨论开环系统plant自身是一个0型系统。我们已经知道单纯采用比例控制并不能消除对阶跃信号的追踪误差和扰动误差。从上面的结论中我们想到,如果控制器 [公式] 能够引入积分环节,那么我们就可以对开环系统进行“升型”,则其对阶跃信号的误差就可以为0。对下面的系统引入(4.62)所定义的积分控制

[公式]

对于这个 [公式] 的系统, 显然对阶跃信号的稳态误差一定为0,因为它是I型系统。

一般地,如果一个0型系统 [公式] ,我们引入(4.62)所定义的积分控制对阶跃信号的稳态误差为:

[公式]

如果我们要让这个0型系统对于更高阶的信号的稳态误差为0,则必须引入k+1个积分器,那么其对于k阶参考信号的稳态误差为,

[公式]

如果我们结合前面的比例控制P control,我们便可以提出比例-积分控制PI control

[公式]

引入I control的主要目的就是为了消除稳态误差。我们应当注意,I control消除误差的条件:

  1. 如果系统是0型的,那么引入积分控制环节 [公式] ,能够消除常值输入信号(如阶跃信号)和扰动的稳态误差,但是对于变化过快的,高于0阶多项式的信号,理论上要引入多个积分环节才能够消除稳态误差,(4.62)所定义的积分控制是不足以达到要求的。
  2. 如果系统是大于0型的,那么对于常值输入信号或者扰动的稳态误差已经为0,理论上可以不使用积分控制。对于高阶的型号,控制器至少引入积分环节的数量可以由系统具体型号来确定。

因此什么时候需要采用PI控制是需要针对系统的特点做出决定的,如果可以,我们不必要采用积分控制,从而简化系统结构。积分控制本身会带来一系列的问题,如积分饱和现象

总结来讲:(4.62)定义的积分控制能够消除0型系统对于常值输入信号和常值扰动造成的输出稳态误差,可以与P control一起组成PI control。积分控制消除稳态误差的作用对于高阶的参考信号和扰动是无效的。积分控制并不一定是必须的,应当视系统的型号、输入和干扰类型决定。积分控制的常数 [公式] 根据系统所需的动态进去选取,并不会影响消除误差的效果,具有一定的鲁棒性。

微分控制Derivative Control

(4.70)定义的控制我们成为微分控制(derivative control)。从表达式看,直觉上可以理解为什么我们需要这样一项控制。我们定义误差为参考输入与当前输出之间的差,采用PD控制。如果我们输出渐渐接近输入,误差会不断减小,为一个正数,误差的导数为负数 。u由比例控制Ke组成的部分是正数,仍在控制输出靠近目标值,D control就会产生负数量,就会减小u的控制作用,相当于一种“制动”作用,防止输出变化过快而超过目标值,即防止超调量过大。如果输出超过了参考信号,那么误差就会变号,比例控制的组成部分是负数,控制量反向以再次接近目标,此时误差的导数变为正数,D control使得控制量能够在绝对值上得到削减。

上述直觉上的猜想是对的,微分控制D control的主要作用就是减少超调量,加速瞬态过程和提高系统的稳定性。我们想象D control就是一个阻尼器,它无时不刻都在系统运动的反方向,阻止系统失去稳定,减小超调的发生。

微分控制一般会和P control一起使用,组成PD控制。D控制单独使用并不能起到很好的效果,因为当误差保持为常数时,显然控制量就会变为0。由于现实中不存在理想微分器,因此D控制的实现需要由一个信号 [公式] 和它短时间内的延迟信号 [公式] 做差并除以该时间 [公式] 得到。[2]中涉及到了微分器的实现,以及微分器为什么会对噪音放大的原因。我们在讲了Bode图之后简单再提及这个问题。 我们先记住,微分器会对高频噪音有放大的效果。

PI控制、PD控制与PID控制

单独使用I和D都存在弊端,它们往往会和P一起使用,以加快系统响应速度和减小稳态误差的作用。与P同样的,我们可以将PI或者PD与开环系统结合在一起,写出闭环系统的特征方程,参数

都参与了闭环特征方程的组成,由此对系统的模态产生了不同影响。对于二阶系统以及复杂的高阶系统,往往需要使用PID三种控制才能对系统的动态有一个完整的调节能力。如我们在P control中举的二阶系统比较特殊,没有零点,它的特征值s的实部是不能由Kp来调节的,因此无论如何其模态衰减速度已经基本固定。上同表明了这个一观点。

PID改变系统动态以及稳态的直接原因就是因为控制器的引入改变了闭环系统的特征方程,从而对系统的模态和解产生了影响。故而(4.77)中我们调节三个不同参数就能根据需求得到不同的系统响应了。

PID参数调节与无模型

PID控制器的控制效果与三个参数的tuning有直接和重大的关系。在[2]中涉及到了PID控制器的控制效果讨论。 对于简单低阶系统,PID参数可以通过稳定性条件得到大致范围,然后根据需要的动态手动进行调整得到。对于高阶的系统,如果模型已知,我们可以通过Routh Array或者Hurwitz Criterion来判断参数的范围。

对于过程控制,许多复杂系统的模型难以建立或者建立成本过大,PID依旧可以胜任这种无模型的控制任务,依旧是调整三个参数,便于许多工程师操作,这是PID在工业界取得广泛应用的原因。根据系统曲线进行PID tuning的方法有Ziegler-Nichols Tuning Method,临界比例度法,衰减曲线法等等。

调参是件非常讲究技术的活儿,别看PID结构和含义都容易理解,但是具体tuning却是费脑子的活。有兴趣的朋友可以参考《自动调节系统解析与PID整定》,这是一个工程师根据自己工作经验写的。

全文总结:

PID控制是比例-积分-微分三种反馈控制的总称。应用PID控制律的控制器我们称为PID控制器。PID三部分各自对系统都有不同的影响,根据需要可以采用PD,PI或者PID三种不同形式。PID可以在有模型和无模型两种条件下工作,而且对于大部分系统都能实现有效的调节。虽然只有三个参数,但是现场PID参数整定工作并不都是十分轻松的,需要大量实践经验。当然现在已经开发出了很多自动调节参数的设备来改进这一缺点。

PID控制器的结构简单,操作方便,学习门槛低,适合工程师学习和使用,并且适合无模型系统的控制,是其被广泛应用的主要原因。针对PID控制器自身存在的缺点,后世又推出了许多改进的PID控制律,以及自动调节参数的PID控制器。

PID控制律是经典控制理论中非常重要的控制律之一。自动化专业的朋友应该对PID控制的理论部分有较深的理解。对于具体地实践:纸上得来终觉浅,绝知此事要躬行。

Reference

[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson

[2] 韩京清,自抗扰控制技术 ——估计补偿不确定因素的控制技术,2008,国防工业出版社

[3] 胡寿松,自动控制原理(第六版),2013,科学出版社


若有纰漏,烦请指出。转载还请私信联系,请勿私自转载。O(∩_∩)O