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

笔记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.lryc.cn/news/365752.html

相关文章:

  • 延时任务工具类
  • springboot下载grpc编译文件,报错缺少protoc-gen-grpc-java:1.34.1:exe不存在
  • 【面试干货】 非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较
  • JAVA学习-练习试用Java实现“简化路径”
  • STM32——ADC篇(ADC的使用)
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • 深度评价GPT-4o:探索人工智能的新里程碑
  • Linux命令篇(六):vi/vim专项
  • Java 还能不能继续搞了?
  • 【日记】遇到了一个很奇怪的大爷(845 字)
  • Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明
  • GAT1399协议分析(10)--视频定义及解析
  • 【C语言】学生管理系统:完整模拟与实现
  • pypi 发布自己的包
  • 关闭windows11磁盘地址栏上的历史记录
  • DDS自动化测试落地方案 | 怿星科技携最新技术亮相是德科技年度盛会
  • 新品!和芯星通全系统全频高精度板卡UB9A0首发
  • Cognita RAG:模块化、易用与可扩展的开源框架
  • linux虚拟机免密登录配置
  • Qt_C++ RFID网络读卡器Socket Udp通讯示例源码
  • C++ 实现Python 列表list 的两种方法
  • vue3+ elementPlus PC端开发 遇到页面已进入就form校验了的问题
  • transformers DataCollator介绍
  • rust学习(字节数组转string)
  • Docker:技术架构演进
  • 汽车MCU虚拟化--对中断虚拟化的思考(2)
  • python的继承
  • 组件的注册和引用
  • 诊所如何赢得患者?做好这两点很关键!
  • Qwen2本地部署的实战教程