无惩罚SQP方法在动力下降制导问题中的应用
Application of Penalty-Free SQP Method in Powered Descent Guidance Problem
DOI: 10.12677/jast.2024.121008, PDF, HTML, XML, 下载: 22  浏览: 76  科研立项经费支持
作者: 徐韦杰, 吴晓凡, 周幻宸, 蔺诗晴, 周 倩, 付文豪*:苏州科技大学数学科学学院,江苏 苏州
关键词: 非线性规划SQP算法无惩罚算法动力下降制导Nonlinear Programming SQP Algorithm Penalty-Free Method Powered Descent Guidance
摘要: 序列二次规划(SQP)方法是一个较为实用的求解非线性约束优化问题的方法。本文提出了一种基于无惩罚框架的改进的SQP算法。该算法不涉及罚函数,不需要考虑罚因子的选取,也不需要滤子和可行性恢复阶段。提出的算法能够克服二次规划子问题的不相容性,并且迭代点列关于目标函数和约束函数是非单调的。在有界性假设条件下,算法具有全局收敛性。当原问题无解时,算法可以收敛到原问题的不可行稳定点。此外,本文建立了动力下降制导问题的数学模型,以燃油消耗质量最低为目标,给出了算法的仿真结果和分析。
Abstract: The Sequential Quadratic Programming (SQP) method is a practical approach for solving nonlinear constrained optimization problems. This paper proposes an improved SQP algorithm based on a penalty-free framework. The algorithm eliminates the need for penalty functions, avoids considerations of penalty factors, and dispenses with filters and feasibility restoration phases. The proposed algorithm addresses the compatibility of quadratic programming subproblems and ensures that the iterates are non-monotonic with respect to both the objective function and constraint functions. Under boundedness assumptions, the algorithm exhibits global convergence. In cases where the original problem is infeasible, the algorithm can converge to infeasible stationary points of the original problem. Additionally, this paper establishes a mathematical model for the descent guidance problem, aiming to minimize fuel consumption, and provides simulation results and analysis of the algorithm.
文章引用:徐韦杰, 吴晓凡, 周幻宸, 蔺诗晴, 周倩, 付文豪. 无惩罚SQP方法在动力下降制导问题中的应用[J]. 国际航空航天科学, 2024, 12(1): 53-62. https://doi.org/10.12677/jast.2024.121008

1. 引言

非线性约束优化是数学规划的一个分支,旨在找到一组决策变量,使得在一定约束条件下最小化目标函数。通常,约束中涉及到非线性函数或者非凸函数。在本研究中,我们考虑以下形式的非线性约束优化问题:

min x n f ( x ) s . t . h ( x ) = 0 , g ( x ) 0 , (1)

其中, f : n h : n l g : n m 是连续可微的实值函数, n 是n维向量空间。

作为有效求解非线性优化问题(1)的方法之一,序列二次规划(Sequential Quadratic Programming, SQP)的本质是在当前迭代点求解一个二次规划子问题来得到搜索方向,再通过接受准则得到下一迭代点,具有广泛的实际应用前景。在航空航天领域,着陆段的精确制导控制是火箭回收技术的重点和难点之一,它在实现安全性保障、提高准点率和扩大适航范围等方面具有重大意义。本文基于杨沐明 [1] 等人探讨的火箭回收中的动力下降制导问题,设计了无惩罚SQP方法并进行了数值仿真。

众所周知,二次规划子问题的不可行性是SQP方法的一个缺点。早期,Powell [2] 、Fletcher [3] 等研究人员提出了一些改进的SQP方法,以解决二次规划子问题的可行性。近年来,Fletcher和Leyffer [4] 引入了一种滤子SQP算法,该算法通过可行性恢复阶段处理不可行的二次规划子问题。它通过构建滤子集来避免使用罚函数。Liu和Yuan [5] 提出了一种无惩罚SQP算法,不需要滤子并避免了可行性恢复。值得注意的是,这种方法不假设Mangasarian-Fromovitz约束规格(MFCQ)作为前提条件。Byrd等人 [6] 引入了一种舵性规则(Steering Rule)方法,通过解决两阶段兼容子问题和动态调整罚参数来处理不可行性。受舵性规则的启发,Zhao和Chen [7] 引入了一种两阶段算法,而Fu和Chen [8] 提出了一种非线性半定规划的双目标方法。基于这些方法,不对二次规划子问题的可行性做出假设,出现了许多全局收敛的SQP算法,能够识别由特定约束违反度量所刻画的不可行稳定点。例如文献 [9] [10] [11] 等。

