最优控制理论 五、极大值原理→控制不等式约束

庞特里亚金提出的“极大值原理”(Pontryagin Maximum Principle,PMP)是最优控制理论的三大基石之一。与哈密尔顿函数法的异同是,两者都旨在解决非线性常微分方程组下的最优控制问题,都是性能指标取极值的必要条件。Hamiltonian解决分段连续可导的控制 u ( t ) u(t) u(t),而PMP可以求解不连续可导的控制,特别是不等式约束下的最优控制问题。

前面,最优控制理论 二、哈密尔顿函数法已经列举了各种类型的等式约束,采用Hamiltonian求解的方法,如:

  • 终端等式约束 ψ ( x ( t f ) , t f ) = 0 \psi(x(t_f),t_f)=0 ψ(x(tf),tf)=0
  • 积分方程约束 ∫ 0 t f N ( x ( t ) , u ( t ) , t ) d t = β \int_0^{t_f}N(x(t),u(t),t)\text d t=\beta 0tfN(x(t),u(t),t)dt=β
  • 控制方程的非线性等式约束 N ( u ( t ) , t ) = 0 N(u(t),t)=0 N(u(t),t)=0
  • 状态变量的非线性等式约束 N ( x ( t ) , t ) = 0 N(x(t),t)=0 N(x(t),t)=0

可是常见的不等式约束,Hamiltonian是难以解决的,如

  • 控制输入受限 C ( u ( t ) , t ) ≤ 0 C(u(t),t)\leq0 C(u(t),t)0
  • 状态变量的路径约束 S ( x ( t ) , t ) ≤ 0 S(x(t),t)\leq0 S(x(t),t)0,如火箭上升的过载约束
  • 终端状态的不等式约束 S ( x ( t f ) , t f ) ≤ 0 S(x(t_f),t_f)\leq0 S(x(tf),tf)0,如导弹命中脱靶量要求等

对于这些问题,采用PMP是很有必要的。解决另外两种形式的不等式约束下的OCP问题,在后续章节我会写出来。本篇博客限于篇幅,仅讨论控制输入受限的极大值原理方法,即 C ( u ( t ) , t ) ≤ 0 C(u(t),t)\leq0 C(u(t),t)0

1. 控制 u ( t ) u(t) u(t)受约束的极小值原理

由于PMP的推导过程很复杂,所以这里只给出结论。文献[1]的2.4节应该有证明。
对于控制系统:
x ˙ = f [ x ( t ) , u ( t ) , t ] ; x ( t o ) = x 0 t o ≤ t ≤ t f min ⁡ u ( t ) ∈ U J = φ [ x ( t f ) , t f ] + ∫ t o t f L [ x ( t ) , u ( t ) , t ] d t \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)\in U}J=\varphi\left[x\left(t_{f}\right), t_{f}\right]+\int_{t_{o}}^{t_{f}} L[x(t), u(t), t] d t x˙=f[x(t),u(t),t];x(to)=x0tottfu(t)UminJ=φ[x(tf),tf]+totfL[x(t),u(t),t]dt

t f t_f tf给定或自由,问题要求受约束的最优控制 u ( t ) ∈ U ⊂ R q u(t)\in U\subset\Reals^q u(t)URq U U U为闭集,(简单理解闭集和开集,举例,闭集是 { u ∣ ∥ u ∥ ≤ 1 } \{u|\Vert u\Vert\leq1\} {u∣∥u1},开集是 { u ∣ ∥ u ∥ < 1 } \{u|\Vert u\Vert\lt1\} {u∣∥u<1}。)实际上就是要满足形如下列形式的约束:
C ( u ( t ) , t ) ≤ 0 C(u(t),t)\leq0 C(u(t),t)0

对于这个问题,构造Hamilton函数如
H [ x ( t ) , u ( t ) , λ ( t ) , t ] ≜ L [ x ( t ) , u ( t ) , t ] + λ T ( t ) f [ x ( t ) , u ( t ) , t ] H[x(t), u(t), \lambda(t), t]\triangleq L[x(t), u(t), t]+\lambda^{\mathrm T}(t) f[x(t), u(t), t] H[x(t),u(t),λ(t),t]L[x(t),u(t),t]+λT(t)f[x(t),u(t),t]

沿最优轨线的状态方程、协态方程成立,表达为如下形式的Euler-Lagrange方程:
λ ˙ = − ∂ H ∂ x   (协态方程) x ˙ = ∂ H ∂ λ   (状态方程) \begin{aligned} \dot{\lambda}&=-\frac{\partial H}{\partial x} \ &\text{(协态方程)}\\ \dot{x}&=\frac{\partial H}{\partial \lambda} \ &\text{(状态方程)} \end{aligned} λ˙x˙=xH =λH (协态方程)(状态方程)

而控制方程有新的形式
H ( x ∗ ( t ) , u ∗ ( t ) , λ ∗ ( t ) , t ) = min ⁡ u ∈ U H ( x ∗ ( t ) , u ( t ) , λ ∗ ( t ) , t ) (PMP) H(x^*(t),u^*(t),\lambda^*(t),t)=\min_{u\in U}H(x^*(t),u(t),\lambda^*(t),t) \tag{PMP} H(x(t),u(t),λ(t),t)=uUminH(x(t),u(t),λ(t),t)(PMP)

