变分法是最优控制问题的三大基石之一,下面讨论一些变分法的常用理论。
无约束最优控制问题,若固定起止时间,两端状态固定,即
x ( 0 ) = x 0 , x ( t f ) = x f , t ∈ [ 0 , t f ] x(0)=x_0, x(t_f)=x_f, t\in[0,t_f] x(0)=x0,x(tf)=xf,t∈[0,tf]
需要求出最优路径path(轨迹trajectory、最优实现): x ∗ ( t ) x^*(t) x∗(t)。而这个最优性的定义,是按照泛函型性能指标来表达的
min x ( t ) J ( x , t ) = ϕ ( x ( t f ) , t f ) + ∫ 0 t f L ( x , x ˙ , t ) d t (1) \min_{x(t)}J(x,t)=\phi(x(t_f),t_f)+\int_0^{t_f}L(x,\dot{x} ,t)\text d t \tag{1} x(t)minJ(x,t)=ϕ(x(tf),tf)+∫0tfL(x,x˙,t)dt(1)
由赋范线性空间 X \Chi X的某个子集映射到实数域 R \Reals R的映射称为泛函,即 T : X ↦ R T: \Chi\mapsto\Reals T:X↦R。在这里指的是从路径 x ( t ) ↦ J ∈ R x(t)\mapsto J\in\Reals x(t)↦J∈R的一个映射,即函数的函数。公式 ( 1 ) (1) (1)只有第一部分性能指标的最优控制问题称为Meyer型问题,仅有第二部分的称为Lagrange型问题,两种相加的称为Bolza问题。Bolza型问题可以转化成Lagrange型问题
J ( x , t ) = ∫ 0 t f d ϕ ( x , t ) d t + L ( x , x ˙ , t ) d t + ϕ ( x ( 0 ) , 0 ) J(x,t)=\int_0^{t_f}\frac{\text d\phi(x,t)}{\text d t}+L(x,\dot{x} ,t)\text d t+\phi(x(0),0) J(x,t)=∫0tfdtdϕ(x,t)+L(x,x˙,t)dt+ϕ(x(0),0)
所以一般我们都是从Lagrange型问题开始研究的。
对于上述问题,沿着最优路径 x ∗ ( t ) x^*(t) x∗(t)对性能指标做变分 δ J ( x ∗ ) \delta J(x^*) δJ(x∗),最优路径的必要条件是 δ J ( x ∗ ) = 0 \delta J(x^*)=0 δJ(x∗)=0.对Lagrange型性能指标展开,
δ J ( δ x ∗ ) = ∫ 0 t f ( ∂ L ∂ x δ x + ∂ L ∂ x ˙ δ x ˙ ) d t = 0 \delta J(\delta x^*) =\int_0^{t_f}({\frac {\partial L}{\partial x}\delta x}+ {\frac {\partial L}{\partial \dot x}\delta \dot x)\text d t}=0 δJ(δx∗)=∫0tf(∂x∂Lδx+∂x˙∂Lδx˙)dt=0
并对第二项做分部积分 u v = ∫ d ( u v ) = u ∫ d v + v ∫ d u uv=\int \text d (uv)=u\int \text d v+v\int \text d u uv=∫d(uv)=u∫dv+v∫du,
∫ L x ˙ δ x ˙ d t = ∫ L x ˙ δ d x d t d t = ∫ L x ˙ δ d x = L x ˙ δ x − ∫ δ x d L x ˙ = L x ˙ δ x − ∫ δ x d L x ˙ d t d t \int L_{\dot{x}} \delta \dot x \text d t=\int L_{\dot{x}} \delta \frac{\text d x}{\text d t}\text d t=\int L_{\dot{x}} \delta \text d x=L_{\dot{x}}\delta x-\int{\delta x}\text d L_{\dot x}=L_{\dot{x}}\delta x-\int{\delta x}\frac{\text d L_{\dot x}}{\text d t}\text d t ∫Lx˙δx˙dt=∫Lx˙δdtdxdt=∫Lx˙δdx=Lx˙δx−∫δxdLx˙=Lx˙δx−∫δxdtdLx˙dt
,得到
L x ˙ δ x ∣ 0 t f + ∫ 0 t f ( L x − d d t L x ˙ ) δ x d t = 0 (2) {\left. L_{\dot{x}}\delta x \right|}_0^{t_f}+\int_0^{t_f}(L_x-\frac{\text d}{\text d t}L_{\dot x}\text )\delta xd t=0\tag{2} Lx˙δx∣0tf+∫0tf(Lx−dtdLx˙)δxdt=0(2)
上式表示
L x ˙ ( x ( t f ) , x ˙ ( t f ) , t f ) ⋅ δ x ( t f ) − L x ˙ ( x 0 , x ˙ 0 , 0 ) ⋅ δ x 0 = 0 [ L x ( x ( t ) , x ˙ ( t ) , t ) − d d t L x ˙ ( x ( t ) , x ˙ ( t ) , t ) ] ⋅ δ x = 0 \begin{aligned} L_{\dot x}(x(t_f),\dot x(t_f),t_f)\cdot\delta x(t_f)-L_{\dot x}(x_0,\dot x_0,0)\cdot\delta x_0=0\\ [L_x(x(t),\dot x(t),t)-\frac{\text d}{\text d t}L_{\dot x}(x(t),\dot x (t),t)\text ]\cdot\delta x=0 \end{aligned} Lx˙(x(tf),x˙(tf),tf)⋅δx(tf)−Lx˙(x0,x˙0,0)⋅δx0=0[Lx(x(t),x˙(t),t)−dtdLx˙(x(t),x˙(t),t)]⋅δx=0
由于变分 δ x ( t ) \delta x(t) δx(t)是任意的,且初始时刻状态固定,所以 δ x ( t 0 ) = 0 \delta x(t_0)=0 δx(t0)=0.于是得到泛函极值的必要条件,即大名鼎鼎的Euler-Lagrange方程
L x − d d t L x ˙ = 0 (3) L_x-\frac{\text d}{\text d t}L_{\dot x}=0\tag 3 Lx−dtdLx˙=0(3)这个式子的完整形式是,是和分析力学中的形式完全一样的,其中 x x x为自变量, L ( t , x , x ˙ ) L(t,x,\dot x) L(t,x,x˙)为Lagrange函数.
∂ L ∂ x − d d t ∂ L ∂ x ˙ = 0 \frac{\partial L}{\partial x}-\frac{\text d}{\text d t}\frac{\partial L}{\partial \dot x}=0 ∂x∂L−dtd∂x˙∂L=0另外,泛函极值的必要条件还包括横截条件。
L x ˙ ( x f ) = 0 L_{\dot{x}}(x_f)=0 Lx˙(xf)=0
若 t f t_f tf固定、终端状态 x ( t f ) x(t_f) x(tf)自由,即 x f ∈ X f ≠ ∅ x_f\in X_f\neq \emptyset xf∈Xf=∅,则上式需要;否则不需要这个条件就可以求出最优路径 x ( t ) x(t) x(t)
边界条件 x ( 0 ) , t f , x ( t f ) x(0),t_f,x(t_f) x(0),tf,x(tf)都知道,极值必要条件为公式 ( 3 ) (3) (3),维数n*1。n个未知变量,两端状态已知,则构成两点边值问题。这个问题最典型的例子是百度百科-最速下降曲线问题,该问题为约翰伯努利提出,被欧拉解决。
例1.1 求无约束最优化问题的最优路径
J ( x ) = ∫ 0 π / 2 [ x ˙ 2 ( t ) − x 2 ( t ) ] d t x ( 0 ) = 0 , x ( π / 2 ) = 1 J(x)=\int_{0}^{\pi / 2}\left[\dot{x}^{2}(t)-x^{2}(t)\right] d t\\ x(0)=0,x(\pi/2)=1 J(x)=∫0π/2[x˙2(t)−x2(t)]dtx(0)=0,x(π/2)=1
首先列出Euler方程
0 = ∂ L ∂ x ( x ∗ ( t ) , x ˙ ∗ ( t ) , t ) − d d t [ ∂ L ∂ x ˙ ( x ∗ ( t ) , x ˙ ∗ ( t ) , t ) ] = − 2 x ∗ ( t ) − d d t [ 2 x ˙ ∗ ( t ) ] \begin{aligned} 0 &=\frac{\partial L}{\partial x}\left(x^{*}(t), \dot{x}^{*}(t), t\right)-\frac{d}{d t}\left[\frac{\partial L}{\partial \dot{x}}\left(x^{*}(t), \dot{x}^{*}(t), t\right)\right] \\ &=-2 x^{*}(t)-\frac{d}{d t}\left[2 \dot{x}^{*}(t)\right]\\ \end{aligned} 0=∂x∂L(x∗(t),x˙∗(t),t)−dtd[∂x˙∂L(x∗(t),x˙∗(t),t)]=−2x∗(t)−dtd[2x˙∗(t)]
即 x ( t ) + x ′ ′ ( t ) = 0 x(t)+x''(t)=0 x(t)+x′′(t)=0
设 x ( t ) = a e ı ( t + ϕ ) , ( ı 2 = − 1 ) x(t)=ae^{\imath (t+\phi)},(\imath^2=-1) x(t)=ae(t+ϕ),(2=−1),考虑边界条件即可得到 a = 1 , ϕ = − π / 2 ; & a = − 1 , ϕ = π / 2 a=1,\phi=-\pi/2;\& a=-1,\phi=\pi/2 a=1,ϕ=−π/2;&a=−1,ϕ=π/2,在实数域的解为 x ( t ) = s i n ( t ) x(t)=sin(t) x(t)=sin(t)
必要条件为Euler方程——公式 ( 3 ) (3) (3),边界条件多了
L x ˙ ( x f ) = 0 L_{\dot{x}}(x_f)=0 Lx˙(xf)=0
t f t_f tf自由, x f x_f xf自由,没有直接的代数关系。Euler方程和公式 ( 3 ) (3) (3)一样,边界条件多了
L x ˙ ( x f ) = 0 L ( x , x ˙ , t f ) = 0 (4) \begin{aligned} L_{\dot{x}}(x_f)=0\\ L(x,\dot x ,t_f)=0\tag{4} \end{aligned} Lx˙(xf)=0L(x,x˙,tf)=0(4)
两者之间的关系为
ψ i ( x f , t f ) = 0 , i = 1 , 2 , . . . m , ( m < n ) \psi_i(x_f,t_f)=0,i=1,2,...m, (m
有m个终端约束,数目小于状态向量 x x x的维数n。此时,按照Lagrange乘数法,设一个常数向量 μ ∈ R m × 1 \mu\in\Reals^{m\times1} μ∈Rm×1,构造新的性能指标
J ( x , t ) = μ T ψ + ∫ 0 t f L d t = ∫ 0 t f L + μ T d ψ d t d t J(x,t)=\mu^T\psi+\int_0^{t_f}L\text d t=\int_0^{t_f}L+\mu^T\frac{\text d \psi}{\text d t}\text d t J(x,t)=μTψ+∫0tfLdt=∫0tfL+μTdtdψdt
定义被积函数为Hamilton函数,即
H ( x , μ ) = L + μ T d ψ d t (5) H(x,\mu)=L+\mu^T\frac{\text d \psi}{\text d t}\tag{5} H(x,μ)=L+μTdtdψ(5)
则化为标准的Lagrange性无约束问题。对它仍有Euler方程,
H x − d d t H x ˙ = 0 (6) H_x-\frac{\text d}{\text d t}H_{\dot x}=0\tag 6 Hx−dtdHx˙=0(6)
参考公式 ( 4 ) (4) (4),有以下两个边界条件
H x ˙ ( x f ) = 0 H ( x , x ˙ , t f ) = 0 (7) \begin{aligned} H_{\dot{x}}(x_f)=0\\ H(x,\dot x ,t_f)=0\tag 7 \end{aligned} Hx˙(xf)=0H(x,x˙,tf)=0(7)
展开,得到横截条件
L x ˙ + μ T ∂ ψ ∂ x T = 0 L + μ T d ψ d t = 0 (8) \begin{aligned} L_{\dot{x}}+\mu^T\frac{\partial \psi}{\partial x^T}=0\\ L+\mu^T\frac{\text d \psi}{\text d t}=0 \tag{8} \end{aligned} Lx˙+μT∂xT∂ψ=0L+μTdtdψ=0(8)
公式 ( 8 ) (8) (8)在终端时刻和终端状态成立 ( x f , t f ) (x_f ,t_f) (xf,tf).一共有n+1个条件。如果终端约束是显函数,则可以消去Largange乘数 μ \mu μ.
例1.2 求椭圆外一点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)到椭圆 x 2 8 + y 2 4 = 1 \frac{x^2} 8+\frac {y^2} 4=1 8x2+4y2=1上距离最近的曲线的表达式 y ( x ) y(x) y(x)。
这里考虑到还没有引入状态过程约束,所以不假设最短路径是直线PQ,而是广义的形式 y ( x ) y(x) y(x)。构建性能指标,任意小弧段长度
d s = d x 2 + d y 2 = 1 + y ′ 2 d x \text d s=\sqrt{\text d x^2+\text d y^2}=\sqrt{1+y\prime^2}\text d x ds=dx2+dy2=1+y′2dx
曲线 y ( x ) y(x) y(x)的长度
J ( y ( x ) , x ) = ∫ x 0 x f 1 + y ′ 2 d x J(y(x),x)=\int_{x_0}^{x_f}\sqrt{1+y\prime^2}\text d x J(y(x),x)=∫x0xf1+y′2dx
已知条件 y ( x 0 ) = y 0 y(x_0)=y_0 y(x0)=y0,终点Q自变量 x f x_f xf自由,状态变量 y ( x f ) y(x_f) y(xf)自由,终端约束方程
ψ ( y ( x f ) , x f ) = x 2 + 2 y 2 − 8 = 0 \psi(y(x_f),x_f)=x^2+2y^2-8=0 ψ(y(xf),xf)=x2+2y2−8=0
以下按照公式 ( 5 ) − ( 8 ) (5)-(8) (5)−(8)的流程进行计算。构建Hamilton函数
H ( y ( x ) , x ) = L + μ d ψ d x = 1 + y ′ 2 + μ ( 2 x + 4 y y ′ ) H(y(x),x)=L+\mu\frac{\text d\psi}{\text d x}=\sqrt{1+y\prime^2}+\mu(2x+4y y^\prime) H(y(x),x)=L+μdxdψ=1+y′2+μ(2x+4yy′)
Euler方程
H y − d d x H y ˙ = 4 μ y ′ − d d x ( y ′ 1 + y ′ 2 + 4 μ y ) = − y ′ ′ ( 1 + y ′ 2 ) 3 / 2 = 0 H_y-\frac{\text d}{\text d x}H_{\dot y}=4\mu y^\prime-\frac{\text d}{\text d x}(\frac{y'}{\sqrt{1+y\prime^2}}+4\mu y)=-\frac {y''}{(1+y'^2)^{3/2}}=0 Hy−dxdHy˙=4μy′−dxd(1+y′2y′+4μy)=−(1+y′2)3/2y′′=0
即 y ′ = a y'=a y′=a,表明曲线 y ( x ) y(x) y(x)是直线。下面考虑边界条件,
y 0 = a x 0 + b y f = a x f + b x f 2 + 2 y f 2 − 8 = 0 1 + a 2 + μ ( 2 x f + 4 y f a ) = 0 a 1 + a 2 + 4 μ y f = 0 \begin{aligned} y_0=a x_0+b\\ y_f=a x_f+b\\ x_f^2+2y_f^2-8=0\\ \sqrt{1+a^2}+\mu(2 x_f+4y_f a)=0\\ \frac a{\sqrt{1+a^2}}+4\mu y_f=0 \end{aligned} y0=ax0+byf=axf+bxf2+2yf2−8=01+a2+μ(2xf+4yfa)=01+a2a+4μyf=0
5个方程,5个未知数,代数方程可以求解。例如,若 ( x 0 , y 0 ) = ( 2 , 0 ) = F 2 (x_0,y_0)=(2,0)=F_2 (x0,y0)=(2,0)=F2,则有唯一解 a = b = 0 , y f = 0 , x f = 2 2 , μ = 1 / ( 8 − 12 2 ) a=b=0,y_f=0,x_f=2\sqrt 2,\mu=1/(8-12\sqrt 2) a=b=0,yf=0,xf=22,μ=1/(8−122).
上面对待终端约束,我们应用了Lagrange乘数 μ \mu μ;在例1.1中我们处理的,虽然知道是直线但还是用了曲线假设;为了处理最优路径问题中的约束,我们引入Lagrange乘子 λ \lambda λ。由于它是一个变量,和状态变量相对应地,我们也称它为协态变量。
以下考虑两种常见的等式形式的路径约束,不论是什么类型,都用Lagrange乘子法。
也称为几何约束
g i ( x ( t ) , t ) = 0 , i = 1 , 2 , . . . m , ( m ≤ n ) g_i(x(t),t)=0,i=1,2,...m,(m\le n) gi(x(t),t)=0,i=1,2,...m,(m≤n)
引入Lagrange乘子 λ ( t ) ∈ R m × 1 \lambda(t)\in\Reals^{m\times1} λ(t)∈Rm×1,使性能指标变为
J ( x , λ , t ) = ∫ 0 t f L + λ T g d t = ∫ 0 t f H ( x , λ , t ) d t (9) J(x,\lambda,t)=\int_0^{t_f}L+\lambda^Tg \text d t=\int_0^{t_f}H(x,\lambda,t)\text d t\tag 9 J(x,λ,t)=∫0tfL+λTgdt=∫0tfH(x,λ,t)dt(9)
该系统仍可套用Euler方程(n维),此外方程自始至终满足几何约束的(m)个约束,则可解。
这里考虑一阶常微分方程形式的动态约束:
f ( x ( t ) , x ˙ ( t ) , t ) = 0 f(x(t),\dot x(t),t)=0 f(x(t),x˙(t),t)=0
终端时刻 t f t_f tf固定,终端状态 x f x_f xf自由。对这个问题引入Lagrange乘子 λ ( t ) ∈ R m × 1 \lambda(t)\in\Reals^{m\times1} λ(t)∈Rm×1,使性能指标变为
J ( x , x ˙ , λ , t ) = ∫ 0 t f L + λ T f d t = ∫ 0 t f H ( x , x ˙ , λ , t ) d t (10) J(x,\dot x,\lambda,t)=\int_0^{t_f}L+\lambda^Tf \text d t=\int_0^{t_f}H(x,\dot x,\lambda,t)\text d t\tag {10} J(x,x˙,λ,t)=∫0tfL+λTfdt=∫0tfH(x,x˙,λ,t)dt(10)
可见公式 ( 10 ) (10) (10)与公式 ( 9 ) (9) (9)形式一样。对上式仍然采用变分法,此处注意状态变量 δ x ( t ) ˙ \delta \dot {x(t)} δx(t)˙和 δ x ( t ) \delta x(t) δx(t)通过分部积分法可以联系起来,而乘子 δ λ ( t ) \delta \lambda(t) δλ(t)是独立的,所以对性能指标的变分包括2部分
δ J ( δ x ∗ , δ λ ∗ ) = ∫ t 0 t f { [ L x + λ T f x ] δ x ( t ) + [ L x ˙ + λ T f x ] δ x ˙ ( t ) + δ λ T ( t ) f } d t = ∫ 0 t f [ ( H x − d d t H x ˙ ) δ x + f T δ λ ( t ) ] d t \delta J(\delta x^*,\delta \lambda^*) =\int_{t_{0}}^{t_{f}}\left\{\left[L_{\mathbf{x}}+\mathbf{\lambda}^{T} \mathbf{f}_{\mathbf{x}}\right] \delta \mathbf{x}(t)+\left[L_{\dot{\mathbf{x}}}+\mathbf{\lambda}^{T} \mathbf{f}_{\mathbf{x}}\right] \delta \dot{\mathbf{x}}(t)+\delta \lambda^T(t) f \right\} \text d t \\ =\int_0^{t_f}\big [(H_x-\frac{\text d}{\text d t}H_{\dot x})\delta \mathbf{x}+ \mathbf{f}^{T} \delta \mathbf{\lambda}(t)\big]\text dt δJ(δx∗,δλ∗)=∫t0tf{[Lx+λTfx]δx(t)+[Lx˙+λTfx]δx˙(t)+δλT(t)f}dt=∫0tf[(Hx−dtdHx˙)δx+fTδλ(t)]dt
考虑到变分的随意性,则有
H x − d d t H x ˙ = 0 f ( x ( t ) , x ˙ ( t ) , t ) = 0 (11) \begin{aligned}H_x-\frac{\text d}{\text d t}H_{\dot x}=0\\ \mathbf f(\mathbf x(t),\dot {\mathbf x}(t),t)=0\tag{11} \end{aligned} Hx−dtdHx˙=0f(x(t),x˙(t),t)=0(11)
该式可考虑其他边界条件,按第二部分所述。
函数L(x)取极值的必要条件是 ∂ L ∂ x = 0 \frac{\partial L}{\partial x}=0 ∂x∂L=0,这样的点成为驻点(Stationary point)。满足一阶必要条件并不能使函数取最小值,例如下面的二次型函数
L ( x 1 , x 2 ) = − x 1 2 + 3 x 2 2 + 2 x 1 x 2 = x T A x = [ x 1 , x 2 ] [ − 1 , 1 1 , 3 ] [ x 1 x 2 ] L(x_1,x_2)=-x_1^2+3x_2^2+2x_1x_2\\= \mathbf x^\mathrm TA\mathbf x=[ x_1,x_2]\left[\begin{array}{c} -1,1 \\1,3 \end{array}\right] \left[\begin{array}{c} x_1\\x_2 \end{array}\right] L(x1,x2)=−x12+3x22+2x1x2=xTAx=[x1,x2][−1,11,3][x1x2]
原点处 ∂ L ∂ x = A x = [ − 1 , 1 1 , 3 ] [ 0 0 ] = [ 0 0 ] \frac{\partial L}{\partial x}=A\mathbf x=\begin{bmatrix}-1,1\\1,3 \end{bmatrix} \begin{bmatrix}0\\0 \end{bmatrix} =\begin{bmatrix}0\\0 \end{bmatrix} ∂x∂L=Ax=[−1,11,3][00]=[00],但显然 x 1 < 0 , x 2 = 0 x_1<0,x_2=0 x1<0,x2=0时仍有更小的值。这样的点称为鞍点,等势面如下图
多元函数的极值点使函数取最小值的充分条件是Hessian矩阵正定,即
∂ 2 L ∂ u 2 ≻ 0 \frac{\partial^{2} L}{\partial u^{2}}\succ0 ∂u2∂2L≻0
如果Hessian矩阵在驻点处为0,则仍然不能保证在此处取极小值,此时需要考察高阶导的情况。
对于泛函极值问题,若有以下性能指标
min x ( t ) J ( x , t ) = ∫ 0 t f L ( x , x ˙ , t ) d t \min_{x(t)}J(x,t)=\int_0^{t_f}L(x,\dot{x} ,t)\text d t x(t)minJ(x,t)=∫0tfL(x,x˙,t)dt
则Euler方程 ( 3 ) (3) (3)是最优路径的必要条件,这样的解是驻值曲线。驻值曲线处性能指标取极小值的充分条件为
∂ 2 L ∂ x ˙ 2 ⋟ 0 (12) \frac{\partial^{2} L}{\partial \dot x^{2}}\curlyeqsucc0\tag{12} ∂x˙2∂2L⋟0(12)
[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