Skip to content

Simio 智能自适应流程数字孪生优化与实验

  • AUTHOR
  • Simio Staff

1.1. 简介

数字孪生系统可用于优化复杂系统的设计和运行。在优化系统设计方面,数字孪生系统可用于从两个或多个相互竞争的设计中选出最佳设计,将这些设计从最佳到最差进行排序,或优化参数设置,以最大限度地提高设计的系统性能。一旦完成系统设计并优化了设计参数,数字双胞胎就可用于做出基于状态的智能决策,以优化系统的日常运行。在设计优化中,通过选择设备、流程、操作规则、人员配置水平等,对系统进行运行配置。在运行优化中,要选择具体的工作任务、要使用的资源和要搬迁的材料。

在设计阶段,数字孪生系统必须捕捉系统内的可变性,例如可变的处理时间或随机故障。变异性对系统性能有巨大影响,如果忽视它,结果将是错误的。 因此,设计阶段的所有实验和优化都必须包括系统中的变异性。

在运行模式下使用数字孪生系统生成短期计划(如生产计划)时,必须禁用可变性,并生成一个确定性计划,以便在发生计划外事件或任务时间与预期时间大不相同时重新生成。确定性计划通常是乐观的,每次由于计划外事件而重新安排系统时,计划性能通常都会下降。不过,我们可以通过执行风险分析来评估每个计划的风险,该分析会重复生成具有可变性的计划,以提供风险度量,例如特定订单按时完成的可能性。

在 Simio 中,我们使用 "模拟运行 "一词来表示启用了可变性的模型运行。 因此,在设计优化过程中,我们会对模拟运行进行复制,以捕捉可变性对系统性能的影响。计划运行 指的是禁用可变性和计划外事件的单次运行。 由于禁用了可变性,因此在生成计划时无需复制计划运行。 不过,在运行优化中,我们会使用模拟运行和复制来分析随机变化和计划外事件对计划造成的风险。

正如下文所述,Simio 具有许多内置功能,可用于优化复杂系统的设计和运行。在系统设计方面,通常需要从一组候选设计中选择最佳设计,或对一组参数进行搜索,以优化所选设计的性能。 在系统运行方面,通常需要针对所选设计优化系统的运行。 在下面的章节中,我们将介绍 Simio 用于执行这些优化的功能。

2.运行仿真实验

一般来说,创建仿真模型以及随后对模型进行实验的目的是评估系统的多种方案。 在许多设计应用中,已经定义了一系列设计选项,例如要部署的 AMR 数量、为每种技能组合配备的工人数量、存储机架数量或机器之间的缓冲空间。这些选项被称为模型的属性。对这些属性的每次赋值都代表一种评估方案。

实验用于定义使用模型执行的一系列方案。实验以批处理模式执行,并启用随机变化。通常的做法是(一旦模型通过验证)进行仿真运行,比较一个或多个候选系统设计。每个方案都有一组属性,如每个输入缓冲区的大小,以及指定为输出响应的 KPI,如系统吞吐量或缓冲区等待时间。控制变量是分配给相关模型属性的值。由于大多数模型都包含随机成分,如服务时间分布或随机故障,因此需要对给定场景进行重复,以便计算响应结果的置信区间。下图 1 显示了一个包含六个场景的实验示例,每个场景有两个属性和两个响应。

Figure 1- Typical Experimentation Results

1:典型实验结果

在运行实验时,每个方案都要重复指定次数。 重复次数是一个重要的考虑因素,因为每次重复都会根据随机变化产生不同的结果。 因此,必须使用统计方法对方案进行比较。 一种常见的统计方法是置信区间,它断言给定的 KPI 将以指定的置信度(如.95)介于上限值和下限值之间、随着每种方案重复次数的增加,置信区间的大小也会减小,从而可以对结果做出更有力的断言。

