数字孪生技术(前端实现)

数字孪生Digital twin(DT)

在2002年,密歇根大学的Dr. Michael Grieves教授首次提出Digital Twin(数字孪生)技术概念,就是通过一个数字模型来监控物体的实时状态。由于当时的数字化技术水平比较低,该技术没有深入发展。随着3D建模技术、大数据技术等技术的提升,2014年Digital Twin这个概念又重新回到了人们的视线里。

简单来说,数字孪生就是对真实存在的物理系统的一个虚拟复制品,虚拟体和实体之间通过数据交换建立联系,通过这种联系,可以监测实体的实时动态。因此我们可以说,数字孪生中的实体和虚拟体其实是不分彼此的。
DT 基于传感网络获得的海量系统状态数据,在数字空间完成物理系统与数字模型之间的同步;以数据为驱动力,构建孪生体模型,继而在数字空间模拟仿真物理系统的演绎过程;进一步,在数字空间对孪生系统进行推演和预测,结合感知技术得到有效信息,反作用于物理实体,为其智能决策和高效操作提供支撑。
数字孪生技术(前端实现)_第1张图片

优点

直观观测。可视化的远程监控,实时动态的仿真真实场景,方便用户观测,加速对新产品的了解。
减少成本。模拟不同产品细节部件,不同部件参数,在不同条件下的生产活动过程,避免错误选择,提高产品参数配置的准确性;计算多种方案的结果,减少人力财力,避免研发决策失误,从而得出最佳决策。
预测风险。根据数据,预测后续行为轨迹,能够预判可能出现的生产瓶颈、部件损害、产能降低等风险,避免损失。时时优化策略,实现稳定并不断优化的生产过程。
符合长远发展。数字孪生不仅仅是一项通用的使能技术,也将会是在数字社会,人类认识和改造世界的方法论。将成为支撑社会治理和产业数字化转型的发展范式。

前端技术

一、Canvas

简介
在web中,实现2D基本图形及动画效果,首先会想到使用canvas。例如上图,实现一个可以实时显示风向角变化的效果图。canvas非常灵活,能够很好地融合JavaScript代码并在浏览器内绘制华丽的图形,拥有多种绘制路径、形状、字符以及添加图像等方法。
面对各种复杂的图形及效果,我们可以采用canvas框架,例如Konva,它可以轻松的实现桌面应用和移动应用中的图形交互交互效果,

二、Three.js

简介
Three.js是基于原生WebGL封装运行的三维引擎,在所有WebGL引擎中,Three.js是国内文档资料最多、使用最广泛的三维引擎;Three.js是纯渲染引擎,而且代码易读,适合作为学习WebGL、3D图形、3D数学应用的平台,也可以做中小型的重表现的Web项目。

实现
(1)虚拟场景构建

结合机房实际监控需求,构建数字孪生的虚拟机房,利用 WebGL 的第三方三维引擎 three.js 和 Blender 软件进行机房三维建模和场景建模,并且使用 LOD 算法对场景进行优化。

1)使用 Blender 软件进行建模。
新建服务器立方体模型->给服务器模型添加纹理贴图->导出服务器模型。
2)场景搭建
使用 three.js 三维引擎将 JSON 格式的三维模型添加到Canvas 画布上进行场景搭建,并将机房场景渲染至浏览器上,呈现机房模型可视化界面。
3)场景优化
LOD(Level of Detail)是Charknl为了提高图像实时绘制的速度提出[⒅,LOD是通过对层次化细节的处理,来补偿损失的硬件性能,在用户察觉不到效果损失的前提下,可以提高实时显示系统的帧率。

(2)孪生机房的数据采集和数据驱动
利用 SNMP 协议和数据采集设备采集机房数据,同时使用 WebSocket 协议实现物理机房和虚拟机房之间的实时数据交互,保证虚拟机房可以实时获取设备的运行数据,并且使用孪生数据驱动设备模型与物理机房设备进行同步映射。
1)数据采集(静态、动态)

2)数据实时交互设计
利用 WebSocket 协议双向通信的特性,将其作为浏览器和服务器之间数据交互的方式,允许服务器主动将数据推送到浏览器,确保数据传输的高效性和实时性。

3)数据驱动孪生机房模型

(3)孪生机房三维可视化监控系统的研究与实现

分析系统的实际需求,使用 three.js 技术和其他相关技术实现机房可视化系统的功能模块,包含场景功能、状态监控、告警管理、后台管理等。并对系统进行多方面的测试。

Blender

WebGL技术

WebGL(Web Graphics Library)是一种JavaScript API,可在 Web浏览器中呈现3D图形效果,它是通过对几何场景的顶点数组、着色器、渲染和矩阵变换进行编程来创建一个三维场景。WebGL可以为HTML5中 Canvas标签提供硬件3D,加快渲染速度,Web 开发人员可以使用系统图形来简化浏览器中的3D场景和模型,并创建复杂的导航和数据可视化效果37。传统的动画效果展示需要使用第三方插件,而 WebGL不需要安装任何插件就能在Web端展示三维模型。
three.js技术

three.js是通过JavaScript编程语言编写的3D引擎,源自于GitHub 的一个开源项目。最早版本的 three.js 只支持SVG和2D Canvas渲染,但是自WebGL发布以后, three.js开始基于WebGL开发。虽然 WebGL的功能非常强大,但是使用原生的WebGL创建三维模型是比较复杂的,因为它需要比较多的数学知识,比如线性代数、解析几何等,初学者使用需要花费很多时间。而 three.js 作为使用WebGL技术开发的三维引擎,较好的封装了WebGL提供的接口,隐藏了WebGL的基本图像渲染细节,极大的节省了学习成本,使用者可以简单快捷的操作使用。

实时通信技术

WebSocket协议实时通信

参考

关于数字孪生,你了解多少?成品孪生风机的酷炫,欣赏一下~:https://blog.csdn.net/weixin_46452233/article/details/104852671
数字孪生技术在船舶综合电力系统中的应用前景与关键技术 作者: 庞宇,黄文焘,吴骏,贺兴,邰能灵,胡思哲
前端04.数字孪生实现方案https://blog.csdn.net/a2274001782/article/details/117331425
基于数字孪生的机房三维可视化监控系统研究与实现_罗珊珊

你可能感兴趣的:(学习笔记,后端,开发语言,python)