自动化立体仓库出入库调度研究
1 引言
自动化立体仓库是一种用计算机控制管理和用自动控制装置控制堆垛机进行存取作业的仓库。对于给定的自动化立体仓库,其运行效率高低与出入库调度系统的设计好坏有密切关系,文献?1?3?对自动化立体仓库系统优化调度进行了较深入的研究,所采用的方法包括Petri网、时态逻辑、模拟退火、遗传算法、神经网络、弹性网算法等。除这些方法外,专家系统是一种应用较广的调度方法,但其在自动化立体仓库出入库调度中的应用却很少有文献涉及。本文在对常见的自动化立体仓库作业调度和货位分配原则进行归纳总结的基础上,建立专家系统的知识库和推理机制,通过算例探讨了专家系统在立体仓库调度中应用的可行性。
2 立体仓库模型
立体仓库包括输送系统、出入库台、巷道堆垛机、货架等几部分,其布局如图1所示。其中输送系统负责将经过分拣的货物送至各巷道的入库台以及将各出库台的货物送出立体仓库。每一巷道内有一台堆垛机在巷道内运行,将货物从货架取出放在出库台或将入库台的货物放入货架。立体仓库的整体布置方式为同端式,即货物同端出入库。仓库规模为12(行)×50(列)×7(层)=3 500(个)货位,属于中型在线仓库。根据货物出入库频率及重量,将整个仓库划分为A、B、C三个区,方便货物管理。假设模型中输送系统物流畅通,即入库时堆垛机可以及时从入库台得到入库货物,出库时输送系统能将出库台的货物及时运走。
3 立体仓库调度专家系统的建立
3.1立体仓库调度专家系统基本构成?4?
所谓专家系统,就是一种在相关领域中具有专家水平解题能力的智能程序系统,它能应用专家多年积累的经验与专门知识,模拟人类专家的思维过程,求解需要专家才能解决的困难问题。
本专家系统有六个组成部分:输入部分、知识库、推理子系统、综合数据库、解释子系统和知识获取系统。如图2所示。
知识库存储从专家那里得到的关于立体仓库出入库调度的专门知识;推理子系统具有依据一定调度策略进行推理的能力,即能够依据知识库推导出结论而不是简单地去搜索现成的答案;综合数据库用于存放系统运行过程中所需要和产生的所有信息,包括问题的描述、中间结果、解题过程的记录等信息;解释子系统负责回答用户提出的各种问题;知识获取子系统负责管理知识库中的知识,包括根据需要修改、删去或添加知识及由此引起的一切必要的改动,维持知识库的一致性、完整性等。
3.2立体仓库专家系统知识库的建立
立体仓库的出入库调度任务主要包括两个方面:一是作业任务调度,即将众多待执行的任务进行排序;二是货位管理,即货物入库、出库时为其分配最优货位。知识库就是在作业调度原则和货位管理原则的基础上建立的。
3.2.1作业调度原则(任务排序)?1??3?
(1)先到先服务原则:这是出入库调度的基本原则之一,不考虑任务类型和优先级等因素,先到的任务申请先处理。这种原理适用于同类任务或优先权对系统影响很小的系统。
(2)优先权原则:将任务赋予优先权,在处理任务时,按优先级的高低排序,优先响应优先权最高的任务。
(3)处理时间最短原则:每一个出入库任务的完成时间是不相同的,先处理那些完成时间短的任务申请,减少货物在线贮存量。这一规则对完成任务小、批次多的系统尤为适用。
(4)处理时间最长原则:按完成时间长的任务排队,优先处理完成时间最长的任务。
(5)随机规则:不考虑出入库任务的优先级,也不考虑任务执行的时间长短,而是从申请任务的队列中随机响应某个申请。这主要是考虑对每个任务的均衡响应。
(6)联合出入库原则:在有多项出库和入库任务时,适当把出库任务和入库任务进行优化组合,满足条件的出库任务和入库任务组合成联合作业,可缩短存取周期,提高存取效率。
(7)中断抢先原则:在任务执行的过程中,将一批任务分成若干个存取单元,每执行完一个单元,都再次执行调度,从而保证优先级较高的任务可以被及时执行。
3.2.2 货位管理原则
(1)分巷道存放原则:目的是提高仓库的可靠性。要求将同一种规格的货物尽量均匀分散在不同的巷道进行存放。这一原则可以使所有的堆垛机同时高速运行,同时防止某一台堆垛机损坏或某一巷道发生阻塞而不能进行出入库操作,造成生产中断,物流阻塞。
(2)就近原则:这一原则可以提高效率。不同频率、重量的货物在立体仓库中的位置也是不相同的,按就近原则,入库时在相应的区域内寻找最靠近入口的空货位,出库时寻找时间最早又最靠近出口的货物,这样使出入库时间最短,达到提高效率的目的。
(3)货架受力均匀原则:上轻下重,使货架受力稳定;分散存放,货物分散存放在仓库的不同位置,保证货架受力均匀,防止货架因受力不均匀而发生变形、倾覆。
(4)先入先出原则:同种货物出库时,先入库者,先提出库,以加快物料周转,避免因物料长期积压产生锈蚀、变形变质以及其它损坏。
(5)货位分区原则:根据货物出入库频率和特性,将立体仓库划区,方便管理。
3.2.3 知识库的建立
知识库的建立好坏,直接影响推理机制的速度及效率。本专家系统知识库的建立采用产生式规则表示法(又称规则表示法)。产生式规则的基本形式是:
P→Q 或者 IF P THEN Q
其含义是:如果前提P满足,则可推出结论Q或执行Q所规定的操作。
根据以上形式和原则,建立立体仓库专家系统的知识库。知识库中的部分规则表示如下:
R1: IF 堆垛机忙 THEN 堆垛机状态置为1;ELSE 堆垛机状态置为0;
R2: IF 堆垛机状态为0 THEN 为堆垛机下发指令;
R3: IF 货位已经有货 THEN 货位状态置为1;ELES 货位状态置为0;
R4: IF 货位状态为0 THEN 可以放货物;
R5: IF 货物入库 THEN
频率F=;
R6: IF 频率F>1次天 AND 货物入库 THEN 货物放入立体仓库A区;
R7: IF 频率F(1,0.3) AND 货物入库 THEN 货物放入立体仓库B区;
R8: IF 货物重量>1 000Kg AND 货物入库 THEN 货物放入立体仓库最低层;
R9: IF 货物重量<50Kg AND 货物入库 THEN 货物放入立体仓库最高层;
R10:IF货物重量(50Kg,1 000Kg)AND 货物入库 THEN 货物放入立体仓库2~7层;
R11:IF 入库 THEN 在相应区域内先左后右、先下后上、先外后里寻找货位;
R12:IF 出库 THEN 得到货物所在区域;
R13:IF出库数量 THEN 出库时间TMAX=货物所在区域最长时间×安全系数×出库数量;
R14:IF 最迟出库任务完成时间 THEN出库任务最迟执行时间=最迟出库任务完成时间-TMAX;
R15:IF 入库任务顺次到达 THEN 先到先服务;
R16:IF 入库任务同时到达 THEN完成时间短的任务先服务;
R17:IF 出库任务顺次到达 THEN 判断新任务是否能在最迟执行时刻完成前面任务,否则中断前一任务优先执行;
R18:IF 出库前一任务为入库 AND 出库任务最迟执行时间>入库任务完成时间 THEN 对堆垛机交替发出库、入库指令,进行联合出入库。
R19:IF 出库任务前有入库任务 AND 出库任务最迟执行时间<入库任务完成时间 THEN 终止入库任务的执行,优先执行出库任务;
R20:IF 同一频率的入库 THEN 入库数量少的先执行;
R21:IF 出库 THEN 按入库日期先入先出;
在上面规则中,其中R1、R2是对堆垛机状态的判断及操作;R3~R11是货位管理原则;R12~R21是对任务优先级的判别。
3.3推理机制的选择?5?
推理子系统负责整个专家系统的运行,实现立体仓库出入库的调度。其主要工作是:按一定的策略从知识库中选择规则前提与综合数据库中的已知事实进行匹配。如果前提与综合数据库的某条信息一致,则认为匹配成功,将结论加入到综合数据库,或执行前提所得的操作。其正向推理流程框图如图3所示。
其工作过程是:先将基本信息输入综合数据库,即将综合数据库初始化,然后从规则库中取出第一条规则R1,检查其前提是否可与综合数据库中的已知事实匹配。如果事实与R1前提不匹配,则R1不参与推理。取出R2等进行同样的工作,并且一直循环,直到得到最终的结论。
这种求解过程是一个不断地从规则库中选取可用规则与综合数据库中的已有事实进行匹配,规则的每一次匹配成功都使综合数据库增加了新的内容,并朝着问题的求解方向前进了一步。
3.4任务的执行
一批任务的执行程序示意图如图4所示。首先根据任务优先级建造任务队列,再根据堆垛机状态和货位分配原则,为货物分配货位,给堆垛机下发准确的出入库指令,由堆垛机执行完成。在整个过程中,任务作业调度、堆垛机调度和货位的分配通过专家系统中推理机制来确定。
4 算例
初始化综合数据库。假设堆垛机状态都为0,有2个入库任务,2个出库任务。堆垛机水平速度为30mmin,垂直速度为10mmin,堆垛机每执行一次取放操作任务的时间为10s。
其出入库任务货物的标准参数如表1:
根据知识库中知识,由表1可以看出,A最先到达,B的优先权最高,C、D处于同一货位区。
计算机仿真过程如下:先执行部分A任务,B任务到达以后中断执行A任务,而开始执行任务B,随后执行任务C,并与D进行联合出入库,最后完成任务A。
任务具体执行过程分析如下:任务A到达,堆垛机开始执行货物A的入库任务,执行一批任务以后返回入库台,共花费2.5分钟。由于任务B的到达,根据任务排序,堆垛机中断执行A任务,而开始执行优先级比较高、有时间要求的B任务。完成B任务共花费2.4分钟,加上等待完成A任务的1.5分钟,任务B从任务到达到任务结束共花费3.5分钟,满足时间要求。剩下的任务A、C、D中,C的优先权最高,按最高优先权原则,堆垛机先执行任务C。按货位管理原则,C、D在同一货位区,同时C、D任务完成的最迟时间都没有限制,因此C、D可以进行联合出入库。完成C、D任务共花费了5.4分钟。在D任务入库的同时剩余的A也在执行,完成剩余的A任务总共花费了7.5分钟。这四项任务从第一个任务到达至任务完全完成总共花费了17.1分钟。
如果只是按顺序执行任务,则完成这四个任务总共需要19.8分钟(假设堆垛机无故障,一直正常运行)。不但花费时间很长,而且有时不能满足生产需求。因此使用此专家系统,基本上实现了任务执行的合理调度,满足生产需求。
5 总结
本文在建立自动化立体仓库模型基础上,建立了专家系统的知识库和推理机制,最后通过VC++编制了相应的算法程序,实现了基于专家系统的自动化立体仓库出入库的调度仿真,达到了比较理想的结果,算例结果表明该方法是可行的。本文仅是对专家系统应用于立体仓库调度的一个初步探索,要达到完全实用,尚需进一步研究。