结合伯克霍夫插值和LGL伪谱法的飞行器轨迹优化方法 您所在的位置:网站首页 轨迹优化方法 结合伯克霍夫插值和LGL伪谱法的飞行器轨迹优化方法

结合伯克霍夫插值和LGL伪谱法的飞行器轨迹优化方法

2022-12-21 04:32| 来源: 网络整理| 查看: 265

结合伯克霍夫插值和LGL伪谱法的飞行器轨迹优化方法结合伯克霍夫插值和lgl伪谱法的飞行器轨迹优化方法技术领域1.本发明属于轨迹优化技术领域,具体涉及一种结合伯克霍夫插值和lgl伪谱法的飞行器轨迹优化方法的设计。

背景技术:

2.随着我国现代化的进程的不断的提高,国家对民用飞机、火箭、导弹、飞行战机等飞行器的要求不断提高。众多的飞行器作为国防和人们出行必不可少的工具,其性能要求在不断提高,好的飞行器轨迹不仅能帮助飞行器的最初建模设计、优化设计等,还能帮助提高飞行器的实际飞行的效率,减少不必要的飞行,减少燃料的损失。3.传统的飞行器轨迹优化方法是通过伪谱法对轨迹最优控制问题进行离散化处理,对问题中的微分约束直接通过由插值为基础构造的微分矩阵来进行微分求解,然后通过对离散化得到的非线性规划问题通过常用的序列二次规划问题进行求解,最后对优化的解通过插值近似获得离散前的原问题的解,从而实现对飞行器轨迹的优化。4.由于由插值为基础构造的微分矩阵的条件数往往较高(条件数是指通过数值方法来求解某问题时,一个问题的条件数是该问题在进行数值计算的时候的容易程度的衡量,也就是对该问题的一个适定性,对于一个具有低条件数的问题,我们称之为良态的问题,而对于具有较高条件数的问题,我们称之为病态或者说非良态问题),导致现有的飞行器轨迹优化方法通常需要的离散化的配点数量较多,进而导致求解问题的时候求解迭代次数增多,问题的整体求解时间较长,且插值效率不够高。

技术实现要素:

