航向角、前轮转角、偏航角的区别及其在MPC中的使用

news2024/9/23 9:29:10

目录

  • 前言
  • 一、概念解析
  • 二、三种角度在MPC中的应用
  • 三、总结
  • 四、MPC算法流程


前言

航向角、偏航角、前轮转角是车辆控制中描述方向的关键概念。本文将简要介绍它们的区别及在MPC(模型预测控制)中的应用。

一、概念解析

在这里插入图片描述
φ 为车体的航向角; δ 为前轮偏角; v为车辆后轴速度。

  1. 航向角 (Heading Angle)
    车辆航向角通常指地面坐标系下,车辆质心速度与北向的夹角,反映了物体的全局运动方向,范围为0°到360°(通常是从 0 度(北方)开始,顺时针增加到 360 度)。例如,东为 90 度,南为 180 度,西为 270 度。航向角用于描述物体在全球坐标系中的方向,常用于导航和路径规划中确定车辆的绝对方向。

  2. 偏航角 (Yaw Angle)
    偏航角是车辆自身在水平面内的旋转角度,用于描述车辆相对其纵轴(通常是车体轴线)的旋转,常用于动态稳定控制中。偏航角通常是局部的,描述车辆在水平面内的旋转运动(如转弯时的旋转)。偏航角的范围通常为 [ − 180 ° , 180 ° ] [-180°, 180°] [180°,180°],也可以表示为 [ − π , π ] [- \pi, \pi] [π,π] 弧度。

两种角度的计算示例:

	# 示例坐标
	x1, y1 = 0, 0
	x2, y2 = 1, 1
	delta_x = x2 - x1
	delta_y = y2 - y1
	theta = math.atan2(delta_y, delta_x)  # 偏航角(弧度)
	theta_degrees = math.degrees(theta)   # 转换为度数(可选)
	if theta_degrees < 0:
	    theta_degrees += 360  # 航向角(保持在 0 到 360 度范围内)
  1. 前轮转角 (Steering Angle)
    前轮转角描述了前轮相对于车辆纵轴的转动角度,直接影响车辆的转弯轨迹,是驾驶员控制车辆方向的关键参数。

二、三种角度在MPC中的应用

  1. 前轮转角 (Steering Angle)
    前轮转角是MPC的主要控制输入,通过调节它,MPC优化车辆的行驶轨迹,确保车辆紧跟预设路径。

  2. 偏航角 (Yaw Angle)
    偏航角作为MPC的状态变量,反映车辆的实际旋转角度。MPC通过预测和调整前轮转角来控制偏航角,确保车辆姿态稳定。

  3. 航向角 (Heading Angle)
    航向角作为MPC中的状态变量之一,描述车辆相对于地理方向的行驶方向。MPC通过控制前轮转角,使航向角与目标路径方向保持一致。

三、总结

  1. 航向角与偏航角的比较
    航向角是车辆相对于地理北方的绝对方向,是一种全局定位的角度。偏航角是车辆自身在水平面内的旋转角度,是一种相对于车辆自身的角度。在车辆控制领域,航向角常用于导航系统,而偏航角则在动态控制和姿态控制中使用较多。

  2. 前轮转角与偏航角的关系
    前轮转角是一个控制输入,决定了车辆如何转向。偏航角是车辆姿态的输出,反映了车辆实际的方向变化。在车辆的转弯过程中,驾驶员通过调整前轮转角来控制车辆的偏航角,从而实现对车辆行驶方向的控制。

  3. 偏航角在MPC中的作用
    在MPC控制中,前轮转角是直接的控制手段,通过调节它来控制车辆的姿态(偏航角)和方向(航向角)。MPC的优化目标是通过最优控制策略,使车辆在一定的预测时间内保持最佳的路径跟踪效果,确保车辆平稳、安全地行驶。偏航角作为状态变量,直接反映了车辆的动态姿态变化,这对于控制车辆的稳定性和路径跟踪至关重要。因此,偏航角在MPC中更适合作为状态变量。

