PID 控制
用三项让响应又快又准
给被控对象 G(s) = 1/((s + 1)(s + 2)) 加上 PID 控制器,让它跟随目标值 1(虚线)。金色曲线是 t = 0 到 12 的闭环阶跃响应,下方显示栏里的稳态误差和超调,都是从这 12 秒的曲线上测得的。一开始只有比例增益 Kp = 4,输出停在 4/6 ≈ 0.67,留下 0.33 的稳态误差。调高积分增益 Ki,剩下的误差会累积起来把输出推到目标值;只要 Ki = 2,误差在 12 秒内就几乎变为 0。不过 Ki 调得太大,超调会变大,所以还要同时调节 Kp 和 Kd,去找又快、又无误差、又平稳的响应。
误差的现在、过去、未来
PID 控制器接收一个误差 e(t),即目标值与输出之差,用三种方式把它加起来,形成控制输入 u = Kp·e + Ki·∫e dt + Kd·de/dt。比例项按当前误差的大小立即反应:误差大就用力推,误差小就轻轻推,是最直观的一项。积分项把误差随时间累积起来,所以即使是很小的误差,只要一直存在,积分值就会不断增大,最终把这个误差推掉。微分项对误差变化的快慢作出反应,所以当误差正在迅速减小时,它会预见到马上就要冲过头,提前踩刹车。可以说,三者分别看着误差的现在、过去和未来。
P 的局限、I 的精确、D 的稳定
只用比例控制,会留下稳态误差。因为控制输入是 u = Kp·e,稳态时要让输入维持一个不为 0 的值,误差 e 就必须不为 0。这个例子中被控对象的直流增益是 1/2,所以只用 Kp 时输出停在 Kp/(2 + Kp),永远达不到目标值。积分项解决了这个问题。只要误差还剩一点,积分就不断累积、加大输入,直到误差正好为 0 才停下,所以稳态误差变为 0。代价是积分在原点加了一个极点,使相位滞后,响应容易振荡;微分项则相反,使相位超前,增加阻尼。用比例定快慢,用积分消误差,用微分添阻尼,这就是 PID 的分工。
整定与现实的陷阱
PID 是工业控制的标准工具,温度、速度、位置、流量处处都在用。确定三个增益叫作整定,由于快慢、超调和鲁棒性彼此牵连,改善一方往往会损害另一方。经典的齐格勒–尼科尔斯方法关掉积分和微分,只调高比例增益,找到系统刚开始等幅振荡时的临界增益和振荡周期。这正是 F1 单元的劳斯判据和 F4 单元的奈奎斯特判据所见的稳定边界,再从那里按表格确定三个增益。现实中也有陷阱。微分项会放大快速变化,因而连测量噪声也一起放大,所以通常要配一个低通滤波器;也有像这张图一样,只把微分作用在输出上,避免目标值阶跃变化的瞬间输入猛然跳动。此外,当输入被卡在极限时积分若继续累积,之后就会推得太猛,形成积分饱和,要用抗积分饱和措施来防止。
回到第一屏
在第一屏,我们给被控对象 G = 1/((s + 1)(s + 2)) 加上 PID 控制器,调节了三个增益。只有比例增益时,输出达不到目标值就停住,留下稳态误差。调高积分增益,剩下的误差不断累积,把输出准确地拉到目标值,但调得太高,超调和振荡就会变大。把比例和微分一起调节、补上阻尼,响应又变得平稳。比例管快慢,积分管精度,微分管阻尼,三者合力做出了又快、又无误差、阻尼又好的响应。之前用劳斯判据、根轨迹、伯德图和奈奎斯特图分析的回路,现在通过设计控制器,被塑造成了我们想要的样子。
PID 在时域里把三项加起来塑造响应。在频域里直接瞄准伯德图的相位和增益来做同样事情的工具,就是补偿器。下一单元 超前与滞后补偿 将在回路中插入由一个极点和一个零点构成的小传递函数。超前补偿器在穿越频率附近抬高相位、增大相位裕度,所以像微分项一样增加阻尼和速度;滞后补偿器在低频处提高增益、改善稳态精度,所以像积分项一样减小误差。PID 的 D 和 I 所做的事,补偿器在伯德图上以塑造相位和增益形状的方式再做一遍。