5.本发明的目的是为了解决现有基于伪谱法的飞行器轨迹优化方法在求解轨迹优化问题过程中产生的微分矩阵条件数较高,进而导致轨迹优化效率较低的问题,提出了一种结合伯克霍夫插值和lgl伪谱法的飞行器轨迹优化方法。6.本发明的技术方案为:一种结合伯克霍夫插值和lgl伪谱法的飞行器轨迹优化方法,包括以下步骤:7.s1、构建飞行器轨迹优化问题模型。8.s2、选取legendre多项式作为插值基,对飞行器轨迹优化问题模型进行初始化处理和时域变换。9.s3、通过gauss lobato数值求积方法选取n个节点对飞行器轨迹优化问题模型进行离散化表示,得到飞行器轨迹优化问题模型对应的离散的时间,以及离散的时间对应的状态变量和控制变量。10.s4、根据legendre多项式选取lgl配点,并将状态变量和控制变量在lgl配点处离散,得到离散的状态变量和离散的控制变量。11.s5、通过拉格朗日插值基对离散的状态变量和离散的控制变量进行插值,得到状态函数和控制函数。12.s6、根据lgl配点得到微分矩阵,并结合微分矩阵与状态函数和控制函数的微分表达式得到状态变量和控制变量的微分表达式。13.s7、结合状态变量和控制变量的微分表达式与飞行器轨迹优化问题模型得到配点方程,并根据配点方程得到飞行器轨迹优化问题模型的微分约束。14.s8、通过伯克霍夫插值生成一个新的矩阵,通过新的矩阵对微分约束中的微分矩阵进行优化,得到新的微分约束。15.s9、采用遗传算法对离散化的飞行器轨迹优化问题模型进行预求解,得到预求解结果;16.s10、将预求解结果作为sqp算法的初值,采用sqp算法对离散化的飞行器轨迹优化问题模型进行求解,得到离散化的解;17.s11、对离散化的解进行插值逼近还原处理,得到飞行器轨迹优化问题模型的解,实现对飞行器轨迹的优化。18.进一步地,步骤s1中的飞行器轨迹优化问题模型表示为:[0019][0020][0021][0022][0023]其中j[·]为目标函数,表示飞行器滑翔段的最大飞行距离,x=[h,v,γ]为轨迹状态变量,h,v,γ分别表示飞行器的飞行高度、飞行速度和飞行航迹角,分别为h,v,γ的微分,u=[α]为轨迹控制变量,α表示攻角,t表示时间,t0表示飞行器轨迹的起始时刻,tf表示飞行器轨迹的终止时刻,d表示阻力方向的合力,l表示升力,m表示飞行器的质量,g表示重力加速度,δ表示最优控制变量对应飞行姿态下保持纵向平衡的俯仰舵偏。[0024]进一步地,步骤s2中的时域变换公式为:[0025][0026]其中t表示时间,t0表示飞行器轨迹的起始时刻,tf表示飞行器轨迹的终止时刻,τ表示lgl配点。[0027]进一步地,步骤s3中离散的时间表示为tn=[t1t2...tntn+1],其中tp表示第p个离散时间点,离散的时间对应的状态变量表示为xn=[hn,vn,γn],其中hn=[h1h2...hnhn+1]表示飞行高度状态量,hp表示第p个离散飞行高度值,vn=[v1v2...vnvn+1]表示飞行速度状态量,vp表示第p个离散飞行速度值,γn=[r1r2...rnrn+1]表示飞行航迹角状态量,rp表示第p个离散飞行航迹角,离散的时间对应的控制变量表示为un=[αn],其中αn=[a1a2...anan+1]表示攻角的离散表示,ap表示第p个离散攻角,计数值p=1,2,...,n,n+1。[0028]进一步地,步骤s4包括以下分步骤:[0029]s41、将(1-τ2)ln(τ)的根作为lgl配点,其中ln(τ)为legendre多项式。[0030]s42、将状态变量xn和控制变量un在lgl配点处离散,得到n+1个离散的状态变量xi和n+1个离散的控制变量ui,i=0,1,2...,n。[0031]进一步地,步骤s5中对离散的状态变量和离散的控制变量进行插值的公式为:[0032][0033]其中x(τ)表示状态函数,u(τ)表示控制函数,表示n阶的拉格朗日插值基,其表达式为:[0034][0035]其中τ表示lgl配点,τi表示第i个lgl配点,τj表示第j个lgl配点。[0036]进一步地,步骤s6包括以下分步骤:[0037]s61、根据lgl配点τ=(τ1,τ2...τn+1)得到微分矩阵dki:[0038][0039]其中τk表示第k个lgl配点,ln(τk)表示第k个lgl配点的legendre多项式。[0040]s62、获取状态函数x(τ)和控制函数u(τ)的微分表达式:[0041][0042]其中表示状态函数x(τ)的微分表达式,表示控制函数u(τ)的微分表达式,表示n阶的拉格朗日插值基的微分。[0043]s63、结合微分矩阵与状态函数和控制函数的微分表达式得到状态变量和控制变量的微分表达式:[0044][0045]其中表示状态变量的微分表达式,表示控制变量的微分表达式。[0046]进一步地,步骤s7包括以下分步骤:[0047]s71、将状态变量和控制变量的微分表达式代入飞行器轨迹优化问题模型,得到配点方程:[0048][0049]其中f(x(τk),u(τk))为飞行器轨迹优化问题模型中的约束函数的状态变量和控制变量泛函表达式。[0050]s72、根据配点方程得到飞行器轨迹优化问题模型的微分约束:[0051][0052]其中d表示微分矩阵微分矩阵dki,f(x,u)表示f(x(τk),u(τk))对应的状态变量和控制变量表达式,表示f(x,u)的微分。[0053]进一步地,步骤s8具体为:通过伯克霍夫插值生成一个新的矩阵b,通过新的矩阵b对微分约束中的微分矩阵进行优化,得到新的微分约束:[0054][0055]进一步地,步骤s9具体为:将预求解结果作为sqp算法的初值,将sqp算法的各部分封装到matlab的fmincon函数或者python库中的minimize函数中,将离散化的飞行器轨迹优化问题模型输入封装好的matlab的fmincon函数或者python库中的minimize函数进行迭代求解,得到离散化的解。[0056]本发明的有益效果是:[0057](1)本发明针对目前各类飞行器的设计以及实际飞行任务中要求不断变高的需求,通过对飞行器轨迹优化算法的改进,能够提高飞行器的轨迹优化问题模型的求解效率,由于轨迹优化算法计算效率的提升,能够进一步的将飞行器从开发到设计到成型的时间缩短,提升飞行器的研发效率。[0058](2)本发明通过引入伯克霍夫插值,能够极大地降低伪谱法中的微分矩阵的条件数,进而减少了飞行器轨迹优化问题模型的求解时间,提升了伪谱法离散化处理飞行器轨迹优化问题模型的求解效率,最终提高了飞行器的轨迹优化效率。[0059](3)本发明选用lgl伪谱法作为飞行器轨迹优化的底层算法,离散化求解优化问题的优化效果较好。[0060](4)本发明通过封装好sqp算法的各小部分,在进行初始化选择求解优化问题的时候可以动态化改变问题的设置,算法的可操作性强,极大的降低了研究人员调用算法的时候进行测试的所使用时间。[0061](5)本发明首先采用遗传算法对离散化的飞行器轨迹优化问题模型进行预求解,并将遗传算法的预求解结果作为后续sqp算法的初值,解决了sqp算法对初值敏感的问题。附图说明[0062]图1所示为本发明实施例提供的一种结合伯克霍夫插值和lgl伪谱法的飞行器轨迹优化方法流程图。具体实施方式[0063]现在将参考附图来详细描述本发明的示例性实施方式。应当理解,附图中示出和描述的实施方式仅仅是示例性的,意在阐释本发明的原理和精神,而并非限制本发明的范围。[0064]本发明实施例提供了一种结合伯克霍夫插值和lgl(legendre gauss lobato,勒让德-高斯-洛巴托)伪谱法的飞行器轨迹优化方法,如图1所示,包括以下步骤s1~s10:[0065]s1、构建飞行器轨迹优化问题模型。[0066]本发明实施例借鉴意大利航空航天中心(cira)利用增量法实现prora-usv1高超声速飞行器风洞实验数据和一般的数值计算数据的建模思路,通过使用数值方法来进行模拟x-51a相似飞行器的数据集来进行建模,以x-51a相似飞行器的滑翔段轨迹优化问题来作为对本方法的过程描述的基本问题模型,得到飞行器轨迹优化问题模型为:[0067][0068][0069][0070][0071]其中j[·]为目标函数,表示飞行器滑翔段的最大飞行距离,x=[h,v,γ]为轨迹状态变量,h,v,γ分别表示飞行器的飞行高度、飞行速度和飞行航迹角,分别为h,v,γ的微分,u=[α]为轨迹控制变量,α表示攻角,t表示时间,t0表示飞行器轨迹的起始时刻,tf表示飞行器轨迹的终止时刻,d表示阻力方向的合力,l表示升力,m表示飞行器的质量,g表示重力加速度,δ表示最优控制变量对应飞行姿态下保持纵向平衡的俯仰舵偏。[0072]s2、选取legendre多项式作为插值基,对飞行器轨迹优化问题模型进行初始化处理和时域变换。[0073]本发明实施例根据伪谱法求解优化问题的思想,选取legendre多项式ln(τ)作为插值基,由于legendre多项式是作用在τ(-1,1)上的,因此还需要将对应的问题的时域t(t0,tf)进行转化到对legendre多项式有意义的区域。[0074]本发明实施例中,时域变换公式为:[0075][0076]其中t表示时间,t0表示飞行器轨迹的起始时刻,tf表示飞行器轨迹的终止时刻,τ表示lgl配点。[0077]s3、通过gauss lobato(高斯-洛巴托)数值求积方法选取n个节点对飞行器轨迹优化问题模型进行离散化表示,得到飞行器轨迹优化问题模型对应的离散的时间,以及离散的时间对应的状态变量和控制变量。[0078]本发明实施例中,离散的时间表示为tn=[t1t2...tntn+1],其中tp表示第p个离散时间点,离散的时间对应的状态变量表示为xn=[hn,vn,γn],其中hn=[h1h2...hnhn+1]表示飞行高度状态量,hp表示第p个离散飞行高度值,vn=[v1v2...vnvn+1]表示飞行速度状态量,vp表示第p个离散飞行速度值,γn=[r1r2...rnrn+1]表示飞行航迹角状态量,rp表示第p个离散飞行航迹角,离散的时间对应的控制变量表示为un=[αn],其中αn=[a1a2...anan+1]表示攻角的离散表示,ap表示第p个离散攻角,计数值p=1,2,...,n,n+1。[0079]s4、根据legendre多项式选取lgl配点,并将状态变量和控制变量在lgl配点处离散,得到离散的状态变量和离散的控制变量。[0080]步骤s4包括以下分步骤s41~s42:[0081]s41、将(1-τ2)ln(τ)的根,即legendre多项式的一阶导数的根和τ∈(-1,1)两个点作为lgl配点,其中ln(τ)为legendre多项式。[0082]s42、将状态变量xn和控制变量un在lgl配点处离散,得到n+1个离散的状态变量xi和n+1个离散的控制变量ui,i=0,1,2...,n。[0083]s5、通过拉格朗日插值基对离散的状态变量和离散的控制变量进行插值,得到状态函数和控制函数。[0084]本发明实施例中,对离散的状态变量和离散的控制变量进行插值的公式为:[0085][0086]其中x(τ)表示状态函数,u(τ)表示控制函数,表示n阶的拉格朗日插值基,其表达式为:[0087][0088]其中τ表示lgl配点,τi表示第i个lgl配点,τj表示第j个lgl配点。[0089]s6、根据lgl配点得到微分矩阵,并结合微分矩阵与状态函数和控制函数的微分表达式得到状态变量和控制变量的微分表达式。[0090]步骤s6包括以下分步骤s61~s63:[0091]s61、根据lgl配点τ=(τ1,τ2...τn+1)得到微分矩阵dki:[0092][0093]其中τk表示第k个lgl配点,ln(τk)表示第k个lgl配点的legendre多项式。[0094]s62、获取状态函数x(τ)和控制函数u(τ)的微分表达式:[0095][0096]其中表示状态函数x(τ)的微分表达式,表示控制函数u(τ)的微分表达式,表示n阶的拉格朗日插值基的微分。[0097]s63、结合微分矩阵与状态函数和控制函数的微分表达式得到状态变量和控制变量的微分表达式:[0098][0099]其中表示状态变量的微分表达式,表示控制变量的微分表达式。[0100]s7、结合状态变量和控制变量的微分表达式与飞行器轨迹优化问题模型得到配点方程,并根据配点方程得到飞行器轨迹优化问题模型的微分约束。[0101]步骤s7包括以下分步骤s71~s72:[0102]s71、将状态变量和控制变量的微分表达式代入飞行器轨迹优化问题模型,得到配点方程:[0103][0104]其中f(x(τk),u(τk))为飞行器轨迹优化问题模型中的约束函数的状态变量和控制变量泛函表达式,也即是约束微分变量的右端函数的表达。[0105]s72、根据配点方程得到飞行器轨迹优化问题模型的微分约束:[0106][0107]其中d表示微分矩阵微分矩阵dki,f(x,u)表示f(x(τk),u(τk))对应的状态变量和控制变量表达式,表示f(x,u)的微分。[0108]s8、通过伯克霍夫插值生成一个新的矩阵,通过新的矩阵对微分约束中的微分矩阵进行优化,得到新的微分约束。[0109]本发明实施例中,通过伯克霍夫插值生成一个新的矩阵b,通过新的矩阵b对微分约束中的微分矩阵进行优化,得到新的微分约束:[0110][0111]伯克霍夫插值的思想是放弃原问题在某些点处的某些阶导数的函数值的取值的要求,基于这一思想,在微分约束的等式两边各引入了一个新的矩阵,即伯克霍夫矩阵b,使得微分矩阵bd的条件数明显小于微分矩阵d的条件数。在保持等式相等的前提下,通过降低微分矩阵的条件数来构造出良态的微分矩阵,进而提升问题的求解效率。[0112]s9、采用遗传算法对离散化的飞行器轨迹优化问题模型进行预求解,得到预求解结果。[0113]本发明实施例中,将遗传算法的预求解结果作为后续sqp算法的初值,解决了sqp算法对初值敏感的问题。[0114]s10、将预求解结果作为sqp算法的初值,采用sqp算法对离散化的飞行器轨迹优化问题模型进行求解,得到离散化的解。[0115]经过以上步骤的伪谱法的离散化处理,飞行器轨迹优化问题模型由线性规划问题转化成为了非线性规划(nlp)问题,由于sqp(序列二次规划)算法是求解强约束nlp问题的最有效的方法,因此本发明实施例中,将sqp算法的各部分封装到matlab的fmincon函数或者python库中的minimize函数中,将离散化的飞行器轨迹优化问题模型输入封装好的matlab的fmincon函数或者python库中的minimize函数进行迭代求解,得到离散化的解。[0116]s11、对离散化的解进行插值逼近还原处理,得到飞行器轨迹优化问题模型的解,实现对飞行器轨迹的优化。[0117]通过步骤s9中优化迭代得到的解是经过伪谱法处理步骤后离散化的解,因此要想得到原来离散化处理以前的未离散的解,需要对离散化的解进行插值逼近还原处理,通过对离散化的解进行逼近处理以后所得到的解才是原飞行器轨迹优化问题模型的解,插值逼近也是通过拉格朗日插值方法来进行逼近还原处理。[0118]本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有