由于运行仿真模型耗时耗力且成本高昂,我们现在使用 JMP 基于设计实验构建替代元模型,从而显著提高从仿真中提取洞察的效率。与传统输出(例如 3D 可视化效果或单次模型运行期间提供的详细运行统计数据)相比,元模型能够更深入地洞察系统行为。
我们的第一个元模型为一个长期存在的分析难题提供了清晰的解决方案:一条包装线上有多个缓冲区,在有限的资金资源下,每个缓冲区应该有多大才能优化生产线性能?我们还提出了其他几个元模型,包括比较采用合并-分流机制的生产线的几种布局方案,以及缓冲区位置对性能的非线性影响。
最后,我们展示了一个叉车仿真案例研究,该仿真用于支持是否在两个仓库之间建造直达通道的投资决策。代理模型已成为我们仿真工作流程中至关重要的一部分,而JMP在使这种方法更易于理解、更高效、对我们的团队和利益相关者都更具影响力方面发挥了关键作用。
大家好,我是 Shannon Browning。我是 Haskell 公司的系统分析技术主管。我们公司从 2023 年开始使用 JMP,但我们在离散事件仿真方面拥有丰富的经验。离散事件仿真是制造系统和服务系统中的常用工具,它使我们能够在虚拟环境中尝试新的控制策略、新的布局、不同的流程、逻辑等等,然后再将其实际应用于实际场景。
自从采用JMP以来,我们运用所谓的替代模型或元模型(模型的模型)取得了巨大成功,从而提供了额外的洞察。因此,我们围绕模拟模型本身进行实验设计,系统地改变输入以理解模型,从而能够在更高层次上观察系统行为。
与更偏向物理或破坏性实验的实验设计相比,我们在这里遇到了一些不同的挑战。计算机时间实际上是唯一的限制因素。我们并不担心材料限制或许多可行性限制,这些限制可能会导致你在传统实验设计中减少重复次数或场景设置,这确实带来了很多机会,但也带来了一些有趣的挑战。许多离散事件模拟本质上往往是随机的,这意味着我们在模型中生成的是随机变量。
我们可以使用一种名为“通用随机数”的技术,让每个不同的设置运行多次,但每次都使用相同的随机种子。这样我们就能得到足够相似的行为,从而可以将其视为随机效应,比如在混合效应模型中。但我认为真正有帮助的是深入研究其中一些方法,并看看它们在不同的应用场景中的表现。
我们在研究过程中发现了三种不同的用例,它们非常引人注目。其中一个是长期存在的难题:在高度自动化的高速包装线上确定缓冲区的位置。我们将讨论的第二个用例,它更详细地介绍了控制和输送机的物理布局。第三个用例,我们将研究工厂内的叉车流量,并试图了解对布局变更进行重大投资是否会带来回报或效果。
我先来深入讲解一下装瓶线模拟。在这个图中,请看左下角,我们更多地是在流程图层面上呈现系统。我们只是使用软件工具,拖拽出不同的处理器和提示并进行排列。每个处理器都会有随机的停机时间,而在停机时间之间,它们会以固定的速率运行。可能会出现轻微的超速,这让我们能够看到缓冲区可以及时断开这些处理器的连接。因此,一个处理器的停止并不会立即导致上游处理器停止运行。我们提供的缓冲区越多,安装量就越大。但这也存在一些收益递减的情况。这其中存在一些非线性响应。
右下角显示了队列动态随时间的变化情况。当某个进程停止时,数据会迅速积累。然后,当进程恢复时,速度会有所不同,因此缓冲区会随着时间的推移而减少。这里我们需要考虑几个变量,例如机器可靠性、超速、缓冲区大小等等。我们面临的挑战之一是,面对如此多的变量,我们该考虑哪些变量?这取决于我们在决策过程中所处的位置,这往往是我们想要达到的目标,或者决定了我们可以调整哪些变量。当我们到达这里时,我们已经有很多机器可供选择了。实际上,剩下的唯一一件事就是查看这些缓冲区。
传统上,你会孤立地看待这些因素。你会说,好吧,我在这里放一个缓冲液,然后每次只改变一个因素。但我们用JMP做到了,我们将每个缓冲液的时长设置为0到4分钟。我们对每个组合都进行了10次重复实验。所以每个组合都有9个水平,这使我们能够很好地控制响应的曲率。因为我们身处计算机模拟的世界,这意味着有729种不同的组合。
该模型运行速度很快,但每次重复实验仍需10次。我们运行了该模型超过7000次,耗时半天甚至更久才完成所有场景的测试。生成数据后,我们就可以在JMP中查看。右上角显示了预测刻画器。从所有这些缓冲液的基线为零开始,我们可以清楚地看到,从这个位置到缓冲液,响应效果最佳;在第三个位置,响应效果稍差;在第二个位置,响应效果则几乎没有。但我们也模拟了交互效应。我们可以在这个预测刻画器中看到,例如,当我们选择在第二个缓冲液上放置两分半钟,然后在第三个缓冲液上放置两分钟时,第一个缓冲液的曲线会变得更平坦,因为你不能说,我要同时充分利用这三个缓冲液的优势。这其中存在相互作用:如果我在第二个缓冲液上放置大量缓冲液,那么第三个缓冲液的效果就会较差,依此类推。
这真是一个强有力的洞见。我认为最初的项目计划是为这三个缓冲区各投资约50万美元,而我们至少可以明确地说,其中一个缓冲区是不需要的。因此,我们可以在那里至少筹集50万美元的资金。然后,对于第三个缓冲区,我们可以进行微调。这样就不必对那个缓冲区进行全额投资。所以,这对项目来说是一个非常好的洞见。
回过头来,我们接下来要探讨的是系统实际运作的更多细节。在本例中,有一条现有的生产线,记得上一节我们研究了两个单元操作之间的超速差异是如何导致缓冲区被占用的。他们对系统的瓶颈进行了改进,使其运行速度提高了约 10%。这意味着超速差异要小得多。这导致了传送系统本身的运行问题。
我们有两条产品进线,还有一个用于重新进料的离线料斗,以及所有这些设备汇聚在一起的合流分流综合体。我们现场的自动化工程师注意到,根据距离,缩小一些间隙存在挑战。随着瓶颈速度的加快,这一挑战也随之显现。我们利用模拟技术,研究如果将其向上游移动12英尺会怎样?如果将其向上游移动24英尺会怎样?
显然,切割钢材、重新布置所有传送带并完成所有调试需要大量投资。从离散事件建模的角度来看,这对我们来说也更具挑战性,因为我们必须以三种不同的方式重新创建布局。我们拥有原始布局,然后在此基础上进行了两次不同的迭代。我们修改了布局,微调了控件,然后进行了测试。所以,正如我之前所说,我们可以进行一系列不同的迭代,而这一次的迭代会更加详细,但每次进行这些模型调整的成本都会略高一些。
在将数据输入JMP之前,我们完全没有想到上游存在一个约束。我们知道下游设备与下一台机器之间没有足够的空间。但我们发现,当我们将其移动到上游12英尺,然后又移动到上游24英尺时,我们离上游设备太近了。所以我们将这个数据输入JMP。我们使用拟合模型平台。我们对这个模型使用了二次拟合。我们发现,随着我们越来越靠近上游,性能会开始下降。
这对我们来说有点意外,如果不代入这个公式,我们可能根本没注意到。屏幕上没有显示,但我们能从这里得到拟合方程,然后求导,找到最大值点。当然,挑战在于这个点附近的不确定性是多少,这个点在12英尺到24英尺之间。
当然,一种方法是,在接近最佳点的18英尺处建立一个模型,然后根据该数据进行重新拟合。但我们在预测分析器中也可以看到二次拟合的一阶和二阶导数周围的不确定性。这或许能帮助我们理解。我们知道最大值通常位于12到24英尺之间,但具体位置尚不清楚。还有其他变量会影响这一点。实际构建系统也存在一些实际问题。但这确实有助于我们更深入地了解情况。
我们最后要研究的是叉车交通。这家工厂当时正在提高产量。他们还没有到位,所以我们无法通过经验观察接下来会发生什么。不过,我们构建了一个包装线的流程图模型,并将其作为该模型的核心。然后,我们编写了叉车调度规则及其任务,以及叉车向生产线供料和卸料所需的所有操作。
我们在这里发现的一件事是需要将这些叉车视为分类变量。当我们第一次拟合这个模型时,我们发现这里有一个非线性关系。直到我们把它当作分类变量,我们才确定这一点。然后我们可以看到,如果没有这个连接器,当你有五辆活跃的叉车时,你实际上不会从这六辆叉车中获得任何更多的收益。然后我们还可以看到,在这个预测概况中,如果我说,添加这个连接器,也就是针对这种特殊情况的布局创新,如果我们添加这个连接器,这里真的有很大的潜在收益。这就是我们可以用作基础来判断这可能是值得投资的。这是对布局改变的一项重大投资。
我们还能够查看这些交互分析器。您可以清楚地看到,无论有没有这个连接器,交互分析器都会对它造成限制。如果他们不投资消除瓶颈或缓解流量拥堵,那么在运营上他们实际上什么也做不了。
这是对我们已构建的仿真模型中 JMP 应用的一些快速概述。我想说的是,这些元模型帮助我们的仿真分析师看到了一叶障目之所及。使用这些离散事件模型时,您有时会迷失方向,因为其中涉及太多不同的因素,而且会产生大量数据,这些数据可能很难与我们正在尝试解决的实际业务问题或项目联系起来。感谢您抽出时间,如有任何疑问,请随时告诉我们。