【无人机三维路径规划】基于帝国企鹅算法实现无人机三维路径规划附matlab代码
1 简介
随着小型无人机技术的发展,无人机的应用范围已经从军事逐步向商用和民用扩展。在民用领域,无人机一般作为辅助工具处理城市问题,建筑物是阻碍无人机飞行的主要因素。所以需要在一定约束条件下,找出无人机飞行的最优路径。传统的路径规划问题大多针对二维环境进行研究,并且已经相对成熟,而最近三维路径规划成为新的研究重点。当环境由二维拓展到三维后,会带来很多问题,三维环境拥有更广的搜索空间和危险性。蚁群算法具有优秀的搜索能力,对多优化问题有良好的性能,是智能算法应用于路径规划的热门方向。本文根据无人机路径规划的现状,提出了一种基于帝国企鹅算法的三维路径规划方法。
2 部分代码
if minY(no-dim*2)/(numAgent-dim*2)*(maxIteration-iter)/maxIteration gap=max(gapMin,gap-dec); %EQ.2-15 end else R1=rand(numAgent,dim); R2=rand(numAgent,dim); R3=rand(numAgent,dim); Rn=rand(numAgent,dim); indexR1=ceil(rand(numAgent,dim)*numAgent); indexR2=ceil(rand(numAgent,dim)*numAgent); std0=exp(-20*iter/maxIteration)*(v_ub-v_lb)/2; std1=std(x_m); % In order to use matrix operations, all individuals of the population are updated. % Although more individuals were updated, the running time of the algorithm dropped tremendously. % This is because MATLAB is extremely good at matrix operations. % If you want to rewrite this code in another language, we suggest you refer to AFO1. % AFO2 is optimized for MATLAB and may not be suitable for your language. for j=1:dim x_m1(:,j)=x_m(indexR1(:,j),j); x_m2(:,j)=x_m(indexR2(:,j),j); y_m1(:,j)=y_m(indexR1(:,j)); y_m2(:,j)=y_m(indexR2(:,j)); AI(:,j)=R1(:,j).*sign(y_m1(:,j)-y_m2(:,j)).*(x_m1(:,j)-x_m2(:,j)); if std1(j)<=std0(j) position=find(AI(:,j)==0); AI(position,j)=Rn(position,j)*(v_ub(j)-v_lb(j))/2; position=find(AI(:,j)~=0); AI(position,j)=R2(:,j).*sign(y_m1(:,j)-y_m2(:,j)).*sign(x_m1(:,j)-x_m2(:,j))*(v_ub(j)-v_lb(j))/2; end end for i=1:numAgent p =tanh(abs(y(i)-y_c)); %EQ.2-30 if randub)=ub(x(i,:)>ub); tempY(i,:)=y(i); y(i)=fobj(x(i,:)); if tempY(i,:)ub)=ub(x(i,:)>ub); y(i)=fobj(x(i,:)); end if y(i)L for i=1:numAgent x(i,:)=(ub-lb)*rand+lb; y(i)=fobj(x(i,:)); if y(i)3 仿真结果
4 参考文献
[1]于涛. 基于改进蚁群算法的三维无人机路径规划的研究与实现[D]. 重庆大学.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~