跳转至

何谓自抗扰?

最近修改日期:2026-02-06
参与者:Jackrainman
配套资源B站视频讲解

目录

  1. ADRC 概述
  2. 积分器串联型
  3. 总扰动
  4. 扩张状态观测器(ESO)
  5. 线性扩张状态观测器(LESO)
  6. ADRC 阶数确定
  7. 跟踪微分器(TD)
  8. 非线性组合
  9. 设计范式
  10. 总结

1. ADRC 概述

1.1 核心问题

在控制理论中,我们必须承认一个事实:内部扰动和外部扰动都会对物体的状态产生变化。传统控制方法(如 PID)对不确定性往往效果不佳。

两类扰动: - 内部扰动:系统参数变化、未建模动态、非线性特性 - 外部扰动:环境干扰、负载变化、测量噪声

1.2 解决思路

自抗扰控制(Active Disturbance Rejection Control, ADRC)由韩京清教授提出,其核心目标是解决系统的不确定性控制问题

ADRC 的破局之道是 "化繁为简" ——通过实时估计与补偿机制,将复杂不确定系统转化为简单的理想系统。

1.3 ADRC 框架

韩京清教授提出的 ADRC 框架包含三个核心组件:

┌─────────────────────────────────────────────────────────┐
│                    ADRC 控制器架构                       │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐  │
│  │  跟踪微分器  │ →  │ 非线性反馈     │ ← │   ESO       │  │
│  │    (TD)     │    │  (NLSEF)    │    │ (状态观测器) │  │
│  └─────────────┘    └──────┬──────┘    └──────▲──────┘  │
│         ↑                  │                   │        │
│    参考输入 r            控制量 u            输出 y       │
└─────────────────────────────────────────────────────────┘
组件 作用 说明
跟踪微分器(TD) 安排过渡过程 使指令光滑化,提供微分信号
扩张状态观测器(ESO) 估计总扰动 实时估计系统状态和扰动
非线性状态误差反馈(NLSEF) 生成控制量 非线性组合生成控制信号

2. 积分器串联型

2.1 核心概念

关键概念:韩京清教授 1979 年提出的理念——无论系统是否线性,在一定条件下都可以回归于积分器串联型

积分器串联型(Integrator Chain)是 ADRC 理论的基础概念。

数学上,一个 n 阶积分器串联型系统可表示为:

\[ y = \underbrace{\int\int...\int}_{n\text{次}} u \, dt^n \]

这意味着输出是输入的 n 次积分。

2.2 典型实例

物理量 积分关系 物理意义
位移 \(y\) \(y = \iint a \, dt^2\) 加速度的二次积分是位移
速度 \(v\) \(v = \int a \, dt\) 加速度的积分是速度
电荷 \(q\) \(q = \int i \, dt\) 电流的积分是电荷
流量 \(Q\) \(Q = \int v \, dt\) 流速的积分是流量

2.3 意义

一旦所有控制问题都能转化为积分器串联型,就能实现 "一套研究处处用" 的普适性控制策略,大幅降低控制器设计复杂度。

3. 总扰动

3.1 概念定义

总扰动是 ADRC 最核心的概念之一。它将系统中所有不确定因素打包为一个整体

  • 系统内部非线性:\(-a_1\dot{y} - a_0y\)
  • 参数不确定性:\(\Delta a_1, \Delta a_0\)
  • 外部扰动:\(d(t)\)

数学表示:

\[ f(y, \dot{y}, d, t) = \underbrace{-a_1\dot{y} - a_0y}_{\text{内部动态}} + \underbrace{d}_{\text{外部扰动}} + \underbrace{\Delta a_1\dot{y} + \Delta a_0y}_{\text{参数不确定}} \]

3.2 "两个自由度"视角

从控制结构看,总扰动处理体现了两个自由度的设计思想:

┌─────────────────────────────────────────┐
│              外环:Controller           │
│         设计期望的动态特性               │
│         (跟踪性能、响应速度)            │
└─────────────────────────────────────────┘
              │ u₀(虚拟控制量)
┌─────────────────────────────────────────┐
│            内环:Rejector               │
│        抵消被控对象的不确定性           │
│        u = u₀ - f̂/b                    │
└─────────────────────────────────────────┘
  • 去扰器(Rejector):内环,负责抵消不确定性
  • 控制器(Controller):外环,设计期望性能

这样,我们只需要研究 不确定 → 确定,被扰 → 无扰 即可。

3.3 补偿公式

这是 ADRC 最关键的数学公式:

\[ u = u_0 - \frac{\hat{f}}{b} \]

代入原系统方程 \(\ddot{y} = f + bu\)

