零碎的知识点(七):线性二次调节器(LQR)是什么?

线性二次调节器(LQR)是什么?

线性二次调节器(LQR) 是一种经典的最优控制方法,用于求解线性系统的状态反馈控制问题。其目标是在满足动态约束的前提下,通过设计状态反馈控制器,使系统的性能指标达到最优。


1. LQR的定义与目标

LQR主要解决以下问题:

  • 系统的状态描述为线性动态系统:
    x ˙ ( t ) = A x ( t ) + B u ( t ) \dot{x}(t) = A x(t) + B u(t) x˙(t)=Ax(t)+Bu(t)

    其中:

    • x ( t ) ∈ R n x(t) \in \mathbb{R}^n x(t)∈Rn 是系统状态向量;
    • u ( t ) ∈ R m u(t) \in \mathbb{R}^m u(t)∈Rm 是控制输入;
    • A ∈ R n × n A \in \mathbb{R}^{n \times n} A∈Rn×n 是状态矩阵;
    • B ∈ R n × m B \in \mathbb{R}^{n \times m} B∈Rn×m 是控制矩阵。
  • 设计一个控制律 u ( t ) = − K x ( t ) u(t) = -K x(t) u(t)=−Kx(t),其中 K K K 是控制增益矩阵,使以下性能指标 J J J 最小化:
    J = ∫ 0 ∞ ( x ( t ) T Q x ( t ) + u ( t ) T R u ( t ) ) d t J = \int_{0}^{\infty} \left( x(t)^T Q x(t) + u(t)^T R u(t) \right) dt J=∫0∞(x(t)TQx(t)+u(t)TRu(t))dt

    其中:

    • Q ∈ R n × n Q \in \mathbb{R}^{n \times n} Q∈Rn×n 是对状态 x ( t ) x(t) x(t) 的加权矩阵(正定或半正定);
    • R ∈ R m × m R \in \mathbb{R}^{m \times m} R∈Rm×m 是对控制输入 u ( t ) u(t) u(t) 的加权矩阵(正定)。

2. LQR的原理

性能指标 J J J

性能指标 J J J 的物理意义是权衡系统偏离零状态(通过 x ( t ) T Q x ( t ) x(t)^T Q x(t) x(t)TQx(t))和控制能量消耗(通过 u ( t ) T R u ( t ) u(t)^T R u(t) u(t)TRu(t))的代价。设计 Q Q Q 和 R R R 时:

  • 较大的 Q Q Q 强调减少状态偏离;
  • 较大的 R R R 强调控制能量的节省。
最优解的计算

LQR 的核心是通过Riccati方程 计算最优状态反馈增益矩阵 K K K。具体步骤如下:

  1. 计算解 Riccati 方程的对称正定矩阵 P P P:
    A T P + P A − P B R − 1 B T P + Q = 0 A^T P + P A - P B R^{-1} B^T P + Q = 0 ATP+PA−PBR−1BTP+Q=0
    这是一个连续时间代数 Riccati 方程(CARE)。
  2. 利用 P P P 计算反馈增益矩阵:
    K = R − 1 B T P K = R^{-1} B^T P K=R−1BTP
控制律

最优控制律为:
u ( t ) = − K x ( t ) u(t) = -K x(t) u(t)=−Kx(t)


3. LQR的性质

  • 稳定性 :如果 Q Q Q 和 R R R 正定,LQR 控制器设计的闭环系统是渐进稳定的。
  • 鲁棒性:LQR 对模型的参数扰动具有一定的鲁棒性,但仅限于小扰动。
  • 灵活性 :通过调整 Q Q Q 和 R R R,可以改变状态和控制能量之间的权衡。

4. 举例说明

问题描述

一个简单的二阶质量-弹簧-阻尼系统:
m x ¨ + c x ˙ + k x = F m \ddot{x} + c \dot{x} + k x = F mx¨+cx˙+kx=F

将其转换为状态空间形式:

