1.1. 简介
本文介绍了 Simio 建模系统,该系统提供了一个基于智能对象的仿真建模框架,可优化复杂系统的设计和运行。一直以来,仿真工具都侧重于系统设计,而 Simio 在设计之初就同时关注系统设计和系统运行。这就要求模型的设计和使用模式发生转变,这也是 Simio 独特建模架构背后的驱动力。
在过去几年中,"数字孪生 "一词开始流行,用来描述与实时数据相连并在运行环境中使用的仿真模型。虽然许多工具都将自己定位为流程数字孪生体,但在实施过程中却面临着巨大的挑战,而传统的仿真工具并不是为应对这些挑战而设计的。 本文将重点介绍 Simio 的独特功能,这些功能可应对这些挑战,支持创建智能自适应流程数字孪生体,如下图所示。

图 1:Simio 智能自适应流程数字孪生系统
下图总结了数字影像、虚拟模型和数字孪生体之间的区别。在数字影子的情况下,没有系统的仿真模型,但有自动数据收集,并可应用统计回归或人工智能等分析方法来识别模式和预测事件(如机器故障),从而在问题发生之前就加以解决。这只有在系统没有发生根本性变化时才有效,因为历史数据是用来预测未来的。就虚拟模型而言,建立的系统仿真模型可以手动输入代表性数据并离线执行。这有助于分析设计决策,如购买新设备或引进新产品。与数字影像不同,虚拟模型具有前瞻性,可以分析变化对系统的影响。这是几十年来仿真建模的传统用途。在数字孪生系统中,通过将模型与实时系统状态直接连接,仿真模型被扩展到日常运营中。这样,仿真就能及时展望未来,在订单延迟等实际系统中的运营问题发生之前,将其可视化并加以解决。

图 2:数字化转型场景
Simio 的重点是将仿真模型用作系统设计的虚拟模型,以及扩展该模型以提供流程数字双胞胎。许多企业正在推进数字化转型议程,其中既包括使用虚拟模型的传统设计应用,也包括在计划和调度中对模型的操作使用。如下图所示,根据企业的数字化成熟度,用户可能处于数字化转型旅程的不同阶段。
许多组织正在有效利用虚拟模型来预测性能和优化系统设计;但是,很少有组织已经完全掌握了向自动优化日常运营的运营数字孪生的过渡。即使中间的重点是将虚拟模型用于传统的设计仿真应用,Simio 也能为设计模型的构建和实验提供丰富的平台,同时还能为用户将来扩展到完全互联的数字孪生提供定位。Simio 的设计旨在支持整个设计-运行连续体。

图 3:数字连续体
当用户从用于设计的虚拟模型转向用于运行的全连接数字孪生体时,有几个关键挑战必须解决:
- 运行模型通常需要对资源、材料和业务逻辑进行复杂的建模,以限制流程流,否则生成的时间表在实际系统中就无法执行。与传统的设计应用程序相比,这对建模逻辑和灵活性提出了更高的要求。
- 模型必须以数据为中心,即模型结构和模型数据均由外部数据源定义。数据应易于访问,可直接连接到企业资源规划系统、制造执行系统、物联网、网络服务等。模型数据还必须保存在内存中,以便快速执行。
- 传统的仿真工具提供汇总统计数据,但运行模型需要详细的报告,以跟踪单个作业、资源、材料等,并在网络支持的甘特图和仪表盘中显示结果,这些仪表盘是为不同的利益相关者定制设计的。
- 许多传统的模拟设计工具都是为在桌面上使用而设计的,而流程数字孪生系统则可以在整个企业的私有云或公共云上部署。
- 仿真模型中的决策逻辑驱动着系统的性能。建模工具必须支持高级决策逻辑,其中可能包括管理工作流程和优化计划的机器学习算法。
- Digital Twin 生成的生产计划必须使用确定的处理时间,并消除故障等随机事件。然而,这会导致过于乐观的计划,通常会随着实际系统中意外事件的发生而降低。因此,需要建立一种机制,通过在风险评估中使用随机性来评估数字孪生生成的确定性计划的风险。
尽管这些功能要求中有许多对于数字孪生应用是必不可少的,但它们在传统设计应用中也非常有用。下文将介绍 Simio 应对这些关键挑战的独特方法。
2.复杂建模的对象框架
Simio 是一个基于智能对象库的仿真建模框架。初学者可能更倾向于使用 Simio 库中的预建对象;然而,该系统的设计使初学者也能轻松创建自己的智能对象,用于构建分层模型。建模人员可以创建自定义智能对象,然后在多个建模项目中重复使用。这些对象可以存储在库中,便于共享。构建自定义对象的灵活性和便捷性对于构建可快速适应复杂应用的数字孪生模型至关重要,这也是 Simio 相对于传统仿真产品的一个关键优势。
Simio 对象可以描述机器、机器人、飞机、客户、医生、坦克、公共汽车、船舶或系统中可能遇到的任何其他项目。模型是由代表系统物理组件的对象组合而成的。通过三维动画来反映对象的变化状态。例如,叉车升起和降低其升降机,工人走到某个地点或在不同地点之间搬运物品,机器人打开和关闭其抓手。动画三维模型提供了系统运行的动态画面。Simio 详细的三维、地理信息系统和 VR 功能(使用 Oculus 头显)为验证模型行为和展示能力提供了强大的可视化流程。

