一种基于改进人工势场法的冲突解脱方法与流程

文档序号:20344336发布日期:2020-04-10 22:30阅读:1347来源:国知局
一种基于改进人工势场法的冲突解脱方法与流程

本发明涉及航空运输领域,尤其是一种冲突解脱方法。



背景技术:

飞行器在执行任务时遭遇禁飞区、威胁气象区域、威胁地形区域等情况时如何进行危险规避,使得在飞机保证自身安全的情况下节省燃料消耗,对飞行器冲突解脱方法提出了新要求。传统飞行冲突解脱措施通常可以分为3类:水平方向的一定偏移、垂直方向的爬升或下降以及改变到达冲突点的时间。这种解脱方法不适用于所有场景并且需要措施叠加才能产生好的效果。美国先进技术研究中心e.kelly教授于2000年提出用势场法解决飞行冲突问题,不需以图形形式表示规划空间,而是将飞行器之间的冲突问题构建为电子之间的作用力模型,相同的电极性使得飞行器之间相互排斥,同时目标点的异种电极对飞行器产生引力,在这种作用力下,飞行器具有高速规划能力来进行冲突解脱。但是,传统的人工势场法应用于多机场景时由于算法缺陷会导致不收敛、目标不可达问题。因此,需要一种改进后更好的基于人工势场法的冲突解脱方法。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于改进人工势场法的冲突解脱方法,针对传统人工势场法中不收敛问题和目标不可达问题进行了改进处理。

本发明解决其技术问题所采用的技术方案包含以下步骤:

步骤1:对场景进行初始化设定,设置威胁气象地形的坐标及半径。

步骤2:对飞行器参数进行初始化,设定飞行计划及飞行器的最大偏转率;

步骤3:根据位置判断飞行器是否到达目标点,如果已经到达目标点则结束;如果没有到达则进入下一步;

步骤4:计算当前位置飞行器受到的合力,包含威胁源斥力、目标引力和飞行器间斥力,再由斥力计算加速度;

步骤5:由步骤5加速度与当前速度计算得到新速度。

νt+1=νt+αδt(15)

νt+1为根据t时刻速度νt与加速度α计算得到的下一时刻速度,δt为时间间隔;

步骤6:根据新速度确定下一时刻飞行器位置。

xt+1=xt+νt+1δt(16)

xt+1为飞行器下一时刻的位置,xt表示飞行器t时刻的位置;

步骤7:返回步骤3。

所述步骤4中的详细步骤如下:

步骤4.1:计算威胁源斥力;

将威胁源作用范围分为碰撞区与监测区:

第j个威胁源的碰撞区域:

αj={x|x-xoj≤rj}(6)

第j个威胁源的监测区域:

χj={x|rj<x-xoj≤rj}(7)

将斥力势场作用区域构建在监测区域,则表达式为:

相应的威胁源斥力函数为:

式中xoj表示第j个威胁源的坐标,rj表示威胁源半径,rj表示威胁源斥力场作用半径,ρ(x,xo)表示飞行器与威胁源距离。

步骤4.2:计算目标引力;

设定引力势场函数如下:

相应目标引力函数为:

式中α1与α2表示引力增益参数,均为大于零的常数,ρ(x,xg)表示飞行器当前位置距目标点的距离,q为一个引力值界限,为大于零的常数;

步骤4.3:计算飞行器间斥力;

设定飞行器之间存在斥力,斥力函数设定如下:

式中,ε为两机间水平斥力增益系数矢量,δ为两机间垂直斥力增益系数矢量,ρ(xi,xj)表示飞行器i与飞行器j之间的距离,r为斥力半径,当两机之间距离小于r时,产生水平方向斥力与垂直方向的偏转力;

设置ε=1,方向为水平方向,δ=1,方向为垂直方向;

步骤4.4:计算当前位置所受合力与加速度;

飞行器的合力大小为:

ftotal(xt)=frep(xt)+fatt(xt)+fij(xt)(13)