\[ \ddot{y} = f + b\left(u_0 - \frac{\hat{f}}{b}\right) = f - \hat{f} + b u_0 \approx b u_0 \]

当估计准确时(\(\hat{f} \approx f\)),复杂系统被简化为纯积分串联型 \(\ddot{y} \approx b u_0\)

💡 核心洞察:ADRC 的核心思想是将系统内部的未知动态和外部扰动合并定义为"总扰动",通过实时估计与补偿,将系统简化为积分器串联型。


4. 扩张状态观测器(ESO)

4.1 基本原理

扩张状态观测器是 ADRC 的"眼睛",其核心思想是:

将总扰动视为一个待估计的状态变量

4.2 为什么要"扩张"

常规状态观测器(如 Luenberger 观测器)只关注系统原生状态: - \(x_1 = y\)(输出/位移) - \(x_2 = \dot{y}\)(速度)

而 ESO 将总扰动 \(f\) 定义为新的状态: - \(x_3 = f\)扩张状态

这就是"扩张"(Extended)的含义——增加一个维度来估计扰动

4.3 状态空间方程

对于二阶系统 \(\ddot{y} = f + bu\),扩张后的状态方程为:

\[ \begin{cases} \dot{x}_1 = x_2 \\ \dot{x}_2 = x_3 + bu \\ \dot{x}_3 = \dot{f} \\ y = x_1 \end{cases} \]

其中定义状态变量: - \(x_1 = y\)(位置) - \(x_2 = \dot{y}\)(速度) - \(x_3 = f(y, \dot{y}, w, t)\)(总扰动)

4.4 反馈修正机制

ESO 的估计能力来源于反馈校正

实际输出 y
   误差 e = z₁ - y
修正信号 ──┬──→ 修正 z₁(位置估计)
          ├──→ 修正 z₂(速度估计)
          └──→ 修正 z₃(总扰动估计)

关键洞察:如果模型预测的 \(z_1\) 与实际 \(y\) 不符,说明我们对扰动 \(z_3\) 的估算有误。这个误差会反馈修正所有状态估计,直到模型和现实吻合。

💡 学习提示:理解反馈修正机制是掌握 ESO 工作原理的关键。


5. 线性扩张状态观测器(LESO)

5.1 LESO vs ESO

特性 ESO(原始) LESO(线性化)
结构 非线性 线性
实现难度 较高 较低
工程应用 理论分析 工程实践
参数调节 复杂 相对简单(带宽法)

LESO 相比 ESO 在工程上更容易实现,是高志强教授对 ADRC 的重要改进。

5.2 极点配置法

LESO 设计的关键是合理配置观测器极点

对于 n 阶系统,设计 n+1 阶 LESO 时,将所有极点配置在 \(-\omega_o\)(观测器带宽):

\[ (s + \omega_o)^{n+1} \]

5.3 极点配置表

二阶系统(n=2 → 3阶LESO):

增益 公式
\(l_1\) \(3\omega_o\)
\(l_2\) \(3\omega_o^2\)
\(l_3\) \(\omega_o^3\)

四阶系统(n=4 → 5阶LESO):

增益 公式
\(l_1\) \(5\omega_o\)
\(l_2\) \(10\omega_o^2\)
\(l_3\) \(10\omega_o^3\)
\(l_4\) \(5\omega_o^4\)
\(l_5\) \(\omega_o^5\)

5.4 带宽 \(\omega_o\) 的选择

\(\omega_o\) 是 LESO 最重要的设计参数:

  • 增大 \(\omega_o\):观测响应更快,估计更准确,但易受噪声影响
  • 减小 \(\omega_o\):滤波效果更好,但估计滞后

实际工程中需要权衡,通常取 \(3\omega_c \sim 5\omega_c\)\(\omega_c\) 为控制器带宽)。


6. ADRC 阶数确定

6.1 阶数与相对阶

ADRC/LADRC 的阶数取决于被控对象的相对阶——即输出 \(y\) 对输入 \(u\) 的最高阶导数的阶数。

观察微分方程左侧最高阶的导数项: - \(\dot{y} = f + bu\)1阶系统 - \(\ddot{y} = f + bu\)2阶系统 - \(y^{(4)} = f + bu\)4阶系统

6.2 n阶系统与n+1阶观测器

ADRC 的核心法则:n 阶系统必须配备 n+1 阶观测器。

系统阶数 n 需估计的状态 观测器阶数
1 \(y, \dot{y}, f\) 2
2 \(y, \dot{y}, \ddot{y}, f\) 3
4 \(y, \dot{y}, \ddot{y}, \dddot{y}, f\) 5

6.3 阶数的物理意义

阶数代表控制信号 \(u\) 需要经过多少次积分累积才能影响输出 \(y\)

