基于Web的工艺三维实时仿真实现方法
2022-08-24温锦彬
云 震 温锦彬
(1.中海石油(中国)有限公司海南分公司工程建设中心,海口 570100;2.中海油能源发展装备技术有限公司南海工程分公司,湛江 524057)
由于海上油气田的位置、空间大小的特殊性质,相关设施的生产工艺流程比较复杂。高效且逼真的工艺流程三维实时仿真模拟,对于设计、生产、运维等不同应用人员可以起到很大的帮助。以往二维方式的展示无法实现工艺流程深入了解、症结分析以及经验总结等方面的直观效果,可通过研究图数据库的相关技术并实现应用来提升工艺三维实时仿真的展示效果[1]。
1 研究背景
三维仿真研究是现今技术领域的一个热点,如产品展示、虚拟模拟以及软件开发等,可以极大地提高应用效果[2]。如何选择图数据库技术,显得尤为重要。Neo4j技术对图形处理器(Graphics Processing Unit,GPU)渲染的支持不太到位,因此可以考虑采用图形语言传输格式(graphics language Transmission Format,glTF)技术作为替换方案。glTF这种跨平台格式已成为Web上的3D对象标准格式,是由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义的,基本上已成为3D模型的JPG格式——Web导出的通用标准[3]。glTF能为3D内容工具和服务定义一种可扩展的通用发布格式,简化了创作工作流程,并可以在整个行业中互操作使用内容[4-5]。
基于三维可视化引擎,结合组态工艺实时监测数据、工艺流程数据,形成一套完整的工艺流程三维实时可视化仿真模块,以动态形式展示物流在整个工艺系统中的流向信息和基础信息,并用不同的颜色区分物流介质。通过3D可视化动画和虚拟现实(Virtual Reality,VR)模拟还原技术,将生产工艺流程三维可视化还原,搭配动态效果,获取更清晰直观的信息的同时,享受视觉体验。借助工艺流程三维实时可视化仿真技术进行工艺验证,可优化化工生产质量,为企业节能降耗。工艺三维实时可视化仿真技术路线包括工艺仿真数据模型研究、工艺仿真数据存储技术研究、浏览器/服务器(Browser/Server,B/S)高性能仿真渲染技术研究以及工艺仿真处理工具研究等。
2 仿真数据模型研究
工艺流程三维实时仿真数据除了包括3D模型数据外,还叠加了时间维度和业务维度(生产工艺)数据。如何将这些数据融合形成统一的数据模型,是实时仿真空间和可视化表达的关键技术之一。本研究旨在定义一种新的仿真数据模型,承载实时仿真所需的5D数据要素,且支持流式数据传输,满足B/S模式下高效加载和渲染的需求。图1从左向右分别代表了数据模型从原始3D数据模型向5D数据模型的演化。模型融合如图2所示。
2.1 工程布置模型
图2中位于最左侧的图形是在工程设计阶段工艺设计后,通过工程布置设计形成工程模型,是物体精确的空间数学表达。它的数据要素包括唯一编码、几何尺寸、位置、旋转、缩放及颜色,与工艺系统并无直接联系。
2.2 轻量化三维模型
图2中位于中间的图形是数字三维引擎所采用的轻量化模型源自工程模型,用于可视化表达的近似三角网格。它的数据要素为编码、顶点、边、三角网格、法向量、纹理坐标以及材质等。
2.3 融合模型
图2中位于右侧的图形表示了工艺仿真数据源的融合。5D仿真数据模型以三维数据为核心,将时序数据(实时监测)和工艺信息与顶点、法向量、纹理等空间要素融合绑定,形成5D数据模型。
建立仿真数据模型的前提是从语义描述、空间位置、几何形态、演化过程、复杂关系以及属性特征来定义多模态场景数据实体,进而构建由时序图、场景图以及空间图组成的仿真数据模型。
3 工艺仿真数据存储技术研究
仿真数据基于图构建,包括时序图、场景图和空间图。基于图的特性,存储主要由实体和边(关系)构成。其中,实体存储的内容在多模态场景数据实体中已经定义,即依据不同的图的特性,采用不同的数据存储来满足持久化需求。
当前,最流行的在线图数据存储库为Neo4j,可以支持数以百亿计的节点和边的存储、检索,完全能够满足在构时序图和场景图的存储和构建。但是,对于空间图而言,单个图的顶点和边少则千万,多则数百亿。在GPU渲染过程中,一次性存取数千万实体和边要求达到毫秒级,Neo4j无法满足要求。因此,空间图的存储需要更加贴近渲染端。本技术研究采用对GPU更加友好的glTF格式作为存储载体。
3.1 基于图数据库的存储
通过Neo4j存储时序图和场景图,涉及语义描述、演化过程、复杂关系以及属性特征4方面的数据。图3为Neo4j的存储逻辑。其中:Node为数据实体;Label可定义标签,用于语义描述;edge用于表述复杂关系;Node和edge都支持属性特征的描述。
基于以上存储逻辑,定义工艺仿真中若干实体的数据存储。图4为简单的示例,表示管道、仪表、分布式控制系统(Distributed Control System,DCS)对象以及报警对象等典型数据实体和关系的存储。
3.2 基于glTF的3D数据存储
通过glTF存储空间图,涉及空间位置、几何形态和图形关系。glTF允许在不同的层级自定义扩展,而不会影响格式本身的图形渲染性能。通过扩展,可以实现空间图向时序图、场景图的映射。同时,Neo4j中只需要存储资产对象级别的引用,其实体图形存储在glTF中。
如图5所示,椭圆节点是glTF数据模型中的规范节点。通过将时序数据、流向数据与顶点数据绑定,并使用glTF扩展规范将工艺对象身份标识号(Identity Document,ID)(设备、仪表、管线)、压力、流速以及介质等业务数据映射到mesh、material,确保工艺对象ID与Neo4j中的ID一致,形成互为引用的指针,完成Neo4j与glTF两种数据存储模式的融合。
4 B/S高性能仿真渲染技术研究
针对智能油田所采用的典型B/S架构下的渲染场景,研究基于Web浏览器端高性能实时渲染技术,与智能油田生产管理模块、设备管理模块以及虚拟巡检模块相结合,全面实施生产智能仿真和优化,挖掘数据价值,为生产提供服务。WebGL在主流浏览器被广泛支持,通过顶点着色器(Vetex Shader)和片元着色器(Fragment Shader)编程,将时间和业务视图数据转换为实时三维可视化表达。
通过在渲染管线顶点着色器和片元着色器阶段的Shader编程实现工艺仿真模拟,以下采用伪代码描述其基本实现原理,具体方法如下:
(1)需要先定义uniform和varying,用于控制时序变化和颜色特征;
(2)在顶点着色器中获取与顶点绑定的时序数据并进行线性插值,为片元着色器渲染做准备;
(3)在片元着色器中,比较uniform u_time与仿真模型中的realtime数值,设置材质透明度,模拟介质流动。
5 结语
通过5D仿真数据的时空索引算法,为大型工艺系统建立多维度图结构——时间子图、空间子图和场景数据子图,为前端5D仿真渲染按需提供流式图数据,提升前端渲染和性能。利用Web端中立开放的模型格式glTF对Web和GPU友好,被大多数主流三维引擎采用,兼顾性能,且具有很强的数据扩展能力。