最优控制理论 二、哈密尔顿函数法

Hamilton函数方法是变分法应用在控制系统上的标准化方法,即使不懂变分法,简单套用表格中的公式也可以列写出方程,这个方法是最优控制理论用的最多的方法。

标准最优控制问题

按照第一章最优控制理论 一、变分法和泛函极值问题,我们已经讨论了有动力学方程约束f(x,x˙,t)=0f(x,\dot x,t)=0的动态系统,若无其他约束,这个系统的最优轨线遵循以下必要条件
HxddtHx˙=0f(x(t),x˙(t),t)=0\begin{aligned}H_x-\frac{\text d}{\text d t}H_{\dot x}=0\\ \mathbf f(\mathbf x(t),\dot \mathbf x(t),t)=0 \end{aligned}
其中的Hamilton函数H(x,x˙,λ,t)=L(x,x˙,t)λTf(x,x˙,t)H(x,\dot x,\lambda,t)=L(x,\dot x,t)-\lambda^Tf(x,\dot x,t)。控制系统中更常见的一阶非线性系统方程,问题是这样的:tft_f给定,终端状态未知或已知(仅边界条件不同),除状态方程外没有约束,且
x˙=f[x(t),u(t),t];x(to)=x0tottfminu(t)J=φ[x(tf),tf]+totfL[x(t),u(t),t]dt(1)\dot{x}=f[x(t), u(t), t] ; \quad x\left(t_{o}\right)=x_0\quad t_{o} \leq t \leq t_{f}\\ \min_{u(t)}J=\varphi\left[x\left(t_{f}\right), t_{f}\right]+\int_{t_{o}}^{t_{f}} L[x(t), u(t), t] d t \tag 1
式中包括了控制项u(t)u(t)。这样的问题仍按照上一章的方法来考虑,对动力学方程约束引入Lagrange乘子
J[x(t),x˙(t),u(t),t]=φ(0)+ttf{L+λT[f(x,u,t)x˙]+dφ(x,t)dt}dt=φ(0)+ttfHˉ(x,x˙,λ,u,t)dtJ[x(t),\dot x(t),u(t),t]=\varphi(0)+\int_{t}^{t_{f}}\left\{L+\lambda^{T}[f(x, u, t)-\dot{x}]+\frac{\text d\varphi(x, t)}{\text d t}\right\} d t\\ =\varphi(0)+\int_{t}^{t_{f}}\bar H(x,\dot x,\lambda,u,t)\text d t
x(t)x(t)u(t)u(t)λ(t)\lambda(t)都考虑Euler方程,即HˉxddtHˉx˙=0\bar H_x-\frac{\text d}{\text d t}\bar H_{\dot x}=0以及Hˉu=0\bar H_u=0Hˉλ=0\bar H_\lambda=0

Lx+fTxλ(t)+λ˙(t)=0f(x,u,t)x˙=0Lu+fTuλλ(t)=0\begin{aligned} \frac{\partial L}{\partial x}+\frac{\partial f^{\mathrm{T}}}{\partial x} \lambda(t)+\dot{\lambda}(t)=0 \\ f(x,u,t)-\dot x=0\\ \frac{\partial L}{\partial u}+\frac{\partial f^{\mathrm{T}}}{\partial u^{\lambda}} \lambda(t)=0 \end{aligned}
此外还有状态方程和边界条件:终端固定x(tf)=xfx(t_f)=x_f或终端自由Hˉx˙(tf)=0\bar H_{\dot x}(t_f)=0.

Hamilton函数法

上面这个方程的形式不是很好,我们重新定义一个哈密尔顿函数:

H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t](2)H[x(t), u(t), \lambda(t), t]=L[x(t), u(t), t]+\lambda^{T}(t) f[x(t), u(t), t] \tag 2

