前面我在第二章最优控制理论 二、哈密尔顿函数法 给出了Hamilton函数法一些重要推导过程和一些常用公式。最近翻看,觉得写得太多了,于是把一部分不重要的贴到下面,另成一篇。
2.1 Hamilton函数的性质
沿最优轨线
x
∗
(
t
)
x^*(t)
x ∗ ( t ) ,Hamilton函数对时间的全导数等于其对时间的偏导数,即
d
H
d
t
=
∂
H
∂
t
\frac{\mathrm{d} H}{\mathrm{d} t}=\frac{\partial H}{\partial t}
d t d H = ∂ t ∂ H
证明 :对Hamiltonian按照链式求导法则全导数:
d
H
d
t
=
∂
H
T
∂
x
x
˙
+
∂
H
T
∂
λ
λ
˙
+
∂
H
T
∂
u
U
˙
+
∂
H
∂
t
\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}
d t d H = ∂ x ∂ H T x ˙ + ∂ λ ∂ H T λ ˙ + ∂ u ∂ H T U ˙ + ∂ t ∂ H
考虑到最优轨线附近满足
−
∂
H
∂
x
=
λ
˙
∂
H
∂
u
=
0
∂
H
∂
λ
=
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}
− ∂ x ∂ H ∂ u ∂ H ∂ λ ∂ H = λ ˙ = 0 = f = x ˙
代入则公式
(
4
)
(4)
( 4 ) 可证。
□
\square
□ 此外,若Hamiltonian不显含时间t,则显然有
d
H
d
t
=
∂
H
∂
t
=
0
\frac{\mathrm{d} H}{\mathrm{d} t}=\frac{\partial H}{\partial t}=0
d t d H = ∂ t ∂ H = 0
于是可得
H
(
x
∗
(
t
)
,
u
∗
(
t
)
,
λ
∗
(
t
)
,
t
)
=
Const
H(x^*(t),u^*(t),\lambda^*(t),t)=\text{Const}
H ( x ∗ ( t ) , u ∗ ( t ) , λ ∗ ( t ) , t ) = Const ,若进一步考虑边界条件,对于
t
f
t_f
t f 固定的,则
H
(
∗
,
t
)
=
H
(
0
)
H(*,t)=H(0)
H ( ∗ , t ) = H ( 0 ) ; 对于
t
f
t_f
t f 自由的问题,查表,有终端约束
H
(
∗
,
t
f
)
=
0
H(*,t_f)=0
H ( ∗ , t f ) = 0 ,则
H
(
∗
,
t
)
=
0
H(*,t)=0
H ( ∗ , t ) = 0
5. 其他等式约束
第3 部分我们只考虑了终端等式约束,但是实际的动力学和控制问题里常有其他类型的等式约束,如
积分方程约束
∫
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
∫ 0 t f N ( x ( t ) , u ( t ) , t ) d t = β
控制输入的约束
N
(
u
(
t
)
,
t
)
=
0
N(u(t),t)=0
N ( u ( t ) , t ) = 0
控制输入和状态变量的等式约束
N
(
x
(
t
)
,
u
(
t
)
,
t
)
=
0
N(x(t),u(t),t)=0
N ( x ( t ) , u ( t ) , t ) = 0
下面可以证明,以上这些等式约束都可以用Hamilton函数法解决。
5.1 积分方程约束
对
∫
0
t
f
N
(
x
(
t
)
,
u
(
t
)
,
t
)
d
t
=
β
∈
R
q
(integral Eq constraints)
\int_0^{t_f}N(x(t),u(t),t)\text d t=\beta\in\Reals^q\tag{integral Eq constraints}
∫ 0 t f N ( x ( t ) , u ( t ) , t ) d t = β ∈ R q ( i n t e g r a l E q c o n s t r a i n t s ) 引入扩充的状态变量
y
(
t
)
∈
R
q
y(t)\in\Reals^q
y ( t ) ∈ R q 且它满足
y
˙
=
N
(
x
,
u
,
t
)
y
(
0
)
=
0
,
y
(
t
f
)
=
∫
0
t
f
N
(
x
(
t
)
,
u
(
t
)
,
t
)
d
t
β
(terminal Eq constraints)
\dot y=N(x,u,t)\\ y(0)=0,y(t_f)=\int_0^{t_f}N(x(t),u(t),t)\text d t\beta\tag{terminal Eq constraints}
y ˙ = N ( x , u , t ) y ( 0 ) = 0 , y ( t f ) = ∫ 0 t f N ( x ( t ) , u ( t ) , t ) d t β ( t e r m i n a l E q c o n s t r a i n t s )
则把上面这个积分方程约束化为终端状态约束,两个方程等价。仍可套用终端状态约束的框架,需要注意由于状态扩充为
n
+
q
n+q
n + q 维;并多了
q
q
q 个Lagrange乘乘数,加上原来的
m
m
m 个,共有
m
+
q
m+q
m + q 个终端约束和
m
+
q
m+q
m + q 个未知的Lagrange乘数。
5.2 控制变量和状态变量等式约束
设状态变量和等式约束具有以下形式:
N
(
x
(
t
)
,
u
(
t
)
,
t
)
=
0
,
t
0
<
t
<
t
f
(state+control Eq constraints)
N(x(t),u(t),t)=0,t_0\lt t\lt t_f\tag{state+control Eq constraints}
N ( x ( t ) , u ( t ) , t ) = 0 , t 0 < t < t f ( s t a t e + c o n t r o l E q c o n s t r a i n t s ) 对这个q维的等式约束,引入Lagrange乘子
μ
(
t
)
∈
R
q
\mu(t)\in\Reals^q
μ ( t ) ∈ R q ,并且Hamilton函数变成:
H
≜
L
+
λ
T
f
+
μ
T
N
H\triangleq L+\lambda^{\mathrm T}f+\mu^{\mathrm T}N
H ≜ L + λ T f + μ T N 相应地,协态方程和控制方程都要变:
λ
˙
=
−
∂
H
∂
x
=
−
L
x
−
λ
T
f
x
−
μ
T
N
x
∂
H
∂
u
=
L
u
+
λ
T
f
u
+
μ
T
N
u
=
0
\dot\lambda=-\frac{\partial H}{\partial x}=-L_x-\lambda^{\mathrm T}f_x-\mu^{\mathrm T}N_x \\ \frac{\partial H}{\partial u}=L_u+\lambda^{\mathrm T}f_u+\mu^{\mathrm T}N_u =0
λ ˙ = − ∂ x ∂ H = − L x − λ T f x − μ T N x ∂ u ∂ H = L u + λ T f u + μ T N u = 0
5.3 补充
纯控制变量约束
N
1
(
u
(
t
)
,
t
)
=
0
N_1(u(t),t)=0
N 1 ( u ( t ) , t ) = 0 和状态变量等式约束
N
2
(
x
(
t
)
,
t
)
=
0
N_2(x(t),t)=0
N 2 ( x ( t ) , t ) = 0 都属于控制变量+状态变量等式约束的一种,可以直接套用它的方法。
6. 角点条件
前面的假设是控制
u
(
t
)
u(t)
u ( t ) 和状态变量
x
(
t
)
x(t)
x ( t ) 都在
t
0
<
t
<
t
f
t_0\lt t\lt t_f
t 0 < t < t f 区间段连续可导,但是由于种种限制,往往很难做到这一点。下面我们来考虑协态变量
λ
(
t
)
\lambda(t)
λ ( t ) 和Hamilton函数的连续性和可导性。
6.1
u
(
t
)
\mathbf u(t)
u ( t ) 分段连续时的角点条件
控制
u
(
t
)
\mathbf u(t)
u ( t ) 分段连续时,控制方程对它分段成立,但是对公式
(
†
)
(\dag)
( † ) 定义的Hamilton函数的原始形式
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^{\mathrm T}(f(x,\dot x,t)-\dot x)%
H ˉ ( x , x ˙ , λ , t ) = L ( x , x ˙ , t ) − λ T ( f ( x , x ˙ , t ) − x ˙ )
由角点处的Weierstrass-Erdmann条件,有
H
ˉ
X
˙
∣
t
i
−
=
H
ˉ
X
˙
∣
t
i
+
H
ˉ
−
X
˙
T
H
ˉ
X
˙
∣
t
i
−
=
H
ˉ
−
X
˙
T
H
ˉ
X
˙
∣
t
i
+
\begin{aligned} \left.\bar{H}_{\dot{X}}\right|_{t_i-} &=\left.\bar{H}_{\dot{X}}\right|_{t_i+} \\ \bar{H}-\left.\dot{X}^{\mathrm{T}} \bar{H}_{\dot{X}}\right|_{t_i-} &=\bar{H}-\left.\dot{X}^{\mathrm{T}} \bar{H}_{\dot{X}}\right|_{t_i+} \end{aligned}
H ˉ X ˙ ∣ ∣ t i − H ˉ − X ˙ T H ˉ X ˙ ∣ ∣ ∣ t i − = H ˉ X ˙ ∣ ∣ t i + = H ˉ − X ˙ T H ˉ X ˙ ∣ ∣ ∣ t i +
对标准形式的Hamilton函数
H
≜
L
+
λ
T
f
H\triangleq L+\lambda^{\mathrm T}f
H ≜ L + λ T f ,以下条件等价
λ
(
t
i
−
)
=
λ
(
t
i
+
)
H
∣
t
i
−
=
H
∣
t
i
−
+
\begin{aligned} \lambda({t_i-})&=\lambda({t_i+})\\ \left.H\right|_{{t_i-}} &=\left.{H}\right|_{t_i-+} \\ \end{aligned}
λ ( t i − ) H ∣ t i − = λ ( t i + ) = H ∣ t i − +
即Hamilton函数连续,且协态变量连续。
6.2
x
(
t
)
\mathbf x(t)
x ( t ) 分段连续时的内点约束
若状态变量
x
(
t
)
x(t)
x ( t ) 分段连续
x
(
t
i
−
)
=
x
(
t
i
+
)
\mathbf x(t_i-)=\mathbf x(t_i+)
x ( t i − ) = x ( t i + ) ,但在某些点有内点条件(Interior-Point constraints),即
ψ
(
i
)
(
x
(
t
i
)
,
t
i
)
=
0
,
ψ
(
i
)
∈
R
q
i
,
t
0
<
t
i
<
t
f
,
i
=
1
,
2
,
⋯
,
N
\psi^{(i)}(\mathbf x(t_i),t_i)=0,\quad\psi^{(i)}\in\Reals^{q_i}, t_0\lt t_i\lt t_f,i=1,2,\cdots,N
ψ ( i ) ( x ( t i ) , t i ) = 0 , ψ ( i ) ∈ R q i , t 0 < t i < t f , i = 1 , 2 , ⋯ , N
此种情况下,在每一个角点处条件是:
λ
(
t
i
−
)
=
λ
(
t
i
+
)
+
μ
T
∂
ψ
(
i
)
∂
x
H
(
t
i
−
)
=
H
(
t
i
+
)
+
μ
T
∂
ψ
(
i
)
∂
t
(10)
\lambda(t_i-)=\lambda(t_i+)+\mathbf\mu^{\mathrm T}\frac{\partial \psi^{(i)}}{\partial\mathbf x}\\ H(t_i-)=H(t_i+)+\mathbf\mu^{\mathrm T}\frac{\partial\psi^{(i)}}{\partial t}\tag {10}
λ ( t i − ) = λ ( t i + ) + μ T ∂ x ∂ ψ ( i ) H ( t i − ) = H ( t i + ) + μ T ∂ t ∂ ψ ( i ) ( 1 0 )
其中
μ
∈
R
q
i
\mu\in\Reals^{q_i}
μ ∈ R q i ,对应为该内点约束的Lagrange乘子。以上这个内点约束
(
10
)
(10)
( 1 0 ) 对于分段连续的状态方程也成立
x
˙
=
{
f
(
1
)
(
x
(
t
)
,
u
(
t
)
,
t
)
t
∈
[
t
0
,
t
1
]
⋯
f
(
q
)
(
x
(
t
)
,
u
(
t
)
,
t
)
t
∈
(
t
q
−
1
,
t
q
]
x
(
t
i
−
)
=
x
(
t
i
+
)
,
i
=
1
,
2
,
⋯
,
N
\begin{aligned}\dot\mathbf x&=\left\{\begin{matrix}f^{(1)}(\mathbf x(t),u(t),t)&t\in[t_0,t_1]\\ \cdots\\ f^{(q)}(\mathbf x(t),u(t),t)&t\in(t_{q-1},t_q]\\ \end{matrix}\right.\\ &\mathbf x(t_i-)=\mathbf x(t_i+),i=1,2,\cdots,N \end{aligned}
x ˙ = ⎩ ⎨ ⎧ f ( 1 ) ( x ( t ) , u ( t ) , t ) ⋯ f ( q ) ( x ( t ) , u ( t ) , t ) t ∈ [ t 0 , t 1 ] t ∈ ( t q − 1 , t q ] x ( t i − ) = x ( t i + ) , i = 1 , 2 , ⋯ , N
简单来说就是,Hamiltonian和协态变量
λ
(
t
)
\lambda(t)
λ ( t ) 在每一个内点约束附近发生间断。
6.3
x
(
t
)
\mathbf x(t)
x ( t ) 分段不连续时的内点约束
若状态变量
x
(
t
)
x(t)
x ( t ) 是分段函数,在每一段连续可导,而每一段不连续
x
(
t
i
−
)
≠
x
(
t
i
+
)
\mathbf x(t_i-)\neq\mathbf x(t_i+)
x ( t i − ) = x ( t i + ) 。如果这样的系统在某些点有内点条件(Interior-Point constraints),问题描述如[2]中3.7节的截图: 此种情况下,如公式
(
‡
)
(\ddag)
( ‡ ) 所定义的标量函数,
H
(
i
)
≜
L
(
i
)
+
λ
T
f
(
i
)
Φ
≜
ϕ
+
∑
j
=
0
N
[
ν
(
i
)
]
T
ψ
(
i
)
H^{(i)}\triangleq L^{(i)}+\lambda^{\mathrm T}f^{(i)}\\ \Phi\triangleq \phi+\sum_{j=0}^{N}[\nu^{(i)}]^{\mathrm T}\psi^{(i)}
H ( i ) ≜ L ( i ) + λ T f ( i ) Φ ≜ ϕ + j = 0 ∑ N [ ν ( i ) ] T ψ ( i )
间断点处的状态变量不连续,但遵循约束条件;协态变量有;
控制变量由
x
(
t
)
x(t)
x ( t ) 和
λ
(
t
)
\lambda(t)
λ ( t ) 推导得到。
参考文献
[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