笔记95:车辆横向动力学方程转化为误差形式 -- 详细推导过程

1. 非误差型车辆横向动力学方程

注:关于轮胎侧偏刚度的正负

  • 深蓝课程推导得到的车辆横向动力学返程使用的轮胎侧偏刚度是默认为正数;
  • 老王课程推导得到的车辆横向动力学方程使用的轮胎侧偏刚度是默认为负数;

1.1 深蓝课程推导得到的方程:

形式1:

形式2:

推导过程:第4章:车辆的横向优化控制-CSDN博客


1.2 老王课程推导得到的方程:

形式1:

推导过程:如下


1.3 对比形式1的方程

注意:可以发现两个课程所得到的形式1方程,很明显除了轮胎侧偏刚度的正负值取得不一样,其他的一模一样;

注意:下面我将使用老王课程中的形式1方程 -- 非误差型车辆横向动力学方程,来精确推导出误差型车辆横向动力学方程;


a

a

a

a

a

2. 推导误差型车辆横向动力学方程

注:使用如下方程作为基础开始推导


2.1 前导知识:如何计算向量的微分


2.2 将非误差型转化为误差型 -- 两个重要公式推导

注:将非误差型转化为误差型有两个重要公式;

公式1:

a

a

公式2:

a

a

总结:

  • 公式中的k是曲率
  • {s}'是投影中车辆速度的大小


2.3 将非误差型转化为误差型

注:本节主讲如何将 \dot{x}=Ax+Bu 转化为 \dot{e_{rr}}=\bar{A}e_{rr}+\bar{B}u

a

a

Step1:

a

a

Step2:确定误差型车辆横向动力学方程的状态变量 X 中每个分量的表达式

这里笔误,d是横向误差
  • e_d 为横向误差
  • e_\varphi 却并不是真正的航向误差,只是近似的航向误差;真正的航向误差应 = φ + β - θr;

解释:上面两步将 Frenet 坐标系中的物理量 E_d / E_\varphi 和车身坐标系中的物理量 V_y / \varphi 联系起来了

  • V_x 和 V_y 是车身坐标系中的物理量
  • \varphi 和 \delta 是标量,所以是三个坐标系公用的(\varphi:横摆角)(\delta:方向盘转角)
  • E_d 和 E_\varphi 是 Frenet 坐标系中定义的物理量,其中 E_d(横向误差)是矢量,E_\varphi(航向误差)是标量

a

a

Step3:开始推导

a

a

Step4:最终得到误差型的状态空间方程


2.4 遗留问题

注意:这里因为使用LQR控制而导致留下的小尾巴 C \dot{\theta _r},使用前馈控制来弥补

文章链接:笔记96:前馈控制 + 航向误差-CSDN博客

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

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

相关文章

如何计算 GPT 的 Tokens 数量?

基本介绍 随着人工智能大模型技术的迅速发展,一种创新的计费模式正在逐渐普及,即以“令牌”(Token)作为衡量使用成本的单位。那么,究竟什么是Token呢? Token 是一种将自然语言文本转化为计算机可以理解的…

kafka集成flink api编写教程

1.引入依赖&#xff08;pox.xml&#xff09; <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.13.6</version></dependency><dependency><gro…

【C++ | 拷贝赋值运算符函数】一文了解C++的 拷贝赋值运算符函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-09 1…

对WEB标准以及W3C的理解与认识

Web标准简单来说可以分为结构&#xff0c;表现&#xff0c;行为&#xff1a; 结构&#xff08;HTML&#xff09;: HTML&#xff08;HyperText Markup Language&#xff09;定义了网页的结构和内容。它通过各种标签来组织信息&#xff0c;如标题、段落、图像、链接等。HTML 提供…

antd DatePicker 日期 与 时间 分开选择

