上一次总结了利用变分法推导得到的典型情形下最优控制需要满足的必要条件,具体的推导在大部分最优控制教材中都可以找到,并且在这些教材中一般会将变分法、极小值原理和动态规划作为最优控制的三大理论支撑。事实上,变分法的历史要比最优控制久远许多,并非专门为最优控制而生,只是后来人们发现可以用变分法求解最优控制问题,因此也将其作为最优控制的理论支撑之一。
1.关于极小值原理
我们接下来看看极小值原理,它的核心在于放宽了变分法中Hamilton函数对控制量可微分的要求,将其替换为如下极值条件(采用上一篇博客中的符号):
最优控制
u
(
t
)
∈
U
u(t)\in U
u(t)∈U,对任意容许的控制变量
u
′
(
t
)
∈
U
u'(t)\in U
u′(t)∈U,在几乎任意时刻
t
∈
[
t
0
,
t
f
]
t\in [t_0,t_\mathrm{f}]
t∈[t0,tf](不用在意几乎这个词,我们不是数学系的):
H
(
x
(
t
)
,
u
(
t
)
,
λ
(
t
)
,
t
)
≤
H
(
x
(
t
)
,
u
′
(
t
)
,
λ
(
t
)
,
t
)
(1)
H(x(t),u(t),\lambda(t),t)\leq H(x(t),u'(t),\lambda(t),t)\tag{1}
H(x(t),u(t),λ(t),t)≤H(x(t),u′(t),λ(t),t)(1)
其中, 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]=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]为Hamilton函数,也就是说最优控制使得Hamilton函数在容许控制范围内取最小值。极小值原理主要是用式(1)代替了变分法中的 ∂ H ∂ u = 0 \frac{\partial H}{\partial u}=0 ∂u∂H=0,其他必要条件则与变分法一样,因此极小值原理适用于控制幅值有限情形下的最优控制问题求解,比如典型的Bang-Bang控制等。极小值原理的证明非常复杂,在文献[1]中有详细介绍,一般来说我们只需要承认并且应用结论就好了。总之,对于最优控制,无论是变分法还是极小值原理都已经很成熟了,大多数时候我们是遇到一个最优控制问题,套用变分法和极小值原理得到的必要条件,然后想办法近似求解这组必要条件,只有在很特殊的情形下才能精确求解这组必要条件。此外,为什么说是必要条件,可类比在微积分课程中的可微分函数的最小值点或者最大值点处的微分必为零,而微分为零的却不一定是可微分函数的最小值点或者最大值点。对于最优控制,我们无法直接获得最优解的充分条件,只能先假设如果有最优解的话,那么最优解一定满足什么性质(比如性能指标的变分为0),然后定量描述这些性质,也就是说,最优解一定满足什么性质,但是满足这些性质的不一定是最优解,即获得了必要条件。对于大多数有实际背景的最优控制问题(如轨迹优化),求解必要条件就能够获得满足需求的解。
2.关于动态规划
前述主要是针对连续系统总结了最优解的必要条件,对于离散系统,利用变分法或者极小值原理也可以推导一组类似的必要条件,只是相对来说没有连续系统那样常用,离散系统的最优控制问题更多地是采用动态规划方法进行求解,并且考虑的前提条件是没有终端约束。具体来说,系统方程为
x
(
k
+
1
)
=
f
D
(
x
(
k
)
,
u
(
k
)
,
k
)
,
k
=
0
,
…
,
N
−
1
(2)
x(k+1)=f_D(x(k),u(k),k),~k=0,\ldots,N-1\tag{2}
x(k+1)=fD(x(k),u(k),k), k=0,…,N−1(2)
考虑对任意时刻
k
∈
[
0
,
N
−
1
]
k\in [0,N-1]
k∈[0,N−1],
k
∈
N
k\in\mathbb{N}
k∈N和初始容许的状态
x
(
k
)
x(k)
x(k),最小化性能指标(与变分法和极小值原理不同,注意这里性能指标的求和部分计算起点是任意的
x
(
k
)
x(k)
x(k),可以认为是变分法和极小值原理中性能指标的推广)
J
(
u
;
x
(
k
)
,
k
)
=
Φ
D
(
x
(
N
)
,
N
)
+
∑
i
=
k
N
−
1
L
D
(
x
(
i
)
,
u
(
i
)
,
i
)
(3)
J(u;x(k),k)=\varPhi_D(x(N),N)+\sum_{i=k}^{N-1}L_D(x(i),u(i),i)\tag{3}
J(u;x(k),k)=ΦD(x(N),N)+i=k∑N−1LD(x(i),u(i),i)(3)
定义最优控制下最小化的性能指标
V
(
x
(
k
)
,
k
)
=
def
min
u
∈
U
J
(
u
;
x
(
k
)
,
k
)
(4)
V(x(k),k)\overset{\text{def}}{=}\min_{u\in U}J(u;x(k),k)\tag{4}
V(x(k),k)=defu∈UminJ(u;x(k),k)(4)
称其为最优控制问题的值函数,其本质上对应于强化学习中的状态值函数,并且有如下Bellman方程成立:
V
(
x
(
k
)
,
k
)
=
min
u
∈
U
{
L
D
(
x
(
k
)
,
u
(
k
)
,
k
)
+
V
(
x
(
k
+
1
)
,
k
+
1
)
}
,
k
=
0
,
…
,
N
−
1
(5)
\begin{aligned} &V(x(k),k)=\min_{u\in U}\{L_D(x(k),u(k),k)+V(x(k+1),k+1)\},\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad k=0,\ldots,N-1 \end{aligned}\tag{5}
V(x(k),k)=u∈Umin{LD(x(k),u(k),k)+V(x(k+1),k+1)},k=0,…,N−1(5)
边界条件为
V
(
x
(
N
)
,
N
)
=
Φ
D
(
x
(
N
)
,
N
)
(6)
V(x(N),N)=\varPhi_D(x(N),N)\tag{6}
V(x(N),N)=ΦD(x(N),N)(6)
从式(5)可以看出,在利用Bellman方程求解离散系统最优控制问题时,适合采用倒推法,即从最后一步开始逐级往前倒推。
动态规划同样可用于连续系统的最优控制问题,假设没有终端约束,系统状态方程为
x
˙
(
t
)
=
f
(
x
(
t
)
,
u
(
t
)
,
t
)
,
t
∈
[
t
0
,
t
f
]
(7)
\dot{x}(t)=f(x(t),u(t),t),~t\in[t_0,t_\mathrm{f}]\tag{7}
x˙(t)=f(x(t),u(t),t), t∈[t0,tf](7)
以任意时刻
t
∈
R
t\in\mathbb{R}
t∈R为起点,任意容许的状态
x
(
t
)
x(t)
x(t)为初始状态,定义性能指标为(注意积分部分的下界)
J
(
u
;
x
(
t
)
,
t
)
=
Φ
(
x
(
t
f
)
,
t
f
)
+
∫
t
N
−
1
L
(
x
(
τ
)
,
u
(
τ
)
,
τ
)
d
τ
(8)
J(u;x(t),t)=\varPhi(x(t_\mathrm{f}),t_\mathrm{f})+\int_{t}^{N-1}L(x(\tau),u(\tau),\tau)\mathrm{d}\tau\tag{8}
J(u;x(t),t)=Φ(x(tf),tf)+∫tN−1L(x(τ),u(τ),τ)dτ(8)
定义最优控制下的性能指标为
V
(
x
(
t
)
,
t
)
=
def
min
u
∈
U
J
(
u
;
x
(
t
)
,
t
)
(9)
V(x(t),t)\overset{\text{def}}{=}\min_{u\in U}J(u;x(t),t)\tag{9}
V(x(t),t)=defu∈UminJ(u;x(t),t)(9)
称其为最优控制问题的值函数,若
V
(
x
(
t
)
,
t
)
V(x(t),t)
V(x(t),t)二阶连续可微,则有如下Hamilton-Jacobi-Bellman方程(简称HJB方程)成立:
−
∂
V
∂
t
(
x
(
t
)
,
t
)
=
min
u
(
t
)
∈
U
H
(
x
(
t
)
,
u
(
t
)
,
∂
V
∂
x
(
x
(
t
)
,
t
)
,
t
)
,
t
∈
[
t
0
,
t
f
]
(10)
-\frac{\partial V}{\partial t}(x(t),t)=\min_{u(t)\in U}H\left(x(t),u(t),\frac{\partial V}{\partial x}(x(t),t),t\right),~t\in[t_0,t_\mathrm{f}]\tag{10}
−∂t∂V(x(t),t)=u(t)∈UminH(x(t),u(t),∂x∂V(x(t),t),t), t∈[t0,tf](10)
边界条件为
V
(
x
(
t
f
)
,
t
f
)
=
Φ
(
x
(
t
f
)
,
t
f
)
(11)
V(x(t_\mathrm{f}),t_\mathrm{f})=\varPhi(x(t_\mathrm{f}),t_\mathrm{f})\tag{11}
V(x(tf),tf)=Φ(x(tf),tf)(11)
其中,
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]=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]为Hamilton函数。需要说明的是,此时HJB方程是最优控制的充分必要条件。此外,对比极小值原理和动态规划可以看出,所谓的协态变量
λ
(
t
)
\lambda(t)
λ(t)满足
λ
(
t
)
=
∂
V
∂
x
(
x
(
t
)
,
t
)
(12)
\lambda(t)=\frac{\partial V}{\partial x}(x(t),t)\tag{12}
λ(t)=∂x∂V(x(t),t)(12)
HJB方程是关于值函数
V
(
x
(
t
)
,
t
)
V(x(t),t)
V(x(t),t)的偏微分方程,一般很难求解,如果是稳态系统,即状态方程和性质指标均不显含时间
t
t
t,则此时HJB方程变为
0
=
min
u
(
t
)
∈
U
H
(
x
(
t
)
,
u
(
t
)
,
∂
V
∂
x
(
x
(
t
)
,
t
)
,
t
)
,
t
∈
[
t
0
,
t
f
]
(13)
0=\min_{u(t)\in U}H\left(x(t),u(t),\frac{\partial V}{\partial x}(x(t),t),t\right),~t\in[t_0,t_\mathrm{f}]\tag{13}
0=u(t)∈UminH(x(t),u(t),∂x∂V(x(t),t),t), t∈[t0,tf](13)
式(13)是目前大部分控制学科里面研究强化学习的出发点,考虑到对于非线性系统,式(13)依然很难求解,因此采用神经网络等方式对值函数进行近似,这样可以通过近似求解式(13)来获得最优控制量,然后美其名曰强化学习,提升逼格。从这个角度看,控制学科似乎将强化学习认为是求解最优控制的一种方法了,有点小瞧的意思。
最后,前面说过,只有非常特殊的系统,利用变分法和极小值原理推导得到的条件才能精确求解,线性二次型(LQR)即属于此类特殊系统,此时用动态规划也能推导获得一样的条件,即Riccati方程,在任何一本最优控制书上都会介绍,在此不再赘述。对于大部分情形,必要条件是比较难以精确求解的,通常需要对系统方程或者必要条件进行一些近似,而且当约束条件比较多的时候,推导必要条件并不是一个好方法,此时更为合适的方式是对系统模型进行转换,利用非线性规划等数值方法进行求解,即所谓的直接法,而求解必要条件的方法相应地称为间接法。
参考文献
[1]张杰, 王飞跃. 最优控制: 数学理论与智能方法. 上册[M]. 清华大学出版社, 2017.