您好, 访客   登录/注册

基于matlab立体仓库静态货位分配优化及仿真

来源:用户上传      作者: 邹晖华

   [摘 要] 本文是对一个静态的情况下货品分配货位的探讨;利用权重赋值的方法把多目标问题转化为求解一个目标的情况进行求解;并使用matlab软件进行迭代求解,得到一个很好的收敛优化解。
   [关键词] matlab 立体仓库 货位优化 仿真
  
  前言
  自动化立体仓库又称为自动化仓储AS/RS(Automatic Storage and Retrieval System)系统,它可以按照指令自动完成货物的存取,并能对库存货物进行自动管理,实现自动化作业,具有作业效率高,占地面积小,存储容量大,计算机自动控制等优势,受到企业越来越多的重视。本文主要是就货品静态货位分配进行优化,以达到提高仓库存储效率的目的。
  1.基本假设:
  1)货架是矩形,货架的I/O处位于货架的左下角。货架共有N列,M层,货位长度为w,高度为h。
  2)系统中有多种货物,且每个托盘只存取有一种类型的货物,并且所有的托盘是相同的。货架上所有货位在尺寸上都是相同的,并且任意一个托盘都可以被存放于货架上的任意一个货位。
  3)堆垛机可以在水平方向上和垂直方向上同时运动。为了简化处理,设堆垛机只有一种速度,即其最大速度,最大速度分别为Vh、Ah。
  2.立体仓库基本参数:
  堆垛机运行水平速度:120m/min;托盘货位高:1050mm;堆垛机运行垂直速度:30m/min;货架层数:10;托盘货位长:1300mm;货架列数:20;托盘货位宽:1100mm;托盘型号:1000*1200mm。
  1 建立目标函数
  1.1 货架货位编号
  根据堆垛机运行速度原则为货位进行编号,堆垛机水平运行速度120m/min、垂直运行速度为30m/min。假定条件为堆垛机水平和垂直加速度一样,则根据货架货位到达出入库口的堆垛机运行时间tij=[L*i/vx, H*(j-1)/vy]为在不考虑堆垛机启动和制动的情况下,将第i列第j层货位上的货品搬运到出入库台所用的时间;vx,vy为堆垛机的水平和垂直运行速度;L,H为单个货位的长度和高度)由短到长进行货架的货位编号,如果堆垛机垂直运行和水平运行时间一样则以水平运行时间优先编号,得到编号如下:
  其中左下侧为货物I/O侧。
  1.2 货品编号
  根据货品的COI值为Ii(COI为立方体索引号,Heskett给出的COI的计算公式为:Ii=Ci/fi,其中Ci为某种货品储存总量所需的库存容量;fi为某种货品的出库频率)货品COI值越小,出入库频率越高,应该离出入口越近,所给编号也就越小。
  使用COI值是因为在货品进行存储时,货架上由一个初始的存货量,虽然某货品出入库频率低,但如果其初始存储量比较大,则把其放在O/I近的货位会使后续进出库货物所用时间更长。
  出入库货品频率和容量:
  出入库频率――10类货物相对比的频率,他们的加权和为1;
  所占货格数――表示当该类货物存储量最大时需要占据的货格数量。
  1.3 优化函数
  根据出入库堆垛机运行时间最少原则,当堆垛机运行时间t和货品COI的乘积之和Q最小时(出入库频率高的货品对应近的货位),我们得到一个优化目标条件:
  minQ= tij*COIij
  tij―堆垛机运行到第i层第j列货位时运行时间;
  COIij―第i层第j列货位对应的货品COI值。
  根据上轻下重的原则,仓库每排货架共有10层20列,设地面层为第一层,离出入口最近的列为第一列,处在第i层第j列的货品重量记为Wij,我们货位分配优化目标是每个托盘上货品的质量与其所在层的乘积之和S最小。得到第二个优化目标条件:
  minS= Wij*(i-1)
  由上述优化函数可以知道,货位分配需要同时考虑货架的稳定性和存取效率,这是个组合多目标优化问题。
  2 货位分配的计算过程
  1)把多目标优化问题简化成单目标优化
  (1)和(2)两目标函数分别是求堆垛机利用率最高和货架重心最低的函数,我们通过对量目标函数赋给权重,不同的仓库类型对两目标的重要性具有不同的要求,这里为了研究的需要,赋给权重相等,分别为0.5.那么多目标函数就变成:
  minH=S+Q= Wij*(i-1)+ tij*COIij
  2)进行初始分配,给货品随机赋给一个货位,根据表1-2的内容,假设货架满货时(也就是没有空货位存在)。不同的货品所占货位格数已给出。
  3)货品赋给的货位正确与否的判断条件,任意选取第i行第j列货品其对应的重量为Wij,COI值为COIij,使用该货品与第m行第n列货品其进行比较对应的重量为Wmn,COI值为COImn,把第i行第j列货品的H值与第m行第n列货品的H值进行求和得到式(5):
  he1=Wij*(i-1)+tij*COIij+Wmn*(m-1)+tmn*COImn
  然后再把第i行第j列货品与第m行第n列货品互换,同时计算其和值得到式(6):
  he2=Wij*(m-1)+tmn*COIij+Wmn*(i-1)+tij*COImn
  把式4和式5进行比较,如果式4大于式5,则第i行第j列货品与第m行第n列货品不进行互换,反之,进行互换。
  4)重复第三步骤,直到每个货位上的货品与其他每个货位上货品进行比较完成,这样得到一个最优的货位分配方案,得出最终解。
  3 基于matlab的静态货位分配优化仿真
  3.1 求解
  通过上面求解过程,在Matlab中进行编码计算,计算代码如下:
  %初始化
  for i=1:10
   for j=1:20
   for m=i:10
   for n=1:20
   chuizhi=i*1.05/0.3;
   shuiping=j*1.1/1.20;
   if chuizhi>shuiping
   p=chuizhi;
   else p=shuiping;
   end
   chuizhi=m*1.05/0.30;
   shuiping=n*1.1/1.20;
   if chuizhi>shuiping
   q=chuizhi;
   else q=shuiping;
   end
  heij=p*COI(i,j)+WEIGHT(i,j)*(i-1)*1.05+q*COI(m,n)+WEIGHT(m,n)*(m-1)*1.05;
  hemn=q*COI(i,j)+WEIGHT(i,j)*(m-1)*1.05+p*COI(m,n)+WEIGHT(m,n)*(i-1)*1.05;
   …………
   end
   end
   end
   k=(i-1)*20+j;
   Q(k)=ones(1,10)*(t.*COI)*ones(20,1);
   S(k)=(0:9)*(s2.*WEIGHT)*ones(20,1);
   H(k)=ones(1,10)*(t.*COI)*ones(20,1)+(0:9)*WEIGHT*ones(20,1)
   %计算目标函数最终解的和
   end
  end
  plot(Q);
  plot(S);
  plot(H);
  %图表输出
  3.2 结果分析
  计算过程中目标函数H值的变化
  从图中可以看出:通过函数的迭代,目标函数总值H随着迭代次数的增加而曲线下降,在次数180到200此之间,函数值基本上没有太大的变化,可以看出迭代到了这个之间已经基本达到收敛;目标函数总值H开始迭代时为1.2554*106,迭代完成后H值为8.2887*105;迭代开始时目标函数Q值为1.1798*106,迭代结束值变为7.7184*105。迭代开始时目标函数S值为7.271.3*105,迭代结束后变为5.312*105。验证H=Q+S,迭代开始时 1.2554*106=1.1798*106+7.271.3*105,迭代结束后8.2887*105=7.7184*105+5.312*105。函数最终达到很好的收敛。
  4 总结
  本文是在一个静态的情况下对货品进行分配货位的求解;利用权重赋值的方法把多目标问题转化为求解一个目标的情况进行求解;使用matlab软件进行迭代求解,并得到一个很好的收敛优化解。
  在实际使用过程中存在很多不确定因素,包括权重的取值、货架的多层次、堆垛机的实际速度等等都是需要考虑的问题,本文求解仅作一个探讨。继续深入研究应使用动态仿真方法来实现。
  参 考 文 献
  [1]柳赛男,柯映林,李江雄,等.基于调度策略的自动化仓库系统优化问题研究.计算机集成制造系统,2006
  [2]贾煜亮.自动化立体仓库中货位实时分配优化问题研究. 清华大学工学硕士学位论文.2007
  [3]邵琳.自动化立体仓库堆垛机单一作业循环时间简析.China storage & transport magazine.2007
  [4]陈玉金.立体仓库堆垛机设计.现代物流.2006


转载注明来源:https://www.xzbu.com/8/view-49543.htm