1. 项目概述:基于非奇异终端滑模的车辆路径跟踪控制
在自动驾驶技术快速发展的今天,精确的路径跟踪控制是实现高级驾驶辅助系统(ADAS)和自动驾驶功能的核心技术之一。传统PID控制方法在面对复杂道路条件和车辆非线性特性时往往表现不佳,而滑模控制因其强鲁棒性成为理想选择。但传统滑模控制存在高频抖振和奇异性问题,这正是我们采用非奇异终端滑模控制(NTSMC)的原因。
本项目通过Carsim与Simulink联合仿真平台,实现了90km/h高速工况下的车辆路径跟踪控制。NTSMC不仅能保证系统状态在有限时间内收敛,还通过特殊的滑模面设计避免了奇异点问题。实测表明,该方法在双移线、蛇形绕桩等典型测试场景中,横向位置误差可控制在0.2米以内,航向角误差小于1度。
2. 核心原理与技术实现
2.1 非奇异终端滑模控制原理
非奇异终端滑模控制的核心在于其滑模面的特殊设计。与传统线性滑模面不同,NTSMC采用如下形式的滑模面:
code复制s = e + β|e|^γ sign(e)
其中e为跟踪误差,β>0,0<γ<1。这种设计具有两个关键特性:
- 有限时间收敛:通过Lyapunov稳定性分析可以证明,系统状态将在有限时间内到达滑模面
- 非奇异性:通过合理选择γ值,可以避免控制律中出现无限大项
在车辆路径跟踪场景中,我们需要同时控制横向位置误差ey和航向角误差eψ。因此设计了双滑模面结构:
code复制s1 = ey + k1 ex
s2 = v eψ
其中v为车速,k1为耦合系数。这种设计考虑了位置误差与航向误差的耦合关系,更符合车辆运动学特性。
2.2 控制器实现细节
在MATLAB Function模块中实现的控制器包含以下关键步骤:
- 误差计算:
matlab复制e_x = x - ref_x; % 纵向位置误差
e_y = y - ref_y; % 横向位置误差
e_psi = psi - ref_psi; % 航向角误差
- 滑模面构建:
matlab复制s1 = e_y + k1 * e_x;
s2 = v * e_psi;
- 控制律计算:
matlab复制u1 = -k2 * s1^(1/alpha) * sign(s1) - ds1dt;
u2 = -k2 * s2^(1/beta) * sign(s2) - ds2dt;
- 前轮转角求解:
matlab复制delta = atan(u1 / (v * cos(psi + e_psi))) + atan(u2 / (v * cos(psi + e_psi)));
关键参数选择经验:
- k1通常取0.1~0.3,过大会导致系统振荡
- k2决定收敛速度,建议从1.0开始调试
- α和β建议取0.5~0.9之间的奇数比值
3. 联合仿真系统搭建
3.1 Carsim模型配置
在Carsim2019中需要特别关注以下参数设置:
-
车辆参数:
- 质量:1500kg
- 轴距:2.7m
- 轮胎模型:Pacejka魔术公式
- 转向系统传动比:16:1
-
测试场景:
- 双移线路径:桩距50m,横向偏移3.5m
- 初始速度:90km/h(25m/s)
- 路面附着系数:0.85(模拟干燥沥青路面)
3.2 Simulink接口设计
联合仿真的核心在于数据交换接口的正确配置:
-
Carsim输出模块:
- 输出车辆状态:x、y、ψ、v
- 采样时间:0.01s(与控制器周期一致)
- 单位统一:位置(m)、角度(rad)、速度(m/s)
-
控制输入模块:
- 前轮转角δ输出范围:±30度
- 输出速率限制:±500度/秒(模拟真实转向系统)
-
信号路由设计:
code复制Carsim输出 → MATLAB Function控制器 → 转向限制模块 → Carsim输入
常见问题:若出现"代数环"错误,可在控制输出端添加单位延迟(z^-1)模块
4. 参数调试与优化
4.1 控制参数整定方法
采用分层调试策略:
-
稳定性参数优先:
- 先调k2确保系统稳定
- 典型值范围:0.5~5.0
- 调试方法:观察滑模变量s是否收敛
-
收敛速度调节:
- 调整α、β值
- 建议从0.7开始,每次±0.05微调
- 过大导致抖振,过小收敛慢
-
耦合关系优化:
- 最后调节k1
- 通过FFT分析消除路径跟踪中的周期性误差
4.2 典型调试问题解决
-
高频抖振问题:
- 现象:前轮转角高频振荡
- 解决方案:
- 改用饱和函数sat(s/Φ)代替sign(s)
- 边界层厚度Φ取0.05~0.2
- 示例代码:
matlab复制function y = sat(x, phi) y = min(max(x/phi, -1), 1); end
-
低速时控制效果差:
- 原因:滑模面s2=v·eψ在低速时增益过小
- 改进方案:增加速度前馈补偿
matlab复制s2 = (v + v0) * e_psi; % v0取5~10m/s
5. 仿真结果分析
5.1 性能指标评估
在双移线场景下的典型测试结果:
| 指标 | 数值 | 行业标准 |
|---|---|---|
| 最大横向误差 | 0.18m | <0.3m |
| RMS横向误差 | 0.08m | <0.15m |
| 转向角变化率 | 287°/s | <300°/s |
| 收敛时间 | 1.2s | <2.0s |
5.2 与传统方法对比
| 方法 | 平均误差 | 最大误差 | 抗干扰性 | 计算负荷 |
|---|---|---|---|---|
| PID控制 | 0.35m | 0.82m | 差 | 低 |
| LQR | 0.25m | 0.60m | 中 | 中 |
| 传统SMC | 0.15m | 0.40m | 强 | 高 |
| 本方案(NTSMC) | 0.08m | 0.18m | 强 | 中高 |
6. 工程实践建议
-
实时性优化技巧:
- 将MATLAB Function转换为C-MEX S函数可提升30%执行速度
- 使用Fixed-Point Designer工具包将控制器定点化
-
硬件在环测试:
- 在dSPACE或NI PXI平台上测试时
- 需增加10ms左右的通信延迟补偿
- 建议采样率不低于100Hz
-
量产考虑因素:
- 可增加基于曲率的前馈控制
- 设计参数自适应机制应对载重变化
- 加入执行器故障检测与容错控制
在实际项目中,我们发现车辆载荷变化对控制效果影响显著。通过实验测得,空载与满载时的最优k2值相差可达40%。因此开发了基于车高传感器的参数自适应模块,将不同载荷下的跟踪误差差异控制在15%以内。