x ˙ 1 x ˙ 2 \] = \[ 0 1 − k m − c m \] \[ x 1 x 2 \] + \[ 0 1 m \] u \\begin{bmatrix} \\dot{x}_1 \\\\ \\dot{x}_2 \\end{bmatrix} = \\begin{bmatrix} 0 \& 1 \\\\ -\\frac{k}{m} \& -\\frac{c}{m} \\end{bmatrix} \\begin{bmatrix} x_1 \\\\ x_2 \\end{bmatrix} + \\begin{bmatrix} 0 \\\\ \\frac{1}{m} \\end{bmatrix} u \[x˙1x˙2\]=\[0−mk1−mc\]\[x1x2\]+\[0m1\]u 其中: * x 1 = x x_1 = x x1=x 是位移; * x 2 = x ˙ x_2 = \\dot{x} x2=x˙ 是速度; * u = F u = F u=F 是控制输入。 设参数为: * m = 1 m = 1 m=1 kg; * c = 0.5 c = 0.5 c=0.5 Ns/m; * k = 2 k = 2 k=2 N/m; * Q = diag ( 1 , 1 ) Q = \\text{diag}(1, 1) Q=diag(1,1); * R = 0.1 R = 0.1 R=0.1。 ##### 解步骤 1. 确定状态矩阵 A A A 和控制矩阵 B B B: A = \[ 0 1 − 2 − 0.5 \] , B = \[ 0 1 \] A = \\begin{bmatrix} 0 \& 1 \\\\ -2 \& -0.5 \\end{bmatrix}, \\quad B = \\begin{bmatrix} 0 \\\\ 1 \\end{bmatrix} A=\[0−21−0.5\],B=\[01

  1. 解 Riccati 方程,得到 P P P:
    P = [ 2.236 1.118 1.118 2.618 ] P = \begin{bmatrix} 2.236 & 1.118 \\ 1.118 & 2.618 \end{bmatrix} P=[2.2361.1181.1182.618]

  2. 计算最优增益矩阵 K K K:
    K = R − 1 B T P = [ 4.472 3.618 ] K = R^{-1} B^T P = \begin{bmatrix} 4.472 & 3.618 \end{bmatrix} K=R−1BTP=[4.4723.618]

  3. 最优控制律:
    u ( t ) = − K x ( t ) = − [ 4.472    3.618 ] [ x 1 x 2 ] u(t) = -K x(t) = -[4.472 \; 3.618] \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} u(t)=−Kx(t)=−[4.4723.618][x1x2]

仿真结果

在闭环控制下,系统状态 x ( t ) x(t) x(t) 会快速趋于零,同时控制输入 u ( t ) u(t) u(t) 保持较小,体现了状态偏差和控制能量的优化。


5. 实际应用

  1. 航天器姿态控制

    LQR 用于最优设计航天器的姿态调节控制器,确保姿态调整时能量最低。

  2. 机器人控制

    在机器人路径跟踪中,LQR 用于控制机器人的位置和速度。

  3. 车辆动力学控制

    在自动驾驶系统中,LQR 常用于轨迹跟踪问题,设计车辆的方向和速度控制。


总结

LQR 是一种功能强大且理论完善的最优控制方法,通过解决 Riccati 方程和设计反馈增益矩阵,能够为线性系统提供稳定且高效的控制策略。它的应用遍及多个工程领域,是现代控制理论的重要组成部分。

相关推荐
AI科技星6 小时前
张祥前统一场论宇宙大统一方程的求导验证
服务器·人工智能·科技·线性代数·算法·生活
JinSu_18 小时前
【学习体会】Eigen和GLM在矩阵初始化和底层数据存储的差异
线性代数·矩阵
wa的一声哭了19 小时前
赋范空间 赋范空间的完备性
python·线性代数·算法·机器学习·数学建模·矩阵·django
短视频矩阵源码定制19 小时前
专业的矩阵系统哪家强
线性代数·矩阵
大佬,救命!!!19 小时前
算子矩阵相关冒烟、功能、回归、性能的不同阶段测试点
线性代数·矩阵·回归
AI科技星2 天前
张祥前统一场论电荷定义方程分析报告
开发语言·经验分享·线性代数·算法·数学建模
闻缺陷则喜何志丹2 天前
【2025博客之星】求职总结
线性代数·数学·计算几何·objectarx·cad·高度数学
小宋加油啊3 天前
线性代数“秩”(LORA)
线性代数
式5163 天前
线性代数(十)四个基本子空间与矩阵空间
线性代数
甄心爱学习3 天前
SVD求解最小二乘(手写推导)
线性代数·算法·svd