作业二 · ACC 车速跟踪模糊控制器

题目

某自动驾驶车辆的自适应巡航系统需要快速跟踪目标车速,同时避免超调和震荡。传统 PID 在车辆驶入 3% 上坡路段或突然增加 200 kg 载重时,容易出现震荡、超调或恢复缓慢。

请简述车速跟踪模糊控制器的设计流程,使系统满足:

  1. 车辆从 30 km/h 快速跟踪至 100 km/h;
  2. 稳态巡航误差不超过 ±1.5\pm 1.5 km/h;
  3. 突遇 3% 上坡等负载扰动后,5 s 内恢复至 100 km/h 并保持稳定。
查看参考解答

传统 PID 使用固定的 Kp,Ki,KdK_p,K_i,K_d,难以同时兼顾大误差时的快速响应和小误差时的平稳控制。模糊控制则把“误差大就多给油、接近目标就轻踩、误差正在变大就提前补偿”的经验写成规则,更适合这种非线性、时变场景。

1. 确定输入与输出

采用二维模糊控制器:

e(k)=vset−v(k)e(k)=v_{\text{set}}-v(k)

ec(k)=e(k)−e(k−1)ec(k)=e(k)-e(k-1)

  • 输入 1:车速误差 ee;
  • 输入 2:误差变化 ecec;
  • 输出:驱动或制动踏板开度或期望加速度 uu。

2. 定义模糊集、论域和隶属函数

将 ee、ecec 和 uu 都划分为七个模糊子集:

{NB,NM,NS,ZO,PS,PM,PB}\{NB,NM,NS,ZO,PS,PM,PB\}

它们分别表示负大、负中、负小、零、正小、正中、正大。

从 30 km/h 加速到 100 km/h 时,初始误差达到 70 km/h,因此 ee 的论域至少应覆盖这一大误差工况。为保证稳态误差不超过 ±1.5\pm 1.5 km/h,e=0e=0 附近的隶属函数应划分得更细,使控制器对小误差更敏感;论域两端可以划分得更宽,以保留快速响应能力。

3. 建立规则库

规则原则是:误差大时大幅纠偏,误差小时小幅修正;误差正在变大时增加动作,误差正在快速减小时提前收力。

e\ece\backslash ecNBNMNSZOPSPMPB
NBNBNBNBNBNMNSZO
NMNBNBNBNMNSZOPS
NSNBNBNMNSZOPSPM
ZONBNMNSZOPSPMPB
PSNMNSZOPSPMPBPB
PMNSZOPSPMPBPBPB
PBZOPSPMPBPBPBPB

例如:

  • IF e is PB AND ec is PB THEN u is PB:车速远低于目标且误差还在增大,全力加速;
  • IF e is ZO AND ec is ZO THEN u is ZO:已经稳定在目标附近,保持当前控制。

初始快速提速时,大正误差激活 PM/PB 输出;进入稳态后,零点附近的细分规则进行微调;上坡导致车速下降时,ee 和 ecec 转为正值,控制器立即增加驱动力。

4. 推理与反模糊化

采用 Mamdani 极小-极大推理,再用重心法反模糊化。重心法能让输入的微小变化对应连续、平滑的踏板输出,适合惯性较大且要求乘坐舒适度的车辆。

评论