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

运动学模型推导 + 离散化 + 工程化版本(适用于前方单舵轮 AGV / 自动驾驶 / MPC)

目录

模型推导:

前言

一、自行车模型结构(Bicycle Model)

二、速度分解 —— 最关键的一步

三、无侧滑约束(No-Slip Constraint)

四、角速度推导(Yaw Rate)

五、世界坐标系下速度

六、最终连续时间模型(Continuous Model)

七、扩展输入:用加速度 & 转角速度作为控制量(工程常用)

1)转角速度解释:

2)为什么控制输入不是 δ 而是 δ˙

3)更工程的解释:转角速度 = 转向电机的目标速度

八、离散化(用于 MPC / 仿真 / 代码实现)

九、小角度线性化(用于 LQR、线性 MPC)

十、完整可复用模型总结(最终工程版)

1)连续时间模型(工程常用):

2)离散时间模型(MPC 直接可用):

3)小角度线性化(用于 LQR)

十一、 适用范围

1)使用本模型的情况

2)不适使用的情况


模型推导


在之前的章节里,我已经把 MPC 的核心数学结构推到了一遍:
离散模型 → 预测矩阵 X=Fxk+GU → 构造代价函数 → 变成一个标准二次规划(QP)问题

以及对 约束的设定 QP求解器的运用 进行的详细的讲解

具体文章见下:

MPC模型预测控制原理全解析:从状态预测、矩阵推导到QP求解与滚动优化(含完整手推过程)-CSDN博客https://blog.csdn.net/m0_58954356/article/details/154781300?spm=1001.2014.3001.5501MPC 里的约束与 QP 求解器实战——从原理、例子到 C++ 落地-CSDN博客https://blog.csdn.net/m0_58954356/article/details/154830088?spm=1001.2014.3001.5501MPC模型预测控制:从基本概念到数学推导(基于 DR_CAN 课堂笔记整理)-CSDN博客https://blog.csdn.net/m0_58954356/article/details/154800788?spm=1001.2014.3001.5501


前言

运动学模型(Kinematic Bicycle Model)是自动驾驶中最常用的底层模型之一,它是如下算法的基础:

  • MPC(Model Predictive Control)

  • LQR 路径跟踪

  • Stanley / Pure Pursuit

  • Frenet 轨迹规划

  • Kalman Filter / 状态估计

  • AGV 前方单舵轮控制

然而,大多数资料只给出三行公式:

却没有讲清楚它们的来源、意义、适用范围以及工程化写法。

本文将一次讲透:

从几何 → 速度分解 → 无侧滑约束 → 世界系转换 → 离散化 → 工程实现 → AGV 单舵轮版本。

让你彻底搞懂运动学模型。


一、自行车模型结构(Bicycle Model)

将四轮车等效为:

  • 后轴一个点

  • 前轴一个点

  • 轴距固定为 LLL

  • 前轮可转向(角度 δf\delta_fδf​)

  • 后轮不可转向

车辆状态:

输入量(控制量):

  • vr:车辆(后轮/车体)纵向速度

  • δf:前轮转角


二、速度分解 —— 最关键的一步

前轮打了角后,前轮速度方向不再与车体一致。

前轮速度 vfv_fvf​ 在车体坐标系分解:

从第一行:

代入第二行:

打方向盘后,车辆产生的“侧向速度分量”,也是车辆开始转弯的根本原因


三、无侧滑约束(No-Slip Constraint)

轮胎允许沿自身方向滚动,但不允许横向滑动。

因此车辆绕某个瞬时圆心 ICR 运动。

几何关系:

得转弯半径:


四、角速度推导(Yaw Rate)

后轮速度:vr

绕圆心半径:R

所以角速度为:

代入上一步:

这是现代控制器(MPC/LQR)最常见的 yaw rate 模型。


五、世界坐标系下速度

车体速度 vr 方向与世界系的夹角为 φ ,所以:


六、最终连续时间模型(Continuous Model)

这是运动学自行车模型的标准形式


七、扩展输入:用加速度 & 转角速度作为控制量(工程常用)

实际车辆 ECU 不能直接控制:

  • 速度 vr(而是加速度 a)

  • 转角 δf(而是转角速度 δ˙)

因此加入动力学状态:

扩展状态:

扩展模型:

这是自动驾驶 MPC 最常用的 非线性运动学模型

1)转角速度解释:

转角速度 不是车的角速度(车身转弯的 Yaw rate)
而是:

方向盘打角的变化速度
也就是前轮转角 δ 时间导数

简单说:

  • δ:前轮当前打了多少角

  • δ˙:前轮“转向动作”变化的速度

就像…

  • 人转方向盘时 → δ 在变化

  • 你转得快一点 → δ˙ 大

  • 你转得慢一点 → δ˙ 小

单位通常是:

  • rad/s(自动驾驶控制使用)

  • deg/s(汽车标定使用)


2)为什么控制输入不是 δ 而是 δ˙

因为真实车辆有转向执行器,包含:

  • 电机

  • 减速机

  • 力反馈

  • 机械限位

  • 最大加速度/角速度

这些执行器不能让你“瞬间跳到某个转角”。

比如:

你不可能一下把方向盘从 0° 打到 30°,总要一个过程!

这个过程由转角速度 δ˙ 决定。

所以真实 ECU 接受的是:

控制量含义
a油门/刹车产生的加速度
δ˙转向执行器的角速度指令

而不是:

不直接控制
v(车辆速度)
δ(方向盘角度)

这些都是最终结果。


3)更工程的解释:转角速度 = 转向电机的目标速度

在 AGV / 无人叉车 / 汽车中,转角是通过“转向电机”驱动的

电机控制里常见的闭环结构:

目标转角 δ_target  
→ 误差 = δ_target - δ_measured  
→ PID 控制  
→ 得到需要的 转角速度 δ˙  
→ 由伺服驱动器控制执行器  

所以控制器给 ECU 的信号一般是:方向盘转速(电机角速度)

而不是:让方向盘瞬间转到 15°

因为那样不符合执行器的物理机制。


八、离散化(用于 MPC / 仿真 / 代码实现)

最常用离散化:Euler 前向差分

采样周期 T

如果带动态输入:

离散后的完整形式:

这是 MPC 一定要用的版本。


九、小角度线性化(用于 LQR、线性 MPC)

对于低速 & 小转角:

线性化得到:

线性模型可写成:


十、完整可复用模型总结

1)连续时间模型(工程常用):


2)离散时间模型(MPC 直接可用):


3)小角度线性化(用于 LQR)


十一、 适用范围

1)使用本模型的情况

  • 低速(通常 < 10 m/s)

  • 无明显侧滑(工厂 AGV 最完美适用)

  • 平面运动

  • 转向角小于 30–35°

2)不适使用的情况

  • 高速漂移

  • 强侧偏力(需动力学模型)

  • 轮胎受力主导的操控

http://www.dtcms.com/a/610011.html

相关文章:

  • 微信小程序中 WebView 组件的使用与应用场景
  • UE5导入的CAD文件零件如何被Merge?
  • 从无形IP到AI万象,安谋科技Arm China“周易”X3 NPU 发布!
  • 微信小程序可以做视频网站吗滑坡毕业设计代做网站
  • Windows 下 Eclipse + MinGW 写 C++ 环境
  • 美国税务表格W-2/1099/W-9/W-4/I-9详解:中国投资者跨境经营合规与战略指南
  • 外贸网站如何推广优化网站备案号取消原因
  • MySQL 查看有哪些表
  • 衡水做网站推广找谁wordpress 图片托管
  • 第一章 函数与极限 7.无穷小的比较
  • CMake 中 install 的使用原因和使用方法
  • 网站宝 添加二级域名怎样在工商局网站做申请登记
  • langchain langGraph 中streaming 流式输出 stream_mode
  • C语言在线编译 | 提供便捷高效的编程体验
  • 自建开发工具IDE(三)仙盟在线文件格式功能——东方仙盟炼气期
  • Vue 3 + Vite 集成 Spring Boot 完整部署指南 - 前后端一体化打包方案
  • 自己的网站网站项目ppt怎么做
  • 保健品网站建设策划书太原广告公司
  • 数据库知识整理——SQL数据查询(2)
  • DAPO(Dynamic sAmpling Policy Optimization)
  • Java实现检测本地指定路径下某一个程序是否在运行
  • 酒店网站模板设计方案威联通231p做网站
  • 网站建设解析无锡网站服务
  • C++中有双向映射数据结构吗?Key和Value能否双向查找?
  • 在Java/Android中,List的属性和方法
  • Python 命令行入门指南:从零到一掌握终端操作
  • FunRec-Task3
  • 住房和城乡建设部网站办事大厅做点击率的网站
  • 泉企业网站建设wordpress轻量级主题
  • 【Qt】多线程学习笔记