0
点赞
收藏
分享

微信扫一扫

【路径规划】基于粒子群和遗传算法求解充电量和时间窗约束下的多AGV路径规划问题复matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。​

⛄ 内容介绍

路径规划是研究自动导引车( automated guided vehicle, AGV) 运行最根本、最关键的内容之一,目的在于按照确定 的评价标准( 最短路径、最短时间或能量消耗最少等) 在起 始点和目标点之间寻找一条路径,使 AGV 可以安全到达目的点[1]。

⛄ 部分代码

clc;

clear;

close all;

%% 载入数据

data.map=xlsread('data.xlsx',1);

data.power=xlsread('data.xlsx',2);

%% 地图重构

[data.m,data.n]=size(data.map);

data.numNode=data.m*data.n;

data.numV=length(find(data.map==1));

data.numB=length(find(data.map==2));

data.node=zeros(data.m*data.n,5);

conection=[];

for i=0:2

    position3=find(data.map==i);

    [position1,position2]=find(data.map==i);

    data.node(position3,1)=position3;

    data.node(position3,2)=position1;

    data.node(position3,3)=position2;

    data.node(position3,4)=i;

    for j=1:length(position3)

        position=position3(j);

        try

        if position1(j)~=1

            conection=[conection;[position,position-1,data.node(position,2:3),data.node(position-1,2:3)]];

        end

        if position1(j)~=data.m

            conection=[conection;[position,position+1,data.node(position,2:3),data.node(position+1,2:3)]];

        end

        if position2(j)~=1

            conection=[conection;[position,position-data.m,data.node(position,2:3),data.node(position-data.m,2:3)]];

        end

        if position2(j)~=data.n

            conection=[conection;[position,position+data.m,data.node(position,2:3),data.node(position+data.m,2:3)]];

        end

        catch

            a=1;

        end

    end

end

%%

figure

hold on

for i=1:length(conection(:,1))

    plot(data.node(conection(i,1:2),2),data.node(conection(i,1:2),3),'b-','LineWidth',2)  

end

position=find(data.node(:,4)~=-1);

plot(data.node(position,2),data.node(position,3),'ko','MarkerEdgeColor','k',...

                     'MarkerFaceColor','g','MarkerSize',10)

position=find(data.node(:,4)==1);

plot(data.node(position,2),data.node(position,3),'rd','MarkerEdgeColor','k',...

                     'MarkerFaceColor','r','MarkerSize',10)

position=find(data.node(:,4)==2);

plot(data.node(position,2),data.node(position,3),'mh','MarkerEdgeColor','k',...

                     'MarkerFaceColor','m','MarkerSize',10)

% for i=1:length(data.node(:,2))

%     text(data.node(i,2),data.node(i,3),num2str(i));

% end


% for i=1:length(data.node(:,2))

%     text(data.node(i,2),data.node(i,3),num2str(i));

% end

⛄ 运行结果

【路径规划】基于粒子群和遗传算法求解充电量和时间窗约束下的多AGV路径规划问题复matlab代码_参考文献

【路径规划】基于粒子群和遗传算法求解充电量和时间窗约束下的多AGV路径规划问题复matlab代码_参考文献_02

【路径规划】基于粒子群和遗传算法求解充电量和时间窗约束下的多AGV路径规划问题复matlab代码_路径规划_03

⛄ 参考文献

[1]丁承君, 王鑫, 冯玉伯,等. 基于粒子群优化算法的AGV路径规划[J]. 传感器与微系统, 2020, 39(8):4.

[2]徐怡, 刘则治, 吴招富. 一种基于粒子群算法的AGV调度路径规划方法及系统:. 

[3]王富立. 智能制造车间的多AGV路径规划和调度[D]. 重庆邮电大学, 2020.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


举报

相关推荐

0 条评论