二自由度控制模拟器 返回
控制工程模拟器

二自由度控制模拟器 — 目标值跟踪和干扰抑制的独立设计

分别设计PI反馈和前置滤波,独立调整目标值响应和干扰响应。通过与单自由度控制对比,体会前馈整形的优势。

参数设置
PI比例增益 K_c
PI积分时常数 T_i
s
前置滤波时常数 τ_F
s
PID微分增益 K_d
干扰阶跃 d

过程:K_p=2、T_p=5 s。t=0 处目标值阶跃 r=1,t=15 s 处干扰阶跃 d。τ_F=0 等同于单自由度。

计算结果
单自由度 超调量
二自由度 超调量
目标值跟踪 整定时间
干扰响应 最大负偏差
实时数值(播放中)
0.00
时刻 t [s]
1.00
目标值 r
0.00
单自由度 输出 y
0.00
二自由度 输出 y
0.00
二自由度 跟踪误差 e
实时响应动画

上段=输出 y(t)(红=单自由度,蓝=二自由度,灰虚线=目标 r,橙细线=二自由度整形目标 r_eff)/下段=控制输入 u(t)/竖虚线=t=15 s 施加干扰/白色竖光标=当前时刻

30.00 s
单自由度 y(t) 二自由度 y(t) 目标 r 整形目标 r_eff
理论与主要公式

二自由度控制是可用不同传递函数分别设计目标值响应和干扰响应的控制结构。对于过程 $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$ 单独调整目标值响应。这是二自由度的本质。单自由度($F=1$)中,加强 $C$ 能改善干扰抑制但导致目标值超调。

二自由度控制模拟器是什么

🙋
用PI控制跟踪目标值的时候,不增大增益就弱于外乱,增大增益又会导致超调——总是处于两难。这能解决吗?
🎓
这正是「单自由度控制」的根本局限。反馈增益 C 越强,干扰响应 $G_p/(1+CG_p)$ 越小,但目标值响应 $CG_p/(1+CG_p)$ 共用同一分母,极点变快导致超调。用一个控制器 C 无法同时最优化两个响应。在上面的模拟器中,令 τ_F=0,增大 K_c ——你会看到红线(单自由度)剧烈上冲。
🙋
那么「二自由度」怎么解决呢?
🎓
其实很简单,就是在目标值前加一个「整形滤波器」F。反馈回路保持不变,所以干扰响应 $G_p/(1+CG_p)$ 不变。但目标值响应变成 $F\cdot CG_p/(1+CG_p)$,用一阶滤波缓冲上升沿,就能单独消除超调。模拟器中 τ_F=2 时,你会看到蓝线(二自由度)平滑地到达目标值。
🙋
看得出来,干扰输入后(t=15s)红线和蓝线的响应形状完全一样呢。
🎓
完全正确,这就是二自由度最大的优点。干扰响应只由 C 决定,F 再怎么调也改变不了。所以可以「用 C 攻击外乱抑制,用 F 整形目标值」分工合作。实际中,化工厂改变设定值瞬间的剧烈超调(会产出废品)要抑制,但外界温度变化时的快速追随要保证,二自由度 PI 正好满足这两个需求。
🙋
τ_F 越大,上升沿越平缓,这不好吗?
🎓
没错。τ_F 无穷大理论上零超调,但上升时间变得无法接受。实际中从过程时常数 T_p 的0.5~2倍开始,根据能接受的超调和上升速度权衡调整。看「整定时间」卡片,慢慢增大 τ_F ——起初整定时间增长很慢,但过了某个点就快速上升,那个点就是你的最优设置。

常见问题

可以,现代多数工业 PID 控制器都有「二自由度 PID」模式。典型实现是「加权PID」,用权重 β 和 γ 分别衰减比例和微分对设定值阶跃的响应。β=γ=1 时为经典单自由度 PID,β=γ=0 则完全消除比例/微分冲击。横河、霍尼韦尔、ABB 等 DCS 系统都标配此功能。
前置滤波 F 对设定值信号 r 整形,通过反馈回路 C 间接影响 u。前馈补偿是对可测外乱 d_meas 的直接补偿,在外乱出现前主动对抗。两者互补,目标值用 F 整形、已知外乱用前馈、未知外乱用反馈的三层结构是现代控制标准做法。
可以,配合 Smith 补偿器或模型预测控制 (MPC) 效果更佳。死时间 L 很长时,纯 PI 反馈容易进入不稳定区,K_c 升不了。用 Smith 预测器补偿死时间,再套上二自由度结构,就能独立设计了。化工厂成分控制常用这种方式。
可以直接指定所期望的闭环传递函数 T_des(s) 再反算,$F = T_\text{des}(1+CG_p)/(CG_p)$ 就得到精确滤波。能用二阶Bessel、Butterworth等标准形式整形响应。但高阶滤波零点容易和过程不稳定零点相互抵消产生问题。实用上用一阶简化形式已能获得80%的效果,剩下通过参数微调补足。