对于制导问题,杨沐明 [1] 提出了一种序列凸优化方法。该方法可视为二次规划子问题中二阶项恒取对角矩阵的信赖域SQP方法。由于没有利用实际问题的二阶信息,该方法迭代次数较多,算法得到的解精度不高。此外,还有一些基于深度学习的方法,例如文献 [12] 等。

文章的主要贡献可以总结如下:首先,提出了一种无惩罚SQP算法,其能够全局地收敛到问题的KKT点,而这一收敛性的结论并不需要约束规格作为前提假设,并且具有探测不可行稳定点的特性。其次,该算法不使用罚函数,因此可以避免极端罚因子导致的算法失败。第三,迭代点列关于目标函数和约束违反度都是非单调的,这使得算法具有更宽松的接受准则。第四,算法使用了两阶段方法求得搜索方向,保证了需要求解的二次规划子问题一定是有解的。最后,将该算法应用于火箭回收中的动力下降制导问题,验证其能够有效地求得回收策略。

文章框架如下。第二章将给出具体的算法框架;第三章给出算法的适定性结论和全局收敛性结论;第四章将给出火箭回收中动力下降制导问题的优化建模,并运用本文提出的无惩罚SQP算法求解,对数值结果进行对比分析;最后给出总结。

2. 无惩罚SQP算法

2.1. 算法描述

为了简化算法,在当前迭代点 x k ,定义

f k : = f ( x k ) , h k : = h ( x k ) , g k : = g ( x k ) , v k : = v ( x k )

其中 v ( x ) = h ( x ) 1 + [ g ( x ) ] + 1 为约束违反度函数。对于给定的方向 d R n ,定义 v ( x ) x k 处沿d的线性约束违反度为

l k v ( d ) : = h k + D h ( x k ) d 1 + [ g k + D g ( x k ) d ] + 1

其中D为雅可比算子。那么,目标函数 f ( x ) x k 沿着方向d的线性近似可以表示为

l k f ( d ) : = f k + f ( x k ) T d

分别设目标函数和约束违反度的沿着方向d的线性化改善量为

l k f ( d ) : = l k f ( 0 ) l k f ( d ) = f ( x k ) T d , l k v ( d ) : = l k v ( 0 ) l k v ( d )

在以上记号下,算法首先考虑一个线性规划问题:

min d , r , s , t e T ( r + s ) + e T t s . t . h k + D h ( x k ) d = r s g k + D g ( x k ) d t r , s , t 0 , d Δ (2)

其中 Δ > 0 为较大的常数,用来保证子问题(2)的有界性。记子问题(2)的解为 ( d k f e a , r k , s k , t k )

取n阶正定矩阵 B k ,算法接着求解下面的二次规划问题:

min d R n f ( x k ) T d + 1 2 d T B k d s . t . h k + D h ( x k ) d = r k s k g k + D g ( x k ) d t k (3)

记(3)的解为 d k 。设 ( μ k + 1 , Y k + 1 ) 为等式约束和不等式约束对应的拉格朗日乘子。

如果算法在 x k 处未终止,我们将沿着 d k 方向在 x k 处做线搜索。即选择搜索步长 α k ( 0 , 1 ] 并记下一迭代点为 x k + 1 = x k + α k d k 。搜索步长 α k 的接受准则中不涉及罚因子,具体描述如下。首先考虑条件

Δ l k f ( α d k ) δ Δ l k v ( α d k ) τ (4)

其中 δ 是大于零的常数, τ > 1 。如果条件(4)成立,则将优先考虑提高最优性,即要求目标函数有充分的下降。此时进一步要求搜索步长满足

f ( x k ) f ( x k + α d k ) η f Δ l k f ( α d k ) , η f ( 0 , 1 ) (5)

同时还要求新的迭代点的约束违反度在可控范围内,即

v ( x k + α d k ) v k max (6)

其中 v k max 是约束违反度 v ( x ) 的一个上界。若条件 , 和 均成立,记 x k + 1 = x k + α k d k 。此时称第 ( k + 1 ) 次迭代为f型迭代。在f型迭代中, v k + 1 max 保持不变,即 v k + 1 max = v k max

若条件(4)不成立,则当前迭代点的线性化可行性有较大改善空间。因此,我们进一步要求线性化可行性具有一定的充分改善量,即

