主页 > 资讯快报 >

【伍强课堂:托盘码垛的数学原理】
时间:2023-10-11 18:04       来源:文|伍强智能科技

01问题的提出

托盘码垛问题,是物流系统设计和数据分析的基础问题。虽然可以通过一些应用软件去计算单一SKU的码垛结果,但对于动则成千上万的SKU,计算工作量实在太大。本文探索托盘码垛计算的数学原理,以便给读者提供快捷方便的计算公式。

假设:

1)托盘码垛尺寸:x*y*z(长*宽*高),其中x>=y

2)箱子尺寸:a*b*c(长*宽*高),其中a>=b

为了简单起见,以下忽略高度方向的计算。

02关于码垛的原理和方法

关于托盘码垛,有两点是需要考虑的:1)码放的数量越多越好;2)码垛要符合行业要求。例如,行业有一个具体要求是:上面一层要与下面一层纵横交错,以便垛型保持稳定,不至于在输送和搬运过程中散垛。

码垛分析的意义在于,不同的码垛方式,其码垛数量是不同的。找出最理想的码垛方式,是设计的重要目标。例如对于1200mm*1000mm的标准托盘,如果箱型是450mm*350mm,码垛方式至少有以下几种:

 

实际上,以上3种码垛方式都存在瑕疵,实际码垛采用的是更加符合标准的式样,如下图:

 

两种式样分别表示奇数层和偶数层。

托盘码垛虽然变幻多端,但其实是有规律可循的。抛开美观不说,对每个箱子而言,其摆放方向只有两种情形:长边朝X方向或朝Y方向。这样使得分析计算变得相对简单。例如,350mm*250mm箱子,最简单的码垛方法是箱子长边始终沿一个方向排列,如下图所示:

 

第一种(左图)是长边朝X方向,第二种(右图)是朝Y方向。显然,左边好好于右边。第二种方法实际只能码放8个箱子,远低于第一种的12个。

如果改变这种单一方向的策略,还会看到更多的结果(忽略对称的部分):

 

显然,每种码放格式,其数量发生了变化,分别是12,13,11。这一结果显示,采用纵横交错的方式,有时会得到较好的结果,但有时的结果甚至不如简单的策略。最典型的例子莫过于对于1000*1000的托盘,箱子的尺寸为600*400时,简单的方法结果都不好。如下图所示:

 

左图是按照单一方式排布的,中图考虑了一些变化,右图才是正确的结果。上述的结果给了我们一种启示:尽管有时简单的布置方式就是最好的方式,但在有些情况下,四个角尝试按照顺时针方向(逆时针也是一样的)不断变换箱子方向的排列策略,将有可能获得最好结果。

如果从数学上描述,码盘问题实际上是求取(a,b)组合在(x,y)空间的最大值。即:

方程式1:nx*a+mx*b<=x (1)

方程式2:ny*b+my*a<=y (2)

求解max(nx*ny+mx*my) (3)

下图是方程式的基本示意:

 

很显然,上图右边的排列才是最优的,因为完全排满了。但这种最优解在很多情况下并非只有一个,这会给计算带来困难。

关于如何判断最大码垛数,下面给出一个计算公式:

N=int((x*y)/(a*b)) (4)

int()为取整函数,则N就是最大的码垛数。需要注意的是,很多情况下,实际排列的数要比这个少,所以,上述公式需要进行一些修正。应该看到,如果箱子尺寸越小,误差就越小,反之,误差就会增大。

03计算公式

需要注意的是,作为数据分析用的计算公式,并非一定要非常准确,只是要控制误差,避免给设计带来重大影响。举一个例子,设托盘尺寸为1100*1100,箱子尺寸是600*400,实际码放如下图所示:

 

实际码放是4个箱子,如果按照公式(4)计算,N=5,所以误差是20%,由此,也可以看出修正的必要性。

根据以上的分析,修正采用以下基本策略;

