You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于最优控制问题手算求解方法的咨询

关于最优控制问题手算求解方法的咨询

嘿,我来帮你梳理下手算这个最优控制问题的可行方法~首先你已经正确推导了哈密顿量和庞特里亚金极值原理的条件,先再明确下问题背景:

我们需要找到最优控制$u^(t)$,满足状态方程:
$$
\begin{align
}
\dot{x}_1(t) &= x_2(t), & x_1(0) &= 3 \
\dot{x}2(t) &= -2x_1(t) + 5u(t), & x_2(0) &= 5
\end{align*}
$$
并最小化代价函数:
$$
J = \frac{1}{2} \int
{0}^{2} [x_1^2(t) + u^2(t)] , dt
$$

你已经得到的最优性条件包括:

  • 哈密顿量:$H = \frac{1}{2}(x_1^2 + u^2) + p_1 x_2 + p_2(-2x_1 + 5u)$
  • 状态方程:$\dot{x}_1 = \frac{\partial H}{\partial p_1} = x_2$,$\dot{x}_2 = \frac{\partial H}{\partial p_2} = -2x_1 + 5u$
  • 协态方程:$\dot{p}_1 = -\frac{\partial H}{\partial x_1} = -x_1 + 2p_2$,$\dot{p}_2 = -\frac{\partial H}{\partial x_2} = -p_1$
  • 控制律:$\frac{\partial H}{\partial u} = 0 \Rightarrow u = -5p_2$
  • 终端条件:$p_1(2) = 0$,$p_2(2) = 0$

接下来给你两种适合手算的解法思路:

方法一:降阶法(转化为高阶标量微分方程)

这个方法的核心是通过代入消元,把四阶耦合方程组转化为单个高阶微分方程,步骤如下:

  1. 先把控制律$u=-5p_2$代入状态方程的第二个式子,得到:
    $$\dot{x}_2 = -2x_1 -25p_2$$
  2. 从协态方程$\dot{p}_2 = -p_1$,可以直接得到$p_1 = -\dot{p}_2$,把它代入另一个协态方程$\dot{p}_1 = -x_1 + 2p_2$:
    $$-\ddot{p}_2 = -x_1 + 2p_2 \implies x_1 = \ddot{p}_2 + 2p_2$$
  3. 对$x_1$求导两次,得到$\dot{x}_1$和$\dot{x}_2$的表达式:
    $$\dot{x}_1 = \dddot{p}_2 + 2\dot{p}_2 = x_2$$
    $$\dot{x}_2 = \ddddot{p}_2 + 2\ddot{p}_2$$
  4. 把$\dot{x}_2$和$x_1$的表达式代入步骤1得到的式子中,整理后得到关于$p_2$的四阶常系数齐次微分方程:
    $$\ddddot{p}_2 + 4\ddot{p}_2 + 29p_2 = 0$$
  5. 解这个四阶方程:令$\lambda^4 +4\lambda^2 +29=0$,设$y=\lambda2$,则$y2+4y+29=0$,解得$y=-2\pm5i$,因此特征值为$\lambda=\pm\sqrt{-2+5i}, \pm\sqrt{-2-5i}$,对应的通解是指数函数与三角函数的组合(复数特征值对应振荡解)。
  6. 利用终端条件$p_2(2)=0$、$p_1(2)=-\dot{p}_2(2)=0$(即$\dot{p}_2(2)=0$),以及初始条件$x_1(0)=3=\ddot{p}_2(0)+2p_2(0)$、$x_2(0)=5=\dddot{p}_2(0)+2\dot{p}_2(0)$,代入通解求解系数,最终得到$p_2(t)$后,就能得到$u(t)=-5p_2(t)$。

方法二:特征值法(四阶线性方程组求解)

把整个系统转化为一阶线性方程组的矩阵形式,利用特征值-特征向量求解:

  1. 定义状态向量$\mathbf{z}(t) = [x_1(t), x_2(t), p_1(t), p_2(t)]^T$,代入所有方程后得到:
    $$\dot{\mathbf{z}} = A\mathbf{z}$$
    其中系数矩阵$A$为:
    $$
    A = \begin{bmatrix}
    0 & 1 & 0 & 0 \
    -2 & 0 & 0 & -25 \
    -1 & 0 & 0 & 2 \
    0 & 0 & -1 & 0
    \end{bmatrix}
    $$
  2. 求解特征方程$\det(A - \lambda I)=0$,得到四个特征值(和方法一的特征值一致),再求出每个特征值对应的特征向量。
  3. 写出$\mathbf{z}(t)$的通解:$\mathbf{z}(t) = c_1 e^{\lambda_1 t}\mathbf{v}_1 + c_2 e^{\lambda_2 t}\mathbf{v}_2 + c_3 e^{\lambda_3 t}\mathbf{v}_3 + c_4 e^{\lambda_4 t}\mathbf{v}_4$,其中$c_i$是待求系数,$\mathbf{v}_i$是对应特征向量。
  4. 代入初始条件$x_1(0)=3, x_2(0)=5$和终端条件$p_1(2)=0, p_2(2)=0$,得到四个方程,解出$c_1\sim c_4$,进而得到$p_2(t)$和$u(t)$。

额外思路:利用LQR的Riccati方程

因为这是典型的线性二次调节器(LQR)问题,也可以通过解Riccati微分方程来求解:

  1. 定义Riccati矩阵$P(t)=\begin{bmatrix}p_{11}(t)&p_{12}(t)\p_{12}(t)&p_{22}(t)\end{bmatrix}$(对称矩阵,减少未知量),代入Riccati方程:
    $$\dot{P} = -P A - A^T P + P B R^{-1} B^T P - Q$$
    其中系统矩阵$A=\begin{bmatrix}0&1\-2&0\end{bmatrix}$,输入矩阵$B=\begin{bmatrix}0\5\end{bmatrix}$,代价矩阵$Q=\begin{bmatrix}1&0\0&0\end{bmatrix}$,$R=1$。
  2. 边界条件为$P(2)=0$(因为终端无代价项),解这个耦合的微分方程组得到$P(t)$后,最优控制律为$u(t)=-R{-1}BT P(t)\mathbf{x}(t)$,再结合状态方程求解$\mathbf{x}(t)$。不过这个方法需要解三个耦合的微分方程,手算复杂度和前两种方法差不多,适合熟悉Riccati方程的情况。

总体来说,降阶法是手算时相对直接的选择,因为它把问题转化为单个高阶方程,处理起来更聚焦;特征值法则更系统化,适合线性系统的通用求解。

备注:内容来源于stack exchange,提问作者lord voldemort

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 13:10:29