基本的PID演算法在一些控制应用的条件下有些不足,需进行小幅的修改。

积分饱和

编辑

积分饱和是理想PID演算法实现时常见的问题。若设定值有大的变动,其积分量会有大幅的变化,大到输出值被上下限限制而饱和,因此系统会有过冲,而且即使误差量符号改变,积分量变小,但输出值仍被上下限限制,维持在上限(或下限),因此输出看似没有变化,系统仍会持续的过冲,一直要到输出值落在上下限的范围内,系统的回授量才会开始下降。此问题可以用以下方式处理:

在程序变数离开可控制范围时,暂停积分。

让积分值限制在一个较小的上下范围内。

重新计算积分项,使控制器输出维持上下限之间的范围内[14]。

PI控制器

编辑

PI控制器的方块图

PI控制器(比例-积分控制器)是不用微分单元的PID控制器。

控制器的输出为

K

P

Δ

+

K

I

Δ

d

t

{\displaystyle K_{P}\Delta +K_{I}\int \Delta \,dt}

其中

Δ

{\displaystyle \Delta }

为设定值SP和量测值PV的误差:

Δ

=

S

P

P

V

{\displaystyle \Delta =SP-PV}

.

PI控制器可以用Simulink或Xcos之类的软体进行建模,方式是使用“flow chart”图框,其中用以下的拉氏运算子:

C

=

G

(

1

+

τ

s

)

τ

s

{\displaystyle C={\frac {G(1+\tau s)}{\tau s}}}

其中

G

=

K

P

{\displaystyle G=K_{P}}

= 比例增益

G

/

τ

=

K

I

{\displaystyle G/\tau =K_{I}}

= 积分增益

G

{\displaystyle G}

值的选择需在减少过冲以及增加安定时间之间取舍。

微分单元对输入中的高频信号格外敏感,PI控制器因为没有微分单元,在讯号杂讯大时,在稳态时会更加稳定。但对状态快速变化的反应较慢,因此相较于调适到最佳值的PID控制器,PI控制器会较慢到达设定值,受干扰后也比较慢恢复到正常值。

PDF控制(pseudo-derivative feedback control)可以视为是PI控制器的变体,比例控制器的输入由误差值改为回授值[15]。

不动作区

编辑

许多PID回路是控制机械元件(例如阀)。机械保养是一笔可观的费用,磨损会使得机械在有输入信号时出现静摩擦或是不动作区,都会导致控制性能的下降。机械损耗的速度主要和设备多常改变其状态有关。若磨损是主要考量的话,PID回路可以有输出的迟滞现象以减少输出状态的改变。若变化小,仍在不动作区内,让控制器的输出维持上一次的值。变化要大到超过不动作区,实际的状态才会随之变化。

设定值的步阶变化

编辑

若系统的设定值有步阶变化,比例单元和微分单元也会有对应的变化,特别是微分单元对于步阶变化的输出特别的大,因此有些PID演算法会配合以下的修改来处理设定值的变化。

设定值斜坡变化

此修改方式下,设定值会用线性或是一阶滤波的方式,由原始值变到新的值,避免因为步阶变化产生的不连续。

只对程序变数(回授量)微分

此修改下,PID控制器只针对量测的程序变数(PV)微分,不对误差微分。程序变数是实际的物理量,较不易有瞬间的变化,而误差可能因为设定值的步阶变化而有瞬间变化。这也是一种简单的设定值加权法。

设定值加权

设定值加权分别调整在比例单元及微分单元中的误差量,误差量的设定值乘以一个0到1之间的加权,积分单元的误差量需使用真实的设定值,以避免稳态误差。这两个参数不影响对负载变化及量测杂讯的响应,可以提升对设定点变化的响应。

前馈控制

编辑

PID控制器若再配合前馈控制(开回路控制),可以再提升其控制性能。在前馈控制中考虑系统的已知资讯(例如理想加速度或是惯量),再将输出加到PID控制器的控制输出,以提升整体的系统性能。前馈量可能是控制输出主要的部份,而PID控制器只用来补偿目标值和开回路控制器输出之间的误差。因为前馈输出不会受到回授的影响,因此也不会造成系统的振荡,可以在不影响稳定性的条件下提升系统的响应。前馈可以依目标值及其他量测到的干扰量来产生,目标值加权是一种简单的前馈控制方式。

例如,在大部份的运动控制系统中,为了要使机械负载加速,致动器要产生更大的力。若用速度环的PID控制器来控制负载速度,比较理想的方式是先得到理想的瞬间加速度值,适量调整加权后再加到PID的输出中。因此控制器输出中有一部份是不随机械速度而改变的输出,再用PID根据实际输出和目标的差异去增加或是减少输出。这类有前馈控制的PID控制器可以加快控制系统的反应速度。

无冲击运转

编辑

有时PID控制器会规划为无冲击(bumpless)的特性,在参数变化时重新计算适当的积分累计值,使输出不会因参数变化有不连续的改变[16]。