上式 ( PMP ) (\text{PMP}) (PMP)称为庞特里亚金的极小值原理,该式表明最优控制 u ∗ ( t ) u^*(t) u(t)是所有容许的控制 u ( t ) ∈ U u(t)\in U u(t)U当中使Hamilton函数取最小值的那个,即 u ∗ ( t ) = { u ∣ min ⁡ u ( t ) H ( x ∗ , λ ∗ , u , t ) , u ∈ U } u^*(t)=\{u|\min_{u(t)}H(x^*,\lambda^*,u,t),u\in U\} u(t)={uminu(t)H(x,λ,u,t),uU}。这个控制方程和无约束问题的 ∂ H ∂ u ∗ = 0 \frac{\partial H}{\partial u^*}=0 uH=0相比而言,将控制的集合推广到分段函数上,不必在整个区间内连续可导;相应地,在求解上需要分段求解 u ∗ ( t ) u^*(t) u(t)

上面协态方程、状态方程、控制方程(PMP)、边界条件等公式,共同组成性能指标取极值的必要条件。

:若Hamiltonian取
H [ x ( t ) , u ( t ) , λ ( t ) , t ] ≜ − L + λ T f H[x(t), u(t), \lambda(t), t]\triangleq -L+\lambda^{\mathrm T}f H[x(t),u(t),λ(t),t]L+λTf

则沿最优控制的必要条件为
H ( x ∗ ( t ) , u ∗ ( t ) , λ ∗ ( t ) , t ) = max ⁡ u ∈ U H ( x ∗ ( t ) , u ( t ) , λ ∗ ( t ) , t ) H(x^*(t),u^*(t),\lambda^*(t),t)=\max_{u\in U}H(x^*(t),u(t),\lambda^*(t),t) H(x(t),u(t),λ(t),t)=uUmaxH(x(t),u(t),λ(t),t)

这个形式被称为极大值原理,也是庞特里亚金最早提出来的形式。这个方程在求解时和 PMP \text{PMP} PMP等价,但是为了和前面章节的Hamiltonian保持一致,我们用极小值原理。 □ \square

1.1 边界条件和横截条件

不同问题有不同的边界条件和横截条件,只有考虑全了,常微分方程组和两点边值问题才有可能定解。方程中 x ( t ) , λ ( t ) ∈ R n , u ( t ) ∈ R q x(t),\lambda(t)\in \Reals^n,u(t)\in\Reals^q x(t),λ(t)Rn,u(t)Rq总共有 2 n + q 2n+q 2n+q个未知的时变参数。协态方程和状态方程 x ( t ) , λ ( t ) x(t),\lambda(t) x(t),λ(t)是一阶常微分方程组,需要知道 2 n 2n 2n个边界条件才能求解;控制方程 u ( t ) u(t) u(t)是代数方程,由 x ( t ) x(t) x(t) λ ( t ) \lambda(t) λ(t)分段求解得到。时间自由问题&最小时间问题的终端时刻 t f t_f tf是未知数,需要多加一个边界条件。终端约束问题若有m个等式方程,则在 t f t_f tf时刻多了m个未知的Lagrange乘数 μ ∈ R m \mu\in\Reals^m μRm.

下面直接把第二章的表格粘贴过来,利用PMP仍然需要套用这些条件,或者说Hamilton函数法和庞特里亚金极小值原理的边界条件、横截条件相同。

