一种基于步长的多AGV实时调度方法技术

技术编号:25225805 阅读:78 留言:0更新日期:2020-08-11 23:14
本发明专利技术涉及一种基于步长的多AGV实时调度方法,构建地图相关的图数据结构、AGV小车数据结构,图数据结构表示当前地图中各个站点的连接关系;AGV小车数据结构表示与AGV小车相对应的任务路径以及其行驶状态和未来行驶路径状态。本发明专利技术能够有效处理因AGV小车因死锁导致调度系统瘫痪的问题以及调度等待时间过长问题。

【技术实现步骤摘要】
一种基于步长的多AGV实时调度方法
本专利技术涉及AGV实时调度领域,具体涉及一种基于步长的多AGV实时调度方法。
技术介绍
在使用自动导引小车AGV(AutomatedGuidedVehicle)物流仓库中,尤其是使用了多台AGV的情况下,AGV小车在搬运货物过程中,不可避免地会引发AGV的碰撞冲突和死锁。AGV发生碰撞冲突和死锁将直接导致物流仓库系统瘫痪。因此研究多AGV调度过程中避免冲突碰撞死锁是AGV研究问题的重要领域,不仅对于AGV调度系统理论的发展有重大促进作用,而且能够应用于实际物流仓库,解决物流仓库低吞吐量的问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于步长的多AGV实时调度方法,有效处理因AGV小车因死锁导致调度系统瘫痪的问题以及调度等待时间过长问题为实现上述目的,本专利技术采用如下技术方案:一种基于步长的多AGV实时调度方法,包括以下步骤:步骤S1:采用图论对多AGV运行环境进行数学建模;步骤S2:基于数据结构与编程语言,构建AGV小车类;步骤S3:初始化AGV小车各属性,postion初始化为0;步骤S4:初始化地图和站点列表;步骤S5:如果任务队列不为空,对postion开始到序列末尾作为起点到终点的站点序列,根据序列长度对AGV小车行驶优先级进行排序,初始化AllcolSite为最长序列长度+1,第一序列set、dict初始化为空,当前序列colSite初始化为本序列长度;步骤S6:遍历序列,初始化TemcolSite为序列长度,从第二序列开始先复制前一序列的set与dict,若此站点不在当前set中,则将此站点信息添加到set和dict中;若此站点已在当前set中,该站点序号若小于TemcolSite,则更新TemcolSite,再判断此站点序号是否小于dict中站点对应序号,若是,则更新dict中对应值,若否,退出对本序列的循环;若TemcolSite小于colSite和AllcolSite,则更新colSite和AllcolSite为TemcolSite的值;步骤S7:.当遍历完所有序列,得到AllcolSite的值,若AllcolSite等于1,则循环检查每辆小车的colSite值,若colSite大于1,则将该小车往前调度一个站点,也就是将每辆小车的postion+1;若colSite等于1,则等待下一轮调度;若AllcolSite大于1,对序列做循环检查,判断AllcolSite是否大于本序列长度,若是,将每辆小车的postion设为序列长度,若否,则将每辆小车的postion设为AllcolSite-1,表示将小车调度到最早可能出现冲突站点的前一位置;步骤S8:等待小车调度到postion站点位置,若到达最终站点,则可根据需要更新该小车任务序列或将序列置空,然后跳转到步骤S5开始下一次调度;步骤S9:当所有序列都为空时,结束调度,完成AGV小车实时调度。进一步的,所述步骤S1具体为:路径抽象为图形的边缘,站点抽象为节点,即图G=(V,E),其中V是顶点的有限集合,即V={v1,v2}。E={e1,e2,...en},如果<vi,vj>∈E,则<vi,vj>表示两个顶点之间的一条边,图形的存储结构通过邻接矩阵或相邻列表来实现。进一步的,所述AGV小车类包括序号、任务路径序列列表L、用以存储在本车之前出现过的路径站点的集合序列set、用以存储集合set中序列对应最小行驶步长的dict、用以记录当前小车所处站点在序列中位置的postion、以及用以记录当前序列最早可能出现冲突站点在序列中位置的colSite;同时设置一个全局变量AllcolSite,用以记录当前全局最早可能出现冲突站点在序列中位置,一个在序列循环中的临时变量TemcolSite,用以记录当前序列临时的最早可能出现冲突站点在序列中位置。本专利技术与现有技术相比具有以下有益效果:1、本专利技术能够有效处理因AGV小车因死锁导致调度系统瘫痪的问题以及调度等待时间过长问题。2、本专利技术能够保证物流仓库系统在调度过程中不会出现死锁及瘫痪,提高物流仓库系统的工作效率,且对调度顺序及流程进行了优化,减少了调度等待时间。附图说明图1是本专利技术一实施例中方法流程图;图2是本专利技术实施例1中调度系统的初始状态;图3是本专利技术实施例1中第一次调度后的路径与站点状况;图4是本专利技术实施例1中第二次调度后的路径与站点状况;图5是本专利技术实施例1中小车行驶过程图;图6是本专利技术实施例1中小车行驶过程图;图7是本专利技术实施例1中小车行驶过程图;图8是本专利技术实施例1中小车调度的最终位置。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。请参照图1,本专利技术提供一种基于步长的多AGV实时调度方法,包括以下步骤:步骤S1:采用图论对多AGV运行环境进行数学建模;具体为:路径抽象为图形的边缘,站点抽象为节点,即图G=(V,E),其中V是顶点的有限集合,即V={v1,v2}。E={e1,e2,...en},如果<vi,vj>∈E,则<vi,vj>表示两个顶点之间的一条边,图形的存储结构通过邻接矩阵或相邻列表来实现。步骤S2:基于数据结构与编程语言,构建AGV小车类,包括序号、任务路径序列列表L、用以存储在本车之前出现过的路径站点的集合序列set、用以存储集合set中序列对应最小行驶步长的dict、用以记录当前小车所处站点在序列中位置的postion、以及用以记录当前序列最早可能出现冲突站点在序列中位置的colSite;同时设置一个全局变量AllcolSite,用以记录当前全局最早可能出现冲突站点在序列中位置,一个在序列循环中的临时变量TemcolSite,用以记录当前序列临时的最早可能出现冲突站点在序列中位置。步骤S3:初始化AGV小车各属性,postion初始化为0;步骤S4:初始化地图和站点列表;步骤S5:如果任务队列不为空,对postion开始到序列末尾作为起点到终点的站点序列,根据序列长度对AGV小车行驶优先级进行排序,初始化AllcolSite为最长序列长度+1,第一序列set、dict初始化为空,当前序列colSite初始化为本序列长度;步骤S6:遍历序列,初始化TemcolSite为序列长度,从第二序列开始先复制前一序列的set与dict,若此站点不在当前set中,则将此站点信息添加到set和dict中;若此站点已在当前set中,该站点序号若小于TemcolSite,则更新TemcolSite,再判断此站点序号是否小于dict中站点对应序号,若是,则更新dict中对应值,若否,退出对本序列的循环;若TemcolSite小于colSite和AllcolSite,则更新colSite和AllcolSite为TemcolSite的值;步骤本文档来自技高网...

