Albert Official ADRC Control

Active disturbance rejection

ADRC 自抗扰控制 Active disturbance rejection control simulation.

本页采用二阶线性 ADRC(LADRC)模型:把未知对象动力学、参数误差和外部扰动合并为总扰动,用扩张状态观测器实时估计,再在控制律中主动补偿。页面适合观察观测器带宽、控制带宽、增益估计和噪声之间的取舍。

LADRC: second-order dt = 0.002 s u limit: ±12 ωc / ωo: rad·s⁻¹

扰动抑制响应 Disturbance Rejection

扰动后最大偏差 Maximum Deviation
0.0%
扰动恢复时间估计 ±5%
--
当前 |e| / ESO RMSE · 最近最多 12 s
0.00 / 0.00

输出跟踪 Output Tracking

参考值 r 输出 y 估计 z1

总扰动估计 Total Disturbance Estimate

真实总扰动 f ESO 估计 z3

控制量 Control Effort

控制输入 u 限幅 ±12

数学模型与算法说明 Mathematical Model and Algorithm Notes

这里讲的是二阶线性 ADRC。它不是完整的非线性 ADRC 体系,也没有加入跟踪微分器;这样做是为了让仿真和公式保持一一对应。

核心思想:把“不知道”合成总扰动

对许多二阶对象,可以把已知输入通道和所有未知项写成下面的形式:

其中 b_0 是控制器对输入通道增益的估计,f(t) 称为总扰动,包含未建模动力学、参数误差、负载变化和外部扰动。ADRC 的关键不是假装 f(t) 不存在,而是在线估计它并补偿它。

本页使用的仿真对象

真实对象仍然用一个带阻尼和刚度项的二阶系统来产生响应:

本页固定 r=1ωn=1.55 rad/sζ=0.38,并令滑块 g=b_real/2.00,因此:

重置状态后,扰动在 td=3 s 施加。令 τ=t−td,滑块 A 是波形尺度而不是峰值:

从 ADRC 的角度看,它等价于:

这就是为什么即使对象参数和 b_0 不完全一致,ADRC 仍然可能保持较好的扰动抑制:增益误差的一部分也被并入总扰动。由于总扰动的定义含有 (b_real−b0)u,改变 b0 会改变图中“真实总扰动”的数学分解,即使真实对象本身没有变化。

三阶线性扩张状态观测器

定义扩张状态 x1=yx2=dy/dtx3=f,并把 h=dx3/dt=df/dt 视为未知但变化率有限的输入。页面把噪声加入测量 y_m,再用创新 y_m-z1 修正观测器:

在连续域中将观测器三个极点都放在 -ωo 时,常用带宽整定为:

代码以 Ts=0.002 s 用前向 Euler 离散 LESO,对应离散极点近似为 1−ωoTs;当前参数范围内 ωoTs≤0.07。突变扰动在跳变瞬间不可微,因此 ESO 只能在跳变发生后逐步收敛,不能无延迟地精确重建任意高频扰动。

扰动补偿控制律

仿真采用阶跃参考,因此参考速度为 0。名义控制量为:

再用总扰动估计 z3 做补偿:

如果 z3≈f,代回 y''=f+b0u 后,未知项会被近似抵消,剩下的是由 KpKd 决定的二阶闭环。

控制带宽与闭环参数

本页把期望闭环写成近似二阶系统:

ζc=1 时,对应:

增大 ωc 会让响应更快,但控制量更大,也更容易受到执行器饱和和观测误差的影响。

如何读这张仿真图

z1 跟不上 y

观测器带宽可能太低,或者测量噪声与系统变化太剧烈。此时补偿会滞后,扰动进入输出。

z3 很快但曲线抖

观测器太快时会把测量噪声也当作状态变化放大。实际系统常要加滤波、限幅或降低 ωo

b0 符号或量级错

b0 至少要给出正确符号和大致量级。差得太多时,补偿项会过强或过弱,甚至让闭环不稳定。

推荐初值

稳健默认

ωc=2.40ωo=18.0b0=2.00。观测器带宽约为控制带宽的 7.5 倍,响应和抗扰都比较稳妥。

入门起点

ωc=1.40ωo=8.0b0=2.00。曲线更慢但更容易读,适合先理解 z1、z3 和 u 的关系。

调参边界

若 z3 抖动明显,不要继续提高 ωo;若 u 长时间贴近 ±12,先降低 ωc 或减小参考变化速度。

调参顺序

  1. 先给出合理的 b0:它表示输入对二阶加速度的近似增益,符号必须正确。
  2. 先把 ωc 调到目标响应速度,不要一开始就追求很快。
  3. ωo 设为 ωc 的 3 到 10 倍附近,观察 z1y 是否贴合。
  4. 加入噪声和扰动后再微调。噪声大时,不要盲目提高 ωo
  5. 若控制量频繁饱和,先降低 ωc 或限制参考变化速度。

“扰动后最大偏差”按 100%·max|y−r|/|r| 计算,并在每次扰动施加时重新开始统计。页面的“扰动恢复时间估计”采用实时驻留判据:扰动后若输出曾离开参考值 ±5% 范围,重新进入并连续驻留 0.65 s 后才记录首次进入时刻;若始终没有离开误差带,则显示“未超出”。之后再次越界时,指标会撤销并重新计算。ESO RMSE 使用最近最多 6000 个样本,即最长 12 s。