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

MPC轨迹跟踪:基于运动学、动力学CarsimSimulink联仿

MPC轨迹跟踪基于运动学、动力学carsimsimulink联仿方向打死油门踩到底轮胎和地面摩擦的青烟还没散尽手里的MPC控制器已经算好了未来三秒的轨迹——这大概就是模型预测控制在轨迹跟踪中最性感的瞬间。今天咱们就扒一扒怎么用Simulink拉着Carsim搞联仿从运动学模型到十八个自由度的动力学全家桶把轨迹跟踪这事儿安排得明明白白。先甩个运动学模型的代码镇楼function dx KinematicModel(x, u, L) beta atan(0.5*tan(u(2))); % 转向等效换算 dx [x(4)*cos(x(3)beta); x(4)*sin(x(3)beta); x(4)*sin(beta)/L; u(1)]; end这个四状态模型X/Y/航向角/速度看着清爽但有个坑前轮转角输入u(2)得做等效处理毕竟现实中的阿克曼转向几何可不是吃素的。L是轴距参数实测时用帕萨特B6的数据约2.8米别傻乎乎用五菱宏光的参数。动力学模型才是重头戏。Carsim里导出的整车模型.mat文件在Simulink里拆开一看好家伙27个状态变量在跳钢管舞。这时候得祭出模型降维大法% 提取关键状态用于MPC load(veh_dynamics.mat); A_red A([1:3,7:9], [1:3,7:9]); % 保留质心运动横摆 B_red B([1:3,7:9], [1,4]); % 油门方向盘输入 Ts 0.1; % 别学论文里用0.02s步长仿真跑起来要命的 sys_d c2d(ss(A_red,B_red,eye(6),[]), Ts);降维后的六状态模型X/Y/航向/横摆角速度/纵向速度/侧向速度足够描述轨迹跟踪的核心动力学。注意这里的B矩阵列对应的是Carsim里油门开度和方向盘转角这两个执行器通道。MPC轨迹跟踪基于运动学、动力学carsimsimulink联仿联仿配置才是魔鬼细节。Carsim的S-Function接口像个傲娇大小姐得按她的规矩来在Carsim的Run Control里勾选External把VehicleID改成666别问为啥玄学Simulink的S-Function采样时间必须和Carsim解算步长对齐方向盘转角记得乘个-1Carsim的坐标系和常识是反的MPC控制器核心代码长这样function u mpc_control(x0, ref_traj) persistent controller; if isempty(controller) nx 6; nu 2; Q diag([10,10,5,1,1,2]); R 0.1*eye(nu); horizon 15; % 构造QP问题 [Ad, Bd] get_linear_model(); mpc comfortable_mpc(Ad, Bd, Q, R, horizon); controller mpc; end % 轨迹预处理 shifted_ref ref_traj(1:horizon1, :); % 带松弛因子的求解 [u_seq, ~] controller.solve(x0, shifted_ref, RelaxFactor, 0.95); u u_seq(1,:); end重点是这个comfortable_mpc函数名字瞎起的里面藏着松弛因子和约束软化这些实战技巧。别迷信教科书里的硬约束实测时不给轮胎模型留点余量分分钟给你整数值发散。最后看效果在Carsim的双移线工况下运动学MPC像喝了假酒似的画龙动力学MPC则稳稳贴着参考线走。但别高兴太早把路面摩擦系数从0.8降到0.3俩控制器都开始表演华尔兹——这时候该召唤轮胎力观测器上场了不过那就是另一个深夜掉头发的故事了。仿真跑完记得看Carsim的动画回放眼见为实。要是发现车子在跳霹雳舞先检查是不是方向盘转角单位没从弧度转成度这种低级错误我去年犯了七次。

相关文章:

MPC轨迹跟踪:基于运动学、动力学CarsimSimulink联仿

(MPC)轨迹跟踪,基于运动学、动力学carsim&simulink联仿方向打死油门踩到底,轮胎和地面摩擦的青烟还没散尽,手里的MPC控制器已经算好了未来三秒的轨迹——这大概就是模型预测控制在轨迹跟踪中最性感的瞬间。今天咱们…...

【从零开始学Java | 第二十五篇】TreeSet

目录 前言 一、TreeSet的特点 二、TreeSet集合默认的规则 1.默认排序/自然排序 2.比较器排序 总结 前言 在 Java 的集合框架中,Set 接口代表了一个不允许存在重复元素的集合。我们最常用的通常是 HashSet,因为它提供了极高的查找和插入效率。但是&…...

