数字孪生 - 快速指南



数字孪生介绍

数字孪生是元宇宙概念的基石之一,与虚拟现实相关联。数字孪生应用于各种企业应用中。它是一个物理对象或过程的虚拟模型,用于模拟现实世界的对应物。

下面的框图描述了数字孪生工作的非常基本的模型:

Introduction to Digital Twin

数字孪生用于不同的目的。一些关键点列在下面:

  • 预测性能 - 数字孪生用于模拟和预测物理产品的性能。
  • 检测错误 - 数字孪生从传感器获取实时数据,监控运行并检测错误。
  • 决策制定 - 数字孪生模拟真实情况。它帮助组织做出更好的决策。
  • 机器学习算法 - 数字孪生使用机器学习算法并处理大量的传感器数据。
  • 远程监控 - 数字孪生允许您控制和监控危险的工业设备。
  • 预防性维护 - 数字孪生用于对单个设备或制造过程进行建模,以确定预防性维护的需求。
  • 互操作性 - 数字孪生技术用于不同的企业应用。一些应用包括 CAD、PLM、ERP 等,企业资产系统用于管理和监控数字孪生的集成。

数字孪生的类型

数字孪生用于不同的表示形式,例如:

  • 产品孪生是产品的数字表示。
  • 数据孪生是 Google 地图链接与实时数据的示例。
  • 系统孪生是一个可以在物理和数字过程之间交互的模型。
  • 基础设施孪生是物理基础设施(如高速公路、建筑物等)的表示。

数字孪生的历史

1969 年,NASA 增强了用于诊断损坏航天器问题的训练模拟器。这是一个精确复制版本的数字孪生,用于 NASA 的研究和模拟目的。

数字孪生 - 示例项目

为了创建数字孪生,公司使用允许运行复杂监控的特定软件。一些最流行的数字孪生软件包括:

  • Azure 数字孪生
  • IBM 数字孪生交换
  • AWS IoT TwinMaker

在本章中,我们将解释如何使用 Azure 创建简单的数字孪生实例。

使用 Azure 创建数字孪生实例

让我们了解如何使用简单的 CLI 命令在 Azure 中设置和创建实例。

先决条件

您必须拥有 Azure 订阅,否则请创建一个免费帐户。

设置 CLI 会话

首先,我们必须登录并将 CLI 上下文设置为本次会话的订阅。命令如下所示:

az login
az account set --subscription "<your-Azure-subscription-ID>"

注册 Azure 数字孪生命名空间

使用以下命令注册 Azure 数字孪生命名空间:

az provider register --namespace 'Microsoft.DigitalTwins'

添加 IoT 扩展

让我们升级到最新版本的 IoT 服务,以启用与 Azure 数字孪生交互的命令:

az extension add --upgrade --name azure-iot

执行此命令后,我们就可以连接到 Azure 数字孪生了。要验证数字孪生命令:

az dt --help

Azure 数字孪生实例

我们需要设置使用 Azure 数字孪生实例所需的权限。定义如下:

az dt show --dt-name <Azure-Digital-Twins-instance-name>

就是这样。您现在已经了解了如何配置简单的 Azure 数字孪生实例。同样,您可以下载任何现有的模型并将输入提供给该实例,以开发新模型。

数字孪生 - 架构

数字孪生技术支持构建和管理研发工作的复杂解决方案。让我们了解简单的架构。如下所示:

Digital Twin Architecture

让我们逐一简要了解各个级别。

级别 1:启用 IoT 的物理资产

这是架构的第一层。启用 IoT 的物理资产就像传感器、软件程序一样,可以通过互联网连接和交换数据。

级别 2:数据收集

收集数据是架构的第二层。数据是从不同的设备(如传感器、IoT 设备和旧记录)收集的。这将有助于现实世界的场景。

级别 3:数据同步

同步数据是过程的第三层。它是实时实体的虚拟表示,并以特定频率级别与之同步。

级别 4:数据处理和分析

处理数据并对其进行分析构成了架构的第四层。数字孪生执行多个模拟以识别不同情况下的过程。虚拟模型有助于模拟数据行为和性能。

级别 5:用户界面

友好的用户界面是架构的最后一层。它用于与用户交互并从现实世界数据中收集反馈作为数字孪生的输入。这是一个持续的过程。

数字孪生 - 命令行界面 (CLI)

数字孪生是基于模型定义创建的。我们已经了解了如何配置 Azure 数字孪生实例。在本章中,我们将解释如何执行简单的客户端应用程序命令。让我们逐一简要了解这些命令。

