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.mzph.cn/news/10093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyExcel数据导出功能封装

起因: 最近需要用到excel导出功能,使用EasyExcel可以快速实现导出,又需要优雅的对EasyExcel进行封装,在实现自己的导出功能时又可以制定一定的规则,让其他同事方便使用,最近研究了下网上的常规写法,站在巨人的肩上重新添加了自己的思路,供大家参考,有任何问题请多指教…

【监控系统】可视化工具Grafana简介及容器化部署实战

1.什么是Grafana 官网地址:https://grafana.com/ Grafana用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。支持快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中…

【NLP】无服务器问答系统

一、说明 在NLP的眼见的应用,就是在“ 当你在谷歌上提出一个问题并立即得到答案时会发生什么?例如,如果我们在谷歌搜索中询问谁是美国总统,我们会得到以下回答:Joe Biden;这是一个搜索问题,同时…

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构:近几年技术的飞速发展,各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可&a…

jar 命令实践

jar -h非法选项: h 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项:-c 创建新档案-t 列出档案目录-x 从档案中提取指定的 (或所有) 文件-u 更新现有档案-v 在标准输出中生成详细输出-f 指定档案文件名-m 包含指定清单文…

嵌入式软件—RK3568开发环境搭建

一、RK3568 1.1 开发板特点 BSP比较大,对于电脑内存和存储空间要求高 1.2 BSP BSP(Board Support Package,板级支持包),类似于PC系统中BIOS和驱动程序的集合,BSP包含的范围更广,除了外设驱动…

数值线性代数:知识框架

记录数值线性代数研究的知识框架。 软件包线性方程组直接法Guass消元法/LU分解、Cholesky分解 LAPACK oneAPI MKL ARPACK Octave 迭代法Jacobi迭代、SOR迭代、共轭梯度法最小二乘特征值/特征向量非对称幂法、QR、Arnoldi分解对称QR、Jacobi、二分法、分治法、SVD 参考资料 G…

noVNC安装部署

首先得确保你的vnc是管用的 然后再下面这一大堆地址随便下载一套noVNC的代码 git clone https://github.com/novnc/noVNC.git git clone git://github.com/kanaka/noVNC noVNC官网:noVNC noVNC Github:GitHub - novnc/noVNC: VNC client web applicatio…

pg三种插件验证

sr_plan 创建extension, 他会创建保留执行计划的表 创建表并插入数据 开启sr_plan.write_mode, 允许sr_plan收集SQL和执行计划 查看QUERY 1的执行计划 PostgreSQL支持merge join、GroupAggregate(通过INDEX SCAN),所以这个CASE,非常快,并不需要b对所有数据进行聚合。查看…

nginx mirror代码分析

实现方式 mirror逻辑的工作阶段: ngx在log phase之后(在ngx_http_free_request处调用)已完成向client端返回response,在log phase之后完成close connection(短链接),在该阶段处理mirror逻辑不…

Python——Windows下载ffmpeg

目录 前言 一、下载 (3种下载方式) 1、第一种下载方式——我上传的文件 2、第二种下载方式——GitHub下载 3、第三种下载方式——官网下载 二、解压 三、配置环境变量 四、验证是否安装成功 五、其他 关于ffmpeg其他安装教程 ffmpeg的延迟问题 …

vscode保存html时,如何不换行?

我发现网上的答案都是千篇一律,都是复制过来的 "vetur.format.defaultFormatterOptions": {"js-beautify-html": {"wrap_line_length": 120,"wrap_attributes": "auto","end_with_newline": false}, …

typescript自动编译文件实时更新

npm install -g typescripttsc --init 生成tsconfig.json配置文件 tsc -w 在监听模式下运行,当文件发生改变的时候自动编译

C语言文件操作

目录 前言: 文件的分类 1. 程序文件 2.数据文件 文件的使用 文件指针 文件指针的使用 文件的打开与关闭 文件的使用方式 示例1: 示例2: 文件的顺序读写 函数简介 示例1: 示例2: 函数简介 示例1: 示例2&…

【我们一起60天准备考研算法面试(大全)-第二十六天 26/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

linux获取随机字符串(或数字)的3种方法

1. 获取随机8位字符串: 方法1: # echo $RANDOM |md5sum |cut -c 1-8返回: 471b94f2方法2: # openssl rand -base64 4返回 vg3BEg方法3: # cat /proc/sys/kernel/random/uuid |cut -c 1-8返回 】ed9e032c2.获取随…

【什么是Read Write Through机制】

文章目录 一、Read-Write Through机制的定义二、Read-Write Through机制的特点三、Read-Write Through机制的实现方式四、Read-Write Through机制的应用场景 Read-Write Through机制是一种缓存一致性协议,用于保证存储子系统的缓存与主存储器之间的数据一致性。它是…

NAT详解(网络地址转换)

一句话说清楚它是干什么的: 网络地址转换:是指通过专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,它使得整个专用网只需要一个全球IP就可以访问互联网,由于专用网IP地址是可以重用的,所以NAT大…

【Linux】Http协议的学习

文章目录 前言一、了解HTTP协议是如何规定的总结 前言 HTTP协议(超文本传输协议)和我们上一篇写的网络版计算器中自己定制的协议一样,只不过Http协议是是一个非常好用的协议,所以我们可以直接用现成的不用自己再搞一套了。 一、了…

EM算法实例

EM算法的E步骤, 是计算在当前的预估参数下,隐含变量(是A硬币还是B硬币)的每个值出现的概率。也就是给定和观测数据,计算这组数据出自A硬币的概率和这组数据出自B硬币的概率 我们根据E步中求出的A硬币、B硬币概率分布&…