openclaw源码

https://github.com/openclaw/openclaw https://github.com/VoltAgent/awesome-openclaw-skills/tree/main/categories...

优峰技术 1550nm 可调谐激光器:全光纤型分支器件检测核心光源

全光纤型分支器件是光纤通信、光纤传感网络的核心无源元件,其插入损耗、回波损耗、偏振相关损耗、分光比均匀性等关键指标,直接决定光网络传输质量与稳定性。在全光纤型分支器件检测体系中,1550nm可调谐激光器作为高精度测试光源,…...

魔方财务批量拉取产品信息教程

使用魔方财务,有时候经常上级【变化了ip】或者批量【补时间】什么的,我们这里因为我们的财务换过域名,导致上级无法给我们推送需要我们手动拉取信息,一个两个还好,几百个怎么办? 本教程就是【欧云服务器】…...

驾校招生断崖式下跌?这3个数据驱动的获客策略,让报名量翻倍

驾校招生断崖式下跌?这3个数据驱动的获客策略,让报名量翻倍最近和几位驾校校长聊天,听到最多的感慨是:“以前学员排队等车,现在教练排队等学员。”这不是个别现象。某地驾培协会数据显示,2023年区域性驾校平…...

基于单片机的婴儿看护系统设计

一、摘要 本课论文构思并实现了一种基于STM32F103C8T6单片机的智能婴儿看护系统婴儿看护系统,该系统致力于为婴儿提供全方位的监测与智能婴儿看护系统化的照护服务。它巧妙地融合了DHT11温湿度传感器、声音传感器以及液体传感器,这些传感器协同工作&…...

​Problem - 2148F - Codeforces​[字符串后缀排序]

Problem - 2148F - Codeforces 题意很简单 我们可以随意防止字符串 按照从上到下 如果最后一层某个位置没有字符串 那么上面的字符串就会掉下来到最后一层 求字典序最小的最下层的字符串 首先 最朴素的思想 我们会找出当前最小长度的字符串 长度k 然后截取所有字符串的…...

国产SeekWave 双频WIFI6+BT5.4 VS6621SR80基于RK3588平台成功替换RTL8822模组 硬件兼容 速率可达600Mbps

RK3588是瑞芯微(Rockchip)推出的旗舰级SoC芯片,采用8nm工艺,集成‌四核Cortex-A76和四核Cortex-A55 CPU、ARM Mali-G610 MP4 GPU、6 TOPS NPU‌,支持8K视频编解码。‌‌1‌‌2‌CPU‌:八核ARM架构&#xff…...

解锁论文写作新境界:书匠策AI——学术探索的智能导航灯

在学术的浩瀚海洋中,每一位研究者、学生乃至教育博主,都如同勇敢的航海家,驾驶着知识的船只,追寻着真理的彼岸。然而,论文写作这一航程中的关键环节,往往让许多人感到迷茫与挑战重重。今天,就让…...

GHelper终极指南:用轻量化工具彻底替代Armoury Crate,释放华硕ROG笔记本全部性能!

GHelper终极指南:用轻量化工具彻底替代Armoury Crate,释放华硕ROG笔记本全部性能! 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RG…...

c++入门:函数实参形参傻傻分不清?如何改变实参!

值传递是 C 中最基本的参数传递方式。它的核心意思是:当你把一个变量作为参数传给函数时,函数得到的是这个变量的一个副本,而不是变量本身。所以在函数内部修改这个副本,外部的原变量纹丝不动。📦 举个生活例子你把一张…...

ObsPy完整指南:如何用Python快速处理地震数据

ObsPy完整指南:如何用Python快速处理地震数据 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy ObsPy是一个专为地震学和地震观测站设计的Python工具库&…...

怎样评估数据化管理?数据化管理如何持续改进?

在数据这个行当工作了这么多年,我经常会和不同公司的朋友聊天。大家刚开始做数据化管理时总是干劲十足,买工具、建报表、做大屏。但一两年后,常常陷入一种困惑:钱花了,屏挂了,但感觉业务还是老样子。这时候…...

夸克扫码登录

kefu16665...

【FastAPI】 响应类型详解:从默认 JSON 到自定义响应

FastAPI 响应类型详解:从默认 JSON 到自定义响应(HTML/文件/流/重定向) 一、FastAPI 响应机制概述 FastAPI 默认会将路径操作函数返回的 Python 对象(如 dict、list、Pydantic Model)自动转换为 JSON 格式,…...

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40%

