【路径规划】基于pso的路径规划问题-matlab代码-爱代码爱编程
1. 粒子群算法(PSO)
略。
2. 路径规划问题介绍
路径规划问题一般有两类解决方式,一类是基于数学计算的路径规划方法,另一类是基于智能仿生算法的路径规划方法。其中,智能仿生算法在求解复杂、多约束条件下的路径规划问题时,具有较快的运算速度和较强的适用性,使用最为广泛。
3. 部分代码展示
%% 迭代过程
for i=1:N_gen
for j=1:pop
V(j,:)=w*V(j,:)+c1*rand*(pbest(j,:)-path(j,:))+c2*rand*(bestpath-path(j,:)); %根据公式更新速度
V(j,find(V(j,:)>Vmax))=Vmax; %限制速度大小
V(j,find(V(j,:)<Vmin))=Vmin;
path(j,:)=path(j,:)+V(j,:); %根据公式更新位置
path(j,find(path(j,:)>popmax))=popmax; %限制位置大小
path(j,find(path(j,:)<popmin))=popmin;
[distance,pathpoint,positionPoint]=verify(path(j,:),threat,....
r,startX,startY,endX,endY,gridCount);
fmin=distance;
if fmin<fitness(j)
fitness(j)=fmin; %更新个体最优适应度
pbest(j,:)=path(j,:); %更新个体最优值
end
if fmin<bestFitness
bestFitness=fmin; %更新全局最优适应度
bestpath=path(j,:); %更新全局最优值
pathRecord=pathpoint;
position=positionPoint;
end
end
Fmin(i)=bestFitness;
end
%% 生成山峰(障碍物)
threat=[304 400 0;404 320 0;440 500 0;279 310 0;560 220 0;172 527 0;....
194 220 0;272 522 0;350 200 0;....
650 400 0;740 250 0;540 375 0;510 600 0];
r=[45 50 55 10 70 65 55 25 50 30 40 40 35];
%% 画出障碍物
for i=1:length(r)
figure(1)
[x,y,z]=sphere;
mesh(threat(i,1)+r(i)*x,threat(i,2)+r(i)*y,abs(threat(i,3)+r(i)*z));
hold on
end
4. 结果图展示