自定义组件 import { DatePicker } from "antd"; import dayjs from "dayjs"; import { FC, useRef } from "react";/*** 日期 与 时间 分开选择** 版本号: * "antd": "^5.17.4",* "dayjs": "^1.11.11"…

树莓派debain 12更换apt-get源到阿里源

1、备份 总共需要备份两个文件 a、/etc/apt/sources.list.d/raspi.list b、/etc/apt/sources.list 2、删除上述两个文件内到所有内容&#xff0c;然后添加如下内容 /etc/apt/sources.list.d/raspi.list deb https://mirrors.aliyun.com/debian/ bookworm main non-free non…

给gRPC增加负载均衡功能

在现代的分布式系统中&#xff0c;负载均衡是确保服务高可用性和性能的关键技术之一。而gRPC作为一种高性能的RPC框架&#xff0c;自然也支持负载均衡功能。本文将探讨如何为gRPC服务增加负载均衡功能&#xff0c;从而提高系统的性能和可扩展性。 什么是负载均衡&#xff1f; …

域名的端口号范围

域名的端口号范围是从0到65535。这些端口可以大致分为两类&#xff1a; 知名端口&#xff08;Well-Known Ports&#xff09;&#xff1a;范围从0到1023。这些端口号一般固定分配给一些服务&#xff0c;如21端口分配给FTP服务&#xff0c;25端口分配给SMTP&#xff08;简单邮件…

新手如何学习编程!

选择编程语言&#xff1a;根据你的兴趣和目标选择一门编程语言。例如&#xff0c;Python 适合初学者和数据科学&#xff0c;JavaScript 适合网页开发&#xff0c;Java 和 C# 适合企业级应用。 理解基本概念&#xff1a;学习编程的基本概念&#xff0c;如变量、数据类型、控制结…

Ansible——stat模块

目录 参数总结 返回值 基础语法 常见的命令行示例 示例1&#xff1a;检查文件是否存在 示例2&#xff1a;获取文件详细信息 示例3&#xff1a;检查目录是否存在 示例4&#xff1a;获取文件的 MD5 校验和 示例5&#xff1a;获取文件的 MIME 类型 高级使用 示例6&…

[leetcode]longest-common-prefix 最长公共前缀

. - 力扣&#xff08;LeetCode&#xff09; 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出&…

第52集《摄大乘论》

请大家打开《讲义》第一七二页&#xff0c;戊七、辨修圆满。 前一科我们讲到观照力。这观照力&#xff0c;六波罗蜜多里面的观照力&#xff0c;是观照我空、法空的真如理&#xff0c;使令内心能够得到安住&#xff1b;另外在六波罗蜜多以外&#xff0c;又开出四种波罗蜜多&…

03 Linux 内核数据结构

Linux kernel 有四种重要的数据结构:链表、队列、映射、二叉树。普通驱动开发者只需要掌握链表和队列即可。 链表和队列 Linux 内核都有完整的实现,我们不需要深究其实现原理,只需要会使用 API 接口即可。 1、链表 链表是 Linux 内核中最简单、最普通的数据结构。链表是一…

19082 中位特征值

【2022】贝壳找房秋招测试开发工程师笔试卷2 给你一棵以T为根&#xff0c;有n个节点的树。&#xff08;n为奇数&#xff09;每个点有一个价值V&#xff0c;并且每个点有一个特征值P。 每个点的特征值P为&#xff1a;以这个点为根的子树的所有点&#xff08;包括根&#xff09;…

C#面:应⽤程序池集成模式和经典模式的区别

C# 应用程序池是用于托管和执行应用程序的进程。在 IIS&#xff08;Internet Information Services&#xff09;中&#xff0c;C# 应用程序池有两种集成模式&#xff1a;集成模式和经典模式。 集成模式&#xff08;Integrated Mode&#xff09;&#xff1a; 集成模式是 IIS 7…

深度网络及经典网络简介

深度网络及经典网络简介 导语加深网络一个更深的CNN提高识别精度Data Augmentation 层的加深 经典网络VGGGoogLeNetResNet 高速学习迁移学习GPU分布式学习计算位缩减 强化学习总结参考文献 导语 深度学习简单来说&#xff0c;就是加深了层数的神经网络&#xff0c;前面已经提到…

Java:110-SpringMVC的底层原理(上篇)

SpringMVC的底层原理 在前面我们学习了SpringMVC的使用&#xff08;67章博客开始&#xff09;&#xff0c;现在开始说明他的原理&#xff08;实际上更多的细节只存在67章博客中&#xff0c;这篇博客只是讲一点深度&#xff0c;重复的东西尽量少说明点&#xff09; MVC 体系结…

深入理解指针(三)

一、指针运算 1.1指针-整数 下面我们来看一个指针加整数的例子&#xff1a; #include<stdio.h> int main() { int arr[10] { 1,2,3,4,5,6,7,8,9,10 }; int* p &arr[0]; int i 0; int sz sizeof(arr) / sizeof(arr[0]); for (i 0; i < …

Netty原理与实战

1.为什么选择Netty&#xff1f; 高性能低延迟 事件分发器&#xff1a; reactor采用同步IO&#xff0c;Proactor采用异步IO 网络框架选型&#xff1a; 2.Netty整体架构设计&#xff08;4.X&#xff09; 三个模块&#xff1a;Core核心层、Protocal Support协议支持层、…

leetcode:不同的二叉树

class Solution { public:int numTrees(int n) {vector<int> dp(n1);dp[0] 1;dp[1] 1;for(int i 2;i < n;i){for(int j 1;j < i;j) // 当根节点为j时{dp[i] dp[j-1] * dp[i-j];}}return dp[n];} }; /* dp[i] i个不同的数组成的二叉搜索数的个数假设 i 5当根…