【技术保护点】
1.一种基于步长的多AGV实时调度方法,其特征在于,包括以下步骤:/n步骤S1:采用图论对多AGV运行环境进行数学建模;/n步骤S2:基于数据结构与编程语言,构建AGV小车类;/n步骤S3:初始化AGV小车各属性,postion初始化为0;/n步骤S4:初始化地图和站点列表;/n步骤S5:如果任务队列不为空,对postion开始到序列末尾作为起点到终点的站点序列,根据序列长度对AGV小车行驶优先级进行排序,初始化AllcolSite为最长序列长度+1,第一序列set、dict初始化为空,当前序列colSite初始化为本序列长度;/n步骤S6:遍历序列,初始化TemcolSite为序列长度,从第二序列开始先复制前一序列的set与dict,若此站点不在当前set中,则将此站点信息添加到set和dict中;若此站点已在当前set中,该站点序号若小于TemcolSite,则更新TemcolSite,再判断此站点序号是否小于dict中站点对应序号,若是,则更新dict中对应值,若否,退出对本序列的循环;若TemcolSite小于colSite和AllcolSite,则更新colSite和AllcolSite为TemcolSite的值;/n步骤S7:.当遍历完所有序列,得到AllcolSite的值,若AllcolSite等于1,则循环检查每辆小车的colSite值,若colSite大于1,则将该小车往前调度一个站点,也就是将每辆小车的postion+1;若colSite等于1,则等待下一轮调度;若AllcolSite大于1,对序列做循环检查,判断AllcolSite是否大于本序列长度,若是,将每辆小车的postion设为序列长度,若否,则将每辆小车的postion设为AllcolSite-1,表示将小车调度到最早可能出现冲突站点的前一位置;/n步骤S8:等待小车调度到postion站点位置,若到达最终站点,则可根据需要更新该小车任务序列或将序列置空,然后跳转到步骤S5开始下一次调度;/n步骤S9:当所有序列都为空时,结束调度,完成AGV小车实时调度。/n...

【技术特征摘要】
1.一种基于步长的多AGV实时调度方法,其特征在于,包括以下步骤:
步骤S1:采用图论对多AGV运行环境进行数学建模;
步骤S2:基于数据结构与编程语言,构建AGV小车类;
步骤S3:初始化AGV小车各属性,postion初始化为0;
步骤S4:初始化地图和站点列表;
步骤S5:如果任务队列不为空,对postion开始到序列末尾作为起点到终点的站点序列,根据序列长度对AGV小车行驶优先级进行排序,初始化AllcolSite为最长序列长度+1,第一序列set、dict初始化为空,当前序列colSite初始化为本序列长度;
步骤S6:遍历序列,初始化TemcolSite为序列长度,从第二序列开始先复制前一序列的set与dict,若此站点不在当前set中,则将此站点信息添加到set和dict中;若此站点已在当前set中,该站点序号若小于TemcolSite,则更新TemcolSite,再判断此站点序号是否小于dict中站点对应序号,若是,则更新dict中对应值,若否,退出对本序列的循环;若TemcolSite小于colSite和AllcolSite,则更新colSite和AllcolSite为TemcolSite的值;
步骤S7:.当遍历完所有序列,得到AllcolSite的值,若AllcolSite等于1,则循环检查每辆小车的colSite值,若colSite大于1,则将该小车往前调度一个站点,也就是将每辆小车的postion+1;若colSite等于1,则等待下一轮调度;若AllcolSite大于1,对序列做循环...

【专利技术属性】
技术研发人员:郭一晶周绪墙陈炳飞邱义刘暾东邵桂芳黄斯奇曾翊昕
申请(专利权)人:厦门大学嘉庚学院
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1