笔记96:前馈控制 + 航向误差

1. 回顾


对于一个 \dot{x}=Ax+Bu 系统而言,结构可以画作:

如果采用 u=-Kx 这样的控制策略,结构可以画作:(这就是LQR控制)

使用LQR控制器,可以通过公式 \dot{x}=Ax+Bu 和 u=-Kx 构建一个完美的负反馈系统;

a

a

但是有上一个博客可知,我们的误差型车辆横向动力学方程,有三项,而非两项,这就意味着使用LQR控制器是不够控制我们的这个系统的,因为LQR只对前两项起调节作用;

误差型车辆横向动力学模型

我们的目的:

  • 系统稳定,即 \dot{x}=0

  • 稳态误差为0 ,即 x=0

解释:如果只用【LQR + 反馈】来控制该系统

  • 无法实现两者同时为0,因为稳态误差是由小尾巴 C\dot{\theta _r} 带来的,如果只是 LQR 的话那么可以指定 K 矩阵满足 A=B_1K 即可使得系统 \dot{x}=Ax+B\delta 稳定且稳态误差为0,但是不管 K 如何取值都无法满足系统 \dot{x}=Ax+B\delta +C\dot{\theta _r} 稳定且稳态误差为0;

a

a

本博客主讲:解决LQR中的小尾巴


a

a

a

a

a

2. 引入前馈控制 -- 解决第三项


Step1:

a

a

Step2:现在系统已经稳定了,接下来我们的目的是令稳态误差也为0:

a

a

Step3:令横向误差 e_d 为0

a

a

Step4:令(假)航向误差 e_\varphi 为0

  • e_\varphi 的公式中只有 V_x 的值是受我们控制的,但是如果通过指定 V_x 的值使得稳态误差为0,那么不就意味着车辆只能以一个恒定的速度行驶了,这是不现实的
  • 我们这样想,本身航向误差其实是 \varphi +\beta -\theta _r,我们追求的目标其实是这个公式为0,所以 e_\varphi 不为0反倒是正确的,因为 e_\varphi 被定义为 \varphi-\theta _r,所以我们需要的是 e_\varphi=-\beta

综上:\dot{\theta _r}=k\dot{s}\approx kv_x

则有:

这里出现了一个 may,应该是整个车身受到的侧向力 F,但是这个 F/Cr 就什么都不是了,Cr 只是后轮的侧偏刚度,整车收到的侧向力 / 后轮的侧偏刚度,这啥都不是,所以需要继续化简,所幸这里的给我们提供了化简思路;

则有:e_\varphi=-\beta 符合我们期待的结果(因为 e_\varphi 并不是真正的航向误差)

因此对于下面这个公式,只需要管第一项就可以了,因为后面三项都达到了我们期待的标准

即:

a

a

总结:

  • 计算 K:通过 LQR 中的 Riccati 方程获得

  • 计算 \delta _f:通过下面的公式计算


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

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

相关文章

解密智慧校园解决方案:赋能数字化教育的未来

在当今数字化时代,智慧校园解决方案正以惊人的速度改变着教育界的面貌。随着科技的快速发展,数字化教育已经逐渐成为现代教育的核心。智慧校园解决方案作为一个集技术、教育和创新于一体的综合性项目,为学校提供了许多机遇和挑战。本文将揭示…

遇见桂林山水画廊,深层互联自动讲解耳机走进漓江

遇见山水,听懂山水。由深层互联独家打造,桂林漓江山水画廊导览工程,于不久前正式启动,声情并茂的真人语音引导着游客,走进有声有色的山水画卷中。 桂林山水甲天下,得天独厚的自然景观,奇幻瑰丽…

掌握4种常见电脑视频压缩方法,轻松解决空间危机

在现今数字化的时代,视频成为我们生活和工作中不可或缺的一部分。然而,随着高清、超高清视频的普及,视频文件的大小也随之增大,给存储、传输和分享带来了一定的挑战。为了克服这一问题,电脑视频压缩成为一项关键的技术…

SwiftUI获取用户的位置信息(CLLocationManager,CLLocationManagerDelegate)

本篇文章将会介绍一下在SwiftUI中如何通过CorLocation框架获取用户的位置信息,因为获取位置信息属于用户的隐私信息,所以需要在Info.plist文件里面加上访问位置权限的说明。 关于位置信息,可以请求两种级别的许可:always和when i…

视频剪辑去水印软件推荐 视频剪辑去水印方法

不会去水印,很难做好视频剪辑。选对软件、掌握去水印的方法,是每个剪辑师必须经历的过程。真正擅长视频剪辑去水印的软件,一定具备多种去水印功能。剪辑师可以根据素材的具体情况,选择最恰当的去水印方法。有关视频剪辑去水印软件…

JimuReport 积木报表 v1.7.5 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完…

