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

直接给各位上点轨迹跟踪的干货。这次咱们玩个能自定义参考轨迹的二自由度MPC控制器,重点说说怎么让这铁疙瘩在不同路况下都跟得稳当。先整杯咖啡,咱们边调参边唠

可自定义期望轨迹的二自由动力学 MPC 跟踪控制 可以外部导入轨迹 知道x y s 即纵向位置 横向位置 位移量即可 请注意= 要跟踪不同的轨迹,同一参数可能效果不一样 因此需要自己调参数保证控制效果最佳: Q矩阵增大可以保证侧向位置跟踪效果变好, R 矩阵增大可以保证前轮转角曲线效果变好。 同时调整输出值边界的约束 carsim 版本 2019.0

二自由度模型这玩意儿大家都熟吧?横向运动方程写成离散状态空间就是:

% 模型参数 m = 1573; % 质量 Iz = 2873; % 转动惯量 lf = 1.34; % 前轴距 lr = 1.43; % 轮胎侧偏刚度 Ts = 0.1; % 控制周期 A = [1, Ts; -2*(Caf+Car)/(m*vx)*Ts, 1-2*(lf*Caf-lr*Car)/(Iz*vx)*Ts]; B = [0; 2*Caf/(m*vx)*Ts];

重点在状态矩阵里的速度项vx——这货要是没处理好,换条轨迹准翻车。实测发现参考轨迹曲率越大,预测时域得适当缩短,不然求解器直接给你摆烂。

调参这事真得看手感,上周在秋名山实测时发现个邪乎现象:同一组Q、R参数在直道表现完美,到了发夹弯直接推头。后来悟了——Q矩阵里给横向误差的权重得跟着曲率动态变化。举个栗子:

# 动态权重调整示例 curvature = abs(ref_traj['kappa'][current_index]) Q_scale = 1 + 10 * curvature # 曲率越大,横向误差权重越高 Q = np.diag([Q_scale, 0.1]) # 状态权重矩阵 R = np.array([[0.01]]) # 控制量权重

这么整之后,方向盘的修正动作明显更跟脚。不过要注意R矩阵别调太小,上次手贱设成0.001,结果前轮摆角曲线抖得跟帕金森似的。

约束边界这事容易被新手忽略。实测发现输出约束不能只设固定值:

// 根据车速调整前轮转角约束 double delta_max = 0.6 - 0.15 * fabs(current_speed/40); if(delta_max < 0.3) delta_max = 0.3; // 设置MPC约束 mpc.setConstraint(-delta_max, delta_max);

速度越快,允许的最大转角越小,这招对防止高速甩尾贼管用。不过要注意别矫枉过正,有次把delta_max压到0.2,结果在U型弯直接冲出赛道。

最后给个CarSim联调的小技巧:把预测时域内的参考轨迹可视化到CarSim Scene中,效果拔群!具体操作是在Simulink里加个UDP发送模块,把预测轨迹打包发到CarSim的3D显示模块。调试时看着预测轨迹和实际轨迹慢慢重合,那成就感比通关老头环还带劲。

调完参记得做暴力测试——拿正弦波轨迹、阶跃轨迹、蛇形轨迹各跑一遍。别信仿真数据,真车测试时地面附着系数变化能让你参数当场破功。最近发现个玄学规律:Q矩阵权重开三次方后再用,鲁棒性莫名变好,原理还没搞懂,但真的好使。

好了,代码扔Github了,自己去扒拉。记住参数没有银弹,多调多翻车才是正道。下次聊聊怎么把MPC预测域玩出花,保准让你们方向盘的响应比女朋友还贴心(如果有的话)。

http://www.cnnetsun.cn/news/15300.html

相关文章:

  • Jellyfin Android TV客户端音频播放异常问题深度解析
  • HFI高频方波注入方案stm32f405 无感FOC控制 直接闭环启动 永磁同步电机无感控制...
  • CTR预测系统构建实战:从FM到DeepFM的推荐算法演进之路
  • 从零玩转RT-Thread(22):定时器底层机制揭秘
  • B站缓存视频转换完整教程:m4s-converter高效管理本地视频
  • 解锁企业级后台管理:用Vue.js和Element-UI构建高效前端解决方案
  • WMS 和 ERP 先上哪个?行业内幕:仓库没打好地基,什么 ERP 都白搭
  • WiFi放大器小白指南:从选购到安装的完整教程
  • AI如何革新虚拟光驱开发?自动化代码生成实战
  • 2024年全国平均身高数据统计可视化分析
  • 1小时打造Mac专属SSH工具:快马平台实战
  • PIKE-RAG知识库本地化部署之分块
  • DREAM3D完整指南:从入门到精通的材料科学数据分析解决方案
  • 靠谱的自动供包环线分拣机生产厂家
  • 5分钟用VSCode在Ubuntu上搭建Web应用原型
  • 24小时挑战:用AI快速打造‘旺仔‘风格IP原型
  • 零基础搞定Umi项目自动化部署:从代码到上线的完整指南
  • 数学分析简明教程——6.2
  • SSM物业缴费管理系统u8mx4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 如何在PowerPoint中轻松插入LaTeX公式:终极解决方案
  • Ultralytics YOLOv11终极性能优化:从配置到实战的完整指南
  • 突破传统:3大实战方法让GLM语言模型成为你的AI生产力工具
  • 3步快速解决HeyGem.ai性能问题:终极优化指南
  • 自助项目全解析:适配老板画像业态选择指南
  • 传统链表OUT了!侵入式链表让Nginx、TCMalloc 性能飞跃的秘密武器
  • MinIO效率革命:传统存储方案对比实测
  • AI如何帮你彻底理解box-sizing的奥秘
  • 如何用AI自动生成OpenRGB灯光控制脚本
  • 告别深夜改Bug!CodeGenie帮你快速“驯服”鸿蒙编译错误!
  • 企业IT运维:批量处理设备启动故障(代码10)实战