seegongsik
SC · 控制

稳态误差

闭环无法把目标一路跟到底而留下的误差,就是稳态误差。它的大小由开环在原点处的积分器个数,也就是系统型别,以及输入的种类决定。本讲中你将切换输入(阶跃、斜坡、抛物线)和系统型别(0 型、1 型、2 型),确认:型别高于输入的阶次时误差消失为 0,相等时停在一个有限值,低于时则无止境地拉开。

型别与输入决定误差

金色曲线是从 t = 0 到 12 的跟踪误差 e(t) = r(t) − y(t),即目标输入与闭环输出之差;虚线是该误差随时间最终到达的稳态值。输入在阶跃(常数)、斜坡(直线)、抛物线(加速)中选,系统型别在 0 型、1 型、2 型(开环在原点的极点个数)中选;误差趋于 0 时曲线变绿,无止境增大时变红。初始是斜坡输入、1 型、K = 2,所以误差停在 2/K = 1。系统型别比输入至少高一阶时,误差沉到 0;恰好相等时,停在一个不为 0 的常数(增大 K 能减小它,但永远到不了 0);更低时,误差无止境地增大。1 型系统 K/(s(s + 1)(s + 2)) 正是 F1 ~ F6 单元一路使用的那个被控对象,而这个滑杆最大只到 K = 5,所以看不到 K = 6 时的不稳定。

跟踪误差 e(t) = r − y(虚线 = 稳态误差)
输入
系统型别(原点极点数)
增益 K2.0
误差常数与稳态误差
K_p = ∞ · K_v = 1.0 · K_a = 0
e_ss = 1.00
系统型别恰好等于输入的阶次,误差停在一个不为 0 的常数。阶跃配 0 型时 e = 1/(1 + K_p) = 2/(2 + K),斜坡配 1 型时 e = 1/K_v = 2/K,抛物线配 2 型时 e = 1/K_a = 1/K。增大增益 K,相应的误差系数变大,误差减小,但只是保持有限,不会变为 0。要彻底消除误差,系统型别还得再提高一阶。
残留有限误差

用终值定理读出误差

稳态误差可以用终值定理干净利落地求出。单位反馈下,误差的拉普拉斯变换是 E(s) = R(s)/(1 + L(s)),时间趋于无穷后的值为 e_ss = lim_{t→∞} e(t) = lim_{s→0} s·E(s) = lim_{s→0} s·R(s)/(1 + L(s))。阶跃输入 R = 1/s,斜坡 R = 1/s²,抛物线 R = 1/s³,所以 s·R 分别是 1、1/s、1/s²。于是误差取决于 s → 0 时 1 + L(s) 变得多大;若 L(s) 在原点有极点,s → 0 时 L 趋于无穷,误差就为 0。归根结底,把误差送到 0 的力量,来自 L 在原点处的极点,也就是积分器的个数。不过,这个定理只有在闭环稳定时才能使用。

观察ess = lim(s→0) s·R(s) / (1+L(s))
终值定理:ess = lims→0 s·R/(1 + L)。
选择阶跃误差为 0 需要 L 具有 ?
要让阶跃误差为 0,原点处有一个极点(积分器)就够了。
填空斜坡误差 ess = 1 / ?
斜坡误差 = 1/Kv,Kv = lim s·L。
自己来2 型跟踪阶跃和斜坡时的误差 ?
2 型以 0 误差跟踪阶跃和斜坡。

三个误差常数与型别表

