线性二次调节器(LQR)

  • 线性二次调节器(LQR)
    • LQR原理
      • LQR中的L
      • LQR中的Q
      • LQR中的R

线性二次调节器(LQR)

线性二次调节器(Linear Quadratic Regulator 或LQR)是基于模型的控制器,它使用车辆的状态来使误差最小化。
Apollo使用LQR进行横向控制。横向控制包含四个组件:

  1. 横向误差、
  2. 横向误差的变化率、
  3. 朝向误差
  4. 朝向误差的变化率。
    变化率与导数相同,我们用变量名上面的一个点来代表。我们称这四个组件的集合为X,这个集合X捕获车辆的状态。除了状态之外,
    该车有三个控制输入:
  5. 转向
  6. 加速
  7. 制动
    我们将这个控制输入集合称为U。

LQR原理

LQR处理线性控制,这种类型的模型可以用等式来表示(详见下图)。x(上方带点)=Ax+Bu,x(上方带点)向量是导数,或X向量的变化率。所以x点的每个分量只是x对应分量的导数。等式x点=Ax+Bu,该等式捕捉状态里的变化,即x点是如何受当前状态 x 和控制输入 u 的影响的。

这个等式是线性的,因为我们用∆x来改变x时,并用∆u来改变u。x点的变化也会让这个等式成立(见下图等式)。现在我们了解了LQR中的L。

LQR中的L

LQR中的Q


这里的目标是为了让误差最小化,但我们也希望尽可能少地使用控制输入。由于使用这些会有成本,例如:耗费气体或电力。为了尽量减少这些因素,我们可以保持误差的运行总和和控制输入的运行总和.当车往右转的特别厉害之际,添加到误差总和中。当控制输入将汽车往左侧转时,从控制输入总和中减去一点。然而,这种方法会导致问题。因为右侧的正误差只需将左侧的负误差消除即可。对控制输入来说也是如此。相反,我们可以让x和u与自身相乘,这样负值也会产生正平方,我们称这些为二次项。我们为这些项分配权重,并将它们加在一起。
这里就是将上面公式里面的x里面的四个控制项目全部平方再加权相加.

LQR中的R

最优的u应该最小化二次项的和随时间的积分。在数学中我们将这个积分值称为成本函数(形式见下图)。我们经常以紧凑的矩阵形式表示加权二次项的总和。

这里的Q和R代表x和u的权重集合。xT和uT是转置矩阵,这意味着它们几乎与x和u相同,只是重新排列以便矩阵相乘
x乘以xT,u乘以uT,实质上是将每个矩阵乘以它自己。
最小化成本函数是一个复杂的过程,但通常我们可以依靠数值计算器为我们找到解决方案。Apollo就提供了一个这样的求解方案。在LQR中,控制方法被描述为u=-Kx。其中,K代表一个复杂的skeme,代表如何从x计算出u。
所以找到一个最优的u就是找到一个最优的K。
许多工具都可以轻松地用来解决K,尤其当你提供了模拟车辆物理特征的A、B,以及x和u的权重Q、R。

线性二次调节器(LQR)相关推荐

  1. 决策树-线性二分类+非线性二分类

    线性二分类 import matplotlib.pyplot as plt import numpy as np from sklearn.metrics import classification_ ...

  2. 线性二分类——机器学习

    目录 一.算法思想 二.算法原理 三.算法分析 四.源程序代码 五.运行结果及分析 六.总结 一.算法思想 (1)二分类:表示分类任务有两个类别,比如我们想识别图片中是不是狗,也就是说,训练一个分类器 ...

  3. 车辆工程(1)——线性二自由度汽车模型的运动方程

    1. 简化与假设 忽略转向系统的影响,以前轮转角为输入. 忽略悬架作用,认为汽车车厢只做平行于地面的平面运动,即汽车沿z轴的位移,绕y轴的俯仰角与饶x轴的侧倾角均为零. 汽车前进的速度u视为恒值. 侧 ...

  4. 线性二自由度汽车模型对前轮角阶跃输入的稳态响应分析(matlab/simulink)

    线性二自由度汽车模型对前轮角阶跃输入的稳态响应分析(matlab/simulink) 一.线性二自由度汽车模型 为了便于掌握操纵稳定性的基本特性,我们将多自由度的整车模型简化成为二自由度模型.主要有以 ...

  5. 汽车线性二自由度汽车模型 simulink建模,微分方程建模

    汽车线性二自由度汽车模型 simulink建模,微分方程建模 1.该模型适合初学者,对MATLAB.simulink有较好的指导和学习作用,同时对汽车动力学能有一个初步的认识. 2.本模型参考余志生第 ...

  6. 神经网络系列之五 -- 线性二分类的方法与原理

    https://www.cnblogs.com/woodyh5/p/12101581.html 系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击s ...

  7. 决策树算法模型的归类与整理(ID3&C4.5&CART&线性二分类&非线性二分类)

    决策树算法模型的归类与整理(ID3&C4.5&CART&线性二分类&非线性二分类) 一. 总结摘要 决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归. ...

  8. 基于 iris 数据集采用感知器 Perceptron 实现线性二分类

    基于 iris 数据集采用感知器 Perceptron 实现线性二分类 题目简述: 基于 iris 数据集(四个特征,三个类别),选取两个特征和两个类别,采用感知器 Perceptron 实现线性二分 ...

  9. 介绍一下实现建模中可能用到的时间序列预测之线性二次移动平均,Excel的简单操作

    文章目录 一.线性移动平均法是什么? 1 .主要特点 2.不足 3.计算公式 二.操作步骤 1. 准备数据 2. 进行第一次移动平均 3. 在第一次移动平均的基础上进行二次移动平均 4. 代入公式进行 ...

  10. 线性二自由度汽车模型的微分方程

    Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https ...

最新文章

  1. Bluetooth4.0
  2. 个人永久性免费-Excel催化剂功能第26波-正确的Excel密码管理之道
  3. 作业30-首页列表显示全部问答,完成问答详情页布局
  4. jmeter 用户数 线程数_如何使用jmeter编写TCP测试脚本
  5. 【目标检测】FPN(Fature Pyramid Network)详解
  6. mysql 从中英文混合串中截取字符
  7. 看完这篇文章就知道为什么要使用 Node.js啦!
  8. linux安装mysql_Linux学习笔记-安装MySQL
  9. 20款优秀的免费代码编辑器
  10. Enterprise Architect 15 使用指南
  11. HDU6438(优先队列+思维)
  12. validation accuracy vs train accuracy
  13. UE4 C++常用代码及格式
  14. Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?
  15. 《瞳孔:一个开放源码平台,用于普遍的眼球追踪和基于移动凝视的交互》论文阅读
  16. 面部识别:猴脸识别如何分辨真假 “美猴王”?
  17. java可见性之 Happens-before
  18. 7篇顶会论文带你梳理多任务学习建模方法
  19. 【Lintcode】1335. Repeated DNA Sequences
  20. STM32MP157系列教程连载-Linux系统移植篇4:STM32MP1微处理器之Bootloader移植

热门文章

  1. Rainmeter天气不能更新、win地图不能检测定位
  2. 开源Java CMS建站程序推荐
  3. 518抽奖软件教程之:公司、单位年会抽奖
  4. 36个精美完整网站网页完整源码HTML+CSS+JS
  5. 使用ftl生成word
  6. 逆波兰表达式java_采用JAVA对逆波兰表达式解析浅见
  7. kettle实现颗粒度转换
  8. WebDriver与浏览器版本对应关系
  9. 手机变成投影仪 建筑穿上节能衣
  10. python+django+mysql疫苗预约系统毕业设计毕设开题报告