Simio 有多种内置工具可帮助在设计阶段分析系统。 其中最重要的功能之一是 SMORE 图,它是由美国西北大学的 Barry L. Nelson 教授根据其研究成果绘制的,以图形方式描述了每个响应变量的平均值、平均值的置信区间、上百分位值和下百分位值以及范围。 下图 2 显示了 Simio 中 SMORE 图的一个示例。

Figure 2- SMORE Plots Comparing Experiment Runs

2:比较实验运行的 SMORE 图

通过 SMORE 图可以直观地比较多个方案的关键绩效指标,其中包括相关的置信区间,这对于确定重复运行的次数和初步选择潜在的好方案非常有帮助。然而,为了选择最佳方案,我们需要一种工具,使用统计上有效的方法来选择最佳方案。

2.1 选择最佳系统设计

在许多应用中,都有一组代表候选设计的方案,目标是根据一个或多个关键绩效指标选择最佳方案在未来实施。因此,为所研究的系统准确选择最佳备选方案极为重要。

一种简单的比较技术是根据记录的 KPI 平均值对方案进行记录和排序,然后简单地选择最高/最低的 KPI。 然而,这种直观但不精确的方法没有考虑到系统的可变性,可能不会产生最佳选择,因为根据重复方案集内的随机变化,一些方案可能看起来更好或更差。 如果对每个方案进行更多的重复和更详细的分析,就会发现这种误差。

在过去的几十年中,人们在开发和自动执行统计上有效的排序和选择程序方面做出了巨大的努力,其中很大一部分是由美国西北大学的 Barry L. Nelson 完成的。Nelson 博士开发了一系列算法,将 KPI 响应值分为 "可能最佳 "和 "拒绝 "两个子组。可能最佳 "组将包括无法从统计学角度证明彼此存在差异,但可以从统计学角度证明优于 "拒绝 "组中所有方案的方案。 这一过程被称为 "子集选择 ",通常作为分析的初始阶段,以创建一组 "有趣 "的系统设计供进一步考虑。

Simio 采用了尼尔森的子集选择算法,可自动将设计分组为 "可能的最佳 "和 "拒绝 "两组。 为说明什么是 "最佳",用户可在 "响应属性 "窗口中定义 KPI,将其用作 "最大化 "或 "最小化 "目标。最大化 "目标将把统计上大于 "拒绝 "组的值分组,反之,"最小化 "目标将把最小的响应值分组。

在 Simio 的 "实验 "窗口中执行 "子集选择 "算法时,"响应 "列中的单元格如果是 "拒绝",则会以黄色高亮显示,而 "可能的最佳 "方案则以棕色显示。在一个方案中,一列中的单元格可能被视为 "可能的最佳",而另一列中的单元格可能被视为 "拒绝"。子集选择选项的示例如下图 3 所示。

Figure 3- Subset Selection Analysis

3:子集选择分析

Simio 还提供了 "选择最佳 "算法,可根据需要自动运行额外的仿真复制,从 "感兴趣 "的候选子集中选择最佳。该算法通常在使用子集选择和成本或施工时间等其他外部因素将方案集缩减为候选集后的第二阶段运行。Simio 采用 Seong-Hee Kim 和 Barry L. Nelson 开发的程序来选择最佳方案。该算法决定要运行哪些方案,以及每个方案需要重复多少次才能选出最佳方案。 它采用一组初始方案,并运行更多的重复方案,直到确信某个方案是 "最佳 "方案,或在最佳方案的指定范围内(称为 "冷漠区")。除了 "最佳 "方案外,它会取消选中所有方案。在执行过程中,它会 "踢出 "不是最佳候选方案的方案,不再对这些方案进行复制。这种算法在 Simio 实验中被命名为使用 KN 选择最佳方案。

