一种无人机插值飞蛾扑焰低空突防方法与流程

文档序号:17290873发布日期:2019-04-03 03:57阅读:852来源:国知局
一种无人机插值飞蛾扑焰低空突防方法与流程

本发明属于飞行器控制、信息处理、导航技术领域,具体涉及一种无人机插值飞蛾扑焰低空突防方法。



背景技术:

无人机是无人驾驶飞机(unmannedaerialvehicle)的简称,它是一种机上无人驾驶,由动力驱动,可重复使用的航空器。因为无人机体积小、结构简单、机动性好、成本低、飞行时间长、便于隐蔽、不需机场跑道、多次重复使用、重量轻等优良特性,可以作为飞行员生理极限的高速飞行和执行深入污染地区上空检测取样等危险作战任务,在一些方面有着有人驾驶飞机不可取代的优越性。无人机低空突防也就是说通过对于无人机任务的预规划在低空环境下成功突防完成任务,其中最重要的技术就是无人机航迹规划。无人机航迹规划技术指的是在特定约束条件下,寻找满足无人机的机动性能及战场环境信息限制的从起点到目标点的最佳飞行轨迹,它是无人机任务规划系统的关键一环。

无人飞行器航路规划技术就目前来说还存在以下不足:首先,无人飞行器由于没有相关人员的决策,难以进行灵活的操控。其次,无人飞行器是通过机载设备进行控制而在地面控制站上进行任务管理,这种控制和管理分离的模式不可避免数据链路和传输命令的延迟,因而无法进行实时且高效的航迹规划。还有,无人机需要面对复杂辽阔的战场环境,具有很多的约束条件和较大的模糊性,再加上各要素之间的强耦合性,使得无人机航迹规划方法的研究变得更加复杂。上述问题给无人机的低空突防带来很大的问题。



技术实现要素:

本发明的目的在于一种无人机插值飞蛾扑焰低空突防方法,以克服上述现有技术存在的缺陷,本发明实现了更高的探索性,有着更出色的效果,能够保证全局最优解。

为达到上述目的,本发明采用如下技术方案:

一种无人机插值飞蛾扑焰低空突防方法,包括以下步骤:

步骤1:初始化飞蛾种群m,根据蛾的位置向量计算相应的适应度值om,其中适应度值是每个蛾的适应度函数的返回值;

步骤2:求出飞蛾与其对应火焰的距离;

步骤3:使用插值预测算法根据飞蛾的历史位置对每一个飞蛾的下一个位置进行预测;

步骤4:使用飞蛾扑焰算法和插值预测算法不断交替更新飞蛾最优位置,直到达到规定的迭代次数为止,最终所得到的最优位置即为全局最优解。

进一步地,步骤1中采用公式(1)初始化飞蛾种群m;

i:{m,om}(1)

其中,i是产生随机飞蛾种群和其对应的适应度值的函数。

进一步地,步骤2具体包括:

步骤2.1:对m、om排序得到火焰f和其适应度值of,火焰f和其适应度值of即为当前获得的飞蛾的最佳位置;

步骤2.2:判断当前进化代数j模g的值,进化代数j模g表示第j个种群的第g代飞蛾,如果当前进化代数j模g为0,则生成随机整数k,k∈[1,n],其中n为飞蛾的种群数量,将第k个种群作为将要插值的备选种群,若不为0,则直接跳转至步骤2.4;

步骤2.3:如果i=k,则保存本次种群位置xi,其中i为当前飞蛾种群的代数,如果i≠k,则不保存本次的种群位置,转向下一个种群位置继续判断;

步骤2.4:用公式(2)求出飞蛾与其对应火焰的距离di;

di=|fj-mi|(2)

其中,di表示飞蛾到火焰的距离,mi为第i个飞蛾,fj为第j个火焰。

进一步地,步骤3具体包括:

步骤3.1:根据公式(3)求出飞蛾的数量,去掉末尾的飞蛾和火焰;

式中:n为初始火焰数量,t为迭代的总次数,l为当前迭代次数;

步骤3.2:将di代入公式(4)中,计算每只飞蛾更新后的值;

s(mi,fj)=di·ebp·cos(2πp)+fj(4)

