LQR控制算法推导以及简单分析

9 篇文章 58 订阅
订阅专栏

首先,这篇文章是看了几个大神的博客后,自己抄录以及整理的内容,其中有些自己的想法,但是原理部分基本都是学习大神们的,在此先说明一下。

1 全状态反馈控制系统

在介绍LQR之前,首先,先回顾一下现在控制理论中的基本的控制器 —————— 全状态反馈控制,上图
在这里插入图片描述
假设有一个线性系统用状态向量表示:
{ x ˙ = A x + B u y = C x + D u (1) \begin{cases} \dot{x} = Ax + Bu & \\ y = Cx + Du & \end{cases} \tag{1} {x˙=Ax+Buy=Cx+Du(1)
其中, x ( t ) ∈ R n x(t) \in R^n x(t)Rn u ( t ) ∈ R m u(t) \in R^m u(t)Rm,初始条件是 x ( 0 ) x(0) x(0)
在此,我们需要设计一个状态反馈控制器
u = − K x (2) u = -Kx \tag{2} u=Kx(2)
使上述控制器能达到期望的稳定性能,将式(2)带入系统状态方程(1)中,有
x ˙ = ( A − B K ) x = A c x (3) \dot{x} = (A - BK)x = A_{c}x \tag{3} x˙=(ABK)x=Acx(3)
设定系统中的各个状态量都可知,式(1)所示的开环系统,传递函数的极点就是系统矩阵A的特征值。现在变换成了式(2)的闭环形式,通过配置反馈矩阵 K K K,可以使得闭环系统达到所期望的系统状态。(注意,这种控制器设计与矩阵C、D没什么关系)
SO,来了一个新的问题,极点在什么样的位置会使得系统的性能较好呢?并且,当系统变量很多的时候,就算设计极点已经达到了最优,矩阵K的计算如何计算呢?
因此,LQR提供了如下思路。

2 LQR

LQR的目标就是找到一组控制量 u 0 , u 1 , . . . u_0,u_1,... u0,u1,...,使得同时有 x 0 , x 1 , . . . x_0,x_1,... x0,x1,...足够小(系统达到稳定状态), u 0 , u 1 , . . . u_0,u_1,... u0,u1,...足够小(控制量尽量小的变化),选取代价函数为
J = 1 2 ∫ 0 ∞ x T Q x + u T R u   d t (4) J = {1 \over 2}\int_0^\infty {x^TQx + u^TRu} \space dt \tag{4} J=210xTQx+uTRu dt(4)
其中,Q、R就是需要设计的半正定矩阵和正定矩阵。
看上式(4)是不是线代中的二次型(线代真的是一门重要的学科,工程中大量都是线代的运算),而且还是那种只有平方项的二次型,这样就成了最小二乘法的问题。代价函数 J J J需要达到最小值,那么在 t t t趋近于无穷时,状态向量 x ( t ) x(t) x(t)肯定趋近于0,即是达到了系统稳态;同理, t t t趋近于无穷时,控制向量 u ( t ) u(t) u(t)也会趋近于0,意味着,随着时间的推移,需要对系统施加的控制量会越来越小,意味着使用最小的控制量使得系统达到了最终控制目标。

下面来聊聊Q、R值的选取,一般来说,选取Q、R矩阵的时候,为了方便观察各个系统状态量而选取对角阵,增加Q的一个值,意味着这个值作用的系统状态量,将以更快的速度衰减到0,这时候,举个栗子还是很必要的,比如, Q 11 Q_{11} Q11选取较大的值,会让 x 1 x_1 x1很快的衰减到0;另外一方面,加大 R R R的值,会使得对应的控制量减小,控制器执行更少的动作,意味着系统的状态衰减将变慢。所以, Q 、 R Q、R QR的选取,要综合看具体的实际应用场景来调节,俗话说,鱼和熊掌不可兼得,这个矛盾就像做的轨迹跟踪MPC中的设置不同的权重一样,期望车辆后轴心cte值越小,那么到了转弯处必须要很大幅度的刹车,以及打方向盘,速度以及yaw都会大幅度变化,而如果期望执行器动作越小,那么就无法保证cte的准确度一样。

好了,上面介绍了一些参数的意义问题,下面重点就是公式的推导了,在不同大神那看到了不同的推导方式,下面就把自己比较欣赏的一种写出来吧,虽说过程也很重要,但是工程嘛,只要结果对,效果好,选个自己看起来舒服的方式就好了,开始推导过程

  1. u = − K x u = -Kx u=Kx代入代价函数后,有
    J = 1 2 ∫ 0 ∞ x T ( Q + K T R K ) x   d t (5) J = {1 \over 2}\int_0^\infty x^T(Q + K^TRK)x \space dt \tag{5} J=210xT(Q+KTRK)x dt(5)
  2. 假设纯在一个常量矩阵 P P P使得,
    d d t ( x T P x ) = − x T ( Q + K T R K ) x (6) {d \over dt}(x^TPx) = - x^T(Q + K^TRK)x \tag{6} dtd(xTPx)=xT(Q+KTRK)x(6)
  3. 把式(6)代入(5)后,有
    J = − 1 2 ∫ 0 ∞ d d t x T ( P ) x   = 1 2 x T ( 0 ) P x ( 0 ) (7) J = -{1 \over 2}\int_0^\infty \frac{d}{dt}x^T(P)x \space = {1 \over 2}x^T(0)Px(0) \tag{7} J=210dtdxT(P)x =21xT(0)Px(0)(7)
    式(7)的意思就是,t趋近于无穷时,系统状态向量x(t)趋近于0,这样就直接结算出了积分方程。
  4. 把式(6)左边微分展开,
    x ˙ T P x + x T P x ˙ + x T Q x + x T K T R K x = 0 \dot{x}^{T}Px + x^{T}P\dot{x}+x^TQx+x^TK^TRKx = 0 x˙TPx+xTPx˙+xTQx+xTKTRKx=0
    状态变量x的微分用式(3)表示,
    x T A c T P x + x T P A c x + x T Q x + x T K T R K x = 0 x^{T}A^{T}_cPx+x^{T}PA_{c}x+x^TQx+x^TK^TRKx = 0 xTAcTPx+xTPAcx+xTQx+xTKTRKx=0
    整理后,有
    x T ( A c T P + P A c + Q + K T R K ) x = 0 (8) x^{T}(A^{T}_{c}P+PA_{c}+Q+K^{T}RK)x=0 \tag{8} xT(AcTP+PAc+Q+KTRK)x=0(8)
    这样,就又回到了二次型的问题,如果式(8)要有解,那么括号里面的部分必须等于0.
    A c T P + P A c + Q + K T R K = 0 (9) A^{T}_{c}P+PA_{c}+Q+K^{T}RK = 0 \tag{9} AcTP+PAc+Q+KTRK=0(9)
    A c = A − B K A_c = A-BK Ac=ABK代入式(9)
    ( A − B K ) T P + P ( A − B K ) + Q + K T R K = 0 (10) (A-BK)^{T}P+P(A-BK)+Q+K^{T}RK = 0 \tag{10} (ABK)TP+P(ABK)+Q+KTRK=0(10)
    A T P + P A + Q + K T R K − K T B T P − P B K = 0 (11) A^{T}P+PA+Q+K^{T}RK-K^{T}B^{T}P-PBK=0 \tag{11} ATP+PA+Q+KTRKKTBTPPBK=0(11)
  5. 式(11)还是一个关于 K K K的二次型,这样会导致计算量太复杂,so只要这个等式成立就好,那么这里令 K = R − 1 B T P K = R^{-1}B^TP K=R1BTP,然后式(11),可以化为
    A T P + P A + Q + K T R ( R − 1 B T P ) − K T B T P − P B ( R − 1 B T P ) = 0 A^{T}P+PA+Q+K^{T}R(R^{-1}B^TP)-K^{T}B^{T}P-PB(R^{-1}B^TP)=0 ATP+PA+Q+KTR(R1BTP)KTBTPPB(R1BTP)=0
    A T P + P A + Q − P B R − 1 B T P = 0 (12) A^{T}P+PA+Q-PBR^{-1}B^TP=0 \tag{12} ATP+PA+QPBR1BTP=0(12)
    式(12)中, A , B , Q , R A,B,Q,R A,B,Q,R都是已知量,那么通过式(12)可以求解出 P P P,式(12)就是著名的Riccati方程。

总结

上面,从理论以及公式推导两个方面,介绍了LQR,现在从头看一下LQR的思路:

  • 选择参数矩阵Q,R
  • 求解Riccati方程得到矩阵P
  • 根据P计算 K = R − 1 B T P K=R^{-1}B^{T}P K=R1BTP
  • 计算控制量 u = − K x u=-Kx u=Kx

MPC与LQR比较

MPC和LQR两种控制方式有很多的相似之处,但是也有很多不相同的地方,

  • 首先,LQR的研究对象是现代控制理论中的状态空间方程给出的线性系统,而MPC的研究对象可以是线性系统,也可以是非线性系统。不过现在很多的做法都是将非线性系统线性化,然后进行相关计算,具体要根据自己的工程情况来确定哪种方式比较好,比如之前做MPC的时候,线控车底层速度控制接口就是加速度,那就没必要根据IMU再套嵌个一层PID。
  • 其次,既然是优化问题,那就离不开目标函数的设计,LQR的目标函数在上面已经有描述,MPC的目标函数,多数都是多个优化目标乘以不同权重然后求和的方式。虽然方式不同,不过都是对达到控制目标的代价累计。
  • 最后,工作时域上的不同,LQR的计算针对同一工作时域,在一个控制周期内,LQR只计算一次,并将此次计算出的最优解下发给控制器即可;而MPC是滚动优化的,计算未来一段时间内,每个采样周期都会经过计算,得出一组控制序列,但是只将第一个控制值下发给控制器。

Reference:

  1. F.L. Lewis .<< Linear Quadratic Regulator (LQR) State Feedback Design >>
  2. https://blog.csdn.net/u013914471/article/details/84324754?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
  3. https://zhuanlan.zhihu.com/p/72605138
  4. https://blog.csdn.net/heyijia0327/article/details/39270597
基于车辆运动学模型得LQR总结与分析推导
05-09
基于车辆运动学模型得LQR总结与分析推导,先分析运动学模型的离散误差状态空间方程,根据此做横向LQR控制分析及其推导,其次总结CSDN中LQR算法的理解及其推导,介绍了全状态反馈控制系统,对LQR进行了具体分析及其公式推导。 其中部分为:黎卡提方程的求解 针对黎卡提方程,可以采用循环迭代的思想求解P: 1)令等式右边的P_old=Q; 2)计算等式右边的值为P_new 3)比较P_old和P_new,若两者的差值小于预设值,则认为等式两边相等;否则再令P_old=P_new,继续循环。
LQR 控制器:simulink 的 LQR 控制器-matlab开发
05-29
该块包含一个 LQR 控制器。 块的输入是状态空间 A、B 矩阵,以及 LQR 的 Q 和 R 矩阵。
LQR的横向控制算法仿真实现
最新发布
jianmo的博客
03-26 909
在现代控制理论的领域中,线性二次型调节器(Linear Quadratic Regulator,简称LQR)被广泛认可为一种高效的优化控制方法。LQR的核心优势在于其能力,通过最小化一个定义良好的二次型代价函数,来设计出能够引导系统达到预定性能指标的控制策略。通过将连续时间模型转换为离散时间模型,我们可以有效地利用LQR算法进行控制设计,实现对车辆横向运动的精确控制。为状态误差,在控制过程中,我们期望状态误差逐渐稳定趋近为0,因此,定义代价函数。即为最终的最优反馈矩阵,否则继续循环。为该系统的控制矩阵,
LQR控制基本原理(包括Riccati方程具体推导过程)
weixin_43487974的博客
10-07 1万+
LQR控制原理及详细推导过程
自动驾驶(七十二)---------LQR控制算法
热门推荐
zhouyy858
07-27 4万+
之前有写过MPC的控制算法,主要介绍的也是理论部分,在实际使用过程中发现C++没有高效的优化方法,类似python中的cvxpy的库,所以想绕过去,研究一下LQR控制算法。 1. PID控制系统 这里并不是要介绍PID系统,而是为了方便理解LQR,首先我们看PID系统中的P调节方法: 假设我们现在状态是x0,我们有状态方程 : (u为控制矩阵)...
自动驾驶技术车道保持功能LQR控制算法建模与仿真
04-22
资源为基于汽车二自由度动力学模型的LKA(车道保持)功能LQR控制算法的simulink模型以及相关参数的.m文件。下载后可直接使用MATLAB与CarSim进行联合仿真。可供初学者学习理解LQR控制算法的实现原理。
LQR控制器程序(倒立摆为例)
12-03
最优控制LQR控制器的MATLAB控制程序,修改程序中的状态方程、Q、R矩阵可直接使用
LQR控制算法的浅析
weixin_48117550的博客
09-10 5428
LQR控制算法的浅析
车辆控制知识总结(一):LQR算法
Yancey_2020的博客
08-15 2万+
车辆控制知识总结(一):LQR算法
LQR控制算法及matlab/simulink仿真
dangdangdang1的博客
02-07 2万+
这里写自定义目录标题欢迎使用Markdown编辑器1. LQR控制算法介绍1.1 全状态反馈控制1.2 LQR控制推导2. 倒立摆模型仿真2.1 倒立摆状态空间方程推导2.2 开环仿真2.3 闭环LQR仿真2.4 LQR对比仿真功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图
LQR:Linear Quadratic Regulator 线性二次型调节器
Eric的博客
08-17 1万+
LQR:Linear Quadratic Regulator1 前言2 现代控制理论基础2.1 状态空间描述2.2 线性定常连续系统的状态空间描述框图(开环)2.3 线性定常连续系统的反馈控制2.3.1 全状态反馈控制器3 LQR设计控制器的方法3.1 什么是二次型3.2 二次型最优控制3.3 LQR 调节器设计3.3.1 QR矩阵选取3.3.2 求解Riccati 方程得到矩阵PPP3.3.3 计算K=R−1BTPK=R^{-1}B^TPK=R−1BTP 1 前言 如果所研究的系统是线性的,且性能指标为状
基于遗传算法LQR控制器(1998)
11-16
基于遗传算法LQR控制器(1998)
基于遗传算法LQR控制
04-02
该资源是matlab智能算法程序,经测试真实可靠。
Matlab/Simulink基于运动学的LQR轨迹跟踪控制算法
02-17
通过Matlab/simulink完成控制系统搭建,由于网上都是基于动力学的LQR控制,所以基于运动学的LQR控制需要自己搭建。适合学习无人驾驶车辆控制的朋友。在本人博客中已展示详细控制器函数,如仅对控制算法感兴趣可以阅读对应博客。本资源提供路径,控制算法,车辆模型和可视化界面,模型由simulink搭建。
双旋翼飞机模型lqr控制算法
11-20
双旋翼飞机模型lqr控制器matlab程序
LQR控制Matlab,lqr控制matlab仿真,matlab
09-10
用于无人驾驶车辆横向控制,基于动力学模型的LQR算法,能够实现较好的跟踪效果
[LQR简要快速入门]+[一级倒立摆的LQR控制]
高能阿博特的博客
09-17 8552
[LQR简要快速入门]+[一级倒立摆的LQR控制]1. 什么是LQR2. 公式含义3. 倒立摆的建模3.1 线性化3.2 状态空间建立4. LQR算法实现5. MATLAB代码仿真6. 优缺点 1. 什么是LQR LQR是一种最优控制算法,简要讲即为寻求一种算法,使得在满足系统稳定性能的同时,系统在达到稳定的过程中消耗的能量也最少(具有实际意义)。 利用最优控制理论的知识可以知道,既然要达到两个指标(1. 性能;2. 能量)的最优,可以很容易列出积分形式的最优指标: J=∫0∞(xTQx+uTRu)dt(1
控制】PID和LQR
uytguytgf的博客
06-15 7894
[ed˙ed¨eφ˙eφ¨]=[01000Cαf+CαrmVx−Cαf+CαrmaCαf−bCαrmVx00010aCαf−bCαrIzVx−aCαf−bCαrIza2Cαf−b2CαrIzVx][eded˙eφeφ˙]+[eded˙eφeφ˙]\begin{bmatrix} \dot{e_d} \\ \ddot{e_d} \\ \dot{e_\varphi} \\ \ddot{e_\varphi} \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 &amp
LQR控制算法及代码实践
Forwarding3的博客
06-27 3442
LQR控制算法介绍及apollo上的应用
sudo:apt-get:command not found
10-24
当在Linux系统上运行“sudo:apt-get:command not found”错误时,可能是因为您使用的是不支持apt包管理器的Linux发行版。sudo是Linux系统管理指令,允许系统管理员让普通用户执行一些或全部的root命令的工具。在Linux系统中,使用sudo命令时如果提示“command not found”,可能是因为系统没有安装sudo或者没有配置环境。如果/etc/sudoers.d文件不存在,则需要安装sudo,可以使用命令“apt-get install sudo”进行安装。如果提示“E: Unable to locate package sudo”的错误,则需要先执行命令“apt-get update”,再执行“sudo apt-get install”命令。如果/etc/sudoers.d文件存在,则说明系统已经安装了sudo,只不过没有配置环境。在sudo会话中,PATH变量已经被重置成默认状态,如果PATH变量中不包含所要运行的程序所在的目录,就会得到“command not found”的错误提示。要改变PATH在sudo会话中的初始值,可以使用命令“vi /etc/sudoers”打开/etc/sudoers文件,找到“secure_path”一行,在执行sudo命令时,“secure_path”中包含的路径将被当做默认PATH变量使用。可以在“secure_path”下添加所需要的路径(如/usr/local/bin),编辑完成后,按“ESC”键切换为命令行模式,输入“:wq”保存并退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • LQR控制算法推导以及简单分析 62033
  • OpenWRT设置SmartDNS+ADGuardHome 41567
  • AGV-麦克纳姆轮小车控制总结 23754
  • Ipopt安装 17751
  • MPC(3)常用车辆模型 12858

分类专栏

  • Apollo 29篇
  • 系统工具配置 21篇
  • C++ 43篇
  • 设计模式 25篇
  • ROS 学习笔记 8篇
  • 控制 9篇

最新评论

  • Apollo学习笔记(25)旋转矩阵、欧拉角、四元数理论及其转换关系

    CSDN-Ada助手: 你要暗自努力然后惊艳所有人。

  • LQR控制算法推导以及简单分析

    qq_26344349: 公式7的积分结果,应该是 无穷时刻 - 0时刻,无穷时刻x趋于0,因为系统稳定, 公式6 加上负号,J的转化结果就没有负号了

  • LQR控制算法推导以及简单分析

    我自是年少,韶华倾负944: 公式6那里为什么要加个负号呢?

  • Apollo学习笔记(12)Lattice Planner规划算法

    疯狂的头铁石头: 是不是可以有一条全局路径,或者你设定的纵向规划距离长一点,让它可以看到后续的参考线

  • AGV-麦克纳姆轮小车控制总结

    不会是要长脑子了吧: a和b是不是对应矩形长宽的一半?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Ubuntu20.04开机后,弹出检测到系统程序出现问题解决方法
  • 修复ROS2使用zsh无法用tab补全 ros2 指令的相关问题
  • Ubuntu核显独显驱动冲突导致无法启动解决办法
2023年5篇
2022年15篇
2021年56篇
2020年43篇
2019年16篇

目录

目录

评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司荆门SEO按天计费公司淮北建设网站哪家好广东百度seo多少钱拉萨网站优化按天收费推荐文山品牌网站设计报价龙华网站优化推广报价大同外贸网站制作报价六安网站优化软件价格鹤岗百度标王报价长沙网站优化报价北京阿里店铺托管多少钱舟山网络推广定西百度爱采购报价呼和浩特网站优化推广海口seo排名哪家好喀什网站seo优化多少钱韶关优化价格大浪SEO按天扣费推荐梧州建设网站多少钱嘉兴网站优化按天计费公司山南百姓网标王多少钱盐城百度竞价包年推广多少钱长春阿里店铺运营公司承德网站制作昆明网站推广系统推荐铜陵网站推广系统价格西安百度关键词包年推广多少钱天门外贸网站建设报价四平网站优化按天计费推荐天水设计公司网站推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化