1. 项目概述:当车辆控制遇上自抗扰技术
去年在某个自动驾驶测试项目中,我们遇到了一个棘手的问题:传统PID控制器在应对突发侧风干扰时,车辆轨迹跟踪误差突然增大到无法接受的程度。这促使我开始深入研究二阶自抗扰控制(ADRC)在车辆轨迹跟踪中的应用。ADRC最吸引我的特点是它不需要精确的数学模型,却能有效处理系统内部不确定性和外部干扰——这正是实际车辆控制中最头疼的问题。
这个项目要实现的是:基于ADRC设计一个轨迹跟踪控制器,使车辆在面对参数变化(如载重变化)、路面附着系数变化(干湿路面切换)以及突发干扰(侧风、颠簸)时,仍能保持稳定的跟踪性能。与常见的MPC(模型预测控制)和LQR(线性二次调节器)相比,ADRC在计算复杂度和抗干扰能力之间取得了更好的平衡,特别适合算力有限的嵌入式平台。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. ADRC核心原理拆解
2.1 自抗扰控制的三重防御体系
ADRC的核心思想可以用人体免疫系统来类比:当病毒入侵时,免疫系统不会等待精确识别病毒种类后才行动,而是立即启动通用防御机制。ADRC同样通过以下三个关键组件构建防御体系:
-
跟踪微分器(TD)
负责安排过渡过程,解决超调与快速性矛盾。例如在车辆转向控制中,TD可以将突变的方向盘输入转化为平滑的理想转向角变化曲线,避免直接跟踪阶跃信号导致的轮胎打滑。 -
扩张状态观测器(ESO)
ADRC的灵魂所在。以二阶系统为例,ESO会将所有未建模动态和外部干扰统一视为"总扰动",并通过状态观测实时估计。在车辆模型中,这意味着:- 质量变化(乘客上下车)
- 轮胎刚度非线性
- 风阻系数变化
这些都会被ESO捕获并补偿。
-
非线性状态误差反馈(NLSEF)
采用非线性组合取代传统PID的线性组合。我们实际测试发现,使用fal函数比传统PD控制能减少约30%的稳态误差。
2.2 车辆模型中的ADRC实现
对于车辆横向控制,通常简化为二自由度自行车模型:
code复制ẍ = f(x,ẋ,w) + bu
其中f(·)包含所有未知动态,w代表外部干扰。ADRC的关键突破在于:不需要知道f(·)的具体形式,ESO会将其与w一起估计为总扰动z₃。最终控制律简化为:
code复制u = (u₀ - z₃