实际应用

过程工业的温度、流量控制:化学厂、钢铁厂连续设备经常改变设定值,同时面对原料温度波动、环境温度影响等干扰。二自由度 PID 可抑制等级切换时的剧烈超调(防止产出不良品),又保持外乱扰动时的快速追随。横河 CENTUM 等 DCS 标配「I-PD」「PI-D」型实现。

伺服电动机位置控制:工作母机、半导体曝光装置、机械臂精密定位时,需同时保证目标位置快速到达和外乱(加工反力)抑制。加速度、速度轮廓作为前馈输入,反馈消除残差和干扰的「二自由度伺服」是标准实现。还结合高阶滤波控制残差抖动。

汽车巡航控制与 ADAS:设定速度改变时乘坐舒适性(缓加速),与坡度变化的即时响应两立。前置滤波限制目标速度变化率,PI 反馈抑制坡度、路阻导致的速度偏差。自适应巡航(ACC)加入雷达距离前馈,形成三层结构。

HVAC 和建筑物自动化:大型空调系统的冷机出水温度、VAV 流量控制,运行模式切换时的超调直接影响舒适度和能耗。二自由度 PID 让设定值变化平滑跟踪,外气温和负荷变化由反馈应对,兼顾节能与舒适。

常见误区与注意

最常见的误区是,「用了二自由度反馈增益就可以无限增大」,想当然。前置滤波 F 只对目标值响应整形,确实能消除超调。但稳定性由闭环特征方程 $1+CG_p=0$ 决定,与 F 无关。K_c 过大会导致外乱响应剧烈振荡,甚至不稳定。模拟器中试试 K_c=10 ——会看到 t>15s 干扰响应出现振荡。F 是整形工具,不是稳定性救星。

其次是滤波阶数提升导致实现复杂化。理论上能用任意 T_des 设计高阶 F,但离散化误差、计算延迟对高阶系统敏感,采样周期选择也变苛刻。工程上一阶或二阶滤波足够,70%效果用简单滤波取得,剩余靠调参补足才是现场经验。

最后,不考虑「设定值变更的最小间隔」就乱选 τ_F。若设 τ_F = 3·T_p 获得理想平滑度,但设定值每30秒改一次,滤波输出还没到稳态下一个指令就来了,会陷入永久追不上的窘境。必须同时考虑「目标值变更频率」和「滤波整定时间」来选择 τ_F。模拟器中想象 τ_F=10s 下频繁改变目标值——立刻能感受到不可用的缓慢。设计总要和运行工况配套。

使用指南

  1. 调整 PI 控制增益 Kc(0.5~5.0) 和积分时间 Ti(0.1~10.0秒) 设置反馈特性
  2. 用前置滤波时常数 TauF(0.01~2.0秒) 独立控制目标值跟踪响应速度
  3. 输入干扰阶跃幅值 DStep(0~5.0) 评估干扰抑制性能
  4. 运行模拟后,对比单自由度与二自由度的超调、整定时间、最大负偏差

具体计算例子

使用本工具的过程(K_p=2、T_p=5秒)和初始预设"二自由度(跟踪+抑制)"(Kc=3、Ti=2秒、τ_F=2秒、干扰阶跃 d=1)时:单自由度控制(τ_F=0,相同的 C)在目标值跟踪时超调约8.9%,而二自由度控制保持相同反馈增益,仅通过前置滤波将超调降至约0.1%,目标值跟踪整定时间(±5%)约为5.1秒。另一方面,干扰响应(t=15秒施加)不依赖 τ_F,仅由 C 决定,因此单自由度和二自由度的最大偏差均约为+0.20,完全相同。这就是反馈(干扰抑制)与前置滤波(跟踪整形)的独立设计=解耦。当动画光标越过 t=15秒的瞬间,红色(单自由度)与蓝色(二自由度)响应完全重合,即可直观确认。

现场应用注意事项