参数设置
重置
过程:K_p=2、T_p=5 s。t=0 施加给定值阶跃 r=1,t=15 s 施加扰动阶跃 d。τ_F=0 即退化为 1 自由度。
输出 y(t) 与控制量 u(t)
上=输出 y(t)(红=1 自由度、蓝=2 自由度、灰虚线=给定 r)/下=控制量 u(t)/纵向点线=t=15 s 施加扰动
理论与主要公式
二自由度控制用两组独立传递函数分别设计给定值响应与扰动响应。对过程 $G_p(s) = K_p/(T_p s + 1)$,PI 控制器 $C(s) = K_c(1 + 1/(T_i s))$ 与前置滤波器 $F(s)$ 分别设计。
给定值响应(r 到 y):
$$T(s) = \frac{F(s)\,C(s)\,G_p(s)}{1 + C(s)\,G_p(s)}$$
扰动响应(d 到 y):
$$S_d(s) = \frac{G_p(s)}{1 + C(s)\,G_p(s)}$$
本模拟器把前置滤波器简化为一阶惯性:
$$F(s) = \frac{1}{\tau_F\,s + 1}$$
$F$ 不出现在扰动响应 $S_d$ 中,因此 $\tau_F$ 只整形给定值响应——这正是二自由度结构的核心。1 自由度($F=1$)下加大 $C$ 能提高抑扰能力,但给定值响应必然出现超调。
二自由度控制模拟器是什么
🙋
用 PI 控制器跟踪给定值时,我经常被夹在中间——增益小了抑扰差,增益大了又超调。这种困境真的没办法解决吗?
🎓
这正是「1 自由度控制」的根本极限。把反馈增益 C 加大,扰动响应 $G_p/(1+CG_p)$ 确实能压小,但给定值响应 $CG_p/(1+CG_p)$ 与它共用同一个分母,闭环极点过快就会超调。一个 C 同时优化两者根本做不到。在上面的模拟器里把 τ_F 设为 0、加大 K_c——红色(1 自由度)曲线就会大幅冲过目标。
🙋
「2 自由度」就是这时候出场吧。它到底有什么不同?
🎓
说白了,就是在参考前面加一段「整形滤波器」F。反馈环路保持不变——所以扰动响应 $G_p/(1+CG_p)$ 也保持不变。但给定值响应变成 $F\cdot CG_p/(1+CG_p)$,把 F 取一阶惯性放缓上升即可消除超调。模拟器里 τ_F=2 时,蓝色(2 自由度)曲线就会平滑地达到目标值。
🙋
啊,真的是这样。但 t=15 s 之后扰动来了,红蓝两条曲线的反应却完全相同。
🎓
没错,这正是 2 自由度的最大优点。扰动响应只由 C 决定,调 F 怎么也改不了它。所以可以分工:抑扰由 C 主攻、给定值整形由 F 接管。在实际工厂里,温度控制中改设定值瞬间消除剧烈超调、外界温度变化时保留快速跟踪,就是经典用法。
🙋
把 τ_F 调大上升就越来越慢。是不是越大越不好?
🎓
没错。τ_F 取无穷大理论上超调为 0,但系统要花几分钟才能爬到设定值。实务上从过程时间常数 T_p 的 0.5~2 倍开始,按可接受的超调和上升时间折中。看着「整定时间」卡片扫一遍 τ_F 就能体会——τ_F 增加 30% 整定时间几乎不变,但越过某个点之后突然就变得很慢。
常见问题
市售 PID 控制器能实现 2 自由度吗?
能,现代市售 PID 控制器大多内置「2 自由度 PID」模式。最常见的实现是「加权 PID」:对设定值通道,把比例项乘以权重 β、微分项乘以 γ。β=γ=1 即是经典 1 自由度 PID,β=γ=0 则可彻底消除比例和微分冲击。Yokogawa、Honeywell、ABB 的 DCS 都把它作为标准功能提供。
前置滤波器 F 与前馈补偿有什么区别?
前置滤波器 F 整形参考信号 r,再通过 C 间接影响输出 u。前馈补偿则是把可测扰动 d_meas 直接加到 u,使回路在扰动尚未影响输出之前就抢先反应。两者互补:F 用于参考整形、前馈用于已知扰动、C 反馈环负责未知扰动——这种三层结构是现代控制的标准搭配。
系统含纯滞后时还能用 2 自由度吗?
能用,但与 Smith 预估器或模型预测控制(MPC)配合更有效。纯滞后 L 较大时,单纯的 PI 反馈极易进入不稳定区,K_c 难以加大。先用 Smith 预估器补偿滞后,再在其上叠加 2 自由度结构,给定值响应与扰动响应就能独立设计。在化工的成分控制中,这是标准做法。
F = 1/(τ_F·s+1) 之外还有更好的设计吗?
有。直接指定理想闭环传递 T_des(s) 的设计法已较成熟,由 $F = T_\text{des}(1+CG_p)/(CG_p)$ 反算可得到 Bessel、Butterworth 等任意整形结果。但 F 容易升阶,其零点还可能去抵消过程的非最小相位零点,反而引发问题。本模拟器选择一阶简化形,正是在实现简洁与整形精度之间折中。
实际应用
过程工业的温度与流量控制: 化工厂、钢铁厂的连续生产装置经常切换设定值,同时又要承受原料温度漂移、外界气温变化等扰动。2 自由度 PID 能在牌号切换的瞬间消除剧烈超调(避免不合格品),同时保留对扰动的强抑制能力。Yokogawa CENTUM 等 DCS 把「I-PD」「PI-D」型作为标配。
伺服电机定位控制: 机床、半导体光刻机、机器人臂等精密定位系统,必须兼顾快速到位与切削反力等扰动的抑制。前馈给定加速度、速度曲线,反馈抑制残差与扰动,构成「2 自由度伺服」的标准实现。还会叠加更高阶滤波器以抑制残余冲击与共振。
汽车定速巡航与 ADAS: 速度设定改变时要让乘员感觉舒适(柔和加速),同时坡度变化又要快速响应——2 自由度结构同时满足两者:前置滤波器限制目标速度的变化率,PI 反馈处理坡度与滚动阻力造成的偏差。在自适应巡航(ACC)中再叠加基于雷达测距的前馈,构成三层结构。
HVAC(空调)与楼宇控制: 大型空调系统的冷水机出口温度、VAV 流量控制中,运行模式切换时的超调直接影响舒适度与能耗。用 2 自由度 PID 让设定值变化柔和过渡,同时由反馈处理外气温度与负荷扰动,对节能与舒适性的兼顾贡献显著。
常见误解与注意事项
最常见的误解是认为「采用 2 自由度后反馈增益就能无限加大」 。前置滤波器 F 只整形给定值响应,确实可以消除给定值的超调。但稳定性本身由闭环特征方程 $1+CG_p=0$ 决定,与 F 完全无关。把 K_c 调过头,给定值响应可能很漂亮,扰动响应或噪声响应却会出现振荡,最严重时还会失稳。在模拟器里把 K_c 设为 10,能看到扰动响应(t>15s)开始出现振荡。F 不是稳定性的解决方案,它只是整形工具。
其次常见的错误是把 F 的阶数提得过高、反而让实现变复杂 。理论上任意所需响应 T_des 都能用高阶 F 实现,但高阶滤波器对离散化误差与计算延迟很敏感,对采样周期的选择也更苛刻。实务中一阶或二阶惯性已基本够用,本模拟器因此只采用一阶形式。「先用简单滤波器拿到 70% 的效果,剩下靠整定」是现场工程师的实用策略。
最后请注意,选 τ_F 时若不考虑设定值变化的频度 会带来运行问题。把 τ_F 调到 T_p 的 3 倍能得到最干净的响应,但若每 30 秒就改一次设定值,滤波器输出还没到稳态下一个新设定值就到了,回路就一直跟不上。实机选 τ_F 时要保证「设定值切换的最小间隔」与「滤波器整定时间」相容。想象在 τ_F=10 s 状态下频繁切换设定值,上升慢得几乎没法用——务必把工况和设计一并考虑。