共计 1633 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点
在工业控制领域,PID 控制器因其结构简单、易于实现而被广泛使用。然而,面对非线性、强耦合或时变的被控对象时,传统 PID 控制往往显得力不从心。主要表现在:

- 对系统参数变化敏感,鲁棒性不足
- 难以有效补偿外部扰动和未建模动态
- 参数整定依赖经验,缺乏系统化方法
ADRC(Active Disturbance Rejection Control,自抗扰控制)通过独特的架构设计,有效解决了上述问题。其核心思想是将系统内部不确定性和外部扰动统一视为 ” 总扰动 ”,并通过扩张状态观测器(ESO)实时估计和补偿。这种主动抗扰的理念,使得 ADRC 在复杂工业场景中展现出显著优势。
参数解析
ADRC 控制器主要包含三个关键环节,每个环节都有其特定的参数需要调节:
1. 跟踪微分器(TD)参数
TD 负责安排过渡过程,其核心参数是速度因子 r:
- r 值越大,跟踪速度越快,但过大的 r 会引起系统超调
- 一般从较小值开始,逐步增加直至获得满意的跟踪速度
2. 扩张状态观测器(ESO)参数
ESO 是 ADRC 的核心,其带宽 ωo 直接影响扰动估计能力:
- ωo 越高,扰动估计越快,但过高会放大测量噪声
- 经验法则是 ωo 设为系统带宽的 3~5 倍
3. 非线性反馈(NLSEF)参数
NLSEF 中的 α 和 δ 决定了控制律的非线性特性:
- α 控制误差的权重,通常取 0.5~1 之间
- δ 是线性区间宽度,防止在小误差时增益过高
调参方法论
频域法
通过分析系统 Bode 图确定 ESO 带宽:
- 获取被控对象的频率响应
- 确定系统主要工作频带
- 设置 ωo 为该频带上限的 3~5 倍
时域法
基于阶跃响应曲线调整参数:
- 先调节 TD 的 r,获得平滑的过渡过程
- 然后调整 ESO 的 ωo,优化扰动抑制
- 最后微调 NLSEF 的 α 和 δ,改善稳态性能
仿真案例
以下是一个简单的 MATLAB 实现示例:
% ADRC 参数初始化
r = 10; % TD 速度因子
h = 0.01; % 步长
delta = 0.01; % 线性区间
beta01 = 100; % ESO 参数
beta02 = 300;
beta03 = 1000;
alpha1 = 0.5; % 非线性因子
alpha2 = 0.25;
% fal 函数实现
function f = fal(e,alpha,delta)
if abs(e) > delta
f = abs(e)^alpha * sign(e);
else
f = e / (delta^(1-alpha));
end
end
% 仿真主循环
for k = 1:N
% TD 跟踪
v1(k+1) = v1(k) + h*v2(k);
v2(k+1) = v2(k) + h*fhan(v1(k)-r(k),v2(k),r,h);
% ESO 估计
e = z1(k) - y(k);
z1(k+1) = z1(k) + h*(z2(k) - beta01*e);
z2(k+1) = z2(k) + h*(z3(k) - beta02*fal(e,0.5,delta) + b*u(k));
z3(k+1) = z3(k) - h*beta03*fal(e,0.25,delta);
% NLSEF 计算
e1 = v1(k) - z1(k);
e2 = v2(k) - z2(k);
u0 = -fal(e1,alpha1,delta) - fal(e2,alpha2,delta);
u(k) = (u0 - z3(k))/b;
end
避坑指南
在实际调试中,有几个常见问题需要注意:
- 观测器带宽过高 :虽然能更快估计扰动,但会放大测量噪声,建议通过频域分析确定合理范围
- 控制量饱和 :当执行机构达到限幅时,需要特别处理,可采用抗饱和补偿
- 参数耦合 :调节一个参数时可能影响其他环节性能,建议按 TD→ESO→NLSEF 顺序调节
性能验证
调参前后的性能对比可以从几个指标衡量:
- ITAE(时间乘绝对误差积分):反映系统整体跟踪性能
- 抗扰动能力:施加阶跃扰动后恢复时间和超调量
- 鲁棒性:参数变化时的性能保持能力
开放性问题
ADRC 参数调节经验如何在不同的被控对象间迁移?这是一个值得深入探讨的话题。可能的思路包括:
- 基于相似性的参数缩放
- 无模型自适应调节方法
- 结合机器学习实现智能调参
每个系统都有其独特性,但掌握 ADRC 的核心原理和调参方法论,能够帮助工程师更快地适应各种控制场景。
正文完
