当前位置: 首页 > news >正文

五次多项式换道轨迹规划与MPC轨迹跟踪控制Simulink模型(含边界条件与侧向加速度约束的M...

五次多项式换道轨迹规划+MPC轨迹跟踪控制simulink模型(有说明文档) 版本:Matlab R2019a / Carsim2019.1 模型采用五次多项式换道轨迹,考虑换道过程中的边界条件约束和侧向加速度约束,可以满足不同侧向加速度下的换道轨迹规划 采用MPC模型预测控制对换道轨迹进行跟随,经验证轨迹跟踪效果良好

最近在搞车辆换道轨迹跟踪的仿真,发现五次多项式规划配MPC控制这组合挺有意思。咱们直接上干货,聊聊怎么在Simulink里搭这个模型,中间穿插点代码实现的小技巧。

先说说五次多项式轨迹规划的核心——六个边界条件确定轨迹形状。假设车辆从当前车道中心线切换到相邻车道,咱们得让起始点和终点的横向位移、速度、加速度都连续。代码实现的关键在于系数矩阵的构造:

% 边界条件矩阵搭建示例 T = 5; % 换道总时间 A = [0,0,0,0,0,1; T^5,T^4,T^3,T^2,T,1; 0,0,0,0,1,0; 5*T^4,4*T^3,3*T^2,2*T,1,0; 0,0,0,2,0,0; 20*T^3,12*T^2,6*T,2,0,0]; b = [0;3;0;0;0;0]; % 横向位移从0到3米 coeff = A\b; % 解算多项式系数

这里有个坑要注意:矩阵条件数过大会导致数值不稳定,建议用符号运算提前推导解析解。侧向加速度约束的处理更带劲,得把物理限制转化为轨迹曲率约束:

max_ay = 2.5; % 最大侧向加速度 vx = 20/3.6; % 当前纵向速度(m/s) max_curvature = max_ay / vx^2; % 曲率上限

接下来是MPC控制器的重头戏。建议别直接用现成的MPC模块,自己写QP求解器更灵活。核心是构建预测模型,这里用简化的自行车模型:

function [A,B] = updateModel(vx,dt) % 参数来自实车辨识 Cf = 80000; Cr = 120000; m = 1500; Iz = 2500; lf = 1.2; lr = 1.6; a11 = -(Cf+Cr)/(m*vx); a12 = -vx - (Cf*lf - Cr*lr)/(m*vx); a21 = -(Cf*lf - Cr*lr)/(Iz*vx); a22 = -(Cf*lf^2 + Cr*lr^2)/(Iz*vx); A = [0 1 0 0; 0 a11 0 a12; 0 0 0 1; 0 a21 0 a22]; B = [0; Cf/m; 0; Cf*lf/Iz]; % 离散化 sysc = ss(A,B,eye(4),[]); sysd = c2d(sysc, dt); A = sysd.A; B = sysd.B; end

在Simulink里联调时,记得把Carsim的车辆模型采样时间设成和MPC的预测步长一致,不然会出现玄学级别的跟踪误差。实测发现前轮转角控制在±30度以内时,20m/s速度下横向误差能压到0.1米以内。

五次多项式换道轨迹规划+MPC轨迹跟踪控制simulink模型(有说明文档) 版本:Matlab R2019a / Carsim2019.1 模型采用五次多项式换道轨迹,考虑换道过程中的边界条件约束和侧向加速度约束,可以满足不同侧向加速度下的换道轨迹规划 采用MPC模型预测控制对换道轨迹进行跟随,经验证轨迹跟踪效果良好

最后给个调参秘籍:MPC的权重矩阵别用单位矩阵,速度权重应该是位移权重的平方级。比如位移误差权重设100时,速度误差权重建议在10000左右,这样动态响应更顺滑。

模型跑起来后有个意外发现——换道时间设置过短会导致五次多项式出现曲率突变,这时候MPC会疯狂打方向盘。解决方法是在轨迹规划层加入jerk约束,或者直接上七次多项式。不过那就是另一个故事了...

http://www.jsqmd.com/news/500261/

相关文章:

  • 三相VIENNA整流器仿真:一种综合控制的实践
  • 人间小温柔
  • 雷军回应为何这么早停售第一代小米SU7:不想背刺老用户;马斯克点赞Kimi新架构,17岁高中生作者一战成名;OpenAI新模型发布 | 极客头条
  • 毕业季论文求生指南:从开题到答辩,如何用百考通AI高效通关?
  • 解耦之美:将业务逻辑从繁杂的代理异常捕获中抽离
  • 1126b休眠使用外部RTC作为32.762khz输入
  • 2026年热门的QCW激光焊接机公司推荐:塑料激光焊接机/全自动激光焊接机高口碑品牌推荐 - 行业平台推荐
  • AI+医疗落地:数据清洗、标签噪声、患者级划分为什么比模型更重要?
  • 常用的office word vba宏
  • 第4篇 | AI工程师必备数学基础:最优化理论
  • 鸿蒙应用开发UI基础第二十六节:轻量级UI元素@Builder与@LocalBuilder区别示例演示 - 鸿蒙
  • 2026年比较好的高温保鲜冷库设备工厂推荐:低温速冻冷库设备/啤酒防腐冷库设备/中温冷冻冷库设备实力工厂推荐 - 行业平台推荐
  • 2026 年 4 月浙江高校计算机二级 MS Office 备考指南
  • SlQCap没有合适的默认构造函数
  • 计算机毕业设计之基于SpringBoot的自驾游出行一站式物资商城
  • 从新手到专家:全方位解析百联OK卡回收方法与实用技巧 - 团团收购物卡回收
  • 2026年口碑好的产后塑身衣工厂推荐:强力塑身衣公司口碑哪家靠谱 - 行业平台推荐
  • 用户塔embeding矩阵组成
  • 传统企业每一次招聘,本质都是一次“盲选”
  • Python + 机器学习 / 深度学习在气象海洋领域的综合应用教程:含数据爬取、插值、EOF 分析及 WRF/ROMS 模式后处理与台风 / 风速 / 风功率等典型案例
  • YTM32
  • 2026 TCT亚洲展盛大开幕!汇聚亚太制造力,链接全球新格局!
  • 售后管理不再“掉链子”:一套系统如何打通从报修到结算的全链路?
  • 全球六维力传感器行业发展洞察:高速增长下的国产突围与市场机遇
  • Linux系统基础安全总结
  • 2026年比较好的磨边机品牌推荐:异形玻璃磨边机/全自动玻璃磨边机/平躺式卧式磨边机可靠供应商推荐 - 行业平台推荐
  • 02-大模型部署之Kubernetes+vLLM安装大模型和容器调度
  • 当XDMA遇上中断模式:一个硬核工程师的踩坑实录
  • FPGA SDIO模式读写SD卡程序功能说明
  • UV胶粘度硬度伸长率详解 如何选对UV胶