从左下角开始,箱子长边a沿托盘长边x开始进行简单排列,然后在右边的最后一列,考虑箱子旋转90°方向排列,在y方向,左上最后一排的箱子旋转90°排列,最后,右上角箱子再旋转90°排列。

沿长边布置的列数:na=int(x/a),int()为取整函数;

沿宽边布置的行数:nb=int(y/b);

数据修正如下:

x方向:至少要在右边增加一列,宽度为b;

设δ=x-na*a,若δ>=b,则增加k列b方向的箱子,k=int(δ/b),否则:检验一下(a+δ)/b>=2是否成立,如果不成立,就不予处理,因为int((a+δ)/b)=1毫无意义;

y方向:σ=y-nb*b,若b+σ>=a,则nb减少一行,否则,就不予处理。

此外,设β= y-a*int(y/a),若β>=b,则可以增加k列横向箱子。

计算公式:

N0=na*nb ...........................................(5)

修正公式1:

设δ=x-na*a,若k1=int(δ/b)>=1,且y>=a+b(至少可以进行一次组合排列):

设σ=y-nb*b,β= y-a*int(y/a),若b+σ>=a,则计算结果为:

N1=na*(nb-1)+k1*int(y/a)+int((b+σ)/a)*int(na*a/b)+int(β/b) ..........(6)

修正公式2:

设δ=x-na*a,若δ<b,且y>=a+b(至少可以进行一次组合排列):

若(a+δ)/b>=2,设k2=int((a+δ)/b),σ=y-nb*b,β= y-a*int(y/a),若b+σ>=a,则计算结果为:

N2=(na-1)*(nb-1)+k2*int(y/a)+int((b+σ)/a)*int(na*a/b)+int(β/b) ......(7)

附注:也可以按照旋转90°重新计算,如果x>=y,事实上结果是一致的。

需要注意的是,在极端情况下,上述公式还会出现误差,但对于数据分析,已经具备足够的精度了。

04经验公式

以上推导的计算公式(4)~(7),虽然精度很高,但在实际应用中还是太麻烦,有必要进一步简化。

事实上,如果不存在以下两种情况:

1)按一个方向码放,x方向剩余的部分δ=x-na*a已经不足一个b时;

2)按一个方向码放,y方向剩余的部分σ=y-nb*b-b已经不足一个a时;

其实误差已经很小,可按公式(5)计算结果。

反之,则需要修正。公式如下:

N3=na*nb+int((x-na*a)/b)*int(y/a)+int((y-int(y/a)/b) (8)

这个公式在特殊情况下当然会有误差,比如对特别细长的箱子,计算往往会出现问题,但基本可以满足设计的需要。试举一例如下:

x*y=1000*1000,a*b=600*400

na=1

nb=2

N3=4

实际结果N3=4,符合预期。但这一结果并未验算长度方向是否够的问题,在更为复杂的场合下,可能会有误差。

在实际数据分析中,还有更为简单的方法,即按照公式(4)和公式(5)分别计算码垛结果,然后取一个中间值,也是可以达到要求的。

关于伍强智能科技

北京伍强智能科技有限公司是国内知名的物流系统集成商,主要为全球客户提供专业的一站式智能物流系统整体解决方案,并提供高品质的AS/RS系统、MINILOAD系统、箱输送分拣系统、穿梭车系统、A字分拣机等物流装备,以及WMS、蜂鸟中台等核心软件系统。总部位于北京信息技术产业基地,在广州、苏州、台州、保定、贵阳、西安等多地设有分支机构或办事处。公司用户遍布全国、产品远销海外。先后承接了650多项形式各异的物流系统,行业覆盖医药、服装、机械、电商、快销品、图书、烟草、零售、教育实训等。

 
下一页
参与评论
智能物流

更多>

风云人物

更多>

活动一览 国际考察团 论坛

更多>

物流中心案例

更多>

服装O2O能否开辟一片新天地


扫描二维码
关注《现代物流》公众号
中华人民共和国电信与信息服务业务经营许可证编号:沪ICP备19011712号-1