1. 问题描述
给出庞特里亚金最大值原理的几个必须条件:
- 数学模型(柯西形式):
{ x ˙ 1 = f 1 ( t , x ⃗ , u ⃗ ) x ˙ 2 = f 2 ( t , x ⃗ , u ⃗ ) ⋮ x ˙ n = f n ( t , x ⃗ , u ⃗ ) \begin{cases} \dot x_1 = f_1 \left( t, \vec x, \vec u \right) \\ \dot x_2 = f_2 \left( t, \vec x, \vec u \right) \\ \vdots \\ \dot x_n = f_n \left( t, \vec x, \vec u \right) \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x˙1=f1(t,x,u)x˙2=f2(t,x,u)⋮x˙n=fn(t,x,u)其中
x ⃗ = [ x 1 x 2 ⋯ x n ] u ⃗ = [ u 1 u 2 ⋯ u m ] \vec x = \left[ \begin{matrix} x_1 & x_2 & \cdots & x_n \end{matrix} \right] \\ \vec u = \left[ \begin{matrix} u_1 & u_2 & \cdots & u_m \end{matrix} \right] x=[x1x2⋯xn]u=[u1u2⋯um] - 时间区间 t ∈ [ t 0 , t k ] t \in \left[ t_0, t_k \right] t∈[t0,tk]
- 边界条件
S t a r t = { x 1 ( t 0 ) = x 10 x 2 ( t 0 ) = x 20 ⋮ x n ( t 0 ) = x n 0 Start = \begin{cases} x_1 (t_0) = x_{10} \\ x_2 (t_0) = x_{20} \\ \vdots \\ x_n (t_0) = x_{n0} \end{cases} Start=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(t0)=x10x2(t0)=x20⋮xn(t0)=xn0 E n d = { x 1 ( t k ) = x 1 k x 2 ( t k ) = x 2 k ⋮ x n ( t k ) = x n k End = \begin{cases} x_1 (t_k) = x_{1k} \\ x_2 (t_k) = x_{2k} \\ \vdots \\ x_n (t_k) = x_{nk} \end{cases} End=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(tk)=x1kx2(tk)=x2k⋮xn(tk)=xnk共 2 n 2n 2n个条件。 - 性能指标
J = ∫ t 0 t k F ( x ⃗ , x ⃗ ˙ , u ⃗ ) d t → min J = \int _{t_0} ^{t_k} F \left( \vec x, \dot {\vec x}, \vec u \right) dt \rightarrow \min J=∫t0tkF(x,x˙,u)dt→min可以看出, F F F中不含有 t t t的显式。 - 控制量的限制:
∣ u ⃗ ( t ) ∣ ≤ U ⃗ max \big\lvert \vec u (t) \big\rvert \leq \vec U _{\max} ∣∣u(t)∣∣≤Umax该条件是指,由于一些现实原因或硬件性能原因,控制量信号 u ( t ) u(t) u(t)不可能取得很大的值,只能受限于某个上下限之间,因此 u ( t ) u(t) u(t)的取值不再是可导的甚至不再是连续的,出现了第一类间断点。
如下是两类比较简单的控制信号的限制区间。
2. 解题步骤
由于
u
(
t
)
u(t)
u(t)不再可导,因此需要使用别的方法进行求解。这里引入新的概念——哈密尔顿函数,具有如下形式:
H
(
t
,
x
⃗
,
u
⃗
,
ψ
⃗
)
=
∑
i
=
0
n
ψ
i
(
t
)
⋅
f
i
(
t
,
x
⃗
,
u
⃗
)
(1)
H \left( t, \vec x, \vec u , \vec \psi \right) = \sum _{i=0} ^n \psi _i (t) \cdot f_i \left( t, \vec x, \vec u \right) \tag{1}
H(t,x,u,ψ)=i=0∑nψi(t)⋅fi(t,x,u)(1)应当注意,积分号下标从
i
=
0
i=0
i=0开始。当
i
=
0
i=0
i=0时,
x
˙
0
=
F
(
x
⃗
,
x
⃗
˙
,
u
⃗
)
=
f
0
\dot x_0 = F \left( \vec x, \dot {\vec x}, \vec u \right) = f_0
x˙0=F(x,x˙,u)=f0而(1)中
ψ
i
(
t
)
\psi_i(t)
ψi(t)是耦合函数,要求
ψ
i
(
t
)
≠
0
\psi_i (t) \neq 0
ψi(t)=0。
为了求解问题,还需要引入附加条件:
{
x
˙
i
=
∂
H
∂
ψ
i
,
i
=
0
,
1
,
⋯
,
n
ψ
˙
i
=
−
∂
H
∂
x
i
,
i
=
0
,
1
,
⋯
,
n
(2)
\begin{cases} \dot x_i = \frac{\partial H}{\partial \psi _i}, \quad i = 0, 1, \cdots, n \\ \dot \psi_i = - \frac{\partial H}{\partial x_i}, \quad i = 0, 1, \cdots, n \tag{2} \end{cases}
{x˙i=∂ψi∂H,i=0,1,⋯,nψ˙i=−∂xi∂H,i=0,1,⋯,n(2)需要注意,第二个式子中右侧要有负号。
(2)又称为耦合微分方程组。
此外,还有如下性质:
max
u
H
(
x
⃗
∘
,
u
,
ψ
⃗
∘
)
=
H
(
x
⃗
∘
,
u
⃗
∘
,
ψ
∘
)
(3)
\max_u H \left( \vec x ^{\circ}, u, \vec \psi ^{\circ} \right) = H \left( \vec x ^{\circ}, \vec u ^{\circ}, \psi ^{\circ} \right) \tag{3}
umaxH(x∘,u,ψ∘)=H(x∘,u∘,ψ∘)(3)
H
H
H的最大值保证了
u
u
u的最大值
u
∘
u^{\circ}
u∘,而
u
∘
u^{\circ}
u∘确保了
H
H
H取最大值。
H
(
x
⃗
∘
(
t
k
)
,
u
⃗
∘
(
t
k
)
,
ψ
⃗
∘
(
t
k
)
)
≡
0
(4)
H \left( \vec x ^{\circ} (t_k), \vec u ^{\circ} (t_k), \vec \psi ^{\circ} (t_k) \right) \equiv 0 \tag{4}
H(x∘(tk),u∘(tk),ψ∘(tk))≡0(4)
ψ
0
(
t
k
)
<
0
(5)
\psi_0 (t_k) < 0 \tag{5}
ψ0(tk)<0(5)从(3)中可以看出,最优的
u
∘
u^{\circ}
u∘使得
H
H
H取到最大值,故称为庞特里亚金最大值原理。
3. 原理解释
关于庞特里亚金最大值原理,有如下几条解释。假设 u ⃗ ∘ ( t ) , x ⃗ ∘ ( t ) \vec u^{\circ} (t), \vec x^{\circ}(t) u∘(t),x∘(t)已知,则存在连续函数 ψ ⃗ ∘ ( t ) \vec \psi ^{\circ} (t) ψ∘(t)满足如下条件:
- 在时间区间 t ∈ [ t 0 , t k ] t \in \left[ t_0, t_k \right] t∈[t0,tk]内 ψ ⃗ ( t ) ≠ 0 \vec \psi (t) \neq 0 ψ(t)=0;
- 连续函数 ψ ⃗ ( t ) \vec \psi (t) ψ(t)是耦合微分方程组(2)的解;
- 在系统的最优状态下,最优控制 u ∘ ( t ) u ^{\circ} (t) u∘(t)保证了哈密尔顿函数取得最大值;
解题的关键式:
∂
H
∂
u
k
=
0
,
k
=
1
,
2
,
⋯
,
m
(6)
\frac{\partial H}{\partial u_k} = 0, \qquad k = 1, 2, \cdots, m \tag{6}
∂uk∂H=0,k=1,2,⋯,m(6)
4. 必要条件
由于 H H H保证了 u ∘ ( t ) u^{\circ}(t) u∘(t)的极值,因此式(6)是保证极值存在的必要条件。
在解题过程中,
u
u
u的表达式往往是通过
x
⃗
,
ψ
⃗
\vec x, \vec \psi
x,ψ给出的,即
u
k
=
φ
k
(
x
⃗
,
ψ
⃗
)
u_k = \varphi _k \left( \vec x, \vec \psi \right)
uk=φk(x,ψ)受限于
u
u
u本身的取值范围,因此
u
k
(
t
)
=
{
φ
k
(
x
⃗
,
ψ
⃗
)
,
若
∣
u
k
(
t
)
∣
≤
U
k
max
;
+
U
max
,
若
u
k
(
t
)
>
U
k
max
−
U
max
,
若
u
k
(
t
)
<
−
U
k
max
(7)
u_k (t) = \begin{cases} \varphi _k \left( \vec x, \vec \psi \right), \quad 若 \big\lvert u_k (t) \big\rvert \leq U_k^{\max}; \\ +U ^{\max}, \quad 若u_k(t) > U_k^{\max} \\ -U ^{\max}, \quad 若u_k(t) < -U_k^{\max} \tag{7} \end{cases}
uk(t)=⎩⎪⎪⎨⎪⎪⎧φk(x,ψ),若∣∣uk(t)∣∣≤Ukmax;+Umax,若uk(t)>Ukmax−Umax,若uk(t)<−Ukmax(7)
图中黑线为(6)式计算出的
u
u
u,蓝线为收到限制后实际可用的
u
u
u。
5. 方程可解性
耦合微分方程组(2)共
2
n
+
2
2n+2
2n+2个式子,但只有
2
n
2n
2n个边界条件,因此还需2个方程进行求解。这2个方程中,有一个可以选择(4)式。同时考虑到,由于
x
0
x_0
x0不含于
H
H
H中,因此可以有(8)式
ψ
˙
0
=
−
∂
H
∂
x
0
=
0
(8)
\dot \psi_0 = - \frac{\partial H}{\partial x_0} = 0 \tag{8}
ψ˙0=−∂x0∂H=0(8)即
ψ
0
\psi_0
ψ0为常数。
结合(5)式,不妨**直接令 ψ 0 = − 1 \bm{\psi_0 = -1} ψ0=−1。
6. 例题
给出如下例题
{
x
˙
1
=
x
2
x
˙
2
=
u
t
∈
[
0
,
1
]
S
t
a
r
t
=
{
x
1
(
0
)
=
5
x
2
(
0
)
=
0
E
n
d
=
{
x
1
(
1
)
=
0
x
2
(
1
)
=
0
J
=
∫
0
1
(
4
x
1
2
+
5
x
2
2
+
u
2
)
d
t
→
min
∣
u
(
t
)
∣
≤
U
max
=
20
\begin{cases} \dot x_1 = x_2 \\ \dot x_2 = u \end{cases} \\ t \in \left[ 0, 1 \right] \\ Start = \begin{cases} x_1(0) = 5 \\ x_2(0) = 0 \end{cases} \\ End = \begin{cases} x_1(1) = 0 \\ x_2(1) = 0 \end{cases} \\ J = \int _0 ^1 \left( 4x_1^2 + 5x_2^2 + u^2 \right) dt \rightarrow \min \\ \big\lvert u(t) \big\rvert \leq U^{\max} = 20
{x˙1=x2x˙2=ut∈[0,1]Start={x1(0)=5x2(0)=0End={x1(1)=0x2(1)=0J=∫01(4x12+5x22+u2)dt→min∣∣u(t)∣∣≤Umax=20
解:
□
\square \quad
□先写出哈密尔顿函数
H
=
ψ
0
(
4
x
1
2
+
5
x
2
2
+
u
2
)
+
ψ
1
(
t
)
⋅
x
2
+
ψ
2
(
t
)
⋅
u
H = \psi_0 \left( 4x_1^2 + 5x_2^2 + u^2 \right) + \psi _1 (t) \cdot x_2 + \psi _2 (t) \cdot u
H=ψ0(4x12+5x22+u2)+ψ1(t)⋅x2+ψ2(t)⋅u代入
∂
H
∂
u
=
0
\frac{\partial H}{\partial u} = 0
∂u∂H=0中有
∂
H
∂
u
=
2
ψ
0
u
+
ψ
2
(
t
)
=
0
\frac{\partial H}{\partial u} = 2 \psi_0 u + \psi_2 (t) = 0
∂u∂H=2ψ0u+ψ2(t)=0解得
u
=
−
1
2
ψ
0
ψ
2
(
t
)
u = - \frac{1}{2 \psi_0} \psi_2 (t)
u=−2ψ01ψ2(t)即
u
u
u取决于
ψ
2
\psi_2
ψ2。
之前谈过,可以直接取
ψ
0
=
−
1
\psi_0 = -1
ψ0=−1,因此
u
=
1
2
ψ
2
(
t
)
u = \frac{1}{2} \psi_2 (t)
u=21ψ2(t)代入(7)
u
(
t
)
=
{
1
2
ψ
2
(
t
)
,
若
∣
u
(
t
)
∣
≤
U
max
=
20
;
+
U
max
=
+
20
,
若
u
(
t
)
>
U
max
=
20
−
U
max
=
−
20
,
若
u
(
t
)
<
−
U
max
=
20
u (t) = \begin{cases} \frac{1}{2} \psi_2 (t) , \quad 若 \big\lvert u (t) \big\rvert \leq U^{\max} = 20; \\ +U ^{\max} = +20, \quad 若u(t) > U^{\max} = 20 \\ -U ^{\max} = -20, \quad 若u(t) < -U^{\max} = 20 \end{cases}
u(t)=⎩⎪⎨⎪⎧21ψ2(t),若∣∣u(t)∣∣≤Umax=20;+Umax=+20,若u(t)>Umax=20−Umax=−20,若u(t)<−Umax=20接下来解耦合微分方程组:
{
x
˙
0
=
∂
H
∂
ψ
0
=
4
x
1
2
+
5
x
2
2
+
u
2
x
˙
1
=
∂
H
∂
ψ
1
=
x
2
x
˙
2
=
∂
H
∂
ψ
2
=
u
\begin{cases} \dot x_0 = \frac{\partial H}{\partial \psi_0} = 4x_1^2 + 5x_2^2 + u^2 \\ \dot x_1 = \frac{\partial H}{\partial \psi_1} = x_2 \\ \dot x_2 = \frac{\partial H}{\partial \psi_2} = u \end{cases}
⎩⎪⎨⎪⎧x˙0=∂ψ0∂H=4x12+5x22+u2x˙1=∂ψ1∂H=x2x˙2=∂ψ2∂H=u
{
ψ
˙
0
=
−
∂
H
∂
x
0
=
0
(
c
o
n
s
t
.
)
ψ
˙
1
=
−
∂
H
∂
x
1
=
−
8
ψ
0
x
1
ψ
˙
2
=
−
∂
H
∂
x
2
=
−
10
ψ
0
x
2
−
ψ
1
(
t
)
\begin{cases} \dot \psi_0 = -\frac{\partial H}{\partial x_0} = 0 \quad (const.) \\ \dot \psi_1 = -\frac{\partial H}{\partial x_1} = - 8 \psi_0 x_1 \\ \dot \psi_2 = -\frac{\partial H}{\partial x_2} = - 10 \psi_0 x_2 - \psi_1 (t) \end{cases}
⎩⎪⎨⎪⎧ψ˙0=−∂x0∂H=0(const.)ψ˙1=−∂x1∂H=−8ψ0x1ψ˙2=−∂x2∂H=−10ψ0x2−ψ1(t)代入
ψ
0
=
−
1
\psi_0=-1
ψ0=−1
{
ψ
˙
0
=
−
∂
H
∂
x
0
=
0
(
c
o
n
s
t
.
)
ψ
˙
1
=
−
∂
H
∂
x
1
=
8
x
1
ψ
˙
2
=
−
∂
H
∂
x
2
=
10
x
2
−
ψ
1
(
t
)
\begin{cases} \dot \psi_0 = -\frac{\partial H}{\partial x_0} = 0 \quad (const.) \\ \dot \psi_1 = -\frac{\partial H}{\partial x_1} = 8x_1 \\ \dot \psi_2 = -\frac{\partial H}{\partial x_2} = 10x_2 - \psi_1 (t) \end{cases}
⎩⎪⎨⎪⎧ψ˙0=−∂x0∂H=0(const.)ψ˙1=−∂x1∂H=8x1ψ˙2=−∂x2∂H=10x2−ψ1(t)再把
u
=
1
2
ψ
2
(
t
)
u = \frac{1}{2} \psi_2 (t)
u=21ψ2(t)代入
x
˙
i
\dot x_i
x˙i公式组中,
{
x
˙
0
=
∂
H
∂
ψ
0
=
4
x
1
2
+
5
x
2
2
+
u
2
x
˙
1
=
∂
H
∂
ψ
1
=
x
2
x
˙
2
=
∂
H
∂
ψ
2
=
u
=
1
2
ψ
2
(
t
)
\begin{cases} \dot x_0 = \frac{\partial H}{\partial \psi_0} = 4x_1^2 + 5x_2^2 + u^2 \\ \dot x_1 = \frac{\partial H}{\partial \psi_1} = x_2 \\ \dot x_2 = \frac{\partial H}{\partial \psi_2} = u = \frac{1}{2} \psi_2 (t) \end{cases}
⎩⎪⎨⎪⎧x˙0=∂ψ0∂H=4x12+5x22+u2x˙1=∂ψ1∂H=x2x˙2=∂ψ2∂H=u=21ψ2(t)
联合求解即可解出
ψ
1
(
t
)
,
ψ
2
(
t
)
,
x
∘
(
t
)
,
u
∘
(
t
)
\psi_1(t), \psi_2(t), x^{\circ}(t), u^{\circ}(t)
ψ1(t),ψ2(t),x∘(t),u∘(t)。