合力得出其加速度:

m为飞行器质量。

本发明的有益效果在于基于函数的改进后,飞行器在当前位置根据合力可求得加速度来更新下一时刻位置,能够对危险进行提前规避,保证飞行器能够高速规划进行冲突解脱的同时,避免出现不收敛问题和目标不可达问题,并且该方法对单机或多机的复杂状况同样适用,是一种快速有效的冲突解脱方法。

附图说明

图1为本发明人工势场法原理示意图。

图2为本发明冲突解脱算法流程图。

图3为本发明的两机避撞仿真结果。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

本发明采用改进的人工势场算法在危险元素规避时进行局部规划,能够至少提前3分钟完成冲突解脱,保证飞行安全。

本发明中,设置飞行器所受的合力包括威胁源斥力、目标引力和飞行器间斥力。在引力和斥力函数的设定中,对传统函数进行了改进来解决不收敛问题和目标不可达问题。

不收敛问题即当两机仿真情况下,两机在目标点引力的作用下飞向目标时,两机遭遇彼此间产生斥力,因斥力导致两机向远离目标点的方向前行,当到达足够远时,两机之间的探测结果表明彼此不冲突,因此两机间斥力消失,再次受目标点引力作用下移动,移动后又会导致两机距离过近产生冲突,因此导致两机协同前往某方向,距离目标点越来越远。

目标不可达问题类似于不收敛问题,主要是由于目标点周围存在障碍物,飞行器很容易在接近目标点时在目标点周围旋转,无法到达目标点。

在改进威胁源斥力函数时,将斥力场看做一个以威胁源为中心的环,保证飞行器不会因距离威胁源太近而产生过大的斥力,同时增益参数的设置也保证了飞行器不会距离威胁源过近。

在改进目标引力函数时,设置了引力值界限,当飞行器与目标距离大于该界限时,引力随距离线性增大,可以快速收敛;当飞行器与目标距离小于界限时引力为常数,保证不会因距离目标点过近而引力过小导致的无法收敛。

还引入了飞行器间斥力函数,当两机之间距离小于斥力半径时,产生水平方向斥力与垂直方向的偏转力,偏转力的设定是为了使得飞行器不会陷入局部最优解。

人工势场法的基本思想是将飞行器在环境中的运动看为在虚拟力场下的一种合力驱使下的结果,危险源附近设定斥力场,使其对飞行器产生斥力,同时目标点作用于飞行器位置处的引力场对其产生引力,最终的结果是飞行器在合力驱使下到达预期目标点。人工势场法原理示意图见图1。

传统人工势场法的函数由引力场函数和斥力场函数组成,具体如下:

引力势场函数表示为:

uatt(x)=1/2αρ2(x,xg)(1)

上式中,x=(x,y,z)为飞行器位置向量,α为引力增益系数,是一个大于零的常数,xg代表所规划的目标位置,ρ(x,xg)表示飞行器当前位置到目标位置的距离。通过对上述引力势场函数求导可得对应的引力函数如下:

fatt(x)=-▽uatt(x)=αρ(x,xg)(2)

斥力势场函数表示为:

上式中,β为斥力增益系数,是一个大于零的常数,x和x0分别表示飞行器位置和威胁源坐标,ρ(x,x0)表示飞行器到威胁源中心的距离,ρ0表示威胁源存在范围。对上述斥力势场函数求导可得对应的斥力函数:

斥力与引力的叠加便是飞行器所受合力:

ftotal=fatt+frep(5)

人工势场法是将环境中的障碍以及飞行计划以设定好的势场函数形式呈现,飞行器的规划过程受在当前位置所受合力的大小和方向的作用,飞行器行进的每一步都是当前所处场强作用的结果,因此,这种规划方式只能是作为一个局部规划,应用场景有限,在单机仿真应用传统人工势场法可以达到良好效果,但当应用到多机场景时,不可避免的会出现算法缺陷导致的规划失败,如不收敛问题、目标不可达问题等。

