跳转至

奇异弧:识别方法与当前限制

当前限制: Pockit 目前还没有经过验证、能够可靠求解真正奇异弧 最优控制问题的流程。非线性规划求解器报告收敛,并不能证明计算得到 的奇异控制正确。在缺少独立最优性分析和收敛性研究时,不应使用这类 结果作出工程结论。

什么是奇异弧?

考虑一个以仿射形式进入动力学和运行代价的标量有界控制:

\[ \begin{aligned} \dot{\boldsymbol x} &=\boldsymbol f_0(\boldsymbol x,t) +u\boldsymbol f_1(\boldsymbol x,t),\\ \ell(\boldsymbol x,u,t) &=\ell_0(\boldsymbol x,t)+u\ell_1(\boldsymbol x,t),\\ u_{\min}&\le u(t)\le u_{\max}. \end{aligned} \]

令协态为 \(\boldsymbol\lambda\),Hamiltonian 和切换函数定义为

\[ H=\ell+\boldsymbol\lambda^{\mathsf T}\dot{\boldsymbol x}, \qquad \phi(t)=\frac{\partial H}{\partial u} =\ell_1+\boldsymbol\lambda^{\mathsf T}\boldsymbol f_1. \]

按照这里采用的最小值原理符号约定,对 \(H\) 取最小值得到

\[ u^*(t)= \begin{cases} u_{\min}, & \phi(t)>0,\\ u_{\max}, & \phi(t)<0. \end{cases} \]

\(\phi\) 只在孤立时刻穿过零点,则对应 bang-bang 切换。若在一个 长度非零的区间内满足

\[ \phi(t)=\dot\phi(t)=\cdots=0, \]

该区间才是奇异弧。此时一阶最优性条件无法决定控制。若控制首次 出现在切换函数的 \(2r\) 阶时间导数中,

\[ \frac{\mathrm d^{2r}\phi}{\mathrm dt^{2r}}=a(\boldsymbol x,\boldsymbol\lambda,t) +b(\boldsymbol x,\boldsymbol\lambda,t)u, \]

形式上的奇异控制候选为 \(u_s=-a/b\)。它还必须满足控制边界、全部 状态和路径约束、弧段连接条件以及相应的广义 Legendre-Clebsch 条件。 仅满足离散动力学不足以证明最优性。

奇异弧也不同于由活跃状态约束或路径约束产生的边界弧;后者需要单独 处理约束乘子和相切条件。

直接配点为何难以可靠处理?

在真正的奇异区间内,一阶最优性条件对仿射控制局部不敏感。因此, 直接转录后的优化问题可能包含近似平坦的控制方向。不同网格或不同 初始猜测可能得到外观差异很大的控制,但目标函数和配点残差却相近。

这会产生多种实际失效方式:

  • 控制在边界内部振荡,而状态曲线看起来仍很光滑;
  • 网格调整追踪数值振荡,而不是真实的物理切换;
  • 非线性规划收敛到依赖网格的隐式正则化解;
  • bang-bang 检测器错误分类位于边界内部的奇异控制;
  • 把求解器成功终止误认为连续时间必要条件已经满足。

System.check_discontinuous()System.refine_discontinuous() 会检查 标记为 bang-bang 的表达式是否接近上界或下界。内部奇异弧不满足这项 假设,因此这两个方法不能识别或验证奇异弧。

可谨慎采用的方法

Pockit 目前没有一个自动设置可以把奇异问题变成可可靠求解的问题。 根据具体应用,可以用以下方法辅助独立分析:

  1. 解析推导奇异控制。 计算切换函数并持续求时间导数,直到控制 显式出现;随后检查控制边界、连接条件和高阶必要条件。
  2. 显式拆分已知弧段结构。 如果已经通过独立分析确定 bang 弧、 奇异弧和边界弧及其顺序,可以用不同阶段表示,并施加推导得到的 奇异条件和连接方程;仍需检验其他弧段排列。
  3. 只把正则化当作诊断。 例如 \(J_\varepsilon=J+\varepsilon\int u^2\,\mathrm dt\) 可以选出较光滑的 控制。应在多组网格上求解 \(\varepsilon\downarrow0\) 的序列。每个 \(\varepsilon>0\) 都对应另一个问题,因此表观收敛只能作为证据, 不能证明未正则化问题的最优解。
  4. 在转录模型之外验证。 对轨迹进行密集重构,独立积分动力学, 计算全部约束,并在可获得独立协态时检查切换函数和横截条件。
  5. 弧段结构未知或结果涉及安全时,使用专门处理奇异控制的方法。

结果应报告什么?

严谨的研究应说明假设的弧段结构、所用正则化、网格序列、初始猜测、 连续时间残差、切换函数历程、约束裕量,以及结果对这些选择的敏感性。 如果缺少这些检查,只能把所得结果称为候选轨迹。

对于不含奇异弧的问题,Pockit 的连续误差检查和 bang-bang 网格调整 仍然适用。其支持范围见误差检查与网格调整