v ( x k ) v ( x k + α d k ) η v Δ l k v ( α d k ) , η v ( 0 , 1 ) (7)

若条件(7)成立,记 x k + 1 = x k + α k d k 。此时称第 ( k + 1 ) 次迭代为c型迭代。在c型迭代中,我们按照以下方式更新 v k + 1 max

v k + 1 max = max { β 1 v k max , β 2 v ( x k ) + ( 1 β 2 ) v ( x k + 1 ) } (8)

其中 β 1 , β 2 ( 0 , 1 ) 为常数。

我们将无惩罚SQP算法的流程图总结在图1中。

Figure 1. A penalty-free SQP algorithm

图1. 无惩罚SQP算法

2.2. 全局收敛性

假设A

(A1) f , g , h 是二阶连续可微函数。

(A2) 存在一个有界闭凸集 Ω n 使得对于所有的k都有 x k Ω 成立。

(A3) 矩阵序列 { B k } 一致正定且有上界。

首先我们说明图1无惩罚SQP算法是适定的。

定理4.1 [9] 假设图1无惩罚SQP算法在 x k 处没有终止,则它将产生一个搜索方向 d k 和一个步长 α k

接下来给出算法的全局收敛性。

定理4.2 [9] 假设图1无惩罚SQP算法产生一个无限序列 { x k } 有一个聚点 x 。以下三个情况之一成立:

1) x 是问题(1)的KKT点。

2) x 是问题(1)不满足MFCQ约束规格的可行点。

3) x 是问题(1)的不可行稳定点。

3. 应用与仿真

3.1. 动力下降制导问题

本节将给出垂直起降方案下连续时间的燃料最优动力下降制导模型,并进一步将该模型转化为图1无惩罚SQP算法能够求解的非线性规划问题。首先,我们将动力下降制导模型中拟提及的参数汇总在表1中。

Table 1. Problem data and parameter values

表1. 问题数据及其参数取值

图2为火箭垂直下降的简单示意图。

Figure 2. Vertical descent of a rocket

图2. 火箭垂直下降示意图

考虑将火箭主体视为一个质点且在除推力方向约束外的平行移动,实现火箭着陆时的剩余燃料质量极大化,即极大化火箭终端质量。我们考虑目标函数为燃料最终剩余量,即:

min X , T , t f m ( t f ) (9)

其中,X为所有状态变量的矢量,即 X ( t ) = [ m ( t ) , r ( t ) , v ( t ) ]

接下来给出该问题的约束条件。具体分为如下几个方面:

1) 对火箭受力分析,可由牛顿第二定律得:

m ( t ) g + D ( t ) + T ( t ) = m ( t ) v ˙ ( t ) (10)

其中, D ( T ) 为火箭所受阻力,

D ( t ) = 1 2 ρ S D C D v ( t ) v ( t ) (11)

ρ 为大气密度, S D 为火箭有效横截面积, C D 表示气动力轴向系数。

2) 火箭燃料的消耗速率与所受推力呈线性关系:

m ˙ ( t ) = α T ( t ) (12)

其中,常量 α 表示发动机比冲的倒数。

3) 火箭在最终时刻的质量应非负:

m ( t ) m d r y (13)

其中, m d r y 为火箭燃料耗尽时质量。

4) 火箭在制动下降的过程中需要在一定区域内飞行,以避免与干涉飞行物相撞,因此将火箭飞行区域表示在一个角度为 θ 1 的锥形区域内如下:

r ( t ) cos θ 1 e U T r ( t ) (14)

其中, r ( t ) 表示t时刻火箭所处位置, e U = [ 0 , 1 , 0 ] T

5) 为使火箭在飞行过程中保持稳定状态,发动机的推力有上限和下限,即

T min T ( t ) T max (15)

6) 推力的方向与火箭的方向应当成锐角,即

v ( t ) T T ( t ) v ( t ) T ( t ) cos θ 2 (16)

其中, θ 2 为推力与火箭的最大夹角。在下降过程中,火箭主轴方向与箭体方向近似平行,因此将火箭方向记为 v

7) 推力大小在飞行过程中单位时间变化量的变化范围表示如下:

T ˙ min d T ( t ) d t T ˙ max (17)

对于初始时刻和终端时刻,我们有如下边界条件:

m ( 0 ) = m i n i t , r ( 0 ) = r i n i t , v ( 0 ) = v i n i t , T ( 0 ) = T ( 0 ) v i n i t v i n i t (18)