下面结合附图和具体实施方式对本发明作进一步详细说明。

应用改进的人工势场法进行的冲突解脱处理流程见图2,

【步骤1】对场景进行初始化设定,设置威胁气象地形的坐标及半径;

仿真区域大小:140km*140km;

威胁源1参数:坐标(20km,12km)半径r=8km;

威胁源2参数:坐标(40km,45km)半径r=32km;

【步骤2】对飞行器参数进行初始化,设定飞行计划及飞行器的最大偏转率。

飞行器1参数:

起点(0km,0km),终点(90km,90km);

初始速度250m/s,最大加速度10m/s2,最大偏转率0.087rad/s。

飞行器2参数:

起点(8km,136km),终点(23km,98km);

初始速度250m/s,最大加速度10m/s2,最大偏转率0.087rad/s。

【步骤3】根据位置判断飞行器是否到达目标点,如果已经到达目标点则结束;如果没有到达则进入下一步。

【步骤4】计算当前位置飞行器受到的合力,包含威胁源斥力、目标引力和飞行器间斥力。再由斥力计算加速度。

【步骤4.1】计算威胁源斥力。

将威胁源作用范围分为碰撞区与监测区:

第j个威胁源的碰撞区域:

αj={x|x-xoj≤rj}(6)

第j个威胁源的监测区域:

χj={x|rj<x-xoj≤rj}(7)

将斥力势场作用区域构建在监测区域,则其表达式为:

相应的斥力函数为:

式中xoj表示第j个威胁源的坐标,rj表示威胁源半径,rj表示威胁源斥力场作用半径,ρ(x,xo)表示飞行器与威胁源距离。

【步骤4.2】计算目标引力。

设定引力势场函数如下:

相应引力函数为:

式中α1与α2表示引力增益参数,为大于零的常数。ρ(x,xg)表示飞行器当前位置距目标点的距离,q为一个引力值界限,为一个大于零的常数。

参数设置根据场景设定可进行调整来达到最佳效果。本发明设置为,α1=1,α2=1000,q=1000m。

【步骤4.3】计算飞行器间斥力。

设定飞行器之间存在斥力,斥力函数设定如下:

式中,ε为两机间水平斥力增益系数矢量,δ为两机间垂直斥力增益系数矢量,ρ(xi,xj)表示飞行器i与飞行器j之间的距离,r为斥力半径,一般默认为5nm(海里),当两机之间距离小于r时,产生水平方向斥力与垂直方向的偏转力。

其他参数设置根据场景设定可进行调整来达到最佳效果。本文设置为ε=1,方向为水平方向,δ=1,方向为垂直方向。

【步骤4.4】计算当前位置所受合力与加速度。

由以上几种势场所确定的区域中飞行器的合力大小为:

ftotal(xt)=frep(xt)+fatt(xt)+fij(xt)(13)

xt表示飞行器t时刻的位置,合力可得出其加速度:

此处飞行器质量m设为1。

【步骤5】由加速度与当前速度计算得到新速度。

νt+1=νt+αδt(15)

νt+1为根据t时刻速度νt与加速度α计算得到的下一时刻速度,δt为时间间隔,本文设置为5秒。

【步骤6】根据新速度确定下一时刻飞行器位置。

xt+1=xt+νt+1δt(16)

xt+1为飞行器下一时刻的位置。

【步骤7】返回【步骤3】。

根据以上步骤及参数设置,得到仿真结果如图3。飞行器1轨迹为星状线,飞行器2轨迹为黑色网状线,红色圈为两架飞行器的目标点,飞行器1在避开坐标(40km,45km)半径r=32km的危险源后,与飞行器2处于相对不断接近状态,一次,在两机之间斥力及偏转力作用下,飞行器1相对右偏,飞行器2相对左偏,以此来保持两机间安全间隔;从开始时间到接近300秒时,两机间距离不断缩小,300秒后,两机间距离增大,且两机间最小距离保持大于5nm的安全间隔设定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1