问题描述未知变量个数(不包含 u ( t ) u(t) u(t)边界条件横截条件
t f , x f t_f,x_f tf,xf均给定 2 n 2n 2n x ( t 0 ) = x 0 , x ( t f ) = x f x(t_0)=x_0,x(t_f)=x_f x(t0)=x0,x(tf)=xf\
t f t_f tf给定, x f x_f xf自由 2 n 2n 2n x ( t 0 ) = x 0 x(t_0)=x_0 x(t0)=x0 λ ( t f ) = ∂ φ ( ⋅ ∗ , t f ) ∂ x \lambda(t_f)=\frac{\partial \varphi(\cdot^*,t_f)}{\partial x} λ(tf)=xφ(,tf)
t f t_f tf自由, x f x_f xf给定 2 n + 1 2n+1 2n+1 x ( t 0 ) = x 0 , x ( t f ) = x f x(t_0)=x_0,x(t_f)=x_f x(t0)=x0,x(tf)=xf H ( ⋅ ∗ , t f ) + ∂ φ ( ⋅ ∗ , t f ) ∂ t = 0 H(\cdot^*,t_f)+\frac{\partial \varphi(\cdot^*,t_f)}{\partial t}=0 H(,tf)+tφ(,tf)=0
t f , x f t_f,x_f tfxf均自由 2 n + 1 2n+1 2n+1 x ( t 0 ) = x 0 x(t_0)=x_0 x(t0)=x0 λ ( t f ) = ∂ φ ∂ x ; H ( ⋅ ∗ , t f ) + ∂ φ ( ⋅ ∗ , t f ) ∂ t = 0 \lambda(t_f)=\frac{\partial \varphi}{\partial x};\\H(\cdot^*,t_f)+\frac{\partial \varphi(\cdot^*,t_f)}{\partial t}=0 λ(tf)=xφ;H(,tf)+tφ(,tf)=0
t f t_f tf给定, x f x_f xf自由,且有终端约束 ψ ( x f , t f ) = 0 \psi(x_f,t_f)=0 ψ(xf,tf)=0 2 n + m 2n+m 2n+m x ( t 0 ) = x 0 ψ ( x f , t f ) = 0 x(t_0)=x_0\\ \psi(x_f,t_f)=0 x(t0)=x0ψ(xf,tf)=0 λ ( t f ) = ∂ φ ∂ x + μ T ∂ ψ ∂ x \lambda(t_f)=\frac{\partial \varphi}{\partial x}+\mu^{\mathrm T}\frac{\partial\psi}{\partial x} λ(tf)=xφ+μTxψ
t f t_f tf给定, x f x_f xf自由,且有终端约束 ψ ( x f , t f ) = 0 \psi(x_f,t_f)=0 ψ(xf,tf)=0,(Lagrange型性能指标) 2 n + m 2n+m 2n+m x ( t 0 ) = x 0 ψ ( x f , t f ) = 0 x(t_0)=x_0\\ \psi(x_f,t_f)=0 x(t0)=x0ψ(xf,tf)=0 λ ( t f ) = μ T ∂ ψ ∂ x \lambda(t_f)=\mu^{\mathrm T}\frac{\partial\psi}{\partial x} λ(tf)=μTxψ
t f , x f t_f,x_f tfxf均自由,且有终端约束 ψ ( x f , t f ) = 0 \psi(x_f,t_f)=0 ψ(xf,tf)=0 2 n + m + 1 2n+m+1 2n+m+1 x ( t 0 ) = x 0 ψ ( x f , t f ) = 0 x(t_0)=x_0\\ \psi(x_f,t_f)=0 x(t0)=x0ψ(xf,tf)=0 λ ( t f ) = ∂ φ ∂ x + μ T ∂ ψ ∂ x ; ∂ φ ∂ t + μ T ∂ ψ ∂ t + ( ∂ φ ∂ x + μ T ∂ ψ ∂ x ) f + L = 0 , ( t = t f ) \lambda(t_f)=\frac{\partial \varphi}{\partial x}+\mu^{\mathrm T}\frac{\partial\psi}{\partial x};\\ \frac{\partial \varphi}{\partial t}+\mu^{\mathrm T} \frac{\partial \psi}{\partial t}+\left(\frac{\partial \varphi}{\partial x}+\mu^{\mathrm T} \frac{\partial \psi}{\partial x}\right) f+L=0,(t=t_{f}) λ(tf)=xφ+μTxψ;tφ+μTtψ+(xφ+μTxψ)f+L=0,(t=tf)
t f , x f t_f,x_f tfxf均自由,且有终端约束 ψ ( x f , t f ) = 0 \psi(x_f,t_f)=0 ψ(xf,tf)=0,(Lagrange型性能指标) 2 n + m + 1 2n+m+1 2n+m+1 x ( t 0 ) = x 0 ψ ( x f , t f ) = 0 x(t_0)=x_0\\ \psi(x_f,t_f)=0 x(t0)=x0ψ(xf,tf)=0 λ ( t f ) = ∂ φ ∂ x + μ T ∂ ψ ∂ x ; μ T [ ∂ ψ ∂ t + ∂ ψ ∂ x f ] + L = 0 , ( t = t f ) \lambda(t_f)=\frac{\partial \varphi}{\partial x}+\mu^{\mathrm T}\frac{\partial\psi}{\partial x};\\ \mu^{\mathrm T} [\frac{\partial \psi}{\partial t}+ \frac{\partial \psi}{\partial x} f]+L=0,(t=t_{f}) λ(tf)=xφ+μTxψ;μT[tψ+xψf]+L=0,(t=tf)

1.2 例1. 一维Riccati方程的PMP推导

对下面这个问题
x ˙ ( t ) = x ( t ) + u ( t ) ,   x ( 0 ) = x 0 ,   0 < t < t f min ⁡ u ∈ R J ( x , u , t ) = ∫ 0 t f x 2 ( t ) + u 2 ( t ) d t \dot x(t)=x(t)+u(t),\ x(0)=x_0, \ 0\lt t\lt t_f\\ \min_{u\in\Reals}J(x,u,t)=\int_0^{t_f}x^2(t)+u^2(t)\text dt x˙(t)=x(t)+u(t), x(0)=x0, 0<t<tfuRminJ(x,u,t)=0tfx2(t)+u2(t)dt

这个问题不考虑控制约束,即控制在开集 U ∈ R U\in\Reals UR中且不受约束; t f t_f tf自由。这个问题可以看做无限时域线性二次型调节器问题的一种一维形式。下面采用极小值原理进行求解
H ( x ( t ) , λ ( t ) , u ( t ) , t ) = x 2 + u 2 + λ ( x + u ) H(x(t),\lambda(t),u(t),t)=x^2+u^2+\lambda(x+u) H(x(t),λ(t),u(t),t)=x2+u2+λ(x+u)

写出协态方程
λ ′ = − ∂ H ∂ x = − ( 2 x + λ ) \begin{aligned} \lambda'&=-\frac{\partial H}{\partial x}=-(2x+\lambda)\\ \end{aligned} λ=xH=(2x+λ)

按照庞特里亚金极大值原理写出控制方程并变形:
H ( ∗ , u ∗ ( t ) , t ) ≤ H ( ∗ , u ( t ) , t ) ⇒ x ∗ 2 + u ∗ 2 + λ ∗ ( x ∗ + u ∗ ) ≤ x ∗ 2 + u 2 + λ ∗ ( x ∗ + u ) u ∗ 2 + λ ∗ u ∗ ≤ u 2 + λ ∗ + u = g ( u ) \begin{aligned} H(*,u^*(t),t)&\leq H(*,u(t),t)\\ \rArr x^{*2}+u^{*2}+\lambda^*(x^*+u^*)&\leq x^{*2}+u^{2}+\lambda^*(x^*+u)\\ u^{*2}+\lambda^*u^*&\leq u^{2}+\lambda^*+u=g(u) \end{aligned} H(,u(t),t)x2+u2+λ(x+u)u2+λuH(,u(t),t)x2+u2+λ(x+u)u2+λ+u=g(u)

等式左边小于等于右边的极小值,而右边的极小值,在极值点应有
∂ g ( u ) ∂ u = 0 ⇒ u m i n = − λ ∗ / 2 \frac{\partial g(u)}{\partial u}=0\rArr u_{min}=-\lambda^*/2 ug(u)=0umin=λ/2

在无约束情况下,上式就是按照极小值条件求出的最优控制,即 u ∗ ( t ) = − λ ∗ ( t ) / 2 u^*(t)=-\lambda^*(t)/2 u(t)=λ(t)/2. 将最优控制代入状态方程,
{ x ′ = x − λ / 2 λ ′ = − 2 x − λ x ( 0 ) = x 0 , λ ( t f ) = 0 \left\{\begin{matrix} x'=x-\lambda/2\\ \lambda'=-2x-\lambda\\ x(0)=x_0,\lambda(t_f)=0 \end{matrix}\right. x=xλ/2λ=2xλx(0)=x0,λ(tf)=0

求解这个两点边值问题即可得到结果。如果进一步假设控制是反馈控制,即
u ( t ) = − k ( t ) x ( t ) u(t)=-k(t)x(t) u(t)=k(t)x(t)

再考虑控制方程,并且定义一个变量 s ( t ) s(t) s(t)
λ ( t ) = 2 k ( t ) x ( t ) ≡ s ( t ) x ( t ) ⇒ s ( t ) = λ ( t ) x ( t ) \lambda(t)=2k(t)x(t)\equiv s(t)x(t)\rArr s(t)=\frac{\lambda(t)}{x(t)} λ(t)=2k(t)x(t)s(t)x(t)s(t)=x(t)λ(t)

为了获得 s ( t ) s(t) s(t)对时间的微分方程以便求解它,把 s ( t ) s(t) s(t)对时间求全导数 s ′ = λ ′ x − λ x ′ x 2 s'=\frac{\lambda'}x-\frac{\lambda x'}{x^2} s=xλx2λx然后代入协态方程 λ ′ = − 2 x − λ \lambda'=-2x-\lambda λ=2xλ和状态方程 x ′ = x − λ / 2 x'=x-\lambda/2 x=xλ/2得到: − s ′ = 2 + 2 s − s 2 2 , s ( t f ) = λ ( t f ) / x = 0 -s'=2+2s-\frac{s^2}2,s(t_f)=\lambda(t_f)/x=0 s=2+2s2s2,s(tf)=λ(tf)/x=0

上式就是Riccati方程,高等数学中有求解初值问题 s ( t ) s(t) s(t)的方法。它的矩阵形式为
− S ˙ ( t ) = A T S + S A − S B R − 1 B T S + Q , S ( t f ) = S f -\dot{S}(t)=A^{\mathrm T} S+S A-S B R^{-1} B^{\mathrm T} S+Q, \quad S(t_f)=S_f S˙(t)=ATS+SASBR1BTS+Q,S(tf)=Sf

事实上,利用PMP不仅可以解决控制受限的最优控制问题,而且也可以解决控制不受约束的问题,此时按照PMP推导出的结果和Hamilton函数方法的控制方程是完全等价的。

2. 最短时间控制问题

2.1 问题描述

设最短时间、终端约束的最优控制问题如下
x ˙ ( t ) = f ( x ( t ) , t ) + B ( x ( t ) , t ) u ( t ) u ∈ R q , ∣ u j ( t ) ∣ < 1 , j = 1 , 2 , ⋯   , q x ( t 0 ) = x 0 , ψ ( x ( t f ) , t f ) = 0 , ψ ∈ R m min ⁡ u ( t ) J = t f \dot x(t)=f(x(t),t)+B(x(t),t)u(t)\\ u\in\Reals^q,|u_j(t)|<1,j=1,2,\cdots,q\\ x(t_0)=x_0,\psi(x(t_f),t_f)=0,\psi\in\Reals^m\\ \min_{u(t)}J=t_f x˙(t)=f(x(t),t)+B(x(t),t)u(t)uRq,uj(t)<1,j=1,2,,qx(t0)=x0,ψ(x(tf),tf)=0,ψRmu(t)minJ=tf

此问题的性能指标仅由一个到达时刻 t f t_f tf构成。写出Hamilton函数
H = 1 + λ T ( f + B u ) = 1 + λ T f + u T ( B T λ ) = 1 + λ T f + ∑ j = 1 q u j ( λ T B ( : , j ) ) \begin{aligned} H&=1+\lambda^\mathrm T(f+Bu) =1+\lambda^\mathrm Tf+u^\mathrm T(B^\mathrm T\lambda)\\ &=1+\lambda^\mathrm Tf+\sum_{j=1}^qu_j(\lambda^\mathrm T B(:,j)) \end{aligned} H=1+λT(f+Bu)=1+λTf+uT(BTλ)=1+λTf+j=1quj(λTB(:,j))

其中 B ( : , j ) B(:,j) B(:,j)代表矩阵 B B B的第 j j j列所有元素, λ T B ( : , j ) = ( n ∗ 1 ) T ⋅ ( n ∗ 1 ) ∈ R \lambda^\mathrm T B(:,j)=(n*1)^\mathrm T\cdot(n*1)\in\Reals λTB(:,j)=(n1)T(n1)R。这个系统的协态方程
λ ˙ = − ∂ H ∂ x = − ∂ f T ∂ x λ − ∑ j = 1 q u j ( ∂ B ( : , j ) T ∂ x λ ) = − [ ∂ f T ∂ x + ∑ j = 1 q u j ( ∂ B ( : , j ) T ∂ x ) ] λ \dot\lambda=-\frac{\partial H}{\partial x}= -\frac{\partial f^\mathrm T}{\partial x}\lambda-\sum_{j=1}^qu_j(\frac{\partial B(:,j)^\mathrm T}{\partial x}\lambda)\\=-[\frac{\partial f^\mathrm T}{\partial x}+\sum_{j=1}^qu_j(\frac{\partial B(:,j)^\mathrm T}{\partial x})]\lambda λ˙=xH=xfTλj=1quj(xB(:,j)Tλ)=[xfT+j=1quj(xB(:,j)T)]λ

下面考察极小值原理,则对每个 u j , j = 1 , 2 , ⋯   , q u_j, j=1,2,\cdots,q uj,j=1,2,,q,它的开关函数如下
u j ∗ = { − 1 , λ T B ( : , j ) > 0 1 , λ T B ( : , j ) < 0 o t h e r s , λ T B ( : , j ) = 0 u_j^*=\left\{\begin{matrix} -1,&\lambda^\mathrm T B(:,j)>0\\ 1,&\lambda^\mathrm T B(:,j)<0\\ others,&\lambda^\mathrm T B(:,j)=0 \end{matrix}\right. uj= 1,1,others,λTB(:,j)>0λTB(:,j)<0λTB(:,j)=0

需要注意的是,最小时间控制问题,若开关函数对 ∀ t ∈ [ 0 , t f ] , λ T B ( : , j ) ≠ 0 \forall t\in[0,t_f],\lambda^\mathrm T B(:,j)\neq0 t[0,tf],λTB(:,j)=0. 那么上面的第三项 others \text{others} others就没有了,用正负号符号函数 sign \text{sign} sign来表示这种形式的式子
u j ∗ = − sign { λ T B ( : , j ) } u_j^*=-\text{sign}\{\lambda^\mathrm T B(:,j)\} uj=sign{λTB(:,j)}

这种形式的控制要么是最大值,要么是最小值,称为Bang-Bang控制。可证明在最大与最小之间的切换次数是有限的。

2.2 例2. 二次积分时间最优控制

对于二次积分系统,若初始和终端条件给定,控制幅值受限,最小到达时间。问题如下
x ˙ 1 ( t ) = x 2 ( t ) , x ˙ 2 ( t ) = u ( t ) x ( 0 ) = [ x 1 , x 2 ] , x ( t f ) = [ 0 , 0 ] min ⁡ ∣ u ( t ) ∣ ≤ 1 J = ∫ 0 t f 1 d t = t f \dot x_1(t)=x_2(t),\dot x_2(t)=u(t)\\ \mathbf x(0)=[x_1,x_2],\mathbf x(t_f)=[0,0]\\ \min_{|u(t)|\leq 1}J=\int_0^{t_f}1\text dt=t_f x˙1(t)=x2(t),x˙2(t)=u(t)x(0)=[x1,x2],x(tf)=[0,0]u(t)1minJ=0tf1dt=tf

这个问题可以看做最小时间控制问题的一维形式。首先构建Hamilton函数
H ( x ( t ) , λ ( t ) , u ( t ) , t ) = 1 + λ 1 x 2 + λ 2 u H(x(t),\lambda(t),u(t),t)=1+\lambda_1x_2+\lambda_2u H(x(t),λ(t),u(t),t)=1+λ1x2+λ2u

由极小值原理
minTime_1minTime_2minTime_3minTime_4minTime_5minTime_6

3. 燃料最优控制

3.1 最小燃料消耗问题

设最小燃料消耗问题如下
x ˙ ( t ) = f ( x ( t ) , t ) + B ( x ( t ) , t ) u ( t ) u ∈ R q , ∣ u j ( t ) ∣ < 1 , j = 1 , 2 , ⋯   , q x ( t 0 ) = x 0 , ψ ( x ( t f ) , t f ) = 0 , ψ ∈ R m min ⁡ u ( t ) J = ∫ 0 t f ∑ j = 1 q w j ∣ u j ( t ) ∣ d t \dot x(t)=f(x(t),t)+B(x(t),t)u(t)\\ u\in\Reals^q,|u_j(t)|<1,j=1,2,\cdots,q\\ x(t_0)=x_0,\psi(x(t_f),t_f)=0,\psi\in\Reals^m\\ \min_{u(t)}J=\int_0^{t_f}\sum_{j=1}^qw_j|u_j(t)|\text dt x˙(t)=f(x(t),t)+B(x(t),t)u(t)uRq,uj(t)<1,j=1,2,,qx(t0)=x0,ψ(x(tf),tf)=0,ψRmu(t)minJ=0tfj=1qwjuj(t)dt

此问题的性能指标当中,各个控制分量的权重 w i > 0 w_i>0 wi>0为常数;终端时刻 t f t_f tf自由或固定。写出Hamilton函数
H = ∑ j = 1 q w j ∣ u j ( t ) ∣ + λ T ( f + B u ) = λ T f + ∑ j = 1 q w j ∣ u j ( t ) ∣ + u j [ λ T B ( : , j ) ] \begin{aligned} H&=\sum_{j=1}^qw_j|u_j(t)|+\lambda^\mathrm T(f+Bu)\\ &=\lambda^\mathrm Tf+\sum_{j=1}^qw_j|u_j(t)|+u_j[\lambda^\mathrm T B(:,j)] \end{aligned} H=j=1qwjuj(t)+λT(f+Bu)=λTf+j=1qwjuj(t)+uj[λTB(:,j)]

这个系统的协态方程与上面的问题一样
λ ˙ = − ∂ H ∂ x = − ∂ f T ∂ x λ − ∑ j = 1 q u j ( ∂ B ( : , j ) T ∂ x λ ) = − [ ∂ f T ∂ x + ∑ j = 1 q u j ( ∂ B ( : , j ) T ∂ x ) ] λ \dot\lambda=-\frac{\partial H}{\partial x}\\= -\frac{\partial f^\mathrm T}{\partial x}\lambda-\sum_{j=1}^qu_j(\frac{\partial B(:,j)^\mathrm T}{\partial x}\lambda)=-[\frac{\partial f^\mathrm T}{\partial x}+\sum_{j=1}^qu_j(\frac{\partial B(:,j)^\mathrm T}{\partial x})]\lambda λ˙=xH=xfTλj=1quj(xB(:,j)Tλ)=[xfT+j=1quj(xB(:,j)T)]λ

下面考察极小值原理,则对每个 u j , j = 1 , 2 , ⋯   , q u_j, j=1,2,\cdots,q uj,j=1,2,,q,需要考虑
∑ j = 1 q w j ∣ u j ∗ ( t ) ∣ + u j ∗ [ λ T B ( : , j ) ] ≤ ∑ j = 1 q w j ∣ u j ( t ) ∣ + u j [ λ T B ( : , j ) ] \sum_{j=1}^qw_j|u_j^*(t)|+u_j^*[\lambda^\mathrm T B(:,j)]\leq \sum_{j=1}^qw_j|u_j(t)|+u_j[\lambda^\mathrm T B(:,j)] j=1qwjuj(t)+uj[λTB(:,j)]j=1qwjuj(t)+uj[λTB(:,j)]

为了具体知道参数对于最优控制的影响,定义
g ( u j ) ≜ ∣ u j ( t ) ∣ + λ T B ( : , j ) w j u j = ∣ u j ( t ) ∣ + p j ⋅ u j g(u_j)\triangleq|u_j(t)|+\frac{\lambda^\mathrm T B(:,j)}{w_j}u_j=|u_j(t)|+p_j\cdot u_j g(uj)uj(t)+wjλTB(:,j)uj=uj(t)+pjuj

上式定义的函数 g ( u j ) g(u_j) g(uj)的函数曲线是分段线性的,而且它分两段,具体的取值可以看下面的图

p j < − 1 p_j<-1 pj<1 p j ∈ ( − 1 , 0 ) p_j\in(-1,0) pj(1,0) p j ∈ ( 0 , 1 ) p_j\in(0,1) pj(0,1) p j > 1 p_j>1 pj>1
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
图1图2图3图4
u j ∗ = 1 u_j^*=1 uj=1 u j ∗ = 0 u_j^*=0 uj=0 u j ∗ = 0 u_j^*=0 uj=0 u j ∗ = − 1 u_j^*=-1 uj=1

考虑到控制受限 ∣ u j ( t ) ∣ ≤ 1 |u_j(t)|\leq1 uj(t)1,于是最优控制的取值如下
u j ∗ = { 1 , p j < − 1 ∃ u j ∈ [ 0 , 1 ] , p j = − 1 0 , p j ∈ ( − 1 , 1 ) ∃ u j ∈ [ − 1 , 0 ] , p j = 1 − 1 , p j > 1 u_j^*=\left\{\begin{matrix} 1,&p_j<-1\\ \exist u_j\in[0,1],&p_j=-1\\ 0,&p_j\in(-1,1)\\ \exist u_j\in[-1,0],&p_j=1\\ -1,&p_j>1\\ \end{matrix}\right. uj= 1,uj[0,1],0,uj[1,0],1,pj<1pj=1pj(1,1)pj=1pj>1
其中的 p j = λ T B ( : , j ) / w j p_j=\lambda^\mathrm T B(:,j)/w_j pj=λTB(:,j)/wj.控制方程中的 ∃ u j ∈ [ 0 , 1 ] \exist u_j\in[0,1] uj[0,1]代表控制处在这个区间,具体的求解方法属于奇异最优控制理论的范畴。在此暂时不给出。

注2: 若控制的约束为 u j ( t ) ∈ [ 0 , 1 ] u_j(t)\in[0,1] uj(t)[0,1],看图可得最小的Hamiltonian在这些点取得
u j ∗ = { 1 , p j < − 1 ∃ u j ∈ [ 0 , 1 ] , p j = − 1 0 , p j > − 1 u_j^*=\left\{\begin{matrix} 1,&p_j<-1\\ \exist u_j\in[0,1],&p_j=-1\\ 0,&p_j>-1\\ \end{matrix}\right. uj= 1,uj[0,1],0,pj<1pj=1pj>1

3.2 例3. 二次积分燃料最优控制

系统模型不变,性能指标改变
x ˙ 1 ( t ) = x 2 ( t ) , x ˙ 2 ( t ) = u ( t ) x ( 0 ) = [ x 10 , x 20 ] , x ( t f ) = [ 0 , 0 ] , t f  free min ⁡ ∣ u ( t ) ∣ ≤ 1 J = ∫ 0 t f ∣ u ∣ d t \dot x_1(t)=x_2(t),\dot x_2(t)=u(t)\\ \mathbf x(0)=[x_{10},x_{20}],\mathbf x(t_f)=[0,0],t_f\text{ free}\\ \min_{|u(t)|\leq 1}J=\int_0^{t_f}|u|\text dt x˙1(t)=x2(t),x˙2(t)=u(t)x(0)=[x10,x20],x(tf)=[0,0],tf freeu(t)1minJ=0tfudt

这个问题可以看做最优燃料问题的一维形式。构建Hamilton函数、
H ( x ( t ) , λ ( t ) , u ( t ) , t ) = ∣ u ∣ + λ 1 x 2 + λ 2 u H(x(t),\lambda(t),u(t),t)=|u|+\lambda_1x_2+\lambda_2u H(x(t),λ(t),u(t),t)=u+λ1x2+λ2u

其协态方程和边界条件很容易写出,在此略去。根据极小值原理,控制方程有:
∣ u ∗ ∣ + λ 2 u ∗ ≤ ∣ u ∣ + λ 2 u = g ( u ) |u^*|+\lambda_2u^*\leq|u|+\lambda_2u=g(u) u+λ2uu+λ2u=g(u)

u ∗ u^* u取函数 g ( u ) g(u) g(u)的最小值,而函数 g ( u ) g(u) g(u)只受 λ 2 \lambda_2 λ2影响,不同取值有不同的形态,而这结果与多维问题的图一样。

λ 2 < − 1 \lambda_2<-1 λ2<1 λ 2 ∈ ( − 1 , 0 ) \lambda_2\in(-1,0) λ2(1,0) λ 2 ∈ ( 0 , 1 ) \lambda_2\in(0,1) λ2(0,1) λ 2 > 1 \lambda_2>1 λ2>1
如图1如图2如图3如图4
u ∗ = 1 u^*=1 u=1 u ∗ = 0 u^*=0 u=0 u ∗ = 0 u^*=0 u=0 u ∗ = − 1 u^*=-1 u=1

最优控制律为
u ∗ = { − sign ( λ 2 ) , ∣ λ 2 ∣ > 1 0 , ∣ λ 2 ∣ < 1 ∃ u ∈ [ 0 , 1 ] , λ 2 = − 1 ∃ u ∈ [ − 1 , 0 ] , λ 2 = 1 u^*=\left\{\begin{matrix} -\text{sign}(\lambda_2),&|\lambda_2|>1\\ 0,&|\lambda_2|<1\\ \exist u\in[0,1],&\lambda_2=-1\\ \exist u\in[-1,0],&\lambda_2=1\\ \end{matrix}\right. u= sign(λ2),0,u[0,1],u[1,0],λ2>1λ2<1λ2=1λ2=1
λ 2 = ± 1 \lambda_2=\pm1 λ2=±1时,控制并不是任意的,而是有进一步的判定条件。有关奇异弧段最优控制的相关方法,请参考具体文献。

4. 数值求解

极大值原理求解最优控制问题属于间接法,它的数值求解基本思路仍然是求解Hamilton系统,也就是包含状态 x ( t ) x(t) x(t),协态 λ ( t ) \lambda(t) λ(t)的变化。它与Hamilton函数法求解的主要区别是,状态方程和协态方程是间断性的,也就是在开关开2种系统方程之间切换,这样构成的问题属于多点边值问题。类似于前面最优控制理论 三、两点边值问题求解这一节的思路,主要求解步骤是猜测协态变量的初始值 λ ( t 0 ) \lambda(t_0) λ(t0),然后代入求解Bang-Bang控制的哈密尔顿系统,通过非线性方程求根方法得到准确的协态初值,积分这个ODE系统自然能得到最优控制的解析解 u ( x , λ ) u(x,\lambda) u(x,λ)

参考文献

[1] 邢继祥. 最优控制应用基础 Sec 2.4~Sec 2.8 [M]. 科学出版社, 2003.
[2] Bryson A E , Ho Y C ,Applied optimal control : optimization, estimation, and control Sec 3.8~Sec 3.12 [J]. IEEE Transactions on Systems Man & Cybernetics, 1975
[3] MIT OpenCourseWare 16.323 Principles of Optimal Control - Lecture 9: Constrained Optimal Control
[4] 百度文库-3. 极大值原理
[5] CSDN - An Introduction to Mathematical Optimal Control Theory-Notes v2.0.pdf- Ch.4 The Pontryagin Maximum Principle [M] Lawrence C. Evans (American Math Society, 2013) 原文链接

  • 22
    点赞
  • 150
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
具有不等式约束的粒子群算法(Particle Swarm Optimization, PSO)是一种常用的优化算法,可以求解具有不等式约束的最优向量问题。下面是一个简单的PSO matlab代码,适用于具有不等式约束的问题: ```matlab function [x,fval]=pso(fitfun,lb,ub,dim,maxiter) % fitfun: 适应度函数,lb: 变量下界,ub: 变量上界,dim: 变量维数,maxiter: 最大迭代次数 % x: 最优解,fval: 最优解的函数值 % 初始化粒子群 n=50; % 粒子数 c1=1.5; % 学习因子 c2=1.5; w=0.7; % 惯性因子 vmax=(ub-lb)/10; % 最大速度 x=lb+(ub-lb)*rand(n,dim); % 初始解 v=rand(n,dim).*vmax.*sign(rand(n,dim)-0.5); % 初始速度 pbest=x; % 个体最优解 gbest=x(1,:); % 全局最优解 for i=1:n if fitfun(x(i,:))<fitfun(gbest) gbest=x(i,:); end end pbest_val=ones(n,1)*inf; % 个体最优解的函数值 for i=1:n pbest_val(i)=fitfun(pbest(i,:)); end gbest_val=fitfun(gbest); % 全局最优解的函数值 % 迭代 for iter=1:maxiter for i=1:n v(i,:)=w*v(i,:)+c1*rand(1,dim).*(pbest(i,:)-x(i,:))+c2*rand(1,dim).*(gbest-x(i,:)); % 更新速度 v(i,:)=min(v(i,:),vmax); % 限制速度范围 v(i,:)=max(v(i,:),-vmax); x(i,:)=x(i,:)+v(i,:); % 更新位置 x(i,:)=min(x(i,:),ub); % 限制位置范围 x(i,:)=max(x(i,:),lb); if fitfun(x(i,:))<pbest_val(i) % 更新个体最优解和全局最优解 pbest(i,:)=x(i,:); pbest_val(i)=fitfun(x(i,:)); if pbest_val(i)<gbest_val gbest=pbest(i,:); gbest_val=pbest_val(i); end end end disp(['迭代次数:',num2str(iter),',最优解:',num2str(gbest),',最优解的函数值:',num2str(gbest_val)]); end x=gbest; fval=gbest_val; end ``` 对于具有不等式约束的问题,可以采用罚函数法来进行求解。假设一个优化问题的不等式约束为 $g_i(x)\leq 0$,则可以将其转化为带有惩罚项的无约束优化问题: $$ \min f(x)+\sum_{i=1}^m [g_i(x)]_+^2 $$ 其中,$[g_i(x)]_+=\max(0,g_i(x))$。这里的惩罚项是不等式约束的平方,当 $g_i(x)>0$ 时,惩罚项就会增大,从而影响到优化结果。 在上面的代码中,可以将适应度函数 $fitfun$ 改为带有惩罚项的函数。例如,如果原来的适应度函数为 $f(x)$,则带有惩罚项的适应度函数为: ```matlab function [fval]=fitfun_with_penalty(x) % 带有惩罚项的适应度函数 fval=f(x)+sum(max(0,g(x)).^2); end ``` 其中,$g(x)$ 为不等式约束函数,$f(x)$ 为原始的适应度函数。 在具体的实现中,需要对粒子的位置和速度进行限制,以保证其在变量范围内。同时,还需要对每个粒子的个体最优解和全局最优解进行更新,以不断寻找最优解。 通过以上的PSO matlab代码,可以求解具有不等式约束的最优向量问题,得到最优解和最优解的函数值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值