那么性能指标化为:
J[x(t),x˙(t),u(t),t]=φ(0)λTx0tf+totf(H+λ˙Tx)dt\begin{aligned} J[x(t),\dot x(t),u(t),t] &=\varphi(0)-\lambda^{T} x\big|_0^{t_f} &+\int_{t_{o}}^{t_{f}}(H+\dot{\lambda}^T x) d t \end{aligned}
此时,Euler方程变为
λ˙=Hx=LxλTfxx˙=f(x,u,t)0=Hu=Lu+(fu)Tλ(3)\begin{aligned} \dot{\lambda}&=-\frac{\partial H}{\partial x}=-\frac{\partial L}{\partial x}-\lambda^T\frac{\partial f}{\partial x}\tag{3}\\ \dot{x}&=f(x,u,t)\\ 0&=\frac{\partial H}{\partial u}=\frac{\partial L}{\partial u}+\left(\frac{\partial f}{\partial u}\right)^{T} \lambda \end{aligned}
这样,最优控制问题被规范化为3个Euler方程,按公式(3)(3),依次是协态方程、状态方程和控制方程,方程按照Hamilton函数的偏导数的形式非常简洁。按照公式(1)(3)(1)-(3)的过程进行展开求解,这就是无约束问题的Hamilton函数法,除了Euler方程,还要考虑边界条件和定解条件才能实际求解。
方程中x(t),λ(t)Rn,u(t)Rmx(t),\lambda(t)\in \Reals^n,u(t)\in\Reals^m总共有2n+m2n+m个未知的时变参数。协态方程和状态方程x(t),λ(t)x(t),\lambda(t)是一阶常微分方程组,需要知道2n2n个边界条件才能求解;控制方程u(t)u(t)是代数方程,由x(t)x(t)λ(t)\lambda(t)直接得到。
下面给出几种常用的边界条件和横截条件

问题描述 未知变量个数 边界条件 横截条件
tf,xft_f,x_f均给定 2n2n x(t0)=x0,x(tf)=xfx(t_0)=x_0,x(t_f)=x_f \
tft_f给定,xfx_f自由 2n2n x(t0)=x0x(t_0)=x_0 λ(tf)=φ(,tf)xT\lambda(t_f)=\frac{\partial \varphi(\cdot^*,t_f)}{\partial x^T}
tft_f自由,xfx_f给定 2n+12n+1 x(t0)=x0,x(tf)=xfx(t_0)=x_0,x(t_f)=x_f H(,tf)+φ(,tf)t=0H(\cdot^*,t_f)+\frac{\partial \varphi(\cdot^*,t_f)}{\partial t}=0
tfxft_f,x_f均自由 2n+12n+1 x(t0)=x0x(t_0)=x_0 λ(tf)=φxT;H(,tf)+φ(,tf)t=0\lambda(t_f)=\frac{\partial \varphi}{\partial x^T};\\H(\cdot^*,t_f)+\frac{\partial \varphi(\cdot^*,t_f)}{\partial t}=0

上面,性能指标不包括Meyer型,即φ(x(tf),tf))0\varphi(x(t_f),t_f))\equiv0,则横截条件中出现相应的项为0。如tfxft_f,x_f均自由时,横截条件为
λ(tf)=0,H(,tf)=0\lambda(t_f)=0,H(\cdot^*,t_f)=0

终端约束的情况

设终端时刻tft_f自由或给定,终端状态xfx_f自由但满足代数约束,两者之间的关系为
ψ(xf,tf)=0ψRm,m<n(4)\psi(x_f,t_f)=0,\psi\in\Reals^m,m\lt n\tag 4
有m个终端约束,仍考虑表达式(1)(1)所述的性能指标。这样的终端约束可以表达:

  • xfx_f的部分状态量给定,其他状态量自由;
  • xfx_f之间存在代数关系,如速度v\mathbf v和位置矢量r\mathbf r正交