all-MiniLM-L6-v2详细步骤:Ollama模型量化部署(Q4_K_M)显存再降40% 在资源受限的环境中部署高效的句子嵌入模型一直是开发者的痛点。all-MiniLM-L6-v2作为轻量级语义表示模型,虽然已经比标准BERT模型小了80%以上,但在…...

工程师必备:高效阅读Datasheet的实用技巧

1. 为什么工程师必须掌握Datasheet阅读能力在嵌入式系统和硬件开发领域,Datasheet(数据手册)就是芯片的"使用说明书"。我从业十余年,见过太多工程师因为不会正确阅读Datasheet而踩坑的案例。有一次团队花了两个月调试一…...

XZ8011双节8.4V充电芯片 输入电压8.9-15V

XZ8011是一款完整的双节锂离子电池恒压恒流充电管理芯片。采用ESOP8封装形式,外加很少的外部元件,使其成为便携应用的理想选择。 XZ8011通过外接电流检测电阻即可实现高精度的充电电流。其内部有热反馈电路可以对在充电过程中对芯片温度加以控制。充电截…...

全双工和半双工的区别

全双工和半双工是描述通信双方数据流动方向的两种基本模式,它们决定了通信链路的利用率、硬件复杂度和应用场景。下面从定义、工作机制、典型协议、优缺点、实际应用五个方面展开。一、基本定义模式英文数据传输方向比喻单工Simplex单向,只能A→B&#x…...

从火柴盒到AI:探索MENACE的数字化旅程

在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...

单线程 Redis 的高性能之道

引言Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。这背后离不开三大基石:全内存存储、高效数据结构(哈希表、跳表等)以及 epoll 多路复用机制,让单线程能够高效处理海量连接。 随…...

解决Python SocketIO客户端连接问题

引言 在构建一个IT自动化系统时,管理多个电脑的需求日益增强。为了实现这一目标,我采用了以下技术栈: 前端:React 后端****中间层:NodeJS 终端代理:Python 然而,在使用Python实现SocketIO客户端时,我遇到了一个问题:Python客户端无法正常打印连接成功的消息。本文将详…...

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具

无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化时代,用户常常面临…...

清明节海报设计指南:4个要点打造高级感视觉呈现

每到清明临近,总有人为海报设计发愁。想做一张既体面又有格调的清明节海报,打开设计软件却不知从何下手,勉强拼凑出来的效果又总觉得差点意思。要么太过花哨显得不够庄重,要么过于简陋显得敷衍。其实高级感并不难,关键…...

文件夹的修改日期可以改吗?分享你三个修改方法

在电脑文件管理中,系统不支持直接修改文件夹的「修改时间」,但日常整理文件、统一项目时间戳、还原备份文件夹时间、办公归档时,经常需要自定义修改这个属性。本文给大家整理了3 种实用方法:第一种是汇帮批量重命名工具&#xff0…...

FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控

大家好,我是杂烩君。 今天我们来简单分享:FreeRTOS任务怎么拆、优先级怎么配、CPU 占用怎么看。1. 任务划分原则 1.1 单一职责:一个任务只干一件事 把"串口接收 数据解析 指令执行 结果反馈"全塞一个任务,解析环节一…...

网站设计:抓住这3点细节,用户体验感飙升!

网站制作要不要做得那么细呢?实际上,当我们发现很多网站制作得很优秀时,怎么看都不知道是如何做好的,但就是感觉不错,实际上这就体现在了制作网站细节上。很多时候设计网站往往容易忽视这三个细节:1、网页图…...

V821 DISP 显示驱动流程分析

文章目录1、前言2、环境介绍3、大致流程4、程序阅读5、总结1、前言 在全志 V821 下调试 RGB 屏幕时,因为一直创建不出 fb 节点,这里记录一下当时阅读显示驱动框架的过程。仅供参考。 2、环境介绍 sdk:V821 tina sdk v1.3 3、大致流程 初…...

实验室服务器远程访问终极方案:SSH 反向隧道 + systemd 自动重连

🚀 实验室服务器远程访问终极方案:SSH 反向隧道 systemd 自动重连适用于: 没有公网 IP 的实验室服务器想用 VSCode / SSH / Jupyter 远程开发希望稳定、自动重连、开机自启🧠 一、问题背景 在很多实验室环境中: GPU 服…...