式中:di表示飞蛾到与其对应火焰的距离,b是一个定义螺旋线的形状的常量,p为一个属于[-1,1]之间的随机数;

步骤3.3:由得到的mi更新矩阵ml,其中,ml为第l次迭代得到的飞蛾种群。

进一步地,步骤4具体包括:

步骤4.1:根据ml计算新的适应度值oml;

步骤4.2:如果当前进化代数j模g为g-1,则插值预测当前位置xi,然后跳转至步骤4.3,若当前进化代数j模g不为g-1,则按照飞蛾扑火优化算法更新火焰的位置,然后跳转至步骤4.6;

步骤4.3:计算插值预测位置xi的适应度omi;

步骤4.4:如果omi<omlk,则接受插值预测位置xi,更新ml、oml,如果omi≥omlk,则拒绝差值位置,保持原位置不变,其中为第l次迭代第k个种群的适应度;

步骤4.5:判断新解是否优于上一个解,判断标准为仿真结果的评估函数值,即路径长或者前进路线最大拐角,路径越短或前进路线最大拐角的sin值越小则越优,当新解优于上一个解,则将新解更新为全局最优解,若新解不优于上一个解,则直接返回步骤2;

步骤4.6:判断是否满足结束条件,判断标准为迭代次数是否大于等于预先设定的值,当迭代次数小于预先设定的值时,则返回步骤2,当迭代次数大于等于预先设定的值时,则转入步骤4.7;

步骤4.7:输出全局最优位置。

与现有技术相比,本发明具有以下有益的技术效果:

在基本飞蛾扑焰优化算法中每个种群的飞行位置在很大程度上都是随机变化的,并没有依据历史种群的变化来预测种群下一个位置,而本发明所描述的插值飞蛾扑焰优化算法,则是考虑到了飞蛾种群位置的历史变化因素,通过种群历史位置插值拟合来预测下一次种群的位置,插值飞蛾扑焰优化算法充分利用了飞蛾飞行的历史数据,从而不仅能更快收敛到最优解,而又保留了基本飞蛾扑焰优化算法的寻优精度高、搜索范围大的优点,有效的解决基本飞蛾扑焰算法的不足之处。

附图说明

图1是本发明的流程示意图;

图2是插值飞蛾扑焰算法;

图3是改进的飞蛾扑火优化算法的仿真模拟图,其中(a)为函数f1的仿真结果;(b)为函数f2的仿真结果;(c)为函数f3的仿真结果;(d)为函数f4的仿真结果;(e)为函数f5的仿真结果;

图4为程序运行结果,(a)~(h)是以路径长为评估函数的结果,其中(a)是解空间为2时,飞蛾扑火算法的实现结果;(b)是解空间为2时,飞蛾扑火算法代价收敛函数;(c)是解空间为2时,插值飞蛾扑焰算法的实现结果;(d)是解空间为2时,插值飞蛾扑焰算法的代价收敛函数;(e)是解空间为4时,飞蛾扑火算法的实现结果;(f)是解空间为4时,飞蛾扑火算法代价收敛函数;(g)是解空间为4时,插值飞蛾扑焰算法的实现结果;(h)是解空间为4时,插值飞蛾扑焰算法的代价收敛函数。(i)~(l)是以前进路径的最大拐角为评估函数的结果,其中(i)是解空间为2时,飞蛾扑火算法的实现结果;(j)是解空间为2时,飞蛾扑火算法代价收敛函数;(k)是解空间为2时,插值飞蛾扑焰算法的实现结果;(l)是解空间为2时,插值飞蛾扑焰算法的代价收敛函数。

具体实施方式

下面结合附图对本发明作进一步详细描述:

基本的飞蛾扑焰优化算法中飞蛾只根据自己的火焰更新位置,所以局部搜索能力很强,但全局收敛性较差,而且易陷入局部最优。同时,现阶段的飞蛾扑焰算法收敛速度比较慢,求解精度不足。针对以上问题,本发明提供一种插值飞蛾扑焰的改进优化算法,既利用了插值预测方法的思路简单、局部搜索能力强的优点,又利用了飞蛾扑焰算法的能够利用每个火焰位置来更新飞蛾位置的特点避免了陷入局部最优解的优点来达到良好的寻优效果。具体思路是,设飞蛾的种群数为n,每个种群的飞蛾维度(飞蛾个体数)为d,第j个种群第i只飞蛾在第t代的位置标示为:xtji,则第j个种群的飞蛾的位置向量可标示为:xtj=xtj1+xtj2+……+xtjd。在飞蛾的飞行过程中,保存飞蛾最近g代位置记录,xtj,xt+1j,……,xt+gj,其中t≥0,j∈[0,n],在所保存的这g代记录中的飞蛾位置由基本飞蛾扑焰算法确定,而第g+1代飞蛾的位置从下述两种位置中选取一种较优的位置:基本飞蛾算法得到的g+1代位置和通过样条插值拟合来预测的g+1代位置。出于对性能因素的考虑以及算法实现的简化,本发明中只随机保存种群j的最近三代的历史位置,即g=3,当第j个种群插值预测完成后,重新随机选择一个种群k,并保存最近三代的历史位置做插值预测,依次循环直到算法达到预先设置的结束条件。

本发明从飞蛾群的初始化以及适应度函数方面对飞蛾扑焰算法进行了改进,从而克服了原始方法初始化随机性和易陷入局部最优解等问题。将改进的飞蛾扑焰群方法与插值预测方法结合解决了飞蛾扑焰方法全局收敛性差的问题。本发明方法的有效性相比于传统方法有了很大的改善,而且在优化效率、优化性能上都有较大改善。

具体步骤如下:

步骤1:用公式(1)初始化飞蛾种群m,根据蛾的位置向量利用编程计算相应的适应度值om,其中适应度值是每个蛾的适应度(目标)函数的返回值。

i:{m,om}(1)

其中,i是一种产生随机飞蛾种群和其对应的适应度值的函数。

步骤2:m、om的位置不变,对m、om排序得到火焰f和其适应度值of,火焰f和其适应度值of即为当前获得的飞蛾的最佳位置。

步骤3:如果当前进化代数j模g(第j个种群的第g代飞蛾)为0,则生成随机整数k,k∈[1,n],其中n为飞蛾的种群数量,将第k个种群作为将要插值的备选种群,若不为0,则直接跳转步骤5。

步骤4:如果i=k,则保存本次种群位置xi,其中i为当前飞蛾种群的代数,如果i≠k,则不保存本次的种群位置,转向下一个种群位置继续判断。

步骤5:用公式(2)求出飞蛾与其对应火焰的距离di;

di=|fj-mi|(2)

di表示飞蛾到火焰的距离,mi为第i个飞蛾,fj为第j个火焰。式(2)模拟了飞蛾的移动路径,并确定了飞蛾相对于火焰的下一个位置。在式(2)中仅仅需要飞蛾朝向火焰移动,但是它却导致了mfo(飞蛾扑火优化算法)方法很快陷入局部最优。为了避免这种情况,每个飞蛾不得不仅使用式(2)中的一个火焰来更新它们的位置。它每一次迭代更新火焰列表后,火焰根据它们的适应度值来排序,然后飞蛾更新它们相对于相应火焰的位置。第一只飞蛾总是更新相对于最优火焰的位置,而最后那个飞蛾更新列表中相对于最差火焰位置。

步骤6:为了节省开销,飞蛾和火焰的数量会根据运行的代数不同,不断的减少,但飞蛾和火焰的数量始终相同,根据公式(3)求出飞蛾的数量,去掉末尾的飞蛾和火焰。

式中n为初始火焰数量,t为迭代的总次数,l为当前迭代次数。式(3)表明在迭代初始步骤中存在数量为n的火焰。而在迭代的最后,飞蛾仅使用最好的火焰更新它们的位置。飞蛾数量上的逐渐减少平衡了在搜索空间里的探测与开采。

步骤7:将di代入公式(4)中,计算每只飞蛾更新后的值,更新ml,其中ml为第l次迭代的飞蛾种群。

s(mi,fj)=di·ebp·cos(2πp)+fj(4)

式中di表示飞蛾到火焰的距离,b是一个常量定义螺旋线的形状,p是一个属于[-1,1]之间的随机数。

