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

Carla教程一:动力学模型到LQR

Carla教程一、动力学模型到LQR

从运动学模型和动力学模型到LQR

模型就是可以描述车辆运动规律的模型。车辆建模都是基于自行车模型的设定,也就是将四个轮子抽象为自行车一样的两个轮子来建模。

1、运动学模型

运动学模型是基于几何关系分析出来的,一般适用于低俗情况下,这种情况可以不考虑轮胎的侧偏特性。另外,这里假设前轮的方向就是当前车辆速度的方向。但是高速情况并非如此。整个控制量可以简化为加速度a和偏航角 δ \delta δ。其中油门代表a为正,刹车代表a为负。偏航角是方向盘的控制量。然后可以定义下面的几个状态量,用来描述车辆当前状态:

  • x:车辆当前横轴坐标
  • y:车辆纵轴坐标
  • v: 车辆速度
  • φ \varphi φ:车辆横摆角
    请添加图片描述

最后推导得到的动力学模型如下:
x ˙ = v cos ⁡ φ y ˙ = v sin ⁡ φ φ ˙ = v tan ⁡ δ f L \dot{x}=v\cos \varphi \\ \dot{y}=v\sin \varphi \\ \dot{\varphi}=\frac{v\tan \delta _f}{L} x˙=vcosφy˙=vsinφφ˙=Lvtanδf
其中 δ f \delta_f δf是前轮的转向角。因为后轮一般都是不转向的,所以 δ r \delta_r δr是零。

2、动力学模型

需要考虑轮胎的侧偏性质。动力学模型是通过对轮胎和地面之间的相互作用来描述车辆的运动。动力学模型是基于车辆的动力学原理进行建模的,它考虑了车辆的质量、加速度、速度、转向等因素,可以更加精确地预测车辆的运动轨迹。动力学模型的优点在于可以考虑更多的因素,更加精确地预测车辆的运动轨迹,适用于高速行驶和紧急情况下的自动驾驶。但是,动力学模型对传感器的精度要求较高,对于复杂的路况和车辆之间的交互,需要更多的计算资源。

动力学模型可以将车辆运动的横纵向解耦,而运动学模型则无法解耦。

根据自行车动力学模型的推导,注意动力学模型中一个很关键的参数就是轮胎测偏参数,轮胎测偏力和轮胎测偏角度成正比。在实际中,测偏刚度是负数。

经过推导可以计算出关于横向速度和角速度作为状态变量,横向加速度和横向角速度变化量为因变量的状态方程。如下:
   ( y ¨ φ ¨ )    =    ( C φ f +    C φ r m v x a C φ f −    b C φ r I v x a C φ f +    b C φ r m v x − v x a 2 C φ f +    b 2 C φ r I v x ) ( y ˙ φ ˙ )    +    ( − C φ f m − a C φ f I ) δ \,\,\left( \begin{array}{c} \ddot{y}\\ \ddot{\varphi}\\ \end{array} \right) \,\,=\,\,\left( \begin{array}{c} \frac{C_{\varphi _f}+\,\,C_{\varphi _r}}{mv_x}\\ \frac{aC_{\varphi _f}-\,\,bC_{\varphi _r}}{Iv_x}\\ \end{array} \right. \left. \begin{array}{c} \frac{aC_{\varphi _f}+\,\,bC_{\varphi _r}}{mv_x}-v_x\\ \frac{a^2C_{\varphi _f}+\,\,b^2C_{\varphi _r}}{Iv_x}\\ \end{array} \right) \left( \left. \begin{array}{c} \dot{y}\\ \dot{\varphi}\\ \end{array} \right) \right. \,\,+\,\,\left( \begin{array}{c} -\frac{C_{\varphi _f}}{m}\\ -\frac{aC_{\varphi f}}{I}\\ \end{array} \right) \delta (y¨φ¨)=(mvxCφf+CφrIvxaCφfbCφrmvxaCφf+bCφrvxIvxa2Cφf+b2Cφr

http://www.lryc.cn/news/97979.html

相关文章:

  • IDE/mingw下动态库(.dll和.a文件)的生成和部署使用(对比MSVC下.dll和.lib)
  • 点击加号添加新的输入框
  • SQL AND OR 运算符
  • 6、C++内存模型
  • 上海市青少年算法2023年1月月赛(丙组)
  • 移动开发之Wifi列表获取功能
  • MyBatisPlus - 实体类 的 常用注解
  • vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能
  • Qt之切换语言的方法(传统数组法与Qt语言家)
  • qt root start faild
  • 数据结构—串
  • hive 全量表、增量表、快照表、切片表和拉链表
  • 数据结构07:查找[C++][B树Btree]
  • 在CSDN学Golang云原生(Kubernetes集群管理)
  • WPF实战学习笔记18-优化设计TodoView
  • Python版day59
  • [SQL挖掘机] - 算术运算符
  • 机器学习基础 数据集、特征工程、特征预处理、特征选择 7.27
  • Sass 常用的功能!
  • chmod命令详细使用说明
  • ICC2如何计算Gate Count?
  • Qtday3作业
  • 全球程序员需要知道的50+网址,有多少你第一次听说?
  • Matlab中实现对一幅图上的局部区域进行放大
  • mysql-速成补充
  • 微信小程序,商城底部工具栏的实现
  • Lab———Git使用指北
  • ChatGPT的工作原理:从输入到输出
  • redis数据库与主从复制
  • js加载和长任务