例如: - 弹簧阻尼系统:力 → 加速度 → 速度 → 位移(3阶) - 电机系统:电压 → 电流 → 转矩 → 速度 → 位置(4阶)

💡 记忆口诀:n 阶系统,n+1 阶观测器,多出来的那个就是"总扰动"。


7. 跟踪微分器(TD)

7.1 作用

跟踪微分器有两个核心功能:

  1. 安排过渡过程:使输入指令光滑化,避免控制量突变
  2. 提取微分信号:从噪声信号中提取可靠的微分

7.2 物理意义

二阶 TD 说明我们需要给控制器安排过渡过程,指令和微分都需要给控制器,指令应当是光滑的,这样能让被控对象时时刻刻跟踪指令。

在控制系统中,直接对指令求导会产生噪声放大问题。TD 通过安排合理的过渡过程,既保证输出能跟踪指令,又避免剧烈的控制动作。

7.3 与 ESO 的关系

TD 和 ESO 协同工作,但处理对象不同:

组件 处理对象 输出
TD 指令信号 \(r\) 光滑指令 \(v_1\)、微分 \(v_2\)
ESO 输出信号 \(y\) 状态估计 \(z_1, z_2\)、扰动 \(z_3\)

8. 非线性组合

8.1 与 PID 的区别

传统 PID 使用线性组合

\[ u = K_P e + K_I \int e + K_D \dot{e} \]

ADRC 的非线性组合(NLSEF)使用非线性函数:

\[ u_0 = k_1 \cdot \text{fal}(e_1, \alpha_1, \delta) + k_2 \cdot \text{fal}(e_2, \alpha_2, \delta) \]

8.2 fal 函数

fal 函数是 ADRC 中常用的非线性函数:

\[ \text{fal}(e, \alpha, \delta) = \begin{cases} |e|^\alpha \cdot \text{sgn}(e), & |e| > \delta \\ e / \delta^{1-\alpha}, & |e| \leq \delta \end{cases} \]

特点: - 小误差时\(|e| > \delta\)):高增益(\(|e|^\alpha\)),快速收敛 - 大误差时\(|e| \leq \delta\)):低增益(\(e/\delta^{1-\alpha}\)),避免超调

💡 直观理解:fal 函数实现了"小误差大增益,大误差小增益"的非线性特性。


9. 设计范式

9.1 完整设计流程

┌────────────────────────────────────────────────────┐
│  步骤1:建立过程动态方程                            │
│  ẏ = f(y, ẏ, d, t) + bu                           │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│  步骤2:确定系统阶数 n                              │
│  根据最高阶导数确定                                 │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│  步骤3:设计 n+1 阶 LESO                            │
│  配置观测器带宽 ωo,计算增益 li                     │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│  步骤4:设计控制律                                  │
│  u = (u₀ - ẑ₃) / b                                 │
└────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────┐
│  步骤5:参数整定                                    │
│  调节 ωo, b, k₁, k₂ 等参数                         │
└────────────────────────────────────────────────────┘

9.2 关键参数说明

参数 符号 作用 整定建议
观测器带宽 \(\omega_o\) 决定扰动估计速度 通常为 \(3\sim5\) 倍控制器带宽
输入系数 \(b\) 控制系统增益 通过阶跃响应估算
控制增益 \(k_1, k_2\) 决定闭环响应速度 \(k_p = \omega_c^2, k_d = 2\omega_c\)
非线性参数 \(\alpha, \delta\) 改善暂态性能 工程上常简化为线性形式

10. 总结

10.1 核心思想回顾

核心思想 说明
不确定性打包 将所有扰动打包为"总扰动" \(f\)
实时估计补偿 通过 ESO 实时估计并抵消扰动
化繁为简 将复杂系统转化为积分串联型
扩张观测 增加状态维度来估计不可测扰动

10.2 与 PID 的对比

特性 PID ADRC
鲁棒性 一般 优秀
依赖模型 否(仅需相对阶)
参数调节 经验法 带宽法(更系统)
抗扰能力 一般 强(主动估计补偿)
实现复杂度 中等

10.3 学习建议

  1. 先理解积分器串联型概念——这是 ADRC 的理论基础
  2. 深入理解总扰动的定义——这是 ADRC 的核心创新
  3. 掌握 ESO/LESO 的数学原理——这是实现抗扰的关键
  4. 通过仿真和实验验证——理论结合实际
  5. 注意参数整定的工程实践——带宽法是 LADRC 的精髓

10.4 扩展阅读

  • 韩京清教授原著:《自抗扰控制技术》
  • 高志强教授 LADRC 系列论文
  • LADRC 工程化实现论文
  • MATLAB/Simulink 中的 ADRC 工具箱

评论