Simio 还提供了金-尼尔森算法的第二个版本,该算法是马思佳在康奈尔大学师从 Shane G. Henderson 教授攻读博士学位期间创建的。 当在并行处理环境中进行需要对许多方案进行评估的大规模模型时,该版本可能会提供更好的性能。该算法在 Simio 实验中被命名为 "使用 GSP 选择最佳方案"(Select Best Scenario Using GSP),其中 GSP 指的是 "良好选择程序"(Good Selection Procedure),如下图 4 所示。

Figure 4- Select Best Scenario Options

4:选择最佳方案选项

2.2 使用 OptQuest 优化系统参数

仿真模型通常用于决策过程,评估模型控制的不同可能性以及这些可能性对系统的影响。用户可以手动创建实验,输入输入值,并运行多次复制,以返回关键绩效指标的估计值及其相应的置信区间。这可以通过改变多个不同的输入值组合来实现,最终得出一个最佳解决方案。这种方法对于简单的模型效果很好,但随着复杂度的增加,很容易发现这种方法会变得相当乏味。

OptQuest 可自动搜索最优解,从而帮助消除部分繁琐。仿真模型的控制属性和 KPI 响应与 OptQuest 参数一起定义,然后 OptQuest 会搜索可行的控制值,以最大化或最小化目标,如最大化利润或最小化成本。OptQuest 会自动设置属性值、开始复制并突出显示结果。

OptQuest 采用智能搜索方法,在 Simio 强大的建模能力之外还融入了定制优化算法。它不是用算法来优化一组数学方程,而是用算法来优化一组随机过程的相互作用。

通过定义控制属性、目标和约束条件来描述问题后,OptQuest 就可以开始运行方案。在第一个情景运行后,OptQuest 会对情景响应进行评估、分析,然后确定下一个情景的考虑值。第二个方案运行后,OptQuest 会再次分析 Simio 给出的响应,将其与前一个方案的响应进行比较,并再次确定 Simio 要评估的新值。这种获取结果并与之前的目标值进行比较的过程会不断重复,直到 OptQuest 达到其终止标准之一,即达到最大迭代次数或 OptQuest 确定目标值已停止改进。

OptQuest 还通过使用一种名为多目标加权优化的技术,支持基于多个响应的优化。OptQuest 将每个目标乘以指定权重,如果是最小化对象,则对其进行否定,然后将它们相加,并将结果最大化。下图 5 显示了选择和更新 OptQuest 参数的示例界面,包括一个结果集示例。

Figure 5- OptQuest Multi-Objective Weighted Optimization

5:OptQuest 多目标加权优化

OptQuest 还可以使用 "模式前沿"(Pattern Frontier)方法,根据多个目标找到一组最佳解决方案,该方法力求找到位于优化空间 "前沿 "的解决方案。例如,下图是模式前沿优化的结果图,其中包含两个目标:成本和交货时间。位于解决方案空间最优前沿的方案在模式前沿图中显示为绿色,代表在竞争目标之间取得不同平衡的最优方案。

Figure 6- Pattern Frontier Graph Example

6:模式前沿图示例

3.优化系统运行

流程数字孪生系统的主要优势之一是,用于优化设计的同一模型还可以通过创建在实际系统中执行的智能确定性计划来优化系统的日常运行。Simio 采用基于状态的优化方法,动态创建优化计划,充分尊重数字孪生系统捕捉到的随时间演变的系统资源、材料和逻辑约束。 由于数字孪生系统捕捉到了系统的这些真实约束,因此优化计划在实际系统中完全可行。系统中的每个决策都是根据系统的当前状态进行优化的。相比之下,传统系统无法捕捉到详细的约束条件,只能在固定的时间范围内(如每周)对产能进行粗略测量。 然后,传统系统采用启发式求解器,为这一简化的系统表述寻找可行的最佳解决方案。 虽然传统系统将其解决方案表述为最优方案,但其对产能和时间的粗略近似所产生的结果无法在实际系统中执行,因此与实际生产计划不符。相比之下,Simio 基于系统状态的优化方法能捕捉到真实时间范围内的所有关键约束条件,并生成无需人工干预即可完全执行的计划。