图 4:Simio 数字孪生动画视图
Simio 中的对象是使用面向对象概念构建的。然而,与其他面向对象的仿真系统不同,在 Simio 中构建对象的过程非常简单,而且完全是图形化的,无需编写程序代码来创建新对象。在 Simio 中构建对象的活动与构建模型的活动完全相同--事实上,对象与模型之间没有任何区别。这一概念被称为等价原则,是 Simio 设计的核心。只要用户建立了一个模型,它就是一个可以实例化为另一个模型的对象。例如,如果将两台机器和一个机器人组合成一个工作单元模型,那么工作单元模型本身就是一个对象,可以被任意放置到其他模型中。工作单元是一个对象,就像机器和机器人是对象一样。在 Simio 中建立的每个模型都自动成为一个构件,可用于建立更高级别的模型。
Simio 对象框架的基本原理与面向对象编程(OOP)语言相同,但这些原理应用于建模框架,而非编程框架。Simio 并非简单的 OOP 语言(如 Java 或 C++)中用于构建仿真模型的一组类。Simio 是一个无代码图形建模框架,围绕面向对象的基本原则设计,支持仿真模型的构建。例如,在 Simio 中创建 "机器 "等对象时,继承原则允许创建一个新的机器类,该类继承 "机器 "的基本行为,但这种行为可以修改(覆盖)和扩展。在编程语言中,可以通过编写编程语言方法来扩展或覆盖行为,而在 Simio 中,则可以通过添加和/或修改图形定义的流程模型来改变对象行为。在 Simio 中,为系统定义和添加新对象所需的技能是建模技能,而不是编程技能。
Simio 面向对象的建模框架可轻松创建应用程序模板,快速启动模型创建。模板是一个自定义对象库,包含数据模式和自定义报告,专注于特定的应用领域。Simio 为常见的离散和批量制造流程及仓库建模提供模板,用户可以扩展这些对象和/或创建自己的对象和模板,供企业内部使用。
Simio 的核心建模功能用于定义对象行为,Simio 的图形化面向对象设计是轻松创建针对特定应用的定制对象的关键。Simio 具有先进的建模功能,可捕捉复杂的资源,以及典型生产、仓储和交付系统中的物料和业务逻辑约束。例如,任何处理延迟都可以直接建模为并行和/或顺序任务的行动网络,每个任务都需要自己的物料和资源。行动网络中的每项任务还可以根据多种属性(如颜色、尺寸等)确定与顺序相关的处理时间,任务时间可以根据分配给任务的工人的学习曲线进行调整。同样,仓库内的车辆移动也可以利用 Simio 的车队管理功能来自动规划行程,避免运输网络双向路径上的死锁。
Simio 最近新增的一项重要建模功能包括实施需求驱动型物料需求计划(DDMRP)以进行库存补充。这种方法采用需求驱动研究所制定的原则来优化生产,对于模拟工厂内部和整个供应链的库存优化布局非常重要。Simio 是唯一获得需求驱动研究所认证的数字孪生模拟产品。
3.以数据为中心的设计
过去,仿真模型是通过将对象拖放到模型中,然后直接将数据填充到对象中来构建的。例如,在 Simio 中建立一个简单的模型,只需在模型的 "设施 "视图中以图形方式放置 "源"、"服务器 "和 "汇",然后输入 "源 "的到达时间和 "服务器 "的处理时间即可。只需点击几下鼠标和按键,一个简单服务器系统的运行模型就建立起来了。许多仿真产品也采用了类似的方法。
虽然这种建模方法适用于简单模型,但 Simio 以数据为中心的框架为大型模型提供了更优越的选择。 对于更广泛的模型,最好的做法是使用数据表来定义模型中的对象。随后,Simio 可根据提供的数据描述自动生成模型。数据表指定了要纳入模型的对象及其相关数据值。这种方法在对多个类似设施进行建模的应用中特别有用,可以通过数据表来定义和管理每个模型。请注意,这将问题从模型构建活动转变为模型配置活动。只需在相应的数据表中添加新的数据行,就可以在模型中添加新的机器。
术语 "数据生成 "是指根据数据集自动创建的模型。模型可以是数据驱动的,但可以通过拖放手动创建,也可以既是数据生成的,又是数据驱动的。
在许多情况下,驱动模型的数据是关系型的,即一个表中的一行映射到其他表中的多行。例如,销售订单表可能会映射到定义组成销售订单的产品的多行。Simio 完全支持带有键列和外键引用的关系数据表。Simio 中的数据集具有完全灵活的模式,可由建模者进行完全配置。用户可以添加/删除/编辑列、键和外键引用。表格中的列是强类型的,包括数值和非数值。
数据生成和数据驱动的建模方法与自定义应用程序库结合使用时尤为有效,自定义应用程序库包含预定义的数据表和对象,这些数据表和对象与数据映射一起,可连接到为对象提供相关数据的适当表列。熟练的建模人员可以创建一个特定于应用程序的模板,然后由其他人填充,通过数据自动创建和维护模型。这就是 Simio 对象定义图形化方法(无需编程)对于成功实施数据生成和数据驱动模型非常重要的原因之一。
Simio 以数据为中心的框架的另一个关键方面是将关系数据表映射到 Simio 建模对象。Simio 提供了可直接映射到关系数据表的对象属性分层重复组。Simio 中这一独特的核心概念使得将模型属性映射到所需数据变得简单易行。
由于用于生成或驱动模型的数据通常存在于第三方系统中,如 ERP、MES、IoT、Excel、CSV 或 Web 服务,因此 Simio 提供了用于导入和导出这些常用数据源的直接连接器。此外,Simio 还提供了开发新数据连接器的框架。这些数据连接器用于将数据从各种数据源提取到 Simio 的内存关系数据集,以便模型快速访问。使用 Simio 的内存关系数据集对于支持数字孪生模型的快速执行和维护至关重要。
4.实验、优化和报告
仿真模型的目的是预测新系统或现有系统的性能。在设计应用中,通常要对现有系统的拟议变更或尚未存在的新系统的设计方案进行评估。在操作流程数字孪生模型中,用户可能对预测操作性能感兴趣,或者在生产计划中,用户可能对规定或协调实际系统中的操作感兴趣。
Simio的数字孪生框架区分了两种概念,一种是启用了随机流程和随机事件的模拟运行,另一种是分配了预期值的计划运行,在计划运行中,时间长度被分配,所有随机事件都被禁用。因此,计划运行具有确定性和可重复性,而模拟运行则会为模型的每次复制产生不同的结果。 模拟或计划运行也可以在实际时钟时间内执行,以支持外部系统的实时集成和协调。
Simio 的实验和报告功能允许定义特定场景来执行模拟运行,然后比较不同场景的结果。每个方案都定义了一个或多个可变输入值(如每个工作站前的缓冲区大小)和一个或多个响应变量(如订单的平均完成时间)。Simio 还提供 OptQuest 优化器,可自动改变情景输入,使指定的目标函数最小化或最大化。实验可以作为系统设计的一部分进行,也可以作为系统运行的一部分离线进行。下图显示了使用 SMORE 图对各种方案进行比较的实验,SMORE 图以图形方式描述了每个响应变量的平均值、平均值的置信区间、上百分位值和下百分位值以及范围。