参考文献[2],按照Lagrange乘数法,设一个常数向量μRm\mu\in\Reals^{m},则性能指标变成
J=[φ+μTψ]tf+0tf{L(x,u,t)+λT[f(x,u,t)x˙]}dt=Φtf+0tf(HλTx˙)dt\begin{aligned} J&=\left[\varphi+\mu^{T} \psi\right]_{t_{f}}+\int_{0}^{t_{f}}\left\{L(x, u, t)+\lambda^{T}[f(x, u, t)-\dot{x}]\right\} d t\\ &=\Phi_{t_f}+\int_{0}^{t_{f}}(H-\lambda^T\dot x)dt \end{aligned}
上式仍然定义相同的Hamilton函数H=L+λTfH=L+\lambda^Tf,以及标量函数Φ=φ+μTψ\Phi=\varphi+\mu^{T} \psi。对终端时刻的性能指标求全微分:
dJ=((Φt+L)dt+Φxdx)tf+0tf(Hxδx+HuδuλTδx˙)dt\begin{aligned} d J=\left(\left(\frac{\partial \Phi}{\partial t}+L\right) d t+\frac{\partial \Phi}{\partial x} d x\right) _{t_f} &+\int_{0}^{t_{f}}\left(\frac{\partial H}{\partial x} \delta x+\frac{\partial H}{\partial u} \delta u-\lambda^{T} \delta \dot{x}\right) d t \end{aligned}
并考虑δx(t)=dx(t)x˙(t)dt\delta x(t)=\text d x(t)-\dot x(t)\text d t,上式可变换为
dJ=(Φt+L+λTx˙)tfdtf+[(ΦxλT)dx]tf+(λTδx)t0+0tf[(Hx+λ˙T)δx+Huδu]dt(5) \text d J=\left(\frac{\partial \Phi}{\partial t}+L+\lambda^{T} \dot{x}\right)_{t_{f}}\text d t_{f}+\left[\left(\frac{\partial \Phi}{\partial x}-\lambda^{T}\right)\text d x\right]_{t_{f}}+\\\left(\lambda^{T} \delta x\right)_{t_0} +\int_{0}^{t_{f}}\left[\left(\frac{\partial H}{\partial x}+\dot{\lambda}^{T}\right) \delta x+\frac{\partial H}{\partial u} \delta u\right]\text d t \tag 5
按照最优性的必要条件,令每一项的系数都为0,可以得到Euler方程
λ˙=Hx=LxλTfxx˙=f(x,u,t)0=Hu=Lu+(fu)Tλ(6)\begin{aligned} \dot{\lambda}&=-\frac{\partial H}{\partial x}=-\frac{\partial L}{\partial x}-\lambda^T\frac{\partial f}{\partial x}\\ \dot{x}&=f(x,u,t)\\ 0&=\frac{\partial H}{\partial u}=\frac{\partial L}{\partial u}+\left(\frac{\partial f}{\partial u}\right)^{T} \lambda \end{aligned}\tag{6}
边界条件和横截条件
λT(tf)=Φ(,tf)x=φ(xf,tf)x+μTψ(xf,tf)x(Φt+λTx˙+L)t=tf(dΦdt+L)t=tf=0(7)\begin{aligned} \lambda^{T}\left(t_{f}\right)=\frac{\partial \Phi(\cdot^*,t_f)}{\partial x}=\frac{\partial \varphi(x_f,t_f)}{\partial x}+\mu^{T} \frac{\partial \psi(x_f,t_f)}{\partial x} \\ \left(\frac{\partial \Phi}{\partial t}+\lambda^{T} \dot{x}+L\right)_{t=t_{f}}\equiv \left(\frac{\text d \Phi}{\text d t}+L\right)_{t=t_{f}}=0 \end{aligned}\tag{7}

可见文献[2]按照公式(5)(5)推导的结果和变分法得到的结果完全一致。其中x(t),λ(t)x(t),\lambda(t)以及Lagrange乘数μ\mu未知,以下再给出表格总结:

问题描述 未知变量个数 边界条件 横截条件
tft_f给定,xfx_f自由,且有终端约束ψ(xf,tf)=0\psi(x_f,t_f)=0 2n+m2n+m x(t0)=x0ψ(xf,tf)=0x(t_0)=x_0\\ \psi(x_f,t_f)=0 λ(tf)=φxT+μTψx\lambda(t_f)=\frac{\partial \varphi}{\partial x^T}+\mu^T\frac{\partial\psi}{\partial x}
tft_f给定,xfx_f自由,且有终端约束ψ(xf,tf)=0\psi(x_f,t_f)=0,(Lagrange型性能指标) 2n+m2n+m x(t0)=x0ψ(xf,tf)=0x(t_0)=x_0\\ \psi(x_f,t_f)=0 λ(tf)=μTψx\lambda(t_f)=\mu^T\frac{\partial\psi}{\partial x}
tfxft_f,x_f均自由,且有终端约束ψ(xf,tf)=0\psi(x_f,t_f)=0 2n+m+12n+m+1 x(t0)=x0ψ(xf,tf)=0x(t_0)=x_0\\ \psi(x_f,t_f)=0 λ(tf)=φxT+μTψx;φt+μTψt+(φx+μTψx)f+L=0,(t=tf)\lambda(t_f)=\frac{\partial \varphi}{\partial x^T}+\mu^T\frac{\partial\psi}{\partial x};\\ \frac{\partial \varphi}{\partial t}+\mu^{T} \frac{\partial \psi}{\partial t}+\left(\frac{\partial \varphi}{\partial x}+\mu^{T} \frac{\partial \psi}{\partial x}\right) f+L=0,(t=t_{f})
tfxft_f,x_f均自由,且有终端约束ψ(xf,tf)=0\psi(x_f,t_f)=0,(Lagrange型性能指标) 2n+m+12n+m+1 x(t0)=x0ψ(xf,tf)=0x(t_0)=x_0\\ \psi(x_f,t_f)=0 λ(tf)=φxT+μTψx;μT[ψt+ψxf]+L=0,(t=tf)\lambda(t_f)=\frac{\partial \varphi}{\partial x^T}+\mu^T\frac{\partial\psi}{\partial x};\\ \mu^{T} [\frac{\partial \psi}{\partial t}+ \frac{\partial \psi}{\partial x} f]+L=0,(t=t_{f})

