自抗扰控制(ADRC)在车辆轨迹跟踪中的实践与优化

1. 项目概述:当车辆控制遇上自抗扰技术

去年在某个自动驾驶测试项目中,我们遇到了一个棘手的问题:传统PID控制器在应对突发侧风干扰时,车辆轨迹跟踪误差突然增大到无法接受的程度。这促使我开始深入研究二阶自抗扰控制(ADRC)在车辆轨迹跟踪中的应用。ADRC最吸引我的特点是它不需要精确的数学模型,却能有效处理系统内部不确定性和外部干扰——这正是实际车辆控制中最头疼的问题。

这个项目要实现的是:基于ADRC设计一个轨迹跟踪控制器,使车辆在面对参数变化(如载重变化)、路面附着系数变化(干湿路面切换)以及突发干扰(侧风、颠簸)时,仍能保持稳定的跟踪性能。与常见的MPC(模型预测控制)和LQR(线性二次调节器)相比,ADRC在计算复杂度和抗干扰能力之间取得了更好的平衡,特别适合算力有限的嵌入式平台。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. ADRC核心原理拆解

2.1 自抗扰控制的三重防御体系

ADRC的核心思想可以用人体免疫系统来类比:当病毒入侵时,免疫系统不会等待精确识别病毒种类后才行动,而是立即启动通用防御机制。ADRC同样通过以下三个关键组件构建防御体系:

  1. 跟踪微分器(TD)
    负责安排过渡过程,解决超调与快速性矛盾。例如在车辆转向控制中,TD可以将突变的方向盘输入转化为平滑的理想转向角变化曲线,避免直接跟踪阶跃信号导致的轮胎打滑。

  2. 扩张状态观测器(ESO)
    ADRC的灵魂所在。以二阶系统为例,ESO会将所有未建模动态和外部干扰统一视为"总扰动",并通过状态观测实时估计。在车辆模型中,这意味着:

    • 质量变化(乘客上下车)
    • 轮胎刚度非线性
    • 风阻系数变化
      这些都会被ESO捕获并补偿。
  3. 非线性状态误差反馈(NLSEF)
    采用非线性组合取代传统PID的线性组合。我们实际测试发现,使用fal函数比传统PD控制能减少约30%的稳态误差。

2.2 车辆模型中的ADRC实现

对于车辆横向控制,通常简化为二自由度自行车模型:

code复制ẍ = f(x,ẋ,w) + bu

其中f(·)包含所有未知动态,w代表外部干扰。ADRC的关键突破在于:不需要知道f(·)的具体形式,ESO会将其与w一起估计为总扰动z₃。最终控制律简化为:

code复制u = (u₀ - z₃

内容推荐

已经到底了哦
已经到底了哦