基于状态的优化方法所产生的计划的关键在于 Simio 数字孪生系统中决策逻辑的质量,该决策逻辑用于做出决策,如下一步进行哪项工作,以及为每项工作分配哪些资源。在典型的工厂中,这些决策通常是通过调度规则做出的,如最短处理时间、最早到期日期、最小转换率或临界比率。临界比率规则是指截止日期前的剩余时间除以完成工作所需的预计剩余处理时间的比率,已被证明在优化准时交货方面特别有效。在某些情况下,会采用复合规则,将两种或两种以上的规则结合起来,在减少延迟的同时,减少更换次数。许多有限产能调度工具采用各种调度规则为工厂制定详细的调度计划。

虽然这些调度规则可以生成有效的计划,但更先进的策略是利用 Simio 的神经网络功能来利用数字孪生体的详细状态模型。这些功能可以训练神经网络并为其提供输入,从而增强智能决策。利用 Simio,标准的调度规则和复杂的模型决策逻辑可以被自我训练的神经网络所取代。神经网络在模型中提供复杂的决策逻辑,作为回报,模型生成所需的合成数据来训练神经网络。 这样可以简化模型的决策逻辑,使模型更易于构建、理解、调试和维护。Simio 还提供集成的训练算法,利用模型生成的合成数据训练神经网络。 因此,Simio 为在流程数字孪生模型中嵌入神经网络提供了完整的解决方案。

Simio 的人工智能功能在生产计划数字孪生应用中特别有用,神经网络可以被训练来预测关键的 KPI,如工厂或工厂内生产线动态变化的生产提前期。 神经网络可以学习转换、辅助资源、业务规则和其他影响 KPI 预测的生产复杂性的影响。 智能数字孪生可以捕捉复杂的关系,否则这些关系将不可能包含在模型中。然后,神经网络 KPI 预测可用于更好地优化工厂内部和整个供应链的决策。 在供应链中,神经网络可用于关键的供应商采购决策,预测每个候选供应商的生产前置时间,并选择能够按时完成订单的最低成本生产商。 基于人工智能的供应链内工厂采购 Digital Twin 无需使用主生产计划软件。

Simio 内置的人工智能功能支持定义、训练和使用经典的前馈回归神经网络。 不过,包括谷歌和微软在内的 50 多个支持 ONNX 模型交换格式的第三方提供的任何机器学习回归模型都可以导入 Simio 并在其中使用。模型可以在这些第三方工具中建立和训练,然后导入 Simio,以创建强大的人工智能驱动优化解决方案。

3.1 通过实验优化计划

Simio 数字孪生系统生成的确定性计划还可以通过实验计划中的替代决策来进一步完善。 这种实验可以通过分析特定计划的关键绩效指标按顺序进行,也可以并行利用多个内核同时探索多个替代计划。

可以使用 Simio 的多通道功能对计划进行连续改进,该功能允许在单次运行中多次重新生成计划,同时根据前次计划的结果调整每次计划的输入参数。 例如,如果某个作业迟迟未完成,下一次计划迭代可以改变该作业的优先级,或将该作业发送到其他生产设施。这一过程可根据需要重复进行,以完善数字孪生系统生成的计划。还可以通过在 "无头 "模式下运行 Simio 来实现对计划的顺序或并行实验,在这种模式下,脚本语言(如 Python)会调用 Simio 来生成特定的计划。这种方法尤其适用于使用多核云平台并行自动探索不同的计划。

4.总结

Simio 智能流程数字孪生系统可用于优化复杂系统的设计和运行。 在设计应用方面,Simio 提供了先进的统计方法,用于分析变化以优化系统设计。 然后,同一数字孪生系统可用于优化系统的日常运行,采用基于状态的优化方法,利用调度规则、神经网络和计划实验来优化系统性能。