r ( t f ) = 0 , v ( t f ) = 0 , T ( t f ) = T ( t f ) e U (19)

利用无损凸化方法,引入新的控制变量 Γ 表示推力大小上界,即

T ( t ) Τ ( t ) (20)

将0到 t f 时刻N等分,每份的时长记为 Δ t ,即

t f = N Δ t , X k = X ( k t f N ) , K = 0 , 1 , , N (21)

其中, t k 为第k个时间点,而 X ( t ) 经离散化后,可以表示成 X k = [ m k , r k , v k ]

利用差分方法,将(10)、(12)和(17)转化为下述有限个等式/不等式约束:

X k + 1 = X k + F k ( Y k ) , k = 0 , 1 , 2 , N 1 (22)

(23)

其中,

F k ( Y k ) = Δ t 2 × [ α ( Γ k + Γ k + 1 ) v k + v k + 1 T k + D k m k + T k + 1 + D k + 1 m k + 1 + 2 g ] (24)

Y k = [ Δ t , X k , U k , X k + 1 , U k + 1 ] (25)

U k = [ T k , Γ k ] (26)

综上,给出动力下降制导问题经无损凸化和离散化后的非线性规划问题:

min Y k , U k m N s . t . { X k + 1 = X k + F k ( Y k ) , k = 0 , 1 , 2 , , N 1 r k cos θ 1 e U T r k , k = 0 , 1 , 2 , , N T min Γ k T max , k = 0 , 1 , 2 , , N v k T T k v k Γ k cos θ 2 , k = 0 , 1 , 2 , , N T k Γ k , k = 0 , 1 , 2 , , N T ˙ min Δ t Γ k + 1 Γ k T ˙ max Δ t , k = 0 , 1 , 2 , , N 1 m 0 = m i n i t , r 0 = r i n i t , v 0 = v i n i t , T 0 = Γ 0 v i n i t v i n i t m N m d r y , r N = 0 , v N = 0 , T N = Γ N e U (27)

3.2. 数值优化

本节我们将基于图1无惩罚SQP算法对于4.1节中建立的动力下降制导问题进行数值模拟。图1无惩罚SQP算法是使用MATLAB编写的,其中子问题通过自带的“quadprog.m”函数进行处理。测试环境为一台装有Intel(R) Core(TM) i7-8550U CPU,主频为1.80GHz的笔记本电脑。

杨沐明等人 [1] 将动力学约束和推力方向约束通过线性化的方式实现近似凸化,并通过序列凸化和两阶段法的方式求解问题(27),并得到其如下结果:终端质量和终端时刻分别为13557.8和22.25;在最终解处的距离不超过10−8。从数值上看,该方法几乎是无损的。图1无惩罚SQP算法求得的终端质量和终端时刻分别为13247.5和31。图3~5展示了火箭在图1无惩罚SQP算法求得的策略下的轨迹信息。具体来说,图3给出了火箭垂直降落的轨迹图;图4展示了三个坐标方向的位置与速度;图5中分别描述了质量、推力大小和推力与速度反方向夹角曲线。

Figure 3. Three-dimensional position trajectory

图3. 三维位置轨迹

Figure 4. Position and velocity in three directions

图4. 三个坐标方向的位置与速度

Figure 5. Mass, thrust magnitude, and the curve of the thrust angle with respect to velocity

图5. 质量、推力大小和推力与速度反方向夹角曲线

本文所得的结果与杨沐明等人的序列凸优化方法相比,在火箭质量、推力大小和速度推力反方向夹角曲线方面呈现出差异。基于序列凸化和两阶段法所得的质量曲线为折线,在约8秒时,火箭质量以更陡峭的倾斜程度线性下降直至终端质量 [1] 。相比之下,基于本文的无惩罚SQP算法所得的质量图像呈现近似为一条线段,火箭质量以近似线性的消耗速度下降至终端质量。各时间节点之间的目标函数的变化率不大,说明本文算法得到的结果较为稳健,同时也与实际情况吻合。

基于序列凸化和两阶段法所得的推力大小曲线更具有“突变性”,在时刻0至7秒和10秒后几乎保持恒定在100,000和250,000之间,而在7至10秒内呈现近乎竖直的变化趋势 [1] 。相比之下,基于无惩罚SQP算法所得的推力大小曲线更具有“末尾突变性”,其在初始时刻至终端之前的图像呈现较大的斜率,靠近终端时呈现近乎竖直的变化趋势。

基于序列凸化和两阶段法所得的夹角曲线变化幅度较大,夹角曲线最大值超过15度,并迅速回落至8秒时刻所处位置,并实现反弹,呈现先增加后减少的曲线态势 [1] 。而基于无惩罚SQP算法所得的夹角图像最大值小于5度。在前2秒内,角度由0度急剧增大至4.5度,随后下降,至5秒左右降至低于3度后再次上升,至近似20秒时上升至接近4度后再次下降,至终端时,夹角近似为0.45度。火箭着陆较为稳定。

4. 总结

本文主要介绍了一种无惩罚SQP算法,用于解决在燃料最优目标下的动力下降制导最优控制问题。首先,文章提出了该算法的框架,并讨论了其全局收敛性。针对动力下降制导最优控制模型,采用了无损凸化和时间离散化的方法,将其转化为非线性规划问题,并应用无惩罚SQP算法进行求解。最后,通过MATLAB仿真模拟验证了算法的收敛性结论。在动力下降制导最优控制问题中,本文的方法与已有的序列凸化方法进行了对比分析。通过无惩罚SQP算法的仿真结果观察到,飞行器轨迹的稳定性得到了改善,下降方向与速度方向的夹角变化幅度不大,并且燃料损耗速度较为稳定。总的来说,本文提出的无惩罚SQP算法在解决动力下降制导最优控制问题上表现出了较好的性能,具有较好的收敛性和稳定性,对飞行器的控制具有实际意义。

基金项目

苏州科技大学2023年江苏省大学生创新创业训练计划项目《最小约束违背下的SQP算法及其应用》(编号:202310332088Y)。

NOTES

*通讯作者。

参考文献

[1] 杨沐明, 攸国攸. 动力下降制导问题的两阶段序列凸化方法[J]. 中国科学: 数学, 2020, 50(9): 1361-1374.
[2] Powell, M.J.D. (1978) A Fast Algorithm for Nonlinearly Constrained Optimization Calculations. In: Watson, G.A., Ed., Numerical Analysis. Lecture Notes in Mathematics, Vol. 630, Springer, Berlin Heidelberg, 144-157.
https://doi.org/10.1007/BFb0067703
[3] Fletcher, R. (1987) Practical Methods of Optimization. John Wiley & Sons, New York.
[4] Fletcher, R. and Leyffer, S. (2022) Nonlinear Programming without a Penalty Function. Mathematical Programming, 91, 239-269.
https://doi.org/10.1007/s101070100244
[5] Liu, X.W. and Yuan, Y.X. (2011) A Sequential Quadratic Programming Method without a Penalty Function or a Filter for Nonlinear Equality Constrained Optimization. SIAM Journal on Optimization, 21, 545-571.
https://doi.org/10.1137/080739884
[6] Byrd, R.H., Nocedal, J. and Waltzb, R.A. (2008) Steering Exact Penalty Methods for Nonlinear Programming. Optimization Methods and Software, 23, 197-213.
https://doi.org/10.1080/10556780701394169
[7] Zhao, Q. and Chen, Z.W. (2020) A Line Search Exact Penalty Method for Nonlinear Semidefinite Programming. Computational Optimization and Applications, 75, 467-491.
https://doi.org/10.1007/s10589-019-00158-x
[8] Fu, W.H. and Chen, Z.W. (2022) A Line Search SQP-Type Method with Bi-Object Strategy for Nonlinear Semidefinite Programming. Acta Mathematicae Applicatae Sinica, English Series, 38, 388-409.
https://doi.org/10.1007/s10255-022-1081-9
[9] 刘芬. 带不可行性探测的无惩罚直线搜索法[D]: [硕士学位论文]. 苏州: 苏州大学, 2017.
[10] 徐婷. 约束优化的无惩罚非单调直线搜索法[D]: [硕士学位论文]. 苏州: 苏州大学, 2019.
[11] 戴佩云. 一个退化非线性半定规划稳定SQP方法的全局收敛性[D]: [硕士学位论文]. 苏州: 苏州大学, 2022.
[12] Liu, J., Chen, R., Lou, J., Wu, H., You, Y. and Chen, Z. (2023) Airfoils Optimization Based on Deep Reinforcement Learning to Improve the Aerodynamic Performance of Rotors. Aerospace Science and Technology, 143, 108737.
https://doi.org/10.1016/j.ast.2023.108737