创建命令

使用以下创建命令来创建数字孪生:

CreateDigitalTwin dtmi:example:Floor;1 floor0 FloorName string First

执行命令后,您可以在控制台中看到以下响应:

CreateDigitalTwin dtmi:example:Floor;1 floor0 FloorName string First
Preparing..
Submitting..
Twin 'floor0 created successfully!

更新命令

如果要更新数字孪生的任何更改,请使用以下命令。例如:

UpdateDigitalTwin floor0 add /FloorName string Second

执行此命令后,您可以在控制台中看到以下响应:

twin was updated successfully.

如果要验证更改,请运行以下命令:

GetDigitalTwin floor0

以上命令将在您的控制台中反映更新后的名称。

孪生图

我们可以使用孪生图在两个孪生之间创建关系。它用于表示整个环境。现在让我们再创建一个孪生:

CreateDigitalTwin dtmi:example:Room;1 room0 RoomName string FirstRoom

执行命令后,您可以在控制台中看到以下响应:

CreateDigitalTwin dtmi:example:Room;1 room0 RoomName string FirstRoom
Preparing..
Submitting..
Twin 'room0 created successfully!

现在,我们添加了另一个孪生。让我们使用以下命令将这两个孪生组合起来:

CreateRelationship floor0 contains room0 relationship0

上述命令从 floor 孪生到 room 孪生添加了“contains”关系。

执行命令后,您可以在控制台中看到以下响应:

CreateRelationship floor0 contains room0 relationship
Submitting..
Relationship relationship0 of type contains created successfully from floor0 to room0

我们可以使用以下命令验证关系:

GetRelationships floor0

下面的框图描述了这两个孪生之间的关系:

Block Diagram Digital Twin

查询命令

要列出孪生图中的所有环境问题,我们可以执行以下命令:

Query

以上命令显示每个数字孪生及其详细信息。要列出所有数字孪生实例,请使用以下命令:

Select * from digitaltwins

清理资源

如果要清理数字孪生中的资源,请运行以下命令:

az group delete --name <'your-resource-group>

数字孪生 - DTDL

数字孪生技术使用设计、工程和启用 IoT 的传感器在 ML 模型中收集和处理数据。它允许用户创建和管理数字孪生模型。

数字孪生定义语言 (DTDL)

Microsoft 开发了数字孪生定义语言 (DTDL) 以帮助您以标准化方式创建物理资产和系统。它使用 JSON 的变体。它允许您链接到 JSON 对象。

DTDL 元模型类

元模型类用于描述物理实体的状态和行为属性。它是一个数字模板,描述了元素与物理实体关联的方式的结构和规则。

属性元模型类

属性类使您可以表示不更改频率的元素。让我们了解车辆的简单属性元素。

"@type": "Property",
"name": "vehicleNumber",
"schema": "string"

这里,“@type”用于定义信息类型。“name”是用户定义的名称元素,“schema”是元素的数据类型。

DTDL 遥测元模型类

遥测类使您可以描述物理实体发出的数据。例如,车辆遥测元素如 airLevel、liquidLevel 等。

"@type": "Telemetry",
"name": "airLevel",
"schema":"integer"

DTDL 命令元模型

命令类使您可以描述物理实体执行的函数或操作。简单的命令模型定义如下:

"@type": "Command",
"name": "reboot",
"request":{
   "name":"rebootTime",
   "schema": "dateTime"
}
"response":{
   "name":"scheduledTime",
   "schema": "dateTime"
}

这里,CommandRequest描述命令的输入,CommandResponse描述命令的输出。

DTDL 关系元模型

它用于描述物理实体是如何连接在一起的。简单的关系模型定义如下:

"@type": "Relationship",
"name": "floor",
"target":  "dtmi:com:example:Floor;1"

DTDL 接口

接口描述任何数字孪生的内容。接口是可重用的,并且是另一个接口中组件的模式。在接口中,为在遥测、属性和命令之间重用而定义了复杂的模式。

DTDL 数组

数组描述一个数据集合,其中每个元素都在相同的模式中定义。此外,模式可以定义为原始模式或复杂模式。简单的示例定义如下:

"@type": "Telemetry",
"name": "fruits",
"schema":{
   "@type":"Array",
   "elementSchema": "string"
}

数字孪生是物理对象的虚拟表示。这些虚拟模型用于数字表示性能和设计解决方案,以改进其物理对应物。

广告