线性二次调节器(LQR)算法的原理与最优控制求解过程
字数 1652 2025-11-29 16:17:11

线性二次调节器(LQR)算法的原理与最优控制求解过程

题目描述
线性二次调节器(Linear Quadratic Regulator, LQR)是一种经典的最优控制算法,用于解决线性系统的状态调节问题。其目标是设计一个状态反馈控制器,使得系统在满足线性动态约束的同时,最小化一个二次型代价函数(包含状态偏差和控制能量的加权和)。例如,在无人机平衡或机器人轨迹跟踪中,LQR可通过计算最优反馈增益,使系统快速稳定到目标状态。

解题过程

  1. 问题建模

    • 系统动态:假设离散时间线性系统的状态方程为
      \(x_{t+1} = A x_t + B u_t\)
      其中 \(x_t\) 是状态向量,\(u_t\) 是控制输入,\(A\)\(B\) 是系统矩阵。
    • 代价函数:定义无限时间域的二次代价函数
      \(J = \sum_{t=0}^{\infty} \left( x_t^\top Q x_t + u_t^\top R u_t \right)\)
      其中 \(Q\) 是半正定状态权重矩阵(惩罚状态偏差),\(R\) 是正定控制权重矩阵(惩罚控制量大小)。
  2. 贝尔曼方程与值函数假设

    • 目标:找到控制策略 \(u_t = -K x_t\)(反馈增益矩阵 \(K\)),最小化 \(J\)
    • 根据动态规划,最优值函数 \(V^*(x_t)\) 满足贝尔曼方程:
      \(V^*(x_t) = \min_{u_t} \left( x_t^\top Q x_t + u_t^\top R u_t + V^*(x_{t+1}) \right)\)
    • 假设值函数为二次型:\(V^*(x_t) = x_t^\top P x_t\),其中 \(P\) 是待求的半正定矩阵。
  3. 推导代数Riccati方程

    • 将值函数假设和系统动态代入贝尔曼方程:
      \(x_t^\top P x_t = \min_{u_t} \left( x_t^\top Q x_t + u_t^\top R u_t + (A x_t + B u_t)^\top P (A x_t + B u_t) \right)\)
    • 对右侧关于 \(u_t\) 求导并令导数为零,得最优控制律:
      \(u_t^* = -(R + B^\top P B)^{-1} B^\top P A x_t\)
    • 代入原式后化简,得到离散时间代数Riccati方程:
      \(P = Q + A^\top P A - A^\top P B (R + B^\top P B)^{-1} B^\top P A\)
  4. 求解Riccati方程

    • 通过迭代法(如值迭代)或直接数值解法(如Schur分解)求解 \(P\)
      • 值迭代:初始化 \(P_0 = 0\),迭代更新
        \(P_{k+1} = Q + A^\top P_k A - A^\top P_k B (R + B^\top P_k B)^{-1} B^\top P_k A\),直至收敛。
    • 得到 \(P\) 后,反馈增益矩阵为
      \(K = (R + B^\top P B)^{-1} B^\top P A\)
  5. 闭环控制与稳定性

    • 应用控制律 \(u_t = -K x_t\),闭环系统动态变为 \(x_{t+1} = (A - B K) x_t\)
    • \((A, B)\) 可控且 \((A, Q^{1/2})\) 可观测,则 \(A - B K\) 的特征值均在单位圆内,保证系统稳定。

关键点

  • LQR将控制问题转化为Riccati方程的求解,其解通过动态规划原理保证全局最优。
  • 权重矩阵 \(Q\)\(R\) 需根据实际需求调整,例如增大 \(Q\) 强调状态收敛速度,增大 \(R\) 限制控制能量。
线性二次调节器(LQR)算法的原理与最优控制求解过程 题目描述 线性二次调节器(Linear Quadratic Regulator, LQR)是一种经典的最优控制算法,用于解决线性系统的状态调节问题。其目标是设计一个状态反馈控制器,使得系统在满足线性动态约束的同时,最小化一个二次型代价函数(包含状态偏差和控制能量的加权和)。例如,在无人机平衡或机器人轨迹跟踪中,LQR可通过计算最优反馈增益,使系统快速稳定到目标状态。 解题过程 问题建模 系统动态:假设离散时间线性系统的状态方程为 \( x_ {t+1} = A x_ t + B u_ t \) 其中 \( x_ t \) 是状态向量,\( u_ t \) 是控制输入,\( A \) 和 \( B \) 是系统矩阵。 代价函数:定义无限时间域的二次代价函数 \( J = \sum_ {t=0}^{\infty} \left( x_ t^\top Q x_ t + u_ t^\top R u_ t \right) \) 其中 \( Q \) 是半正定状态权重矩阵(惩罚状态偏差),\( R \) 是正定控制权重矩阵(惩罚控制量大小)。 贝尔曼方程与值函数假设 目标:找到控制策略 \( u_ t = -K x_ t \)(反馈增益矩阵 \( K \)),最小化 \( J \)。 根据动态规划,最优值函数 \( V^ (x_ t) \) 满足贝尔曼方程: \( V^ (x_ t) = \min_ {u_ t} \left( x_ t^\top Q x_ t + u_ t^\top R u_ t + V^* (x_ {t+1}) \right) \)。 假设值函数为二次型:\( V^* (x_ t) = x_ t^\top P x_ t \),其中 \( P \) 是待求的半正定矩阵。 推导代数Riccati方程 将值函数假设和系统动态代入贝尔曼方程: \( x_ t^\top P x_ t = \min_ {u_ t} \left( x_ t^\top Q x_ t + u_ t^\top R u_ t + (A x_ t + B u_ t)^\top P (A x_ t + B u_ t) \right) \)。 对右侧关于 \( u_ t \) 求导并令导数为零,得最优控制律: \( u_ t^* = -(R + B^\top P B)^{-1} B^\top P A x_ t \)。 代入原式后化简,得到离散时间代数Riccati方程: \( P = Q + A^\top P A - A^\top P B (R + B^\top P B)^{-1} B^\top P A \)。 求解Riccati方程 通过迭代法(如值迭代)或直接数值解法(如Schur分解)求解 \( P \)。 值迭代:初始化 \( P_ 0 = 0 \),迭代更新 \( P_ {k+1} = Q + A^\top P_ k A - A^\top P_ k B (R + B^\top P_ k B)^{-1} B^\top P_ k A \),直至收敛。 得到 \( P \) 后,反馈增益矩阵为 \( K = (R + B^\top P B)^{-1} B^\top P A \)。 闭环控制与稳定性 应用控制律 \( u_ t = -K x_ t \),闭环系统动态变为 \( x_ {t+1} = (A - B K) x_ t \)。 若 \( (A, B) \) 可控且 \( (A, Q^{1/2}) \) 可观测,则 \( A - B K \) 的特征值均在单位圆内,保证系统稳定。 关键点 LQR将控制问题转化为Riccati方程的求解,其解通过动态规划原理保证全局最优。 权重矩阵 \( Q \) 和 \( R \) 需根据实际需求调整,例如增大 \( Q \) 强调状态收敛速度,增大 \( R \) 限制控制能量。