1. 问题描述
给出如下条件
- 数学模型
x ˙ i = f i ( t , x ⃗ , u ⃗ ) \dot x_i = f_i \left( t, \vec x, \vec u \right) x˙i=fi(t,x,u)其中 dim ( x ⃗ ) = n , dim ( u ⃗ ) = m \dim \left( \vec x \right) = n, \dim \left( \vec u \right) = m dim(x)=n,dim(u)=m,且
x ⃗ = [ x 1 , x 2 , ⋯ , x n ] , u ⃗ = [ u 1 , u 2 , ⋯ , u m ] \vec x = \left[x_1, x_2, \cdots, x_n \right], \vec u = \left[ u_1, u_2, \cdots, u_m \right] x=[x1,x2,⋯,xn],u=[u1,u2,⋯,um] - 性能指标
J = ∫ t 0 t k F ( x ⃗ , u ⃗ ) d t → min J = \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \rightarrow \min J=∫t0tkF(x,u)dt→min其中 t 0 t_0 t0已知, t k t_k tk未知。须注意:这里 J J J中只含有 x ⃗ , u ⃗ \vec x, \vec u x,u,不含有时间 t t t。 - 边界条件
S t a r t = { x 1 ( t 0 ) = x 10 x 2 ( t 0 ) = x 20 ⋮ x n ( t 0 ) = x n 0 E n d = { x 1 ( t k ) = x 1 k x 2 ( t k ) = x 2 k ⋮ x n ( t k ) = x n k Start = \begin{cases} x_1 (t_0) = x_{10} \\ x_2 (t_0) = x_{20} \\ \vdots \\ x_n (t_0) = x_{n0} \end{cases} \\ End = \begin{cases} x_1 (t_k) = x_{1k} \\ x_2 (t_k) = x_{2k} \\ \vdots \\ x_n (t_k) = x_{nk} \end{cases} Start=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(t0)=x10x2(t0)=x20⋮xn(t0)=xn0End=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧x1(tk)=x1kx2(tk)=x2k⋮xn(tk)=xnk - 控制量
u
u
u可以为任意状态,可以有限制,可以没有限制。
但需要注意: u ⃗ = u ⃗ ( x ⃗ ) \vec u = \vec u \left( \vec x \right) u=u(x)是状态量 x ⃗ \vec x x的函数,不再是时间 t t t的函数。
2. 贝尔曼最优原理
如上图所示,整条轨迹分成了左右两端,
t
∈
[
t
0
,
t
0
+
Δ
t
]
t \in \left[ t_0, t_0 + \Delta t \right]
t∈[t0,t0+Δt]和
t
∈
[
t
0
+
Δ
t
,
t
k
]
t \in \left[ t_0 + \Delta t, t_k \right]
t∈[t0+Δt,tk]。无论在第一段中使用何种控制、沿着何种轨迹运动,在第二段中,在最优控制作用下,轨迹应当沿着最优轨迹线运动,并到达期望状态。
若
Δ
t
→
0
\Delta t \rightarrow 0
Δt→0,那么在整个时间区间上,轨迹就变成了最优轨迹。
从性能指标表达式上可以看出,
J
J
J是和
x
,
u
x, u
x,u均相关的量。如果先只找出关于
x
x
x的最优指标,而假定
u
u
u不变,那么性能指标表达式可以写成
S
(
x
⃗
)
=
min
u
∫
t
0
t
k
F
(
x
⃗
,
u
⃗
)
d
t
(1)
S \left( \vec x \right) = \min_u \int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt \tag{1}
S(x)=umin∫t0tkF(x,u)dt(1)即:
S
S
S是
x
⃗
\vec x
x的函数。
根据上图,可以把积分(1)写成2段:
∫
t
0
t
k
F
(
x
⃗
,
u
⃗
)
d
t
=
∫
t
0
t
0
+
Δ
t
F
(
x
⃗
,
u
⃗
)
d
t
+
∫
t
0
+
Δ
t
t
k
F
(
x
⃗
,
u
⃗
∘
)
d
t
\int _{t_0} ^{t_k} F \left( \vec x, \vec u \right) dt = \int _{t_0} ^{t_0 + \Delta t} F \left( \vec x, \vec u \right) dt + \int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt
∫t0tkF(x,u)dt=∫t0t0+ΔtF(x,u)dt+∫t0+ΔttkF(x,u∘)dt须注意:根据贝尔曼最优原理的表述,第二段中的
u
u
u应当是最优控制
u
∘
u^{\circ}
u∘,而第一段中的
u
u
u不是最优控制。
既然第二段中的
u
u
u是最优控制
u
∘
u^{\circ}
u∘,那么第二段可以写成
∫
t
0
+
Δ
t
t
k
F
(
x
⃗
,
u
⃗
∘
)
d
t
=
S
(
x
⃗
(
t
0
+
Δ
t
)
)
\int _{t_0 + \Delta t} ^{t_k} F \left( \vec x, \vec u^{\circ} \right) dt = S \left( \vec x \left( t_0 + \Delta t \right) \right)
∫t0+ΔttkF(x,u∘)dt=S(x(t0+Δt))对于
S
S
S有如下性质:
- S S S是连续平滑的微分方程;
- S S S的表达式未知。
- 梯度性质:
∂ S ∂ x ⃗ = [ ∂ S ∂ x 1 , ∂ S ∂ x 2 , ⋯ , ∂ S ∂ x n ] (2) \frac{\partial S}{\partial \vec x} = \left[ \frac{\partial S}{\partial x_1}, \frac{\partial S}{\partial x_2}, \cdots, \frac{\partial S}{\partial x_n} \right] \tag{2} ∂x∂S=[∂x1∂S,∂x2∂S,⋯,∂xn∂S](2)
3. 贝尔曼方程
如果
∂
S
∂
x
i
\frac{\partial S}{\partial x_i}
∂xi∂S存在,那么具有贝尔曼方程
min
u
[
F
(
x
⃗
,
u
⃗
)
+
∂
S
∂
x
⃗
⋅
f
⃗
(
x
⃗
,
u
⃗
)
]
=
0
(3)
\min_u \left[ F \left( \vec x, \vec u \right) + \frac{\partial S}{\partial \vec x} \cdot \vec f \left( \vec x, \vec u \right) \right] = 0 \tag{3}
umin[F(x,u)+∂x∂S⋅f(x,u)]=0(3)即
min
u
[
F
(
x
⃗
,
u
⃗
)
+
∑
i
=
1
n
∂
S
∂
x
i
⋅
f
i
(
x
⃗
,
u
⃗
)
]
=
0
(4)
\min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] = 0 \tag{4}
umin[F(x,u)+i=1∑n∂xi∂S⋅fi(x,u)]=0(4)式(4)是性能指标极值存在的必要条件。
须注意,对于
S
S
S有
S
(
x
⃗
(
t
k
)
)
=
0
(5)
S \left( \vec x (t_k ) \right) = 0 \tag{5}
S(x(tk))=0(5)
4. 求解步骤
利用贝尔曼方程来求出最优控制
u
∘
u^{\circ}
u∘:
∂
[
F
(
x
⃗
,
u
⃗
)
+
∑
i
=
1
n
∂
S
∂
x
i
⋅
f
i
(
x
⃗
,
u
⃗
)
]
∂
u
⃗
=
0
(6)
\frac{\partial \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right]}{\partial \vec u} = 0 \tag{6}
∂u∂[F(x,u)+∑i=1n∂xi∂S⋅fi(x,u)]=0(6)仍然需要强调,这里得出的是
u
⃗
=
u
⃗
∘
(
x
⃗
)
\vec u = \vec u ^{\circ} (\vec x )
u=u∘(x),是
x
x
x的函数,不是
t
t
t的函数。
再将得出的 u ∘ ( x ⃗ ) u^{\circ}(\vec x) u∘(x)代入(4)式即可得出最优轨迹 x ∘ x^{\circ} x∘。
5. 例题
给出如下例题
{
x
˙
1
=
x
2
x
˙
2
=
u
x
⃗
(
t
k
)
=
[
0
,
0
]
J
=
∫
t
0
t
k
(
x
1
2
+
x
2
2
+
u
2
)
d
t
→
min
t
0
=
0
\begin{cases} \dot x_1 = x_2 \\ \dot x_2 = u \end{cases} \\ \vec x (t_k) = [0, 0] \\ J = \int _{t_0} ^{t_k} \left( x_1^2 + x_2^2 + u^2 \right) dt \rightarrow \min \\ t_0 = 0
{x˙1=x2x˙2=ux(tk)=[0,0]J=∫t0tk(x12+x22+u2)dt→mint0=0
解:
□
\square \qquad
□写出贝尔曼方程
min
u
[
F
(
x
⃗
,
u
⃗
)
+
∑
i
=
1
n
∂
S
∂
x
i
⋅
f
i
(
x
⃗
,
u
⃗
)
]
=
F
+
∂
S
∂
x
1
f
1
+
∂
S
∂
x
2
f
2
=
(
x
1
2
+
x
2
2
+
u
2
)
+
∂
S
∂
x
1
x
2
+
∂
S
∂
x
2
u
=
0
\begin{aligned} \min_u \left[ F \left( \vec x, \vec u \right) + \sum _{i=1} ^n \frac{\partial S}{\partial x_i} \cdot f_i \left( \vec x, \vec u \right) \right] &= F + \frac{\partial S}{\partial x_1} f_1 + \frac{\partial S}{\partial x_2} f_2 \\ &= \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \\ &= 0 \end{aligned}
umin[F(x,u)+i=1∑n∂xi∂S⋅fi(x,u)]=F+∂x1∂Sf1+∂x2∂Sf2=(x12+x22+u2)+∂x1∂Sx2+∂x2∂Su=0代入(6)式
∂
[
(
x
1
2
+
x
2
2
+
u
2
)
+
∂
S
∂
x
1
x
2
+
∂
S
∂
x
2
u
]
∂
u
=
0
\frac{\partial \left[ \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u \right]}{\partial u} = 0
∂u∂[(x12+x22+u2)+∂x1∂Sx2+∂x2∂Su]=0即
2
u
+
∂
S
∂
x
2
=
0
⟹
u
∘
=
−
1
2
∂
S
∂
x
2
2u + \frac{\partial S}{\partial x_2} = 0 \\ \Longrightarrow u ^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2}
2u+∂x2∂S=0⟹u∘=−21∂x2∂S可见
u
∘
u^{\circ}
u∘与
S
S
S对
x
2
x_2
x2的导数有关。
将
u
∘
u^{\circ}
u∘代入到贝尔曼方程中
(
x
1
2
+
x
2
2
+
u
2
)
+
∂
S
∂
x
1
x
2
+
∂
S
∂
x
2
u
=
[
x
1
2
+
x
2
2
+
(
−
1
2
∂
S
∂
x
2
)
2
]
+
∂
S
∂
x
1
x
2
+
∂
S
∂
x
2
(
−
1
2
∂
S
∂
x
2
)
=
0
\begin{aligned} \left( x_1^2 + x_2^2 + u^2 \right) + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} u &= \left[ x_1^2 + x_2^2 + \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right)^2 \right] + \frac{\partial S}{\partial x_1} x_2 + \frac{\partial S}{\partial x_2} \left( - \frac{1}{2} \frac{\partial S}{\partial x_2} \right) = 0 \end{aligned}
(x12+x22+u2)+∂x1∂Sx2+∂x2∂Su=[x12+x22+(−21∂x2∂S)2]+∂x1∂Sx2+∂x2∂S(−21∂x2∂S)=0化简得
x
1
2
+
x
2
2
−
1
4
(
∂
S
∂
x
2
)
2
+
∂
S
∂
x
1
x
2
=
0
(7)
x_1^2 + x_2^2 - \frac{1}{4} \left( \frac{\partial S}{\partial x_2} \right) ^2 + \frac{\partial S}{\partial x_1 }x_2 = 0 \tag{7}
x12+x22−41(∂x2∂S)2+∂x1∂Sx2=0(7)具有平方形式。令
S
S
S亦具有平方形式:
S
(
x
⃗
)
=
C
1
x
1
2
+
C
2
x
1
x
2
+
C
3
x
2
2
S \left( \vec x \right) = C_1 x_1^2 + C_2 x_1 x_2 + C_3 x_2^2
S(x)=C1x12+C2x1x2+C3x22则
{
∂
S
∂
x
1
=
2
C
1
x
1
+
C
2
x
2
∂
S
∂
x
2
=
2
C
3
x
2
+
C
2
x
1
\begin{cases} \frac{\partial S}{\partial x_1} = 2C_1 x_1 + C_2 x_2 \\ \frac{\partial S}{\partial x_2} = 2C_3 x_2 + C_2 x_1 \end{cases}
{∂x1∂S=2C1x1+C2x2∂x2∂S=2C3x2+C2x1代入(7)式解得
{
C
2
=
2
,
−
2
C
3
=
3
,
−
3
C
1
=
3
,
−
3
\begin{cases} C_2 = 2, -2 \\ C_3 = \sqrt 3, - \sqrt 3 \\ C_1 = \sqrt 3, - \sqrt 3 \end{cases}
⎩⎪⎨⎪⎧C2=2,−2C3=3,−3C1=3,−3即
S
(
x
⃗
)
=
3
x
1
2
+
2
x
1
x
2
+
3
x
2
2
或
−
3
x
1
2
+
2
x
1
x
2
−
3
x
2
2
S \left( \vec x \right) = \sqrt 3 x_1^2 + 2 x_1 x_2 + \sqrt 3 x_2^2 \quad 或 \quad- \sqrt 3 x_1^2 + 2 x_1 x_2 - \sqrt 3 x_2^2
S(x)=3x12+2x1x2+3x22或−3x12+2x1x2−3x22则
u
∘
=
−
1
2
∂
S
∂
x
2
=
−
3
x
2
−
x
1
或
3
x
2
−
x
1
u^{\circ} = - \frac{1}{2} \frac{\partial S}{\partial x_2} = - \sqrt 3 x_2 - x_1 \quad 或 \quad \sqrt 3 x_2 - x_1
u∘=−21∂x2∂S=−3x2−x1或3x2−x1