基本的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]。