1.一种基于均衡优化算法的无人机路径规划方法,其特征在于,包括如下步骤:步骤1、获取真实环境的高度数据,构建栅格地图;
步骤2、确定无人机飞行路径的起点和终点坐标值,初始化无人机的飞行路径;
步骤3、使用均衡优化算法对初始路径进行优化,将使用均衡优化算法得到的最优输出个体作为无人机的最优飞行路径;
所述步骤1中,首先利用卫星采集无人机飞行区域的山地卫星地图,得到真实环境的高度数据,将无人机飞行环境的高度数据作为真实环境的高度数据,并使用栅格法对真实环境进行建模,得到栅格地图;
栅格法建模的过程为:首先创建一个三维空间坐标系,以左下角的顶点O为坐标原点;
在该空间坐标中,X轴是经度增加的方向,Y轴是纬度增加的方向,Z轴是垂直于海平面的方向;然后将X轴划分为m份,将Y轴划分为n份,将Z轴划分为k份;坐标系中每一个离散的点作为无人机飞行过程中经过的航点;最后读入高度数据,将地图中的栅格划分为可通和不可通状态,满足高度要求的栅格点是可通的,其他的栅格点不可通;
所述步骤2的具体过程如下:
步骤2.1、确定起点S(XS,YS,ZS)和终点T(XT,YT,ZT);
步骤2.2、以X轴为基准,寻找每一个平行与YOZ平面上满足飞行要求的点;由于X轴被划分为m份,起点和终点之间存在m‑1个与YOZ平行的平面,因此共划分得到m+1个与YOZ平行的平面;起点S在第一个YOZ平面上,终点T在最后一个YOZ平面上;
步骤2.3、从起点S的下一个平面开始,寻找无人机飞行路径的各个目标点;具体为:以S为中心点,在下一个平面上与其相邻的24个点中寻找满足高度要求的点,同步舍弃超出空间范围的点;
步骤2.4、根据以下公式计算每个符合高度要求的点的启发值Qi;
其中,i表示满足高度要求的第i个航点;Ypre和Zpre分别代表X=0时YOZ平面上航点的Y轴和Z轴的值,Xnow、Ynow和Znow分别代表X=1时YOZ平面上航点的三个坐标轴的值;然后,将满足高度要求的航点的启发值相加得到总的启发值SUM;计算每个满足要求的航点的QZ值,然后随机产生一个(0,1)之间的数ra,寻找第一个满足ra
步骤2.5、以同样的方法寻找X=2,3……m‑1时YOZ平面上的航点;最后将起点和终点之间的所有航点连接,找到一条符合要求的路径path(S,……,T);
所述步骤3的具体过程如下:
步骤3.1、按照步骤2.3、步骤2.4和步骤2.5所述的过程产生20条初始路径{path1,path2,……,path20},判断每条路径上是否存在超出空间范围的航点,如果有,则在该航点的平面内按照步骤2.3和步骤2.4选择符合条件的航点;
步骤3.2、初始化迭代次数为0;
步骤3.3、计算所有路径的适应度值,并找出适应度值最优的前四条路径;
无人机飞行路径的适应度函数包括两项,一项是飞行距离的代价,一项是转弯角的能耗;计算公式如下所示:其中,J表示无人机的飞行总代价,α和β均表示权重,D(i)表示栅格地图中两平面之间的飞行距离;θi表示第i个航点与前一个航点连线与水平面的夹角;N表示航点总数;
步骤3.4、执行记忆存储过程;具体过程为:
当迭代次数为0时,备份当前的20条初始路径和它们的适应度值;
当迭代次数不等于0时,判断上一次迭代的20条路径中是否有路径的适应度值小于当前迭代次数下路径的适应度值,如果有,则用上一次迭代的路径和适应度值替换当前路径和其适应度值;然后备份当前迭代次数下所有路径和适应度值;
步骤3.5、求出四条路径的平均路径和均衡池;
首先将20条路径中每个YOZ平面上的航点的X轴、Y轴和Z轴的坐标值分别相加,并求出每个航点X轴、Y轴和Z轴的平均值,判断每个航点的平均值是否满足高度要求,如果不满足,就按照步骤2.3和步骤2.4产生一个符合要求的航点,连接每一个符合要求的航点,得到一条平均路径path_ave;均衡池中的路径包括适应度值最优的前四条路径和一条平均路径;
步骤3.6、计算随机数t的值;随机数t是一个随迭代次数变化的数,具体计算公式如下:其中,iter表示当前迭代次数,Max_iter表示预设的最大迭代次数,a2是一个常数;
步骤3.7、对20条初始路径中的每一条路径都按照如下步骤进行迭代更新,每次迭代次数加1,不断进行路径更新;第一次迭代更新的路径是20条初始化的路径,之后每一次迭代更新的路径都是上一次迭代更新的20条路径;迭代过程中不断判断新的迭代次数是否小于预设迭代次数,如果小于预设迭代次数,则重新执行步骤3.3‑步骤3.7,更新20条路径;否则,当达到预设迭代次数后迭代结束,当前次迭代结束后会得到一个最优输出个体,该个体对应最终所需的最优路径;
所述步骤3.7中,每一条路径迭代更新的过程如下:
步骤3.7.1、计算λ,λ表示随机产生的1行2M列的矩阵,每个维度都是(0,1)之间的随机数,λ的维度为2M,M表示划分的YOZ平面的个数;
步骤3.7.2、计算r,r是一个1行2M列的矩阵,r的产生方式和λ相同;
步骤3.7.3、从步骤3.5中的均衡池中随机选取一条路径path_r;
步骤3.7.4、计算F的值,F是一个指数项,用于平衡路径更新时的勘探和开发过程;F是个1行2M列的矩阵,每一个维度的值均在(‑2,2)之间;
‑λt
F=a1sign(r‑0.5)(e ‑1) (4);
其中,a1为常数;sign表示符号函数;
步骤3.7.5、生成两个(0,1)之间的随机数r1和r2;
步骤3.7.6、计算GCP的值,GCP被定义为发电率控制参数,该项用于表示对粒子更新的贡献;
其中,GP是一个常数;
步骤3.7.7、计算G0的值,它是一个初始值,是一个用于计算G大小的中间参数;
其中, 为第iter代的第j条路径;
步骤3.7.8、计算G的值,G表示生成率;
G=G0F(7);
步骤3.7.9、按照如下公式更新路径,
其中, 表示迭代次数为iter+1时更新的第j条路径,V为常数。