四、MPC算法流程

  1. 状态估计:首先获取车辆的状态信息,例如位置、速度、姿态等。这些数据可通过GPS、惯性测量单元(IMU)等传感器获取。

  2. 路径规划:根据车辆的当前位置和目标位置,利用路径规划算法生成车辆应跟踪的最优路径。常见的路径规划算法包括A*算法和Dijkstra算法。

  3. 动力学模型:建立车辆的动力学模型,包括运动学和动力学特性,用于预测车辆未来的行为。

  4. 预测控制:基于车辆的动力学模型,MPC算法通过求解优化问题,寻找最优的控制指令,使车辆在预测时间内精确跟踪预定路径。

  5. 控制指令生成:根据MPC算法得到的最优控制指令,生成车辆的控制输出,例如车辆的油门、刹车、转向等。

  6. 控制执行:将控制指令传递给车辆的执行系统,如电机控制器和转向系统,实现对车辆的精准控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996770.html

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

相关文章

[ACP云计算]组件介绍

一、IaaS、PaaS、SaaS 二、交换机 三、VPC 四、ECS 云服务器ECS&#xff08;Elastic Compute Service&#xff09;是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS&#xff08;Infrastructure as a Service&#xff09;级别云计算服务。云服务器ECS免去了您采购IT硬件的前期…

jupyter项目使用Anaconda环境内核

1、创建虚拟环境 conda create --name myjupyter python3.7 2、进入虚拟环境 conda activate myjupyter 3、切换到自己jupyter notebook项目想在的目录 E: cd E:\first\project\jupyter\jupyter01 4、安装IPython内核包&#xff0c;这是Jupyter Notebook使用Python内核所必需的…

【MySQL 03】库的操作 (带思维导图)

前置&#xff1a;之后的所有的 SQL 语句中&#xff0c;凡是被中括号 [ ] 括起来的均为可选项。 &#x1f308; 一、创建数据库 数据库创建语句 创建数据库本质就是在 /var/lib/mysql 中创建一个目录。 if not exists&#xff1a;如果指定数据库不存在则创建该数据库&#xf…

[Java]面向对象-static继承

Static static表示静态&#xff0c;是Java中的一个修饰符&#xff0c;可以修饰成员方法、成员变量 静态变量&#xff1a; 被static修饰的成员变量&#xff0c;叫静态变量 特点&#xff1a; 被该类所有对象共享 调用方式&#xff1a;1.类名调用 2.对象名调用 静态方法&…

PyFluent入门之旅(8) PyFluent API 分类与区别

PyFluent提供了两种主要的API来与Ansys Fluent进行交互&#xff1a; Settings APITUI API 通过这两种接口方式&#xff0c;可以控制 Ansys Fluent 的各个方面&#xff0c;包括从网格生成到后处理的所有操作。 分类 Settings API pyFluent 的 Settings API类似于 Ansys Flu…

线性表——数据结构

线性表 文章目录 线性表线性表的定义和基本操作线性表的定义线性表的基本操作 线性表的顺序表示顺序表的定义顺序表的实现——静态分配顺序表的实现——动态分配顺序表的特点 线性表的定义和基本操作 线性表的定义 线性表&#xff08;Linear List&#xff09;的定义 ​ 线性…

略谈set与map的pair封装与进入哈希

引子&#xff1a;之前我们讲了红黑树的自实现&#xff0c;与小小的接口实现&#xff0c;那set与map的pair封装是如何实现的呢&#xff1f;&#xff0c;今天我们来一探究竟&#xff0c;而且我们也要进入新章节--哈希 对于operator--()的封装&#xff1a; 注意&#xff1a;牢记思…

动手学深度学习V2每日笔记(批量归一化、ResNet)

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1Uv411G71b/spm_id_fromautoNext&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d https://cv.gluon.ai/model_zoo/classification.html 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不…

【OpenHarmony】openharmony移植到RK3568------搭建开发环境

