1. 引言
最优控制问题是推导控制策略的一种数学优化方法,作为变分法的拓展,其历史最早可追溯到三百多年前。其中,带有常微分方程约束的最优控制问题是十分常见且基础性的一类问题,它通常对应着实际生产生活中的控制问题经过数学建模后,再进行空间(或时间)离散后得到的半离散问题,其一般形式表现为:
![](//html.hanspub.org/file/59-2623939x7_hanspub.png?20240606092507801)
和一般的最优控制问题类似,带有常微分方程约束的最优控制问题理论研究以苏联学者庞特里亚金和美国学者贝尔曼 [1] 给出的最优必要条件为基础,在Hopfield神经网络优化 [2] 、混沌优化控制 [3] 以及鲁棒控制 [4] 等多个领域都发展出了丰富的理论结果,推动了包括航天航空、物理化学反应精细化研究在内的各个科学研究领域的发展。
然而,绝大多数带常微分方程约束的最优控制问题并不能通过解析的方式求得其最优解,因此有必要构造有效的数值计算方法来求其数值最优解。一般,数值求解最优控制问题的方法分为两大类:直接法和间接法:所谓直接法就是对问题先离散再优化,主要包括直接配点法和控制参数化方法;而间接法就是基于最优性条件对问题先优化,然后再离散求解,具体方法主要包括边界迭代法和拟线性化法。
Li等人通过引入增广的哈密顿量,构造了一种新的间接法即正则化前后扫描迭代算法用于求解庞特里亚金最小值原理 [5] ;文献 [6] 在此基础上证明了采用辛龙格库塔方法离散上述选代格式的全局收敛性,使得应用正则化前后选代算法求解带常微分方程约束的最优控制问题成为可能。
在本文中,考虑一类带有刚性微分方程的最优控制问题(OptimalControl Problem, OCP):
(1.1)
受到微分方程和初值条件约束:
(1.2)
(1.3)
其中f为非刚性项,而g为刚性项:在对现实世界系统的数学建模中,f和g通常是对系统的空间导数利用有限差分或有限元方法近似后剩下的时间导数算子,由这两个算子引起的时间尺度可能会有很大的不同;尽管整个方程依然是刚性的,但在选代离散求解的过程中对于f和g分别进行不同处理是非常有意义的:如果为了保证稳定性而对包括非刚性项之内的整个系统采用隐式格式进行求解,将会产生十分昂贵的计算成本,但这在一定程度上是可以避免的。
2. 改进算法的构造
2.1. 正则化前后扫描迭代算法
引入协态变量λ,定义上述问题的哈密顿量如下:
在适当条件下,最优控制问题(1.1)~(1.3)的一阶最优性条件如下 [7] [8] :
(2.1)
(2.2)
(2.3)
Li等人在2018年提出了一种正则化前后扫描迭代的算法,来求解一般最优控制问题中的庞特里亚金最大值原理(即一阶最优性条件),该方法借鉴了增广拉格朗日函数的思想,引入拓展的哈密顿函数:
正则化前后扫描迭代算法可以描述为:
其中正则化参数
。需要注意到,在算法的第三、四步分别更新x和λ时,拓展的哈密顿函数都等同于原本的哈密顿函数,正则项仅在第五步更新u时起作用。
要想得到最优解,还需要在算法的框架下采用某种离散格式,将连续最优控制问题进行离散选代求解。在离散格式的选择上,为了确保计算结果的收敛性,将采用辛龙格库塔方法 [6] ,完整的离散格式将在下一节中介绍。
2.2. 改进后的正则化前后扫描迭代算法
为了方便后续对f和g进行不同处理,将状态变量x分裂成两个不同的状态变量
和
,重新定义问题的哈密顿量:
需要注意到,当
取值相同时,新定义的哈密顿量K与之前的哈密顿量H相同,即
在此基础上,依据正则化前后扫描迭代算法的构造思路,引入正则化参数ρ,定义拓展的哈密顿量:
(2.4)
在选代更新的过程中为了降低计算成本,对于f这一项采用显式格式进行更新计算,由于算子f是非刚性的,所以显式更新也不会影响其数值稳定性;对于f以外的其他项,由于其具有刚性,为保证数值算法的稳定性,依然采用隐式更新。具体而言,在第
次选代时,根据以下格式按顺序更新x、λ和u:
(2.5)
(2.6)
(2.7)
上式经由s阶辛龙格库塔格式离散后的迭代格式如下:
(2.8)
(2.9)
(2.10)
(2.11)
(2.12)
(2.13)
其中
分别表示状态变量x、协态变量λ和控制变量u在辛龙格库塔格式下在第
个小区间中内点上的取值。另外,为了保证离散格式的辛性,上述公式中的系数除了要满足龙格库塔方法的基本要求外,还需满足以下关系 [9] :
需要注意的是,与寻常的正则化前后扫描迭代算法相比,改进后的算法只在状态变量更新过程中有所不同,在协态变量和控制变量的更新计算中,状态变量为已知量,不会发生改变。
3. 数值实验
为了探讨新构造出来的算法的性质,本章采用Python3.9编程实现该算法来求解一个刚性最优控制问题实例。考虑如下带有奇异扰动微分方程约束的刚性最优控制问题
受微分方程和初值条件约束:
(3.1)
(3.2)
(3.3)
其中
(在本实验中不失普遍性地取
)。显然,微分方程中的刚性项和非刚性项可以分开来独立表示,即令:
(3.4)
这样就将非刚性项f和刚性项y分离开了。
设步长
,选代终止条件
,离散格式选取辛中点格式
。经过118次迭代,得到问题数值解(见图1)。
随着步长τ的变小,指标函数也趋向收敛(见图2)。
与改进前的算法相比,在相同的选代终止条件下,新算法所需的迭代次数更少,即新算法的数值收敛速度更快,并且,这个速度上的差距会随着步长的变大而增大(见图3)。
同样地,与改进前的算法算法相比,新算法拥有更少的CPU耗时,这表明改进后的新算法有着更高的计算效率(见图4)。
虽然在本实验的示例问题求解过程中两种算法的CPU耗时差距不大,但当系统变得更加高维或体量更大时,采用新算法将能节约相当可观的时间,降低计算成本。因此,本文中对传统的正则化前后扫描迭代算法的改进是有效且有意义的。
![](//html.hanspub.org/file/59-2623939x50_hanspub.png?20240606092507801)
Figure 1. Improved midpoint Solutions for x(t), u(t), and λ(t)
图1. 用改进后中点方法求得的x(t),u(t)和λ(t)
![](//html.hanspub.org/file/59-2623939x51_hanspub.png?20240606092507801)
Figure 2. Cost J for improved midpoint with different tau values
图2. 改进后方法在不同tau值下得到的成本泛函值
![](//html.hanspub.org/file/59-2623939x52_hanspub.png?20240606092507801)
Figure 3. Number of iterations for improved midpoint and Midpoint with different tau values
图3. 改进后中点法和原中点法在不同tau取值下所需的迭代次数
![](//html.hanspub.org/file/59-2623939x53_hanspub.png?20240606092507801)
Figure 4. CPU time for improved midpoint and Midpoint with different delta values
图4. 改进后中点法和原中点法在不同delta取值下所需的CPU耗时
4. 总结与展望
本文向经典的正则化前后扫描迭代算法迭代过程中引入一种混合更新机制,对非刚性项项采用显式更新,而对其余项则采用隐式更新,使其用于一类特殊的有实际应用背景的刚性最优控制问题时,相比经典的算法有着更高的计算效率和更低的计算成本,最后通过数值实验证实了这个结论。