seegongsik
SC · 控制

超前与滞后补偿

补偿器在回路中插入一个由一个极点和一个零点构成的小传递函数,把伯德图的相位和增益改成想要的形状。超前补偿器把零点放得比极点更靠近原点,在穿越频率附近抬高相位、增大相位裕度;滞后补偿器把极点放得比零点更靠近原点,提高低频增益、减小稳态误差。本讲中你将把超前补偿器的相位峰放到穿越频率附近,确认原本很薄的相位裕度被抬到良好数值的过程。

用超前补偿抬高相位裕度

这是与 F1 ~ F4 单元相同的被控对象加上增益 2 的开环 L(s) = 2·C(s)/(s(s + 1)(s + 2)) 的伯德图。上图是增益(dB),下图是相位(度);灰色虚线是补偿前(C = 1),金色实线是加上超前补偿器 C(s) = (1 + αTs)/(1 + Ts) 之后。补偿前的相位裕度约为 33°,达不到 45° 的目标。增大 α,零点与极点的间隔拉开,相位上隆起一个峰,峰的最大高度为 φ_max = asin((α − 1)/(α + 1))。移动中心频率 ω_m,把这个峰放到金色点附近,也就是增益穿过 0 dB 的穿越频率附近,相位就在那里被抬高,相位裕度随之增大。例如 α = 4、ω_m = 1.5 时相位裕度约为 53°;用这两个旋钮可以找到 45° ~ 60° 之间的设定。

增益 (dB) · 虚线补偿前,实线补偿后
相位 (度) · 金色竖直点线是 ω_m 的位置,把峰对准交越频率
α(零极间隔比)1.0
中心频率 ω_m1.50
补偿器与相位裕度
α = 1.0 · ω_m = 1.50 · φ_max = 0°
PM: 33° → 33° · 增益穿越 ω = 0.75
相位裕度仍不到 45°。超前补偿器的相位峰太低,或者偏离了穿越频率。增大 α 峰就变高,把 ω_m 移到穿越频率附近,相位就在那里被抬起。由于补偿器加上的增益会让穿越频率稍微右移,ω_m 也要随之调整差不多的量。
裕度薄(补偿不足)

一极一零,重塑相位

超前补偿器的形式是 C(s) = (1 + αTs)/(1 + Ts),α > 1,零点在 s = −1/(αT),极点在 s = −1/T。零点比极点更靠近原点,在较低频率先起作用,所以在两个转折频率之间相位被抬为正。从伯德图看,相位在零点处正要升向 +90°,极点又把它拉了下来,于是在两个转折频率的几何平均 ω_m = 1/(T√α) 处相位最大。这个最大值只取决于间隔比 α,即 φ_max = asin((α − 1)/(α + 1)):α = 4 时约为 37°,α = 10 时约为 55°。α 越大峰越高,但同一 ω_m 处补偿器的增益也随之提高 √α 倍,所以超前补偿是一笔用高频增益换取相位的交易。

观察超前补偿器抬高相位的位置: 穿越频率
超前补偿器在穿越频率附近抬高相位,增大相位裕度。
选择最大相位 φmax 只取决于 ?
最大相位 φmax = asin((α − 1)/(α + 1)) 只取决于间隔比 α。
填空要减小稳态误差,用 ? 补偿器
滞后补偿器提高低频增益,减小稳态误差。
自己来超前提高高频增益,因此会放大 ?
超前提高高频增益,会放大噪声(与微分项相同的弱点)。

滞后补偿是镜像

滞后补偿器形式相同,但 α < 1,所以极点比零点更靠近原点。这一次相位会稍微向负方向凹下去,作为交换,从低频到高频增益会降到 α 倍。反过来说,以高频为基准,相当于把低频增益提高了 1/α 倍,因此可以把回路增益提高 1/α 倍,而穿越频率附近的增益保持不变,变大的直流增益会减小 F5 单元中看到的稳态误差。相位凹陷的代价,靠把两个转折频率放在远低于穿越频率的地方来避免;因为到了穿越频率,相位凹陷已经几乎回到 0,几乎不影响相位裕度。如果说超前像微分项一样增加相位和速度,滞后就像积分项一样增加低频增益、减小误差,两者合用就是超前滞后补偿。

用电路搭起的补偿器,及其局限

补偿器的魅力在于只要一个极点和一个零点,用运算放大器加上几个电阻、电容就能直接做成电路。超前补偿器类似微分器,但多亏了极点,高频增益到 α 倍就不再上升,减轻了纯微分无限放大噪声的问题。其实,实用的 PID 与超前滞后补偿关系很近。积分项是放在原点的极点(滞后的极端情形),给微分项加上滤波器就是超前补偿器,所以两者是在用不同的语言做同一件事。在时域里选三个增益是 PID 整定,在频域里放置极点和零点、塑造伯德图则是补偿器设计。局限也很明显:超前提高高频增益,容易受噪声和饱和影响;滞后加了一个慢极点,会拉长调节时间。所以设计的诀窍是:用超前借相位,用滞后补精度,两者都只用到真正需要的程度。

回到第一屏

在第一屏,我们给相位裕度只有约 33° 的开环加上了超前补偿器。增大 α,在相位上立起一个峰;把中心频率 ω_m 移到增益穿过 0 dB 的穿越频率附近,相位正好在那里被远远抬离 −180°,相位裕度升到了良好的数值。补偿器只靠一个极点和一个零点,就在想要的地方抬高了伯德图的相位。如果说超前借来相位、增加了速度和稳定性,那么滞后就是增加低频增益、补足精度。在 F3 单元里只能读出的相位裕度,现在通过设计补偿器亲手做了出来。

补偿器 C(s) = (1 + αTs)/(1 + Ts) 用一个极点和一个零点塑造开环伯德图。超前补偿(α > 1,零点更靠近原点)在 ωm = 1/(T√α) 处把相位抬高 φmax = asin((α − 1)/(α + 1)),增大相位裕度(像微分项一样增加速度和稳定性,但高频增益升到 α 倍,会放大噪声)。滞后补偿(α < 1,极点更靠近原点)把低频增益相对提高 1/α 倍,减小稳态误差(像积分项一样,把两个转折频率放在穿越频率以下以避免相位损失)。把相位峰对准穿越频率是设计的核心,实用 PID 与超前滞后补偿是用不同语言做同一件事的关系。
进入下一单元

前面说滞后补偿器提高低频增益来减小稳态误差,那么这个误差究竟由什么决定呢?下一单元 稳态误差 将讨论开环在原点的极点个数,也就是系统的型别(0 型、1 型、2 型),如何决定阶跃、斜坡、抛物线输入的最终误差。位置误差系数 Kp、速度误差系数 Kv、加速度误差系数 Ka 分别决定这些误差,原点处的一个极点能把某一种输入的误差整个变为 0。滞后补偿器提高直流增益所做的事,和积分项在原点添加极点所做的事,会在那里归纳成一张表。