• 微信
    公众号
托盘码垛的数学原理
2023/10/12
摘要:

托盘码垛问题,是物流系统设计和数据分析的基础问题。关于托盘码垛,有两点是需要考虑的:1)码放的数量越多越好;2)码垛要符合行业要求。码垛分析的意义在于,不同的码垛方式,其码垛数量是不同的。找出最理想的码垛方式,是设计的重要目标。

1、问题的提出

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

假设:

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

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

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

2、关于码垛的原理和方法

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

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

e5ad0cc31792c286c5f967bb9d8b77cd.jpg

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

f06d45f5dedca368075fde1fe7838423.jpg

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

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

1cb6d024870aee79818fdab3cab0ca00.jpg

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

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

5bf8252c00e06260d321b798c75cc87c.jpg

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

798a22f55cff058da6e031716e4b2faf.jpg

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

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

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

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

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

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

b3312ff4181c91a6c29a3897fe01c7c5.jpg

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

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

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

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

3、计算公式

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

b663cbdd57438ecd1208b9761ab481f0.jpg

实际码放是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,若δ=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,事实上结果是一致的。

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

4、经验公式

以上推导的计算公式(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)分别计算码垛结果,然后取一个中间值,也是可以达到要求的。


有需求 找方案 ?

立即发布需求或立享库猫管家服务(微信同手机号185 0073 8832)

好方案 寻报道 

发邮件至 zhangxy@soo56.com(微信同手机号:185 0073 8856)


文章转载自:伍强库猫号由Soo56编辑,供行业参考学习;如果希望您的公司和产品被报道,请'点击这里'告诉我们!

分享到:
若您的公司或产品想被报道,请狠戳 寻求报道 如您有新发现,狠戳 我要爆料

点击继续加载下一条

特色服务

Soo56微信公众平台

  • Soo56微信公众平台
CopyRight © 2006-2015 Soo56.com 版权所有 物流搜索 京ICP备11042521号 物流搜索