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)。