1/2粒子群-路径规划clearall;closeall;clc;%清空xs=0,ys=0,xg=100,yg=100;%设置100*100大小地图o1=[60,40],o11=o1(1),o12=o1(2);%障碍物1的圆心设置o2=[15,25],o21=o2(1),o22=o2(2);%障碍物2的圆心设置O=[o1;o2];%障碍物组合矩阵O(1,:)=O(1,:)-xs;%障碍物的横坐标O(2,:)=O(2,:)-ys;%障碍物的纵坐标alfa=atan((yg-ys)/(xg-xs));%在本次设计中值为100o=[cos(alfa),sin(alfa);-sin(alfa),cos(alfa)]*(O');r=15;%设置障碍物圆的半径(任何障碍物都可以近似看做是一个圆的区域)Lsg=sqrt((yg-ys)^2+(xg-xs)^2);%障碍物边缘点与原点的距离[TT,Pbest,a,fv]=PSO(@fitness,0.5,2,2,100,30,100,Lsg,alfa,o,r);%%重点掌握上面这个核心函数,粒子群,参照PSO.m文件,参数看不懂可以看查含义s=[xs;ys];%原点(起始点)也就是(0,0)g=[xg;yg];%终点,也就是(100,100)A=[sag];x1=A(1,:);%路线横坐标2/2y1=A(2,:);%路线对应纵坐标(与x1对应)figure(1);plot(x1,y1);%绘制路线title('机器人运动轨迹');%标题xlabel('坐标x');%横坐标名称ylabel('坐标y');%纵坐标名称holdon;gridon;%格子rectangle('Position',[o11-r,o12-r,2*r,2*r],'Curvature',[1,1]),axisequal;rectangle('Position',[o21-r,o22-r,2*r,2*r],'Curvature',[1,1]),axisequal;figure(2);plot(TT,Pbest);%TT为迭代次数,Pbest为适应度函数值title('最优个体适应度','fontsize',12);%绘图设置标题xlabel('进化代数','fontsize',12);%绘图设置横坐标ylabel('适应度','fontsize',12);%绘图设置纵坐标gridon;%格子%%由图可知,本次设计实验中,当迭代次数为80左右时,适应度函数值趋于稳定最优,不同的实验%%适应度函数值趋于稳定最优的时候,迭代次数肯定不一样,务必理解和注意