应用举例

倒立摆问题

倒立摆按照方程Iθ¨+bθ˙mglsinθ=uI\ddot\theta+b\dot\theta-mgl\sin\theta=u,初始状态x0=[θ,ω]T=[π,0]x_0=[\theta,\omega]^T=[\pi,0],控制目标[θf,ωf]T=[0,0][\theta_f,\omega_f]^T=[0,0],终端时刻tft_f自由,二次型性能指标
minu(t)=12xfTQxf+120tfRu2\min_{u(t)}=\frac1 2\mathbf x_f^T\text Q\mathbf x_f+\frac1 2\int_0^{t_f}\text R\mathbf u^2

最优控制理论 二、哈密尔顿函数法首先写出一阶非线性微分方程组
[θ˙ω˙]=f(x)=[ω1/I(mglsinθ+bω+u)]\begin{bmatrix}\dot\theta\\\dot\omega\end{bmatrix}=\mathbf f(\mathbf x)=\begin{bmatrix}\omega\\1/I(-mgl\sin\theta+b\omega+u)\end{bmatrix}
写出Hamilton函数
H=12Ru2+λ1ω+λ2ω˙H=\frac1 2\text R u^2+\lambda_1\omega+\lambda_2\dot\omega
协态方程
λ˙1=Hθ=λ2mglcosθ/Iλ˙2=Hθ=λ1\begin{aligned} \dot\lambda_1&=-\frac{\partial H}{\partial \theta}=\lambda_2mgl\cos\theta/I\\ \dot\lambda_2&=-\frac{\partial H}{\partial \theta}=-\lambda_1 \end{aligned}
最优控制
Hu=Ru+λ2/I=0    u=λ2/RI\frac{\partial{H}}{\partial u}=Ru+\lambda_2/I=0\implies u=-\lambda_2/{RI}
横截条件
H(tf)+φ(xf)t=12Ru2+λ2u/I=0    λ2(tf)=0H(t_f)+\frac{\partial \varphi(x_f)}{\partial t}=\frac1 2\text R u^2+\lambda_2u/I=0\implies \lambda_2(t_f)=0
代入数据,调用MATLAB中的bvp4c求解这个问题,得到结果
最优控制理论 二、哈密尔顿函数法

连续推力轨道转移问题