图 5:实验结果--SMORE 图
Simio 提供了丰富的功能,用于记录和显示系统性能的汇总统计数据,包括置信区间和自动排序及选择程序。
对于具有流程数字双胞胎的操作,用户通常会对单个项目(如生产订单、机器或工人)的详细结果感兴趣。因此,除了汇总统计数据外,Simio 还会在数据日志中记录详细信息,然后用于生成报告。例如,每个物料发生的变化以及每个资源上处理的作业都会被记录下来,并可用于定制报告和仪表板。
Simio 的结果可以多种不同的内部格式显示,并可导出到 Tableau、Power BI 和 Excel 等外部报告工具。其中一种功能强大的内部格式是 Simio 的自定义仪表盘,可通过 Simio 门户在桌面和网络浏览器上查看。以下是 Simio 仪表盘示例。

图 6:动态结果仪表板示例
在生产计划和调度应用程序中,Simio 提供了两种不同的甘特图类型显示,特别有用。第一种是资源甘特图,沿着时间轴显示每个启用资源的资源状态。 资源甘特图的任何一行都可以展开,以显示该资源上正在处理的每个实体/订单。实体甘特图显示系统中每个活动实体/订单在处理过程中使用的每个资源上的显示情况。
实体甘特图还显示了基于随机复制计划的每项工作的风险度量,即在系统存在基本可变性的情况下,订单按时装运的概率。 实体甘特图中的每一行都可以展开,以图形方式查看导致实体延迟的所有限制因素,例如操作员繁忙、材料不可用或其他限制因素,从而提供延迟工作的根本原因分析。以下是实体甘特图的示例。