工具JS:纯前端判断运行环境是公司内网还是公网环境

工具JS:纯前端判断运行环境是公司内网还是公网环境 判断内网方式一般就2种: 后端出接口,判断请求头内ip地址,是否公司内网的ip即可前端项目内处理,利用iframe、script、img等标签支持跨域(本文介绍&#…

手机如何开启开发者选项? (小米为例)

目录 问题小米开启开发者选项 待续、更新中 问题 小米开启开发者选项 设置 我的设备 手机全部参数信息 点击 miui版本 10次 提示开启开发者选项 设置中搜索:开发者 进入 开启USB调试和USB安装即可使用计算机hbuilder进行安装软件,进行调试 待续、更新中 1 顿号、: 先使用ctrl…

【日记】遇到了一个很奇怪的大爷(845 字)

正文 花了昨天和今天两天时间,把数据转移完了。这块 2T 的硬盘可以光荣退休了。目前是没什么存储焦虑了。 农发行净开发一些垃圾系统。今天没什么业务,但跟 ActiveX 斗智斗勇了一整天,最后实在搞不过 IE 浏览器。我也懒得管了,又不…

禁用layui树形表格的多选框checkbox

1. 背景 在使用树形表格渲染数据时,需要对数据进行批量操作。相对于选中数据后,再做错误提示。直接把数据的多选框禁用掉更加直观。 2. 实现 DisabledTableCheckBox: () > {// 获取所有行 var tableElem $(".layui-table-fixed-l");var …

Promise请求接口并处理返回结果,使用fetch函数

function request(url) {return new Promise((resolve, reject) > {fetch(url).then(response > {if (response.ok) {return response.json();} else {throw new Error(请求失败);}}).then(data > {resolve(data);}).catch(error > {reject(error);});}); }// 使用…

一脉阳光上市圆梦:销售成本高昂,两大创始人的行贿往事与屡屡被罚

《港湾商业观察》施子夫 2024年6月7日,江西一脉阳光集团股份有限公司(以下简称,一脉阳光)将正式在港交所主板挂牌上市(以下简称,一脉阳光;股票代码02522.HK),公司预计发…

解释单例模式、工厂模式和观察者模式的原理和应用场景

单例模式(Singleton Pattern) 原理 单例模式确保一个类仅有一个实例,并提供一个全局访问点来访问这个唯一实例。这个模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访…

7.0 android中Service的基础知识

service的定义: Service 是一个在后台执行长时间运行操作而不提供用户界面的组件。 允许在用户没有与应用交互时操作,或者执行一些用户交互之外的操作,如音乐播放、文件上传、文件下载等。 Service的使用不影响用户的交互,且由其…

adb dump当前可见的窗口

1、窗口信息 adb shell dumpsys window windows > w.txt2、dump当前可见的窗口activity windows系统 adb shell dumpsys activity | findStr mFocusmac系统 adb shell dumpsys activity | grep mFocus3、dump当前处于栈顶的activity windows系统 adb shell dumpsys activi…

Vue3【七】setup的语法糖setup简写方法

Vue3【七】setup的语法糖setup简写方法 Vue3【七】setup的语法糖setup简写方法 使用script标签式写法称为setup语法糖 组件名称默认位文件名 export 的内容可以省略 案例截图 案例目录 案例代码 Person.vue <template><div class"person"><h1>我…

这才是计科之 Onix XV6 源码分析(1、XV6-x86的启动)

这才是计科之 Onix & XV6 源码分析&#xff08;1、XV6-x86的启动&#xff09; 前言 Onix是一款相对于XV6来说功能更为健全的单核OS&#xff0c;由于功能更加完善&#xff0c;Onix也更加复杂。代码阅读起来会比较绕。 XV6是一款简单易读的多核操作系统&#xff0c;但其功…

【JMeter接口测试工具】第一节.JMeter简介和安装【入门篇】

文章目录 前言一、JMeter简介 1.1 JMeter基本介绍 1.2 JMeter优缺点二、JMeter安装 2.1 JMeter安装步骤 2.2 JMeter环境配置三、项目介绍 3.1 项目简介 3.2 API接口清单总结 前言 一、JMeter简介 1.1 JMeter基本介绍 JMeter 是 Apache 组织使用…

js模块(module)和导入,导出(import,export)

什么是模块&#xff08;module&#xff09; 一个模块&#xff08;module&#xff09;就是一个文件。一个脚本就是一个模块。就这么简单。 模块可以相互加载&#xff0c;并可以使用特殊的指令 export 和 import 来交换功能&#xff0c;从另一个模块调用一个模块的函数或者变量…

mysql(54) : dbcp多实例使用

mysql版本: 8.0.11 java版本: 8 maven版本: 3.6.3 mave依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version></dependency><dependency><groupId&…