同步发布在这里:https://leilie.top/2022-06-25/Study-Gradient-Method-for-OCP
最优控制问题可以使用变分法来进行求解,当问题是有约束的最优控制问题时,可以采用极小值原理求解该最优控制问题。上述方法称为解析法。但是,一旦问题约束条件或目标函数复杂,使用解析法求解最优控制问题面临着极大困难,也有可能出现解析解难以求解的问题。
为此,研究者将目光转向了数值解法。
数值解法的本质就是代替了人用脑和手计算最优控制问题的过程,采用数值优化技术完成控制结果的求解。
下面介绍一种实现简单的数值解法,即梯度法(gradient method,GM)。
梯度法
梯度法的另一个名字是最速下降法(steepest descent method,SDM),基本思想是先根据Pontryagin极大值原理(后文简称极大值原理)推导一阶最优必要性条件,求取最优控制 u ∗ u^* u∗ 使得哈密顿函数 H H H 最小。
算法流程是首先根据经验猜测一个初始控制量 u 0 u^0 u0,再通过数值算法求出 H 0 H^0 H0 。随后根据求出的 H 0 H^0 H0 来修改 u u u ,使得 H H H 继续减小,直到趋近最小值停止。修改 u u u 的目的就是为了让 H H H 逐渐减少,修改方向为 H H H 的“最陡下降”方向,即负梯度方向。这就是被称为梯度法的原因。
讨论一类控制不受约束的最优控制问题。
给定系统状态方程为
x ˙ = f ( x , u , t ) , (1) \boldsymbol{\dot x} = f(\boldsymbol{x},\boldsymbol{u},t), \tag{1} x˙=f(x,u,t),(1)
初始条件为
x ( t 0 ) = x 0 , (2) \boldsymbol x(t_0) = \boldsymbol{x}_0, \tag{2} x(t0)=x0,(2)
性能指标为
J ( u ) = Φ ( x T , T ) + ∫ T t 0 L ( x , u , t ) , (3) J(\boldsymbol u) = \Phi(\boldsymbol x_T,T) + \int_{T}^{t_0}L(\boldsymbol x, \boldsymbol u, t), \tag{3} J(u)=Φ(xT,T)+∫Tt0L(x,u,t),(3)
其中, Φ ( x T , T ) \Phi(\boldsymbol x_T,T) Φ(xT,T) 被称为Mayer型性能指标(或称常值型性能指标), ∫ T t 0 L ( x , u , t ) \int_{T}^{t_0}L(\boldsymbol x, \boldsymbol u, t) ∫Tt0L(x,u,t) 被称为Lagrange型性能指标,(或称积分型性能指标)。既有Mayer型,又有Lagrange型的性能指标 ( 3 ) (3) (3) 被称为Bolza型性能指标(或称复合型性能指标)。
在这里,最优控制的目标就是寻找一个 u ∗ u^* u∗ 使得 J J J 最小。
构造哈密顿函数为
H ( t , x , u , λ ) = L ( t , x , u ) + λ T ( t ) f ( x , u , t ) , (4) H(t,\boldsymbol{x},\boldsymbol{u},\boldsymbol{\lambda})=L(t,\boldsymbol{x},\boldsymbol{u}) + \boldsymbol{\lambda}^{\rm T}(t)f(\boldsymbol{x},\boldsymbol{u},t), \tag{4} H(t,x,u,λ)=L(t,x,u)+λT(t)f(x,u,t),(4)
省去推导步骤1,得到泛函 J k ( u ) J^k(\boldsymbol{u}) Jk(u) 在 u k ( t ) \boldsymbol{u}^k(t) uk(t) 处的梯度,即
∇ J ( u k ) = ∂ H ∂ u k . (5) \nabla J(\boldsymbol{u^k}) = \frac{\partial H}{\partial \boldsymbol{u^k}}. \tag{5} ∇J(uk)=∂uk∂H.(5)
根据极大值原理,在 J ( u ) J(\boldsymbol{u}) J(u) 的极小点处满足下式,为
λ ˙ = − ∂ H ∂ x , λ ( T ) = ∂ K ∂ x T , (6) \boldsymbol{\dot \lambda} = -\frac{\partial H}{\partial \boldsymbol{x}}, \quad \boldsymbol{\lambda}(T) = \frac{\partial K}{\partial \boldsymbol{x}_T}, \tag{6} λ˙=−∂x∂H,λ(T)=∂xT∂K,(6)
∂ H ∂ u = 0. (7) \frac{\partial H}{\partial \boldsymbol{u}} = 0. \tag{7} ∂u∂H=0.(7)
至此,求解最优控制问题变为联立求解方程 ( 1 ) (1) (1) 、 ( 2 ) (2) (2)、 ( 5 ) (5) (5)、 ( 6 ) (6) (6</

本文介绍了梯度法在最优控制问题中的应用,通过解算例展示了算法步骤,并与共轭梯度法进行了对比。探讨了步长选择对算法效率的影响,揭示了共轭梯度法在特定情况下可能的收敛优势。
最低0.47元/天 解锁文章
3594