一、关于OpenHarmony OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;目标是面向全场景、全连接、全智能时代&#xff0c;基于开源的方式&#xff0c;搭建一个智能终端设备操作系统的框架和平台&#xff0c;促…

各种高端链游 区块链游戏 休闲小游戏DAPP开发

【西游闯关】-高端区块链3D手游 【我朝有马】-高端区块链3D手游 【弹弹岛2】-高端区块链3D手游

FiddlerCharles请求包导入Postman教程

前言 晓杰因开发需要经常需要使用抓包工具进行抓包然后使用POSTMAN测试&#xff0c;每次复制都很麻烦&#xff0c;就想着如何直接抓包工具中导出&#xff0c;postman导入&#xff01; Fiddler 这个有2个方案&#xff0c;第一个方案是因为第二个方案发现的&#xff01; 方案…

html+css+js网页设计 找法网2个页面(带js)ui还原度百分之90

htmlcssjs网页设计 找法网2个页面&#xff08;带js&#xff09;ui还原度百分之90 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑…

私域流量运营中的精准量化与开源AI智能名片O2O商城小程序的应用深度解析

摘要&#xff1a;在数字化时代&#xff0c;私域流量作为品牌直接与消费者建立联系的重要桥梁&#xff0c;其管理和运营策略直接影响着企业的市场竞争力。本文深入探讨了私域流量运营的底层逻辑——精准量化运营&#xff0c;详细分析了其核心要素及实现路径。同时&#xff0c;结…

Java学习篇(一)| 如何生成分布式全局唯一ID

Java学习篇&#xff08;一&#xff09;| 如何生成分布式全局唯一ID 一、使用场景二、常用方法1、UUID &#xff08;尽量不要用&#xff09;2、数据库自增 &#xff08;用的最多-但不适合做分布式ID&#xff09;3、Redis 生成ID &#xff08;可用&#xff09;1、原因2、通过代码…

AI革新3D建模:Stable Fast 3D工具的高效应用——图片快速生成3D模型

在3D建模领域,AI技术的介入正引发一场革命。Stable Diffusion(SD)的最新应用——Stable Fast 3D,为快速生成3D模型提供了一个强大的解决方案。以下是对这项技术及其应用的详细介绍和优化建议。 一、工具概览 Stable Fast 3D模型:这是一个基于AI的3D模型生成工具,可通过H…

Linux基础-总结篇

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 经过前面30多小节的内容介绍&#xff0c;我们从虚拟机的安装&#xff0c;到Linux文件的基本操作(增删改查)&#xff0c;打包…

贪心算法总结(3)

一、最长回文串 409. 最长回文串 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int longestPalindrome(string s) {int hash[127]{0};for(char&ch:s) hash[ch];int ret0;for(int&x:hash) retx/2*2; //技巧1 利用向下取整return ret<s.size()?…

linux文件——深度学习文件fd、文件系统调用

前言&#xff1a;从本片开始正式进入linux文件的学习&#xff0c;本片内容主要是文件的fd。 本篇内容博主将要先带友友回忆C语言中的文件操作接口&#xff0c;然后再过渡到操作系统中的系统调用的学习&#xff0c;最后理解操作系统中的文件操作。 ps&#xff1a;本节内容设计一…

Android 10.0 DocumentsUI文件管理器首次进入默认显示内部存储文件功能实现

1.前言 在10.0的系统rom定制化开发中,在关于文件管理器的某些功能中,在首次进入文件管理器的时候默认进入下载 文件夹,点击菜单选择内部存储的时候,会显示内部存储的内容,客户开发需要要求默认显示内部存储的文件 接下来分析下功能的实现 如图: 2.DocumentsUI文件管理器首…

入营测评题解

第一题&#xff1a;first 第二题&#xff1a;chengji 打擂台&#xff0c;每个数跟当前最大、最小值比较&#xff0c;维护当前最值即可。 #include<bits/stdc.h> using lllong long; using namespace std;const int N1e610;int n; int x;//1e9, ll最大9e18 ll maxn0,minn…