胡小建, 袁恒星
(合肥工业大学 管理学院,安徽 合肥 230009)
自动化立体仓库(automated storage and retrieval system,AS/RS)是物流仓储中出现的新概念,也是近年来物流企业采用的主要仓储形式。智能化立体仓库结合射频识别技术(radio frequency identification,RFID)、堆垛机(storage/retrieval machine,SRM)等设备,使用计算机控制和管理,能完成自动化出入库等操作。
安徽博一流体传动股份有限公司(以下简称为BY)是一家从事液压系统元件研发制造的传统制造型企业。本文以BY数字化车间自动化立体仓库管理系统实际开发为例,研究解决在零部件自动化出入库管理时的货位分配优化问题。所谓货位分配问题就是在零部件放入工装板或周转箱完成组盘后,将工装板或周转箱放入立体仓库中某个货位前,要在立库中为其分配1个空货位,在分配空货位时要考虑很多因素,也有很多策略和原则。本文研究的是在BY数字化车间立体仓库实际场景和优化需求下,制定选择货位分配优化策略和原则,并建立相应的模型和求解模型。
BY公司新建的液压柱塞泵智能生产线共由1套智能仓储、1条清洗线、2条部装线及1条总装线组成,该公司泵体生产线总体平面布局图如图1所示。
图1 BY公司泵体生产线总体平面布局示意图
BY公司数字化车间是根据生产计划运送入库一定数量的零部件到立体仓库,立体仓库则根据部装区装配需求及时准确地出库零部件,非标件还需经过清洗,再由有轨制导车辆(rail guided vehicle,RGV)运送到各工作站,由机器人以及人工协助装配完成整泵产品。本文主要研究的是智能仓储区自动化立体仓库的货位分配优化问题。智能仓储系统由固定货架、堆垛机、RGV小车、工装板、周转箱、手持终端、RFID读写器、RFID电子标签以及各种控制传感器等组成。该车间的自动化立体仓库平面结构示意图如图2所示,一共有4排货架和2个巷道,每个巷道左右各有1排货架。每排货架有7层20列共140个货位。
图2 自动化立体仓库平面结构示意图
装配1台整泵需要的零部件多达上百种。因为零部件的种类繁多,尺度重量、大小形状等各不相同,为了方便管理和机器人装配,必须根据装配工艺和一定的规则对零部件进行组盘,将各种不同的零部件有机地组合到各个工装板和周转箱里存放。最终形成7种工装板和8种周转箱,在立体仓库里就是以这15种载体进行单元化存储的。
在BY数字化装配车间里,自动化立体仓库相当于一个“中介”角色,起到一个从各个物料大仓库到智能装配线之间的缓存作用,在数字化车间中起很关键的作用。因此,提高立体仓库的安全性、稳定性以及作业效率对整个车间的安全生产和工作效率至关重要,而货位分配优化不仅能更好地利用仓库空间,减少仓库的空间浪费和闲置,还能有效地使用劳动力和设备,提高立体仓库工作效率[1]。
将货物存储策略和货位分配原则结合起来应用于仓储管理,会大大提高仓储作业效率[2]。一般立体仓库的存储策略有定位存储、随机存储、分类存储、分类随机存储和共享存储等[3]。根据以上5个基本存储策略,文献[4-6]提出了一种基于映射的货品-货位耦合分配策略,即将出库率高的货物和距出库口近的货位对应,对仓库进行分区。这种策略不仅库位利用率低,而且还忽略了很多如货架整体稳定性和安全性等重要因素,因此一个立体仓库是否需要分区,应该根据实际情况,一般仓库较大货架较长需要分区;存放用量很大、单盘存量较少的物料或者一些特殊货物(如腐蚀品等)必须同其他货物分开存放的也有必要分区[7]。
在选择了合适的存储策略基础上,货位的分配还应遵循一定货位分配原则,针对自动化立体仓库主要有先入先出原则;先取后存、由近及远原则,即在多任务作业周期中,出入库任务冲突时出库任务优先,执行入库任务时,先执行离入库口近的任务;上轻下重、承重均匀原则;改进的先入先出原则等[8]。
根据上述货位存储策略和分配原则,本文结合BY公司立体仓库零部件种类繁多、数量较多等实际情况,并要求新建的数字化车间中立体仓库空间足够大,库位够用;而且立体仓库较小,库体较短,存放用量不大,设计的单个工装板或周转箱存量较大。这说明无需对立库进行明确分区。考虑到立库中零部件是否能及时准确到位决定着整个数字化车间能否正常运行,因此要分巷道存放,同种货物分散各巷道存放,防止出现堆垛机故障,保证可靠性。
综上所述,本文根据BY的实际情况提出货位优化基本思路:首先采用分巷道存放原则来确定堆垛机的选择,使零部件种类在两巷道间分布均匀;然后在每一个巷道中采用定位存储策略,在采用定位存储策略的同时根据优化目标进行货位优化,继而在货物入库前确定好其固定库位。
立体仓库的优化目标较多,本文针对BY公司数字化车间零部件供给需要满足装配线即时(justin time,JIT)生产的要求,将提高出库效率,减少堆垛机行驶时间作为主要优化目标;同时考虑到BY产品液压元件的零部件质量较大,公司安全生产要求较高,因此必须考虑货架的稳定性和安全性。据此确定优化目标为:
(1) 降低整个货架合成重心,货架的承载能力是有限的,要根据货架实际承受能力合理安排货物的存放货位[9],尽量使货架的整个重心偏下,提高货架的稳定性。
(2) 货架的横向受力也要分布均匀,避免将较重的货物集中放在一侧造成货架受力不均,产生倾覆或变形[10]。
(3) 提高出库效率,通过将周转率高的货物放在离出库口近的位置来减少出库时堆垛机的拣选作业时间,提高效率。
根据零部件分巷道存放原则,同类型的货物会均匀分布到每一个巷道的2排货架上,因此本文只考虑1排货架的货位优化。设某排货架共有P列Q层,每个货位的高度为H,宽度为L,第1层货架距地面高度为H0,并将离出库口最近的列定为第1列,最底层定为第1层,将处在第y列z层的货位坐标记为(y,z)(y=1,2,…,P;z=1,2,…,Q)。某排货架的货位布局示意图如图3所示,假设每个货位上存放的货物密度均匀,重心可以看做是货位的几何中心。
为了方便模型求解,用正整数给货位进行编号如图4所示,假设货位编号为n,对应坐标为(y,z),两者之间转换公式为:
y=(n-1)%P+1,
(1)
图3 单排货架的货位布局示意图
图4 单排货架货位编号示意图
根据上文中3个优化目标建立多目标优化数学模型,具体步骤如下:
(1) 提高货架稳定性。货架的稳定性和货架整体的重心有关,重心越低货架越稳,遵循上轻下重的原则,使货架整体重心尽可能的低。在某物体(总质量为M)所在空间任取一空间直角坐标系,则该物体可微元出i个质点,每个质点对应各自坐标(xi,yi,zi)及质量mi,M=m1+m2+…+mi,设该物体重心为G(X,Y,Z),则有:
(2)
将(2)式应用到求某排货架的重心中,则可以得出此目标的数学模型为:
minF1(y,z)=
(3)
其中,kyz、Myz分别为第y列z层货位上工装板或周转箱中物品的种类数和该货位上工装板或周转箱的质量;m和n分别为该工装板或周转箱中各个种类零部件的质量和数量。此目标函数使货架整体重心最低。
(2) 使货架横向受力均匀。图3中尽量将货物以PL/2为中线对称分布,原理同垂直方向上重心最低。用数学模型可以描述为:
minF2(y,z)=
(4)
(3) 提高出库效率。提高出库效率即使堆垛机出库拣选货物耗时最短。用数学模型可以描述为:
(5)
上文针对不同的优化目标分别建立了相应的目标函数,构成了多目标优化模型。考虑到多目标优化[11]中各目标函数之间往往相互冲突,通常不存在对所有目标都是最优的解,需要综合考虑,求解一组均衡解,即全局最优解。
求解多目标优化问题的方法有很多,结合模型特点本文最终选择用改进的遗传算法并结合谢菲尔德(Sheffield)遗传算法工具箱[12]进行求解。遗传算法不依赖问题的具体领域,对问题的种类具有很强的鲁棒性,且遗传算法具有较好的全局搜索性能,搜索过程中不容易陷入局部最优,能以很大的概率找到全局最优解。
本文首先采用权重系数法给各目标函数赋予权重,以把模型变成利于计算的单目标函数问题[13]。由于3个目标函数值不是一个量纲,且都不在一个数量级范围内,因此在加权重系数前先要去量纲。本文采用极差法对各目标函数进行去量纲操作,具体公式为:
(6)
其中,f为各目标函数;fmin、fmax分别为相应各目标函数的最小值和最大值。本文3个目标函数通过转换后分别记为f1′、f2′、f3′,这样3个目标函数值都映射到(0,1)区间内,成为无量纲函数。再采用主观赋权法确定各目标权重系数分别为0.25、0.25、0.50,因此,组合后的单目标函数为:
minF(y,z)=0.25f1′+0.25f2′+0.50f3′
(7)
(1) 编码设计。使用整数编码方式。每一个整数对应一个货位,如图4所示,每个整数通过(1)式转换成货位坐标。由于采用的是定位存储策略,一个货位上只能放一种工装板或周转箱,但是由于零部件数量较多,需要多个工装板或周装箱放同样的零部件,这时货位与货物的关系就是多对一的映射关系,多个货位对应一种工装板或周转箱。
(2) 生成初始种群。因为货位与货物是多对一的映射关系,所以对于放置相同工装板或周转箱的货位也应视作不同货物的货位,也就是说一个工装板或周转箱对应一个货位,在数量上不区分种类。如本文BY公司的立体仓库某排货架共有140个货位,就用数字1~140的整数表示。假设要入库15种40个工装板或周转箱,即要在这140个货位中分配40个放置这15种货物。40个货物假设编号为1~40,保持货物的排列顺序不变,随机生成40个不重复的1~140的整数构成一条染色体,染色体由按货物编号顺序排列的货位分配编号组成,具体如图5所示,其中一条染色体表示一种可能的分配方案。
图5 染色体编码示意图
(3) 适应度函数设计。适应度函数是用来计算适应度的,适应度大小与个体遗传到下一代的概率成正比。本文目标函数均是求最小值,因此将目标函数取倒转化成适应度函数,考虑到目标函数的取值可能会接近于0,为防止正向溢出对目标函数加1处理。本文加权重系数后的单目标适应度函数为:
f(y,z)=
(8)
(4) 选择算子。选择算子根据适应度大小在父种群中选择一定数量的个体遗传到下一代子种群,这个选择比例由代沟确定。本文在选择个体时使用随机遍历抽样的方法,即通过获得适应度向量的累加和完成随机遍历抽样的表格,被选择的个体的索引是通过比较产生的数与向量累加和来决定的,一个个体被选择的概率计算公式如下:
(9)
其中,f(xi)为个体xi的适应度;NIND为种群中的个体数;F(xi)为这个个体被选择的概率。
(5) 交叉算子。本文采用单点交叉的方式完成交叉操作。
(6) 变异算子。本文采用基本位变异方法,即对个体编码串中以变异概率、随机指定的某一位或某几位基因座上的值做变异运算,但是要控制每个位置变异后的数不能超过货位数,也就是要在[1,140]之间。
(7) 取整和去重。由于本文采用编码方式且上文中提到的货位与货物的关系,因此必须保证每个染色体上的每个基因都是一定范围内的整数,且每条染色体上的基因不能出现重复。因此在交叉和变异操作后进行取整和去重复的操作,防止在这个过程中出现不满足条件的个体。
(8) 重插入生成新种群。经过上述步骤后将生成的子种群再插入到当前父种群中,代替当前父种群中适应度小的个体,返回新的结果种群。
本文已对BY公司立体仓库的货位优化问题建立了数学优化模型并进行了算法的选择和算法的设计,据此使用Matlab软件进行编程计算和仿真验证。
优化仿真基本参数见表1所列,将参数带入到Matlab程序中(各工装板或周转箱中零部件种类、数量和重量数据省略)。运行Matlab程序得到优化前和优化后最优货位分配方案见表2所列,搜索过程中每代最优解以及种群均值的跟踪图如图6所示。
表1 优化仿真基本参数
表2 优化前后货位分配方案
图6 加权目标函数最优解和种群均值跟踪图
从图6可看出,遗传算法对该目标函数有较好的优化效果,进行了350次迭代优化后已经趋向收敛,并最终得到全局最优解。最优目标函数值从优化前的0.437 1,经过优化后降到0.231 0。优化后的货位分配在提高货架稳定性、使货架横向受力均匀和提高出库效率3个方面达到一个全局最优状态。
本文以BY数字化车间自动化立体仓库管理系统实际开发为例,研究货位优化问题。根据公司货位优化实际需求和实际情况设计货位分配策略和改进货位分配原则,建立了多目标优化数学模型,用遗传算法进行设计,使用Matlab软件进行编程实现并进行了实例计算,获得了全局最优解,结果证明该方法是有效切实可行的,保证立库货架稳定性和安全性的同时提高了作业效率。在当前大力发展智能制造的背景下进行了有益的探索,具有一定的理论与实践意义。