图 7:显示详细任务的甘特图示例
Simio 可以在资源甘特图和实体甘特图之间轻松切换。右键单击甘特图上的任何实体/资源,就能在系统的三维动画中模拟时间运行到该点,并移动到计划表中该点系统状态的图形动画。
5.智能决策逻辑
随着仿真模型从预测性的设计应用转变为规范性的运营数字孪生系统,模型中精确的决策逻辑变得更加重要,因为它能驱动模型的性能,进而驱动真实系统的性能。虽然定制的决策逻辑可以产生良好的结果,但使用神经网络才是黄金标准,因为它们可以考虑更多的输入和复杂的交互,从而更好地优化系统性能。
使用 Simio,复杂的模型决策逻辑可以被自我训练的神经网络取代。神经网络在模型中提供复杂的决策逻辑,作为回报,模型生成所需的合成数据来训练神经网络。这样,用户就可以简化模型的决策逻辑,使模型更容易构建、理解、调试和维护。利用神经网络,可以将重点放在系统组件建模上,同时允许神经网络学习复杂的关系,以优化模型内的决策制定。
Simio 是第一款也是唯一一款提供全面人工智能功能的离散事件仿真软件,可在模型中创建和自动训练神经网络,无需编程,也无需与外部第三方工具集成。
人工智能面临的主要挑战之一是获得所需的标记训练数据,许多人工智能应用因此而失败。在评估新系统时,标注的训练数据永远无法获得,即使是在现有设备的情况下,一旦系统中引入新的零件或流程变化,任何记录的数据都会失效。这就是为什么 Simio 用于创建合成训练数据的内置自动标注器对智能建模应用的成功至关重要。
Simio 还提供集成训练算法,可使用模型生成的合成数据训练神经网络。因此,Simio 为在仿真模型中嵌入神经网络提供了完整的解决方案。
Simio 的人工智能功能在生产计划数字孪生应用中特别有用,神经网络可以通过训练来预测关键的关键绩效指标,如工厂或工厂内生产线动态变化的生产提前期。 神经网络可以学习转换、辅助资源、业务规则和其他影响关键绩效指标预测的生产复杂性的影响。智能数字孪生系统可以捕捉到复杂的关系,否则就无法将其纳入模型中。神经网络 KPI 预测结果可用于更好地优化工厂内部和整个供应链的决策。在供应链中,神经网络可用于关键的供应商采购决策,预测每个候选供应商的生产前置时间,并选择能按时完成订单的最低成本生产商。供应链中基于人工智能的工厂采购 数字孪生无需使用主生产排程软件,该软件采用粗切割产能模型,但忽略了生产约束条件(如转换),假定交货时间固定不变(无论工厂装载情况如何),并使用启发式算法在人工时间桶中进行排程。这就导致了粗略切割和不可执行的计划,需要耗费大量的计算机时间来制作,并且与详细的工厂计划不一致。
Simio 的内置人工智能功能支持定义、训练和使用经典的前馈回归神经网络。不过,用户并不局限于这种机器学习算法,因为包括谷歌和微软在内的 50 多个支持 ONNX 模型交换格式的第三方提供的任何机器学习回归模型都可以导入并在 Simio 中使用。用户可以在第三方工具中建立和训练模型,然后将其导入 Simio,在模型中进行复杂的决策制定。

图 8:使用第三方 ONNX 模型
6.企业部署
仿真设计应用程序传统上都部署在桌面上。虽然桌面环境为项目的模型构建阶段提供了更为丰富的用户界面,但部署具有不同角色和数据权限的多用户同时使用的企业应用程序需要一个更加安全/稳健的环境。尽管 Simio 桌面仍是模型开发的最佳选择,但 Simio 的门户网站为实验、执行和查看结果及操作计划提供了更好的解决方案。
Simio 门户网站通过网络向整个企业的用户提供仿真和调度结果。建模人员可以管理用户并分配角色,限制他们对模型和数据的访问。Simio Portal 可托管在企业内部数据中心或各自的 Azure、AWS 或 Google 云租户中,允许用户以无与伦比的速度创建和执行仿真实验和调度计划。可使用桌面 Simio 构建模型,然后无缝部署到 Simio Portal 上。

图 9:Simio 云部署
7.总结
Simio 提供了一个基于智能对象的仿真建模框架,可优化复杂系统的设计和运行。Simio 支持从设计到运行全过程的主要功能包括:无代码面向对象建模架构、以数据为中心的框架(支持数据驱动和数据生成模型)、仿真和调度实验及报告功能、优化决策的神经网络,以及在私有云和公共云上进行实验和调度的企业部署选项。Simio 为完整的数字化转型之旅提供了一个全面的仿真平台。

