1 简介
本文提供无人机领域内的一种基于粒子群和PRM的无人机航迹规划方法,在无人机飞行空间中进行随机采点,并根据环境中禁飞区,雷达区等障碍物信息利用PRM方法构建概率地图,把连续空间的规划问题转化为拓扑空间的规划问题,之后,根据无人机的位置以及分配到的任务位置确定源点位置和目标点位置,并把无人机从源点到达目标点的路程作为优化目标函数,针对无人机航迹规划模型的特点对分配方案进行编码,利用粒子群算法对问题进行求解,在概率地图中得到一条最短的飞行路径,通过在采样的过程中增加在障碍物附近的采点量,从而强化算法在窄通道中的路径搜索,使其更适用于复杂地形.
2 部分代码
clcclear allclose allxs=0; ys=0; %起始点xt=1.5; yt=8.9; %目标点xobs=[1.5 4.0 1.2]; %障碍物(圆)yobs=[6.5 3.0 1.5];robs=[1.5 1.0 0.8];possize =81; %种群大小gendai =200; %演化代数w =0.9; %权重系数c1= 2; c2 =2; %学习学习因子dim = 5; %每个粒子维度vmax = 1; %速度最大值lim = [0 6 0 10]; %空间范围限制[posx,posy] = initpos(possize,dim,lim,xobs,yobs,robs,xs,ys,xt,yt);%初始化种群[ vx ,vy ] = initv(possize,dim,vmax); %初始化速度pbest =zeros(possize,1); %每个粒子最优适应度pidx =zeros(possize,dim); %每个粒子对应的位置 x方向pidy =zeros(possize,dim); %每个粒子对应的位置 y方向maxgbest = zeros(1); %整个过程中最优适应度maxpgdx = zeros(1,dim); %整个过程全局最优位置 x方向maxpgdy = zeros(1,dim); %整个过程全局最优位置 y方向maxfitvalueall = []; %各代最优适应度theta=linspace(0,2*pi,100); %绘图x坐标figure(1) %绘图句柄for k=1:numel(xobs) %循环绘制障碍物fill(xobs(k)+robs(k)*cos(theta),yobs(k)... +robs(k)*sin(theta),[0.5 0.7 0.8]);hold on;endplot(xs,ys,'bs','MarkerSize',12,'MarkerFaceColor','y'); %绘制起始点plot(xt,yt,'kp','MarkerSize',16,'MarkerFaceColor','g'); %绘制目标点plot([xs maxpgdx xt],[ys maxpgdy yt]) %绘制最优路径axis([0 7 0 10]) %设置坐标轴title('粒子群算法-路径规划');grid on; %设置标题 添加网格figure(2)plot(maxfitvalueall) %绘制适应度变化曲线title('适应度变化曲线'); grid on; %设置标题 添加网格xlabel('代数/n'); ylabel('适应度') %添加轴名称disp(['最优距离:',num2str(1/(maxgbest*10))])
3 仿真结果
4 参考文献
[1]张迎周, 高扬, 孙仪,等. 基于粒子群和PRM算法的无人机航迹规划方法:, CN109683630A[P]. 2019.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
5 代码下载