数值法求解最优控制问题(一)——梯度法

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

同步发布在这里: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)=ukH.(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} λ˙=xH,λ(T)=xTK,(6)

∂ H ∂ u = 0. (7) \frac{\partial H}{\partial \boldsymbol{u}} = 0. \tag{7} uH=0.(7)

至此,求解最优控制问题变为联立求解方程 ( 1 ) (1) (1) ( 2 ) (2) (2) ( 5 ) (5) (5) ( 6 ) (6) (6</

评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值