步骤8:根据ml计算新的适应度值矩阵oml。

步骤9:如果(当前进化代数j模g)=g-1,则插值预测当前位置xi,跳转至步骤10,若当前进化代数j模g不为g-1,则按照飞蛾扑火优化算法更新火焰的位置,跳转步骤13;

步骤10:计算插值预测位置xi的适应度omi。

步骤11:如果omi<omlk,则接受插值预测位置xi,更新ml、oml,如果omi≥omlk,则拒绝差值位置,保持原位置不变,其中为第l次迭代第k个种群的适应度;

步骤12:判断新解是否优于上一个解,判断标准为仿真结果的评估函数值(路径长或者前进路线最大拐角),路径越短、前进路线最大拐角的sin值越小则越优,当新解优于上一个解,则将新解更新为全局最优解,若新解不优于上一个解,则直接返回步骤2。

步骤13:判断是否满足结束条件,当迭代次数小于预先设定的值时,则返回步骤2,当迭代次数大于等于预先设定的值时,则转入步骤14;

步骤13:判断是否满足结束条件,当迭代次数小于预先设定的值时,则返回步骤2,当迭代次数大于等于预先设定的值时,则转入步骤14。

步骤14:为了避免进入雷达区,进行如下处理。首先扫描各点判断是否在雷达覆盖区域。若在其区域,则平移该点到雷达区域边缘。具体步骤为,设雷达中心坐标为(x0,y0),覆盖半径为r。当前处理点坐标为(x1,y1)。记dx=(x0-x1),dy=(y0-y1)。然后单位化向量(dx,dy)。则处理后坐标为(x0+r*dx,y0+r*dy)。则可避免进入雷达区域。

步骤15:输出全局最优位置。

步骤16:仿真结果与分析:本发明将以5个典型的测试函数为例来验证其可行性:

(1)

-100≤xi≤100(i=1,2,...,n;n=30)

在(0,0,...,0)处取得全局最小值0。

(2)

-10≤xi≤10(i=1,2,...,n;n=30)

在(0,0,...,0)处取得全局最小值0。

(3)

-100≤xi≤100(i=1,2,...,n;n=30)

在(0,0,...,0)处取得全局最小值0。

(4)f4(x)=maxi{|xi|,1≤i≤n}

-100≤xi≤100(i=1,2,...,n;n=30)

在(0,0,...,0)处取得全局最小值0。

(5)

-30≤xi≤30(i=1,2,...,n;n=30)

在(0,0,...,0)处取得全局最小值0。

本次测试函数仿真环境为win10操作系统,intel处理器2.60ghz,4g内存,仿真软件为matlab2014b,测试结果如图3所示:

表1两种算法对于f1-f5函数测试结果

由图3结合表1可看出,改进的mfo算法的机制更加促进勘探,搜索空间中的移动主体进行大量迭代去勘探搜索空间避免陷入局部最优解,从而不仅能更快收敛到最优解,而又保留了基本飞蛾扑焰优化算法的寻优精度高、搜索范围大的优点,有效的解决基本飞蛾扑焰算法的不足之处。

此外,根据仿真结果图4,不同的解空间值时,改进后的算法虽然迭代速度变慢,但寻到局部最优解的迭代时间更短,迭代次数更少。路径规划结果中,当以路径长为评估函数时,经计算,解空间数n=2时,原mfo算法的寻到最优解的迭代时间为17.06秒,迭代次数为40,改进后的mfo算法寻到最优解的迭代时间为12.27秒,迭代次数为29;解空间数n=4时,原mfo算法的寻到最优解的迭代时间为27.52秒,迭代次数为65,改进后的mfo算法寻到最优解的迭代时间为19.19秒,迭代次数为45。当以前进路径的最大拐角为评估函数、解空间数为2时,原mfo算法的寻到最优解的迭代时间为20.26秒,迭代次数为48,改进后的mfo算法寻到最优解的迭代时间为16.88秒,迭代次数为40。综上结果,改进后的算法在不经过危险区域的前提下,采用不同的评估函数时的收敛速度都更快,能用更少的迭代次数就接近最优路径,结合后的方法实现了优化算法的目的。

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