为左右各种输入误差的量起的名字,就是误差系数。阶跃输入对应位置误差系数 K_p = lim_{s→0} L(s),斜坡输入对应速度误差系数 K_v = lim_{s→0} s·L(s),抛物线输入对应加速度误差系数 K_a = lim_{s→0} s²·L(s),误差分别整理为阶跃 1/(1 + K_p)、斜坡 1/K_v、抛物线 1/K_a。系统型别一次就决定了这些系数是有限还是无穷。0 型只有 K_p 有限,K_v 和 K_a 为 0,所以阶跃留下有限误差,斜坡和抛物线留下无穷误差。1 型的 K_p 无穷(阶跃误差 0),K_v 有限(斜坡有限误差),K_a 为 0(抛物线无穷误差);2 型的 K_p 和 K_v 无穷(阶跃、斜坡误差 0),K_a 有限(抛物线有限误差)。这张 3 × 3 的表就是稳态误差的全部,第一屏的显示栏里写着当前所选系统的三个系数。

减小误差的两个旋钮,及其代价

减小稳态误差的办法有两种。一种是提高系统型别,也就是给控制器加积分器、在原点添加极点,这样相应输入的误差会整个变为 0(F5 单元的积分项)。另一种是增大误差系数,可以提高增益,或者像 F6 单元的滞后补偿那样把极点放在原点附近来提高低频增益,但这只能减小有限误差,消除不了它。两种办法都不是免费的。原点处的极点会让相位滞后 90°、削减相位裕度,把系统推向不稳定(F3、F6 单元中看到的相位损失);而增益一旦超过某条线,闭环就会变得不稳定。1 型被控对象 K/(s(s + 1)(s + 2)) 在 K = 6 时变得不稳定,F1 ~ F4 单元的这条边界在这里依然有效。所以实际设计是在稳态精度与稳定性、响应速度之间拔河,积分器要一边用超前补偿弥补相位,一边只加到真正需要的程度。

回到第一屏

在第一屏,我们直接显示跟踪误差 e(t),一边切换输入和系统型别,一边观察它的终值。型别高于输入阶次时误差消失为 0,相等时停在 1/(1 + K_p)、1/K_v、1/K_a 这样的有限值,低于时则无止境地拉开。所有情形都出自同一个终值定理 e_ss = lim_{s→0} s·R/(1 + L),原点处极点的个数把 1 + L 放大到什么程度,决定了误差能否被送到 0。增益 K 只改变有限误差的大小,越不过阶次这堵墙。F5 单元的积分项是在这张表里把系统型别提高一格、消除了误差,F6 单元的滞后补偿则是在同一格里增大误差系数、减小了误差。

稳态误差 ess 是闭环无法把目标一路跟到底而留下的误差,在闭环稳定时用终值定理 ess = lims→0 s·R(s)/(1 + L(s)) 求出。各输入的误差为阶跃 1/(1 + Kp)、斜坡 1/Kv、抛物线 1/Ka,误差系数为 Kp = lim L、Kv = lim sL、Ka = lim s²L。系统型别(L 在原点的极点个数)高于输入阶次时误差为 0,相等时有限,低于时无穷:0 型只有阶跃有限,1 型阶跃为 0、斜坡有限,2 型阶跃和斜坡为 0、抛物线有限。把误差消为 0 的办法是加积分器、提高系统型别(F5 单元的积分项),滞后补偿(F6 单元)则通过增大误差系数来减小误差;但原点附近的极点会削减相位裕度,以稳定性为代价(F1 ~ F4 单元的 K = 6 边界在这里依然有效)。
控制章节的收尾

至此,控制这一章绕完了一圈。用劳斯判据判定稳定(F1),用根轨迹跟踪极点的路径(F2),用伯德图的两个裕度测量距离(F3),用奈奎斯特图看是否绕 −1(F4),用 PID 塑造响应(F5),用超前、滞后补偿整形相位(F6),现在又用稳态误差读出了跟踪的极限(F7)。稳定性、响应速度、稳态精度这三个目标相互拉扯,最终被捆成一个设计,这就是经典控制的主干。再往前走,还有同时处理多输入多输出的状态空间、把极点放到想要位置的极点配置、用采样信号控制的数字控制,以及使代价最小的最优控制在等着。而所有这些道路,也都建立在本章所见的极点、零点、裕度和误差的语言之上。