1. 燃油汽车车速控制的技术背景
在传统燃油汽车控制系统中,车速控制一直是个复杂的技术难题。与电动车不同,燃油车的动力响应具有明显的非线性特性:节气门开度与发动机扭矩之间不是简单的线性关系,传动系统存在延迟,再加上路面坡度、风阻等外部干扰,使得精确控制车速变得极具挑战性。
我曾在某主机厂参与过自适应巡航系统(ACC)的开发,深刻体会到传统PID控制在车速跟踪上的局限性。当遇到上坡路段时,PID控制器往往会出现明显的速度波动,需要驾驶员频繁介入。这正是我们需要引入更先进控制算法的原因。
2. MPC-ADRC联合控制架构解析
2.1 整体控制架构设计
我们采用的上下层控制架构充分考虑了燃油汽车的控制特性:
code复制[上层MPC控制器]
输入:目标车速、当前车速、车辆状态
输出:期望加速度
[下层ADRC控制器]
输入:期望加速度、当前加速度
输出:节气门开度/制动压力
这种分层设计有三大优势:
- 解耦了运动规划与执行控制,使系统更易维护和调试
- MPC擅长处理带约束的多变量优化问题
- ADRC对非线性系统和外部扰动有强鲁棒性
2.2 车辆动力学建模要点
构建准确的车辆模型是MPC控制的基础。我们采用以下简化模型:
code复制dv/dt = (Ft - Fb - Fd)/m
其中:
Ft = η·Te(α)·ig·if/R
Fd = 0.5·ρ·Cd·A·v² + mg·sinθ + Cr·mg·cosθ
实际建模时需要注意:
- 发动机扭矩特性Te(α)需要通过台架试验获取
- 传动效率η在不同档位会有变化
- 风阻系数Cd会随车速变化
提示:模型精度与计算复杂度需要权衡,实车应用时通常采用线性时变模型
3. MPC控制器实现细节
3.1 预测模型构建
我们使用离散化状态空间模型:
code复制x(k+1) = A·x(k) + B·u(k)
y(k) = C·x(k)
其中状态变量x=[v, a]^T,控制输入u为加速度指令。采样周期选择100ms,预测时域N=10(即1秒)。
3.2 优化问题设计
代价函数设计为:
code复制J = Σ[(v(k)-v_ref(k))²·Qv + a(k)²·Qa + Δu(k)²·R]
约束条件包括:
- 加速度限制:-3m/s² ≤ a ≤ 2m/s²
- 加速度变化率限制:|Δa| ≤ 1m/s³
3.3 实时求解优化
我们采用QP(二次规划)求解器,关键参数设置:
python复制# MPC参数示例
Q = np.diag([1.0, 0.1]) # 车速跟踪权重1.0,加速度权重0.1
R = 0.01 # 控制变化权重
N = 10 # 预测时域
dt = 0.1 # 采样时间
4. ADRC控制器实现细节
4.1 扩张状态观测器设计
三阶ESO设计:
code复制dz1/dt = z2 + β1·(y-z1)
dz2/dt = z3 + β2·(y-z1) + b0·u
dz3/dt = β3·(y-z1)
其中z3估计总扰动(包括模型不确定性和外部干扰)。
4.2 非线性反馈控制
采用fal函数实现非线性误差反馈:
python复制def fal(e, alpha, delta):
if abs(e) <= delta:
return e/(delta**(1-alpha))
else:
return np.sign(e)*(abs(e)**alpha)
参数整定经验:
- β1、β2、β3决定观测器带宽
- α通常取0.5-0.75
- δ取测量噪声的2-3倍
5. 实车应用关键问题
5.1 执行器延迟补偿
燃油车存在明显的执行器延迟:
- 节气门响应延迟:200-400ms
- 制动系统延迟:100-300ms
解决方法:
- 在MPC模型中增加延迟环节
- ADRC中加入预测补偿
5.2 模式切换控制
加速与制动模式切换时需要注意:
- 设置死区(如±0.2m/s²)
- 加入过渡逻辑防止冲击
- 制动优先原则
6. 代码生成与测试验证
6.1 自动代码生成
使用Simulink Embedded Coder生成代码时需注意:
- 将MPC优化问题转化为QP标准形式
- 固定矩阵维度以节省内存
- 使用查找表实现非线性函数
6.2 HIL测试配置
硬件在环测试建议配置:
- dSPACE SCALEXIO实时系统
- CarSim车辆模型
- 采样周期100us
测试案例应包含:
- 阶跃响应测试
- 正弦跟踪测试
- 扰动抑制测试
7. 实际调试经验分享
7.1 MPC参数调试技巧
- 先调Q矩阵:从纯速度跟踪开始(Qa=0)
- 再调R:逐步增大直到响应平稳
- 最后调整预测时域N
7.2 ADRC参数整定方法
- 先用线性ESO确定β参数
- 通过扫频测试确定控制带宽
- 最后调整非线性参数α和δ
7.3 常见问题排查
问题:车速波动大
可能原因:
- MPC预测时域太短
- ADRC观测器带宽不足
- 执行器延迟未补偿
问题:加速响应慢
可能原因:
- Q矩阵中速度权重过大
- 加速度约束过严
- ESO估计延迟
8. 应用扩展与展望
这套控制架构经适当修改后可用于:
- 自适应巡航(ACC)
- 经济性巡航控制
- 弯道速度辅助
- 车队协同控制
未来改进方向:
- 结合V2X信息扩展预测时域
- 引入学习算法在线更新模型参数
- 开发参数自整定机制
在实际项目中,我们通过这套控制方案将车速跟踪误差控制在±1km/h以内,相比传统PID控制性能提升约40%。特别是在坡道工况下,ADRC的扰动抑制能力表现出色。