第5章:最优控制理论

本章概要

最优控制理论是现代控制理论的核心分支,它研究如何在满足系统动力学约束的条件下,寻找使某个性能指标达到最优的控制策略。本章将从变分法的基本原理出发,深入探讨Pontryagin最大值原理、线性二次调节器(LQR)、代数Riccati方程以及动态规划方法。我们将通过Apollo登月舱轨迹优化和Boston Dynamics Spot四足机器人步态优化两个经典案例,展示最优控制理论在实际工程中的应用。

5.1 变分法与Pontryagin最大值原理

5.1.1 变分法基础

变分法是研究泛函极值问题的数学工具,起源于17世纪的最速降线问题。在最优控制理论中,变分法为我们提供了寻找最优轨迹的数学框架。与普通函数的极值问题不同,变分问题研究的是函数的函数(泛函)的极值,这正是控制问题的本质——我们要在所有可能的控制函数中找到最优的那一个。

变分法的核心思想是通过微小扰动来识别极值条件。设想我们有一个候选的最优轨迹,如果它确实是最优的,那么任何微小的扰动都不应该改善性能指标。这个直观的想法导出了变分法的第一变分条件,类似于普通微积分中导数为零的条件。

考虑一般形式的最优控制问题:

$$ \min_{u(\cdot)} J = \phi(x(t_f), t_f) + \int_{t_0}^{t_f} L(x(t), u(t), t) dt $$

其中:

  • $x(t) \in \mathbb{R}^n$ 是状态向量,描述系统在时刻$t$的状态
  • $u(t) \in \mathbb{R}^m$ 是控制输入,是我们可以主动选择的变量
  • $\phi$ 是终端代价(Mayer项),评价终端状态的好坏
  • $L$ 是运行代价(Lagrange项),评价轨迹过程的代价

系统动力学约束为: $$ \dot{x}(t) = f(x(t), u(t), t), \quad x(t_0) = x_0 $$

这个约束告诉我们系统状态如何随控制输入演化。物理上,$f$可能代表牛顿定律、电路方程或化学反应动力学等。

变分法的局限性:

经典变分法在处理实际控制问题时存在几个重要局限:

  1. 控制约束处理困难:实际系统的控制输入总是有界的(如电机的最大力矩、阀门的最大开度),但变分法难以直接处理不等式约束。

  2. 奇异问题:当哈密顿函数对控制变量的依赖是线性的时,经典变分法失效,这就是所谓的奇异控制问题。

  3. 数值求解困难:变分法导出的是两点边值问题,数值求解时需要同时满足初始条件和终端条件,这在高维情况下极具挑战性。

正是这些局限促使Pontryagin等人发展了最大值原理,为有约束的最优控制问题提供了更一般的理论框架。

5.1.2 Euler-Lagrange方程

对于无约束的变分问题,最优解必须满足Euler-Lagrange方程。这个方程是变分法的基石,由Euler在1744年首次提出,后经Lagrange完善。理解Euler-Lagrange方程的推导过程对掌握最优控制理论至关重要。

考虑简单的泛函:

$$ J[y] = \int_{a}^{b} F(x, y, y') dx $$

其中$F$是关于自变量$x$、未知函数$y(x)$及其导数$y'(x)$的函数。

推导过程:

设$y^*(x)$是使泛函$J$达到极值的函数,引入扰动$\epsilon \eta(x)$,其中$\eta(x)$是满足边界条件$\eta(a) = \eta(b) = 0$的任意光滑函数。考虑扰动后的泛函:

$$ J(\epsilon) = \int_{a}^{b} F(x, y^* + \epsilon\eta, y^{*'} + \epsilon\eta') dx $$

极值的必要条件是: $$ \frac{dJ}{d\epsilon}\bigg|_{\epsilon=0} = 0 $$

通过分部积分和任意性论证,得到Euler-Lagrange方程:

$$ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) = 0 $$

物理意义:

Euler-Lagrange方程在物理学中有深刻的含义。在分析力学中,它导出了拉格朗日运动方程,统一了牛顿力学的各种问题。在最优控制中,它刻画了最优轨迹必须满足的微分方程。

高阶导数情况:

对于包含高阶导数的泛函: $$ J[y] = \int_{a}^{b} F(x, y, y', y'', \ldots, y^{(n)}) dx $$

相应的Euler-Lagrange方程变为: $$ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) + \frac{d^2}{dx^2}\left(\frac{\partial F}{\partial y''}\right) - \cdots + (-1)^n\frac{d^n}{dx^n}\left(\frac{\partial F}{\partial y^{(n)}}\right) = 0 $$

多变量情况:

当有多个未知函数$y_1(x), y_2(x), \ldots, y_n(x)$时,每个函数都对应一个Euler-Lagrange方程: $$ \frac{\partial F}{\partial y_i} - \frac{d}{dx}\left(\frac{\partial F}{\partial y_i'}\right) = 0, \quad i = 1, 2, \ldots, n $$

这形成了一个耦合的微分方程组,在控制问题中对应于多输入多输出(MIMO)系统。

5.1.3 Pontryagin最大值原理

Pontryagin最大值原理是20世纪控制理论最重要的成就之一,它彻底改变了我们处理最优控制问题的方式。1956年,苏联数学家Lev Pontryagin和他的学生们(Boltyanskii、Gamkrelidze、Mishchenko)在研究时间最优控制问题时发现了这个原理。有趣的是,他们最初是为了解决苏联洲际弹道导弹的轨迹优化问题,这个军事需求催生了一个影响深远的数学理论。

最大值原理的革命性在于它能够处理控制变量受约束的问题,这是经典变分法无法直接解决的。在实际工程中,所有的控制输入都是有界的——火箭推力有最大值、舵面偏转有极限、电机转矩有饱和。最大值原理优雅地处理了这些约束。

哈密顿函数的构造:

定义哈密顿函数(也称为Pontryagin函数):

$$ H(x, u, \lambda, t) = L(x, u, t) + \lambda^T f(x, u, t) $$

其中 $\lambda(t) \in \mathbb{R}^n$ 是协态向量(也称为伴随变量或拉格朗日乘子)。

哈密顿函数的物理意义可以理解为"瞬时总代价":$L$是瞬时运行代价,$\lambda^T f$可以解释为状态变化带来的"影子代价"。协态$\lambda_i$表示状态$x_i$的边际价值——增加一单位$x_i$对总代价的影响。

最大值原理的必要条件:

如果$(x^*(t), u^*(t))$是最优轨迹和最优控制,则存在协态函数$\lambda(t)$使得:

  1. 状态方程(正向动力学): $$ \dot{x} = \frac{\partial H}{\partial \lambda} = f(x, u, t) $$

这就是原始的系统动力学方程,描述系统如何正向演化。

  1. 协态方程(反向动力学): $$ \dot{\lambda} = -\frac{\partial H}{\partial x} = -\frac{\partial L}{\partial x} - \left(\frac{\partial f}{\partial x}\right)^T \lambda $$

协态方程描述了"价值"如何反向传播。它告诉我们状态的边际价值如何随时间变化。

  1. 最优性条件(Pontryagin最小值条件): $$ H(x^*, u^*, \lambda^*, t) = \min_{u \in U} H(x^*, u, \lambda^*, t) $$

注意:在最小化问题中是最小值条件,在最大化问题中是最大值条件。这个条件说明最优控制使哈密顿函数达到全局最小值。

  1. 横截条件(边界条件):

横截条件取决于问题的边界约束:

  • 固定终端状态:$x(t_f) = x_f$给定
  • 自由终端状态:$\lambda(t_f) = \frac{\partial \phi}{\partial x}\bigg|_{t=t_f}$
  • 固定终端时间:$t_f$给定
  • 自由终端时间:$H(t_f) + \frac{\partial \phi}{\partial t}\bigg|_{t=t_f} = 0$

对于更复杂的终端约束$\psi(x(t_f), t_f) = 0$,需要引入额外的拉格朗日乘子。

最大值原理vs变分法:

最大值原理可以看作变分法的推广:

  • 当控制无约束且哈密顿函数对$u$可微时,最优性条件退化为$\frac{\partial H}{\partial u} = 0$,这正是变分法的结果
  • 当控制有约束时,最大值原理给出全局最小化条件,而不仅仅是驻点条件
  • 最大值原理能处理Bang-Bang控制等不连续控制,这是变分法无法处理的

5.1.4 最小时间控制示例

最小时间控制问题是最优控制理论中的经典问题,它在工业机器人、航天器姿态控制等领域有广泛应用。这类问题的特点是控制能量有限,目标是以最快速度完成任务。下面通过双积分器系统详细展示最大值原理的应用。

考虑双积分器系统的最小时间控制问题:

系统动力学:
ẋ₁ = x₂        (位置的导数是速度)
ẋ₂ = u         (速度的导数是加速度/控制)

控制约束:
|u| ≤ 1        (加速度有界)

初始条件:x₁(0) = x₁₀, x₂(0) = x₂₀
终端条件:x₁(tf) = 0, x₂(tf) = 0

目标:最小化时间 tf

这个模型可以代表多种物理系统:

  • 一维质点的位置控制(x₁是位置,x₂是速度)
  • 直流电机的角度控制(x₁是角度,x₂是角速度)
  • 起重机的防摆控制简化模型

应用最大值原理:

性能指标:$J = \int_0^{t_f} 1 dt = t_f$(最小化时间)

构造哈密顿函数: $$ H = 1 + \lambda_1 x_2 + \lambda_2 u $$

其中"1"来自于被积函数$L = 1$(时间的累积)。

求解协态方程:

根据协态方程 $\dot{\lambda}_i = -\frac{\partial H}{\partial x_i}$:

$$ \dot{\lambda}_1 = -\frac{\partial H}{\partial x_1} = 0 \Rightarrow \lambda_1 = c_1 \text{(常数)} $$

$$ \dot{\lambda}_2 = -\frac{\partial H}{\partial x_2} = -\lambda_1 = -c_1 \Rightarrow \lambda_2 = -c_1 t + c_2 $$

协态的物理意义:

  • $\lambda_1$:位置的"时间代价",保持常数表示位置偏差的代价不随时间变化
  • $\lambda_2$:速度的"时间代价",线性变化反映了速度对到达目标的影响随时间改变

确定最优控制:

根据最优性条件,最优控制使哈密顿函数最小: $$ u^* = \arg\min_{|u| \leq 1} H = \arg\min_{|u| \leq 1} (1 + \lambda_1 x_2 + \lambda_2 u) $$

由于H对u是线性的,最优控制必定在约束边界上: $$ u^* = \begin{cases} -1 & \text{if } \lambda_2 > 0 \\ +1 & \text{if } \lambda_2 < 0 \\ \text{未定} & \text{if } \lambda_2 = 0 \end{cases} $$

即:$u^* = -\text{sign}(\lambda_2) = -\text{sign}(-c_1 t + c_2)$

Bang-Bang控制的物理解释:

最优控制是Bang-Bang型的,即控制总是取最大值或最小值,永不在中间值。这个结果有直观的物理解释:

  • 要最快到达目标,应该始终使用最大可用力
  • 控制在某个时刻切换方向,先加速后减速(或相反)
  • 切换时刻由初始条件唯一确定

相平面分析:

在$(x_1, x_2)$相平面上,系统轨迹满足:

  • 当$u = +1$时:$x_2^2 = x_{20}^2 + 2(x_1 - x_{10})$(向上的抛物线)
  • 当$u = -1$时:$x_2^2 = x_{20}^2 - 2(x_1 - x_{10})$(向下的抛物线)

最优切换曲线(开关曲线): $$ \Gamma^+ : x_1 = -\frac{1}{2}x_2|x_2| \quad (x_2 > 0) $$ $$ \Gamma^- : x_1 = \frac{1}{2}x_2|x_2| \quad (x_2 < 0) $$

最优控制策略:

  1. 如果初始点在$\Gamma^+$上方或$\Gamma^-$下方:先用$u = -1$
  2. 如果初始点在$\Gamma^+$下方或$\Gamma^-$上方:先用$u = +1$
  3. 当轨迹到达切换曲线时,切换控制方向
  4. 沿切换曲线滑行到原点

这个策略确保以最短时间到达目标,体现了"全力加速-适时切换-全力减速"的最优原则。

5.2 线性二次调节器(LQR)

5.2.1 LQR问题描述

线性二次调节器是最优控制理论中最重要和最实用的结果之一。考虑线性时不变系统:

$$ \dot{x}(t) = Ax(t) + Bu(t) $$

目标是最小化二次性能指标:

$$ J = \int_0^\infty (x^T Q x + u^T R u) dt $$

其中:

  • $Q \succeq 0$ 是状态权重矩阵(半正定)
  • $R \succ 0$ 是控制权重矩阵(正定)

5.2.2 LQR解的推导

应用最大值原理,哈密顿函数为:

$$ H = x^T Q x + u^T R u + \lambda^T (Ax + Bu) $$

最优性条件 $\frac{\partial H}{\partial u} = 0$ 给出:

$$ 2Ru + B^T \lambda = 0 \Rightarrow u^* = -\frac{1}{2}R^{-1}B^T \lambda $$

假设协态与状态成线性关系:$\lambda = 2Px$,其中 $P$ 是待定的对称矩阵。

代入协态方程并整理,可得代数Riccati方程(将在5.3节详细讨论)。

5.2.3 LQR控制律

LQR的最优控制律为状态反馈形式:

$$ u^*(t) = -Kx(t) $$

其中反馈增益矩阵: $$ K = R^{-1}B^T P $$

$P$ 是代数Riccati方程的解: $$ A^T P + PA - PBR^{-1}B^T P + Q = 0 $$

5.2.4 LQR的重要性质

  1. 稳定性保证:若 $(A, B)$ 可控,$(A, \sqrt{Q})$ 可观,则闭环系统 $\dot{x} = (A - BK)x$ 渐近稳定。

  2. 相位裕度:LQR控制器在每个输入通道上至少有60度的相位裕度。

  3. 增益裕度:增益裕度为 $[0.5, \infty)$,即系统对增益变化具有很强的鲁棒性。

  4. 最优性:LQR给出的是全局最优解,不存在局部最优。

5.2.5 权重矩阵选择技巧

选择合适的 $Q$ 和 $R$ 矩阵是LQR设计的关键:

  1. Bryson规则: $$ Q_{ii} = \frac{1}{x_{i,\max}^2}, \quad R_{jj} = \frac{1}{u_{j,\max}^2} $$

  2. 输出加权:若只关心输出 $y = Cx$,可设: $$ Q = C^T W_y C $$

  3. 迭代调整: - 增大 $Q$ 的元素:加快状态收敛 - 增大 $R$ 的元素:减小控制能量

5.3 代数Riccati方程

5.3.1 连续时间代数Riccati方程(CARE)

代数Riccati方程是LQR和许多其他最优控制问题的核心。标准形式为:

$$ A^T P + PA - PBR^{-1}B^T P + Q = 0 $$

这是一个关于对称矩阵 $P$ 的非线性矩阵方程。

5.3.2 Riccati方程的性质

  1. 解的存在性:若 $(A, B)$ 可镇定,$(A, \sqrt{Q})$ 无不可观的不稳定模态,则存在唯一的正定解 $P \succ 0$。

  2. 解的唯一性:在上述条件下,存在唯一的镇定解,即使闭环系统 $A - BR^{-1}B^T P$ 稳定的解。

  3. 对称性:Riccati方程的解必定是对称矩阵。

5.3.3 数值求解方法

  1. Schur方法(最常用): 构造哈密顿矩阵: $$ \mathcal{H} = \begin{bmatrix} A & -BR^{-1}B^T \\ -Q & -A^T \end{bmatrix} $$

通过Schur分解找到稳定子空间,从而求得 $P$。

  1. 迭代方法: - Newton-Raphson迭代 - Kleinman迭代(保证单调收敛)

  2. 矩阵符号函数法: 利用矩阵符号函数的性质求解。

5.3.4 离散时间代数Riccati方程(DARE)

对于离散系统 $x_{k+1} = Ax_k + Bu_k$,对应的DARE为:

$$ P = A^T PA - A^T PB(R + B^T PB)^{-1}B^T PA + Q $$

5.3.5 Riccati方程的物理意义

Riccati方程的解 $P$ 可以理解为"代价-to-go"矩阵:

$$ V(x) = x^T P x $$

表示从状态 $x$ 出发,采用最优控制策略到达原点的最小代价。

5.4 动态规划与HJB方程

5.4.1 Bellman最优性原理

动态规划基于Bellman的最优性原理:

"最优策略具有这样的性质:无论初始状态和初始决策如何,对于由初始决策所产生的状态,其余的决策必须构成相对于该状态的最优策略。"

5.4.2 值函数与HJB方程

定义值函数(最优代价-to-go):

$$ V(x, t) = \min_{u(\cdot)} \left\{ \int_t^{t_f} L(x(\tau), u(\tau), \tau) d\tau + \phi(x(t_f), t_f) \right\} $$

Hamilton-Jacobi-Bellman(HJB)偏微分方程:

$$ -\frac{\partial V}{\partial t} = \min_u \left\{ L(x, u, t) + \left(\frac{\partial V}{\partial x}\right)^T f(x, u, t) \right\} $$

边界条件:$V(x, t_f) = \phi(x, t_f)$

5.4.3 HJB方程与最大值原理的关系

两种方法本质上是等价的:

  • 协态向量:$\lambda = \frac{\partial V}{\partial x}$
  • 哈密顿函数的最小值:$H^* = -\frac{\partial V}{\partial t}$

5.4.4 线性二次问题的HJB解

对于LQR问题,假设值函数为二次形式:

$$ V(x, t) = x^T P(t) x $$

代入HJB方程,可得Riccati微分方程:

$$ -\dot{P} = A^T P + PA - PBR^{-1}B^T P + Q $$

稳态时 $\dot{P} = 0$,即得到代数Riccati方程。

5.4.5 数值动态规划

对于非线性系统,HJB方程通常没有解析解,需要数值方法:

  1. 网格法:在状态空间离散化,用有限差分逼近
  2. 近似动态规划:使用函数逼近(如神经网络)表示值函数
  3. 微分动态规划(DDP):局部二次逼近,迭代改进轨迹

5.5 案例研究

5.5.1 案例1:Apollo登月舱轨迹优化

Apollo登月舱的下降轨迹优化是最优控制理论的经典应用。1969年的登月任务中,需要在有限燃料约束下实现安全着陆。

问题描述:

登月舱从高度 $h_0 = 15000$ m、速度 $v_0 = 450$ m/s开始下降,需要优化推力控制使其软着陆($h_f = 0$, $v_f = 0$)。

动力学模型: $$ \begin{aligned} \dot{h} &= v \\ \dot{v} &= -g + \frac{T}{m} \\ \dot{m} &= -\alpha T \end{aligned} $$

其中:

  • $h$ 是高度,$v$ 是垂直速度
  • $g = 1.62$ m/s² 是月球重力加速度
  • $T$ 是推力(控制变量),$0 \leq T \leq T_{\max}$
  • $m$ 是质量,$\alpha$ 是燃料消耗率

优化目标:

最小化燃料消耗(等价于最大化终端质量): $$ J = -m(t_f) $$

应用Pontryagin最大值原理:

哈密顿函数: $$ H = \lambda_h v + \lambda_v \left(-g + \frac{T}{m}\right) + \lambda_m (-\alpha T) $$

协态方程: $$ \begin{aligned} \dot{\lambda}_h &= 0 \Rightarrow \lambda_h = c_1 \\ \dot{\lambda}_v &= -\lambda_h = -c_1 \\ \dot{\lambda}_m &= \lambda_v \frac{T}{m^2} \end{aligned} $$

开关函数: $$ S = \frac{\lambda_v}{m} - \alpha \lambda_m $$

最优控制策略(Bang-Bang): $$ T^* = \begin{cases} T_{\max} & \text{if } S > 0 \\ 0 & \text{if } S < 0 \end{cases} $$

工程实现:

实际Apollo制导计算机使用了简化的多项式制导律,基于最优轨迹的近似:

$$ T(t) = a_0 + a_1 t + a_2 t^2 $$

系数通过边界条件和燃料约束确定。这种方法计算简单,适合1969年的计算能力限制。

现代改进:

现代方法使用凸优化技术,将问题转化为二阶锥规划(SOCP):

$$ \begin{aligned} \min_{u, \sigma} \quad & -\ln(m(t_f)) \\ \text{s.t.} \quad & \dot{r} = v \\ & \dot{v} = g + \frac{u}{m} \\ & \dot{m} = -\alpha |u| \\ & |u| \leq T_{\max} \\ & \cos\theta_{\max} |u| \leq u_z \end{aligned} $$

这种方法可以处理更复杂的约束,如姿态限制、落点精度等。

5.5.2 案例2:Boston Dynamics Spot四足机器人步态优化

Spot机器人的动态步态需要实时优化控制,以实现稳定、高效的运动。

简化模型:

采用单刚体动力学模型(SRBD):

$$ \begin{aligned} m\ddot{r} &= mg + \sum_{i=1}^{4} f_i \\ I\dot{\omega} &= \sum_{i=1}^{4} (p_i - r) \times f_i \end{aligned} $$

其中:

  • $r$ 是质心位置,$m = 30$ kg是总质量
  • $I$ 是惯性张量,$\omega$ 是角速度
  • $f_i$ 是第$i$条腿的接触力
  • $p_i$ 是足端位置

优化问题:

在每个控制周期(10ms)内求解:

$$ \min_{f_i, \tau_j} J = \sum_{k=0}^{N} \left( |x_k - x_k^{ref}|_Q^2 + \sum_{i=1}^{4} |f_{i,k}|_R^2 \right) $$

约束条件:

  1. 动力学约束:满足SRBD方程
  2. 摩擦锥约束:$|f_{i,xy}| \leq \mu f_{i,z}$,$\mu = 0.6$
  3. 接触约束:支撑相 $f_{i,z} > 0$,摆动相 $f_i = 0$
  4. 关节力矩限制:$|\tau_j| \leq \tau_{\max}$

分层控制架构:

高层:步态规划器
  ↓ (步态参数、落脚点)
中层:MPC控制器
  ↓ (期望接触力)
底层:全身控制器(WBC)
  ↓ (关节力矩)
硬件:电机驱动器

MPC实现:

使用凸化的MPC,线性化动力学:

$$ x_{k+1} = A_k x_k + B_k u_k + g_k $$

其中状态 $x = [r, \dot{r}, \theta, \omega]$,控制 $u = [f_1, ..., f_4]$。

通过QP求解器(如OSQP)实时求解,计算时间 < 3ms。

步态优化:

不同步态的优化目标:

  1. Trot(对角步态): - 最小化垂直方向加速度变化 - 相位差:对角腿同步,$\phi = 0.5$

  2. Bound(跳跃步态): - 最大化前进速度 - 前后腿交替,$\phi = 0.5$

  3. Pace(同侧步态): - 最小化侧向晃动 - 同侧腿同步

地形适应:

使用价值迭代进行地形代价地图学习:

$$ V(s) = \min_a \left[ c(s, a) + \gamma V(s') \right] $$

其中 $c(s, a)$ 包含:

  • 稳定性代价:$c_{stable} = |CoM - \text{support polygon}|$
  • 能量代价:$c_{energy} = \sum \tau_i^2$
  • 进度奖励:$c_{progress} = -v \cdot \hat{d}$

实验结果:

  • 最高速度:1.6 m/s
  • 爬坡能力:35°
  • 负载能力:14 kg(约50%体重)
  • 续航时间:90分钟

5.6 历史人物:Lev Pontryagin (1908-1988)

Lev Semyonovich Pontryagin是20世纪最伟大的数学家之一,他在拓扑学、代数和控制理论等多个领域做出了开创性贡献。

生平与成就:

Pontryagin在14岁时因煤气爆炸事故失明,但这并未阻止他成为杰出的数学家。在母亲的帮助下,他完成了莫斯科大学的学业,并在23岁时成为教授。

1956年,Pontryagin开始研究最优控制问题。当时苏联正在开发洲际弹道导弹,需要解决最优轨迹问题。传统的变分法无法处理控制约束,Pontryagin和他的学生(Boltyanskii、Gamkrelidze、Mishchenko)发展了最大值原理。

最大值原理的意义:

  1. 理论突破:首次给出了有控制约束的最优控制必要条件
  2. 实际应用:直接应用于航天器轨迹优化、经济规划等
  3. Bang-Bang控制:揭示了时间最优控制的开关特性

轶事:

  • Pontryagin的讲座以清晰著称,他能完全凭记忆在黑板上画出复杂的图形
  • 他的著作《常微分方程》被翻译成多种语言,影响了几代数学家
  • 尽管失明,他在拓扑学中的"Pontryagin类"等概念都涉及复杂的几何直觉

5.7 前沿专题:随机最优控制与路径积分方法

5.7.1 随机最优控制

考虑随机动力系统:

$$ dx = f(x, u)dt + G(x)dW $$

其中 $W$ 是维纳过程。对应的HJB方程变为:

$$ -\frac{\partial V}{\partial t} = \min_u \left\{ L(x, u) + \mathcal{L}V \right\} $$

其中 $\mathcal{L}$ 是Kolmogorov算子: $$ \mathcal{L} = f^T \nabla + \frac{1}{2}\text{tr}(GG^T \nabla^2) $$

5.7.2 路径积分控制

路径积分方法将最优控制问题转化为统计力学问题:

$$ u^*(x) = -R^{-1}g^T(x) \nabla V(x) $$

值函数通过路径积分计算:

$$ V(x) = -\lambda \log \mathbb{E}\left[ e^{-\frac{1}{\lambda}S(\tau)} | x_0 = x \right] $$

其中 $S(\tau)$ 是路径代价。

优势:

  • 可以利用采样方法避免维数灾难
  • 自然处理非线性和非高斯噪声
  • 与强化学习方法有紧密联系

5.7.3 信息理论视角

最优控制可以表述为KL散度最小化:

$$ \min_{\pi} \mathbb{E}_\pi[c(x, u)] + \lambda D_{KL}(\pi | \pi_0) $$

这建立了最优控制与最大熵原理的联系,在机器人学习中有重要应用。

5.8 本章小结

最优控制理论为设计高性能控制系统提供了系统的数学框架。本章的核心概念包括:

  1. Pontryagin最大值原理:处理有约束最优控制问题的基本工具,通过协态方程和哈密顿函数刻画最优性条件。

  2. 线性二次调节器(LQR):最实用的最优控制方法之一,提供状态反馈形式的全局最优解,具有优良的稳定性和鲁棒性。

  3. 代数Riccati方程:LQR和其他最优控制问题的核心,其解代表了系统的"代价-to-go"。

  4. 动态规划与HJB方程:从值函数角度研究最优控制,与最大值原理形成对偶关系。

  5. 工程应用:从Apollo登月到现代机器人,最优控制理论在复杂工程系统中发挥关键作用。

关键公式汇总:

  • 哈密顿函数:$H = L + \lambda^T f$
  • 协态方程:$\dot{\lambda} = -\frac{\partial H}{\partial x}$
  • LQR反馈律:$u = -Kx = -R^{-1}B^T Px$
  • 代数Riccati方程:$A^T P + PA - PBR^{-1}B^T P + Q = 0$
  • HJB方程:$-\frac{\partial V}{\partial t} = \min_u \{L + (\nabla V)^T f\}$

5.9 练习题

基础题

习题5.1 双积分器最小时间控制

考虑系统:$\ddot{x} = u$,$|u| \leq 1$。求从初始状态 $(x_0, \dot{x}_0) = (2, 1)$ 到原点的最小时间控制。

提示

使用Pontryagin最大值原理,注意Bang-Bang控制的切换条件。

答案

应用最大值原理,协态满足:$\lambda_1 = c_1$(常数),$\lambda_2 = -c_1 t + c_2$。

最优控制:$u^* = -\text{sign}(\lambda_2)$

相平面分析显示,最优轨迹由两段组成:

  1. 第一段:$u = -1$,持续时间 $t_1 = 1 + \sqrt{3}$
  2. 第二段:$u = +1$,持续时间 $t_2 = \sqrt{3}$

总时间:$t^* = 1 + 2\sqrt{3} \approx 4.46$ 秒

习题5.2 LQR增益计算

给定系统: $$ A = \begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \end{bmatrix} $$

使用 $Q = I$,$R = 1$,求LQR反馈增益 $K$。

提示

先求解代数Riccati方程得到 $P$,然后计算 $K = R^{-1}B^T P$。

答案

求解Riccati方程得: $$ P = \begin{bmatrix} 3.162 & 1.000 \\ 1.000 & 1.162 \end{bmatrix} $$

反馈增益:$K = [1.000, 1.162]$

闭环极点:$s = -2.081 \pm 0.895j$

习题5.3 燃料最优控制

卫星姿态控制系统:$\ddot{\theta} = u/I$,其中 $I = 100$ kg·m²。求使燃料消耗 $J = \int_0^T |u| dt$ 最小的控制,使卫星从 $\theta(0) = 30°$,$\dot{\theta}(0) = 0$ 转到 $\theta(T) = 0$,$\dot{\theta}(T) = 0$。

提示

燃料最优通常导致Bang-Off-Bang控制结构。

答案

最优控制具有Bang-Off-Bang结构:

  • $t \in [0, t_1]$:$u = -u_{max}$
  • $t \in [t_1, T-t_1]$:$u = 0$
  • $t \in [T-t_1, T]$:$u = u_{max}$

其中 $t_1 = \sqrt{\theta_0 I / u_{max}}$

习题5.4 离散LQR

离散系统:$x_{k+1} = Ax_k + Bu_k$,其中: $$ A = \begin{bmatrix} 1.1 & 0.1 \\ 0 & 0.9 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \end{bmatrix} $$

设计使 $J = \sum_{k=0}^{\infty} (x_k^T Q x_k + u_k^2)$ 最小的控制器,$Q = I$。

提示

使用离散代数Riccati方程(DARE)。

答案

求解DARE得: $$ P = \begin{bmatrix} 2.618 & 0.809 \\ 0.809 & 2.118 \end{bmatrix} $$

反馈增益:$K = [0.809, 2.118]$

闭环系统稳定,所有特征值在单位圆内。

挑战题

习题5.5 奇异最优控制

考虑系统:$\dot{x}_1 = x_2$,$\dot{x}_2 = u$,最小化: $$ J = \frac{1}{2}\int_0^1 (x_1^2 + \epsilon u^2) dt $$ 当 $\epsilon \to 0$ 时,分析最优控制的性质。

提示

这是奇异摄动问题,需要考虑边界层效应。

答案

当 $\epsilon \to 0$,问题变为奇异。最优控制在边界附近出现快速变化(边界层)。

外部解:$u \approx -6x_1 - 4x_2$ 边界层修正:在 $t = 0$ 和 $t = 1$ 附近有 $O(1/\sqrt{\epsilon})$ 的控制脉冲。

这种现象在柔性结构控制中很常见。

习题5.6 约束LQR

设计倒立摆的LQR控制器,考虑输入约束 $|u| \leq 5$ N。系统在平衡点线性化后: $$ A = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & -9.8 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 29.4 & 0 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \\ 0 \\ -2 \end{bmatrix} $$

提示

先设计无约束LQR,然后分析饱和影响,考虑抗饱和补偿。

答案
  1. 无约束LQR:选择 $Q = \text{diag}(10, 1, 100, 1)$,$R = 1$ 得到 $K = [-3.16, -5.55, -71.8, -13.5]$

  2. 饱和分析:当 $|Kx| > 5$ 时,系统可能失稳

  3. 抗饱和策略: - 使用条件积分 - 增益调度:根据状态大小调整 $K$ - MPC方法显式处理约束

  4. 吸引域估计:使用Lyapunov函数 $V = x^T Px$ 估计稳定区域

习题5.7 路径积分控制实现

用路径积分方法求解非线性系统 $\dot{x} = -x + x^3 + u$ 的最优控制,使 $J = \int_0^T (x^2 + u^2)dt$ 最小。

提示

使用蒙特卡洛采样估计值函数。

答案

路径积分算法:

  1. 采样 $N$ 条轨迹:$x^{(i)}_{k+1} = x^{(i)}_k + dt(-x^{(i)}_k + (x^{(i)}_k)^3 + u_k + \xi^{(i)}_k)$
  2. 计算路径代价:$S^{(i)} = \sum_k ((x^{(i)}_k)^2 + u_k^2)dt$
  3. 权重:$w^{(i)} = \exp(-S^{(i)}/\lambda)$
  4. 控制更新:$u_{new} = \sum_i w^{(i)} (u_{old} + \delta u^{(i)}) / \sum_i w^{(i)}$

收敛后得到非线性反馈控制律,在原点附近近似线性。

习题5.8 MPC与LQR对比

比较MPC和LQR在处理倒立摆控制问题时的性能差异,特别是存在状态和输入约束时。

提示

实现两种控制器,比较吸引域、计算复杂度和约束处理能力。

答案

对比结果:

  1. 吸引域: - LQR:约束下吸引域受限 - MPC:通过预测可扩大吸引域

  2. 计算复杂度: - LQR:$O(n^3)$ 离线计算,$O(n^2)$ 在线 - MPC:$O(N n^3)$ 在线优化

  3. 约束处理: - LQR:需要后处理(饱和、抗饱和) - MPC:系统化处理硬约束

  4. 性能: - 无约束:LQR最优 - 有约束:MPC通常更优

  5. 实时性: - LQR:适合高频控制(>1kHz) - MPC:受限于优化求解(典型10-100Hz)

5.10 常见陷阱与错误

陷阱1:忽视可控性条件

错误:直接应用LQR而不检查可控性。

后果:Riccati方程可能无解或解不稳定。

正确做法

1. 检查可控性矩阵 rank([B, AB, ..., A^(n-1)B]) = n
2. 对不可控模态确保其稳定
3. 使用可控性分解识别可控子空间

陷阱2:权重矩阵选择不当

错误:随意选择 $Q$ 和 $R$ 矩阵。

问题表现

  • $Q$ 过大:控制过于激进,易饱和
  • $R$ 过大:响应缓慢,性能差
  • 尺度不匹配:某些状态被忽略

解决方案

  • 使用Bryson规则初始化
  • 基于闭环带宽要求调整
  • 进行参数扫描和灵敏度分析

陷阱3:数值精度问题

错误:Riccati方程求解不稳定。

原因

  • 矩阵条件数过大
  • 使用不适合的数值方法

改进

  • 使用平衡变换改善条件数
  • 采用数值稳定的Schur方法
  • 检查解的对称性和正定性

陷阱4:忽略模型不确定性

错误:假设模型完全准确。

风险:实际系统性能退化甚至失稳。

鲁棒化方法

  • 增加稳定裕度(调整Q/R比例)
  • 使用鲁棒LQR设计
  • 考虑最坏情况设计

陷阱5:离散化错误

错误:不当的连续到离散转换。

常见问题

  • 使用前向Euler离散化(可能失稳)
  • 采样时间选择不当

正确方法

离散化矩阵:
A_d = e^(AT_s)
B_d = ∫[0,T_s] e^(Aτ) B dτ

陷阱6:终端条件处理

错误:有限时域问题的终端处理不当。

表现:接近终端时控制异常。

解决

  • 使用终端权重矩阵
  • 延长预测时域
  • 采用无限时域近似

5.11 最佳实践检查清单

设计阶段

  • [ ] 系统分析
  • [ ] 验证系统可控性和可观性
  • [ ] 检查开环稳定性
  • [ ] 识别主导模态

  • [ ] 性能指标定义

  • [ ] 明确控制目标(调节/跟踪)
  • [ ] 量化性能要求(上升时间、超调等)
  • [ ] 确定约束条件

  • [ ] 方法选择

  • [ ] LQR:线性系统,无硬约束
  • [ ] MPC:需要处理约束
  • [ ] 非线性方法:系统强非线性

实现阶段

  • [ ] 数值计算
  • [ ] 使用数值稳定的算法
  • [ ] 检查矩阵条件数
  • [ ] 验证Riccati解的性质

  • [ ] 离散化处理

  • [ ] 选择合适的采样时间(带宽的10-20倍)
  • [ ] 使用精确离散化方法
  • [ ] 考虑计算延迟

  • [ ] 约束处理

  • [ ] 识别所有物理约束
  • [ ] 实现抗饱和机制
  • [ ] 估计可行域

验证阶段

  • [ ] 仿真测试
  • [ ] 标称情况性能
  • [ ] 参数摄动分析
  • [ ] 极端工况测试

  • [ ] 稳定性验证

  • [ ] 计算稳定裕度
  • [ ] Lyapunov函数验证
  • [ ] 吸引域估计

  • [ ] 鲁棒性分析

  • [ ] 蒙特卡洛仿真
  • [ ] 最坏情况分析
  • [ ] 灵敏度分析

部署阶段

  • [ ] 实时性保证
  • [ ] 测量计算时间
  • [ ] 优化代码效率
  • [ ] 考虑硬件加速

  • [ ] 故障处理

  • [ ] 传感器故障检测
  • [ ] 控制器降级策略
  • [ ] 安全模式设计

  • [ ] 性能监控

  • [ ] 记录关键指标
  • [ ] 在线性能评估
  • [ ] 自适应参数调整