自抗扰控制(Active Disturbance Rejection Control,ADRC)是一种不依赖精确数学模型、专门 “对付不确定性和扰动” 的控制方法。它的核心思想可以用一句话概括:把所有 “不知道的、干扰的” 东西打包成 “总扰动”,然后想办法估计它、抵消它,让系统 “只做该做的事”。
一、通俗理解:把系统当成 “开车”,ADRC 是 “智能司机”
假设你要控制一辆车(被控系统)保持 60km/h 行驶(目标值)。实际中,车会遇到各种问题:
-
不知道车的精确参数(比如发动机功率、刹车灵敏度 —— 这是 “模型不确定性”);
-
外界干扰(比如突然顺风 / 逆风、上坡 / 下坡、路面阻力变化 —— 这是 “外部扰动”)。
普通控制方法(比如 PID)可能需要先 “摸清车的脾气”(建精确模型),再调参数对抗干扰,但遇到突发情况(比如突然下坡)容易失控。
而 ADRC 就像一个 “老司机”:
-
不纠结车的具体参数(不用精确模型);
-
眼睛(传感器)看车速(当前状态),脑子(ADRC 的核心模块)实时 “猜”:现在有多少干扰(比如下坡会让车速变快,这就是一种扰动);
-
脚(控制量)实时调整:如果猜到 “下坡会让车速变快”,就提前轻踩刹车抵消这个扰动,始终让车速保持 60km/h。
二、核心原理:3 个模块 “分工抗扰”
ADRC 的结构很简单,由 3 个核心模块组成,就像 “司机的三个动作”:</