深入地介绍线性二次调节问题(Linear Quadratic Regulator, LQR),并详细说明它作为动态规划(DP)的一个经典应用问题的求解过程。
📌 一、LQR问题定义(最优控制视角)
LQR 问题是一种特殊的最优控制问题,系统动力学为线性、代价函数为二次型的优化问题:
离散时间线性系统:
x t + 1 = A x t + B u t x_{t+1} = Ax_t + Bu_t xt+1=Axt+But
- x t ∈ R n x_t \in \mathbb{R}^n xt∈Rn 为系统状态
- u t ∈ R m u_t \in \mathbb{R}^m ut∈Rm 为控制输入
- A , B A,B A,B 为系统动力学矩阵
目标是找到控制策略 u t = − K x t u_t = -K x_t ut=−Kxt,最小化如下二次型代价函数:
J = ∑ t = 0 ∞ ( x t T Q x t + u t T R u t ) J = \sum_{t=0}^{\infty}(x_t^T Q x_t + u_t^T R u_t) J=t=0∑∞(xtTQxt+utTRut)
其中:
- Q ≥ 0 Q \ge 0 Q≥0(半正定矩阵),衡量状态代价
- R > 0 R>0 R>0 为控制成本矩阵,通常正定
📌 二、LQR的DP形式——贝尔曼方程
LQR 问题的值函数 V ( x ) V(x) V(x) 是一个关于状态的二次型函数:
假设值函数具有如下形式:
V ( x ) = x T P x V(x) = x^T P x V(x)=xTPx
其中, P P P 为待求的对称正定矩阵。
根据DP的贝尔曼方程:
V ( x ) = min u [ x ⊤ Q x + u ⊤ R u + γ V ( x ′ ) ] V(x) = \min_{u}\left[ x^\top Q x + u^\top R u + \gamma V(x') \right] V(x)=umin[x⊤Qx+u⊤Ru+γV(x′)]
带入系统动力学 x ′ = A x + B u x' = Ax + Bu x′=Ax+Bu 和上述二次型值函数假设,有:
V ( x ) = min u [ x T Q x + u T R u + ( A x + B u ) T P ( A x + B u ) ] V(x) = \min_u\left[ x^T Q x + u^T R u + (Ax+Bu)^T P (Ax+Bu) \right] V(x)=umin[xTQx+uTRu+(Ax+Bu)TP(Ax+Bu)]
展开后:
V ( x ) = min u [ x T Q x + u T R u + x T A T P A x + u T B T P B u + 2 x T A T P B u ] V(x) = \min_u\left[ x^T Q x + u^T R u + x^T A^T P A x + u^T B^T P B u + 2x^T A^T P B u \right] V(x)=umin[xTQx+uTRu+xTATPAx+uTBTPBu+2xTATPBu]
其中, P P P 为待确定的对称正定矩阵, Q , R Q,R Q,R 分别为状态与控制的成本矩阵。
📌 三、LQR 的 DP 求解步骤(里卡提方程求解)
为了得到最优控制律 u ∗ = − K x u^* = -K x u∗=−Kx,关键在于确定矩阵 P P P。
其求解通过动态规划(Bellman方程)导出离散里卡提方程(Discrete Algebraic Riccati Equation):
👉 离散时间里卡提方程(DRE)
P = Q + A T P A − A T P B ( R + B T P B ) − 1 B T P A P = Q + A^T P A - A^T P B(R + B^T P B)^{-1}B^T P A P=Q+ATPA−ATPB(R+BTPB)−1BTPA
DP求解步骤:
-
初始化矩阵 P P P 为某一正定矩阵(通常是 Q Q Q)。
-
迭代求解里卡提方程直到收敛。
- 每次迭代计算:
P k + 1 = Q + A T P k A − A T P k B ( R + B T P k B ) − 1 B T P k A P_{k+1} = Q + A^T P_k A - A^T P_k B(R+B^T P_k B)^{-1}B^T P_k A Pk+1=Q+ATPkA−ATPkB(R+BTPkB)−1BTPkA
- 每次迭代计算:
-
收敛判断:
若 ∥ P k + 1 − P k ∥ < ϵ \|P_{k+1}-P_k\|<\epsilon ∥Pk+1−Pk∥<ϵ 时结束迭代,获得稳态解 P ∗ P^* P∗。 -
得到最优反馈控制律:
u t ∗ = − K x t , K = ( R + B T P B ) − 1 B T P A u_t^*=-K x_t, \quad K=(R+B^T P B)^{-1} B^T P A ut∗=−Kxt,K=(R+BTPB)−1BTPA
📌 四、LQR的一个简单示例(二维状态、一维控制输入)
假设无人机高度控制问题:
- 状态:高度 h h h 和速度 v v v
你给出的方程似乎格式有点小问题,这里帮你重新规范一下,并做详细解释:
🚩 正确的状态空间模型表示:
假设系统是一个二维状态系统(如无人机高度控制问题):
状态定义:
状态向量:
x = [ h v ] x = \begin{bmatrix} h \\ v \end{bmatrix} x=[hv]
其中:
- h h h:高度
- v v v:速度
状态方程(离散时间系统):
给定状态空间模型为:
x k + 1 = A x k + B u k x_{k+1} = Ax_k + Bu_k xk+1=Axk+Buk
具体的系统矩阵 A , B A, B A,B为:
A = [ 1 d t 0 1 ] , B = [ 0 d t ] A=\begin{bmatrix} 1 & dt \\ 0 & 1 \end{bmatrix}, \quad B=\begin{bmatrix}0 \\ dt\end{bmatrix} A=[10dt1],B=[0dt]
- 这里 d t dt dt 表示采样时间间隔。
- u k u_k uk 为在时刻 k k k 时作用于系统的控制输入(加速度输入)。
系统模型的物理含义:
- 位置更新方式为: h k + 1 = h k + v k ⋅ d t h_{k+1} = h_k + v_k \cdot dt hk+1=hk+vk⋅dt;
- 速度更新方式为: v k + 1 = v k + u k ⋅ d t v_{k+1} = v_k + u_k \cdot dt vk+1=vk+uk⋅dt。
显然:
- 状态转移矩阵 A A A 描述了状态的惯性关系;
- 控制矩阵 B B B 表示控制输入 u k u_k uk 如何影响状态(仅作用于速度方向)。
📌 完整的状态空间表达式
更清晰的矩阵形式写为:
x k + 1 = [ h k + 1 v k + 1 ] = [ 1 d t 0 1 ] [ h k v k ] + [ 0 d t ] u k x_{k+1}=\begin{bmatrix} h_{k+1} \\ v_{k+1} \end{bmatrix}= \begin{bmatrix} 1 & dt \\[6pt] 0 & 1 \end{bmatrix} \begin{bmatrix} h_k \\ v_k \end{bmatrix}+ \begin{bmatrix} 0 \\ dt \end{bmatrix} u_k xk+1=[hk+1vk+1]=[10dt1][hkvk]+[0dt]uk
其中:
- 状态向量: x k = [ h k , v k ] T x_k=[h_k,v_k]^T xk=[hk,vk]T
- 控制输入: u k u_k uk(加速度输入)
- 状态转移矩阵 A A A 表示位置由速度积分更新
- 输入矩阵 B B B 描述输入作用于速度
📌 基于DP的LQR问题求解步骤
以此为基础的LQR控制问题(LQR框架):
🚩 步骤① 设定代价函数
假设代价函数为二次型:
J = ∑ k = 0 ∞ ( x k T Q x k + u k T R u k ) J = \sum_{k=0}^{\infty}(x_k^TQx_k + u_k^TRu_k) J=k=0∑∞(xkTQxk+ukTRuk)
例如设定:
- 状态成本矩阵 Q = [ q h 0 0 q v ] Q=\begin{bmatrix}q_h & 0\\0&q_v\end{bmatrix} Q=[qh00qv],用于惩罚高度和速度偏差。
- 控制成本 R = r R= r R=r(标量,一维控制输入)。
🚩 步骤② 求解里卡提方程 (DP方法)
DP方程推导得到的离散里卡提方程:
P = Q + A T P A − A T P B ( R + B T P B ) − 1 B T P A P = Q + A^TPA - A^TPB(R+B^TPB)^{-1}B^TPA P=Q+ATPA−ATPB(R+BTPB)−1BTPA
具体执行:
- 初始化 P = Q P=Q P=Q
- 反复执行上述迭代,直至 P P P 收敛。
📌 步骤③ 求取最优反馈控制律
稳定后得到的最优反馈增益 K K K:
K = ( R + B T P B ) − 1 B T P A K = (R + B^TPB)^{-1}B^TPA K=(R+BTPB)−1BTPA
-
此时最优控制输入:
u k = − K x k u_k=-Kx_k uk=−Kxk -
即反馈控制为:
u k = − [ K h , K v ] [ h k v k ] u_k=-[K_h, K_v]\begin{bmatrix}h_k \\ v_k\end{bmatrix} uk=−[Kh,Kv][hkvk]
🚩 LQR最优控制具体执行步骤(总结)
- 给定 A , B , Q , R A,B,Q,R A,B,Q,R
- 通过 DP 求解里卡提方程,获得矩阵 P P P
- 根据矩阵 P P P 求出反馈增益矩阵 K K K
- 实施反馈控制 u = − K x u=-Kx u=−Kx
📌 实际应用与扩展
这个示例清晰展示了如何从状态空间模型出发,使用动态规划(DP)思想求解最优控制问题(LQR)。
- 在无人机实际应用中, A , B , Q , R A,B,Q,R A,B,Q,R的选择决定了无人机轨迹跟踪的性能与响应特性。
- 可以结合强化学习算法进一步优化控制器参数,以应对动态环境变化(风速扰动、载荷变化等)。
🚩 总结与回顾
以上详细阐述了:
- LQR问题的状态空间定义;
- DP求解LQR的核心过程(里卡提方程);
- 从值函数提取反馈控制策略的明确过程。
这种结合 DP 与控制理论的理解,为进一步理解强化学习和最优控制算法奠定了坚实基础。
📌 四、DP 求解 LQR 问题的意义与应用场景
DP 求解 LQR 的优势:
- 提供全局最优控制解;
- 提供了闭环控制律 u = − K x u = -K x u=−Kx,实现实时控制;
- 计算高效(提前算出增益 K K K,实时仅需简单计算)。
典型应用:
- 无人机飞行稳定与轨迹跟踪控制;
- 自动驾驶汽车轨迹跟踪;
- 机器人姿态稳定控制(机械臂、机器人平衡)。
📌 四、LQR与强化学习的关系
- LQR 是一个确定的、线性、二次型最优控制问题,是 DP 的特例。
- 强化学习可看作非线性、随机系统中的广义 LQR 问题:
- 状态空间更复杂、可能未知;
- 使用函数逼近(如神经网络)替代里卡提方程求解;
- 如 Deep RL 中的 DDPG 算法,可看作非线性随机环境中的广义LQR解法。
🚩 总结(LQR-DP求解过程关键点):
- LQR问题的最优控制求解可用 DP 思想,推导得到里卡提方程;
- 通过值函数迭代方式求解里卡提方程,获得最优反馈控制增益;
- 可将 LQR 问题理解为 DP 和强化学习的特例,便于推广到更复杂的问题。