轨道动力学方程r¨=μr3r+a\mathbf{\ddot r}=\mathbf -\frac\mu{r^3}\mathbf r+\mathbf a,初始状态已知r(t0)=r0,v(t0)=v0r(t_0)=r_0,v(t_0)=v_0,终端时刻tft_f给定,终端状态约束ψ(r(tf),v(tf))=rTv=0\psi(\mathbf r(t_f),\mathbf v(t_f))=\mathbf r^T\mathbf v=0。最小能量问题mina(t)J=12t0tfaTadt\min_{a(t)}J=\frac1 2\int_{t_0}^{t_f}\mathbf a^T\mathbf a\text d t
套用Hamilton函数法,状态变量
x=[rv]f(x)=[rμr3r+a]\mathbf x=\begin{bmatrix}\mathbf r\\ \mathbf v\end{bmatrix}\\ \mathbf f(\mathbf x)=\begin{bmatrix}\mathbf r\\ -\frac\mu{r^3}\mathbf r+\mathbf a\end{bmatrix}
则Hamilton函数为
H=12aTa+λrTv+λvT(g(r)+a)H=\frac 1 2\mathbf a^T\mathbf a+\mathbf\lambda_r^T\mathbf v+\mathbf\lambda_v^T(\mathbf g(\mathbf r)+\mathbf a)
协态方程
λ˙rT=Hr=λvTg(r)rλ˙vT=Hv=λrT\begin{aligned} \dot{\lambda}_{r}^{T}&=-\frac{\partial H}{\partial \mathbf{r}}=-\lambda_{\mathrm{v}}^{T} \frac{\partial \mathbf{g}(\mathbf{r})}{\partial \mathbf{r}}\\ \dot{\lambda}_{\mathrm{v}}^{T}&=-\frac{\partial H}{\partial \mathbf{v}}=-\lambda_{r}^{T} \end{aligned}
对终端约束引入Lagrange乘数νR1\nu\in\Reals^1,查表得到横截条件
λr(tf)=νTψr(tf)=νvfλv(tf)=νTψv(tf)=νrf \lambda_{r}\left(t_{f}\right)=\nu^T\frac{\partial\psi}{\partial \mathbf{r}\left(t_{f}\right)}=\nu\mathbf v_f \\ \lambda_{\mathrm{v}}\left(t_{f}\right)=\nu^T\frac{\partial\psi}{\partial \mathbf{v}\left(t_{f}\right)}=\nu\mathbf r_f
最优控制
Ha=a+λv=0(8)\frac{\partial{H}}{\partial \mathbf a}=\mathbf a+\lambda_v=0\tag 8
则最优控制的控制律为a=λv\mathbf a=-\lambda_{\mathbf v},这个式子最早由Lawden提出,被称为主矢量理论。代入控制,有12个未知变量,
r˙=rv˙=μr3rλvλ˙rT=λvTg(r)rλ˙vT=λrT\begin{aligned} \dot\mathbf r&=\mathbf r\\ \dot\mathbf v&= -\frac\mu{r^3}\mathbf r-\lambda_v\\ \dot{\lambda}_{r}^{T}&=-\lambda_{\mathrm{v}}^{T} \frac{\partial \mathbf{g}(\mathbf{r})}{\partial \mathbf{r}}\\ \dot{\lambda}_{\mathrm{v}}^{T}&=-\lambda_{r}^{T} \end{aligned}
1个未知常数ν\nu,边界条件共有13个,可以通过求解两点边值问题求解最优轨迹。

其他重要内容

Hamilton函数的性质

沿最优轨线,Hamilton函数对时间的全导数等于其对时间的偏导数:
dHdt=HTxx˙+HTλλ˙+HTuU˙+Ht(9)\frac{\mathrm{d} H}{\mathrm{d} t}=\frac{\partial H^{\mathrm{T}}}{\partial x} \dot{x}+\frac{\partial H^{\mathrm{T}}}{\partial \lambda} \dot{\lambda}+\frac{\partial H^{\mathrm{T}}}{\partial u} \dot{U}+\frac{\partial H}{\partial t}\tag 9
考虑到最优轨线附近满足
Hx=λ˙Hu=0Hλ=f=x˙\begin{aligned} \frac{\partial H}{\partial x}&=\dot\lambda\\ \frac{\partial H}{\partial u}&=0\\ \frac{\partial H}{\partial \lambda}&=f=\dot x \end{aligned}
则公式(9)(9)可证。

角点条件

控制分段连续时,对最上面定义的
Hˉ(x,x˙,λ,t)=L(x,x˙,t)λT(f(x,x˙,t)x˙)\bar H(x,\dot x,\lambda,t)=L(x,\dot x,t)-\lambda^T(f(x,\dot x,t)-\dot x)%
由角点处的Weierstrass-Erdmann条件,有
HˉX˙ξ0=HˉX˙ξ+0HˉX˙THˉX˙ξ0=HˉX˙THˉX˙ξ+0\begin{aligned} \left.\bar{H}_{\dot{X}}\right|_{\xi-0} &=\left.\bar{H}_{\dot{X}}\right|_{\xi+0} \\ \bar{H}-\left.\dot{X}^{\mathrm{T}} \bar{H}_{\dot{X}}\right|_{\xi-0} &=\bar{H}-\left.\dot{X}^{\mathrm{T}} \bar{H}_{\dot{X}}\right|_{\xi+0} \end{aligned}
对标准形式的Hamilton函数H=L+λTfH=L+\lambda^Tf,以下条件等价
λ(ξ0)=λ(ξ+0)Hξ0=Hξ+0\begin{aligned} \lambda(\xi-0)&=\lambda(\xi+0)\\ \left.H\right|_{\xi-0} &=\left.{H}\right|_{\xi+0} \\ \end{aligned}
即Hamilton函数连续,且协态变量连续。

参考文献

[1] 邢继祥. 最优控制应用基础[M]. 科学出版社, 2003.
[2] Bryson A E , Ho Y C ,Applied optimal control : optimization, estimation, and control[J]. IEEE Transactions on Systems Man & Cybernetics, 1975