1 简介
针对自主水下航行器(AUV)在三维复杂环境下的路径规划问题,提出了一种适用于全局路径规划的NSGA-Ⅱ算法.结合实际情况建立了简单有效的三维地形环境模型,依据经济性和安全性原则设计了算法的路径长度和威胁度评价函数,通过快速Pareto排序及拥挤度距离计算选择路径点.为了保证路径的实用性,运用梯度下降法对路径进行平滑处理.仿真结果表明:改进后的算法在三维环境下不仅可以安全避开海底地形障碍,而且寻找最优解的能力及收敛速度都有较大提升.
2 部分代码
function [ children_out ] = NSGA2_variation( children ) %NSGA2_VARIATION Summary of this function goes here %本函数执行变异操作 global DEM safth hmax; dnanum=size(children,1); dnalength=size(children,2)-1; children_out=children; pvariation=0.5; n=floor(pvariation*(dnalength-1)); for i=1:1:dnanum for m=1:1:n j=randint(1,1,[2 dnalength]); k(1)=floor((children_out(i,j-1,1)+children_out(i,j+1,1))/2); k(2)=floor((children_out(i,j-1,2)+children_out(i,j+1,2))/2); k(3)=children_out(i,j,3); %k(1)=k(1)+randint(1,1,[0 20])-10; %k(2)=k(2)+randint(1,1,[0 20])-10; if k(1)>101 k(1)=101; elseif k(1)<1 k(1)=1; end if k(2)>101 k(2)=101; elseif k(2)<1 k(2)=1; end k(3)=DEM.Z(k(1),k(2))+safth; %{ if k(3)>hmax+safth k(3)=hmax+safth; elseif k(3)<safth k(3)=safth; end %} children_out(i,j,:)=k; end end %{ for m=1:1:n i=randint(1,1,[1 dnanum]); j=randint(1,1,[2 dnalength]); k(1)=children_out(i,j,1); k(2)=children_out(i,j,2); k(3)=children_out(i,j,3); k(1)=k(1)+randint(1,1,[0 202])-101; k(2)=k(2)+randint(1,1,[0 202])-101; k(3)=k(3)+randint(1,1,[0 2*hmax])-hmax; if k(1)>101 k(1)=k(1)-101; elseif k(1)<1 k(1)=k(1)+101; end if k(2)>101 k(2)=k(2)-101; elseif k(2)<1 k(2)=k(2)+101; end if k(3)>hmax+safth k(3)=k(3)-hmax; elseif k(3)<safth k(3)=k(3)+hmax; end children_out(i,j,:)=k; end %} % Detailed explanation goes here
3 仿真结果
4 参考文献
[1]邹春明, 张云雷, 徐言民,等. 基于NSGA-Ⅱ算法的AUV三维全局路径规划[J]. 武汉理工大学学报:交通科学与工程版.