基于 WebGL 技术的某升船机塔柱结构仿真可视化平台研究

2023-08-26 12:39胡美璇
水利信息化 2023年4期
关键词:云图可视化网格

邓 鹏,罗 成,胡美璇

(上海勘测设计研究院有限公司,上海 200335)

0 引言

在数字化转型的浪潮下,数字孪生、大数据、人工智能等新一代信息技术正逐步与水利业务深度融合[1-3]。数字化技术在水利水电工程中实现深化应用的基础是建立一套完善的信息管理系统,形成数据中心,为所需对象提供数据服务[4-6]。对数据进行标准化采集、管理和存储,一方面通过共享各类信息,实现各类人员的高效协同,另一方面对存储的大量数据进行数据挖掘寻找具有潜在价值的数据,进而为决策人员提供依据[7]。

某升船机为齿轮齿条爬升式垂直升船机,是某水利枢纽中重要的通航建筑之一,具有建设规模大、工程设计复杂、施工安装难度高、运行维护与设备检修技术要求严格等特点。塔柱作为升船机主要支撑结构将承船厢、机电设备、上部机房结构的荷载传递至地基,为混凝土薄壁式结构。运行期塔柱外侧薄壁混凝土容易受环境温度变化的影响,引起结构内外侧温差,从而引起较大的结构变形,影响升船机的安全及正常运行。为实现对某升船机的数字化升级,对工程全生命周期数据的分析和管理,提高运维管理效率,搭建了一套数字化管理系统。作为升船机船厢室段重要结构的塔柱是安全管理的主要对象之一,因此需要建立一个仿真可视化平台用于运行维护阶段的安全管理。

仿真模型的建立是数字孪生技术应用在水工结构中实现智慧化模拟的主要内容之一,仿真模型一般由可视化平台、计算数据和算法实现。一方面,受限于传统的分析研究模式,计算数据主要以文字总结报告及图表形式留存,后续的分析研究也基本停留在结论层面,产生的网格数据及计算结果等过程数据无法被信息系统获取利用;另一方面,受限于分析软件C/S 端架构,计算数据的可视化仅能在本地进行,分析软件提供的有限接口也限制了进一步的功能开发。因此,水利水电工程的数字化转型亟须实现独立的信息系统对结构安全状态进行辅助分析及展示[8-10]。目前主流的无插件 Web 端三维轻量化展示技术主要有 2 种:一种是使用 WebGL(Web 图形库)技术,通过浏览器调用客户端显卡资源进行渲染;另一种是基于云渲染技术,在服务器端进行三维场景渲染后推送到用户浏览器中,此种方式对服务器的性能要求较高,普通网站服务器无法同时处理大量用户的访问需求。平台用户为专业技术人员,故采用可满足较高并发访问量的 WebGL 技术。

目前,针对网页端有限元仿真可视化平台的研究还较少,李锦钟[11]研究了基于有限元软件(OpenSEES)的工程结构地震响应可视化平台,支持二维单元模型在 Web 端以云图的方式进行可视化展示;周秋景等[12]提取了有限元计算的结果,作为混凝土坝在线监控预警平台的分析数据;叶复萌等[13]研发了蓄能电站群安全监测平台,对监测数据进行分析,并进行了有限元计算模型的实时在线反演分析,前端效果采用 BIMFace 系统进行可视化展示;李明伟等[14]研发了基于 C/S 端的船闸安全智慧管理系统,将 Ansys 软件窗口嵌入客户端实现有限元仿真结果的可视化。

安全分析评估系统要求具备三维仿真成果的可视化展示能力,这是实现水利工程运维数字化的主要工作内容之一[15],也是后续利用数字孪生技术实现高度智能化运维目标的基础技术条件。本研究依托某升船机工程,研发了一个结构仿真数据的可视化平台,选用能够跨平台、免插件且具有高性能渲染能力的 WebGL 技术,通过接入结构仿真数据将有限元仿真计算成果进行可视化呈现,支持云图显示及剖切功能、变形动画显示、工况组合计算、监测测点对比等,为运维过程中安全技术人员对结构进行安全评价提供可视化数据支撑。

1 模型重绘

1.1 数据轻量化

获取有限元软件中的网格数据,并对实体单元依序编制序号i,对节点数据结构以序号j表示,组合形成单元集合E和单元网格类型集合U,以Ei表示该实体单元详细信息,主要有单元类型、节点信息等,以对象Ui表示单元类型。将所有节点坐标导出为集合N,集合中数据结构按照节点依序编号,Ei所包含的节点索引号可组成数组Ii,具体可表达为

进一步根据单元网格类型和节点的坐标数据,对该实体单元几何模型进行绘制,可以将表面信息解析为数组。有限元计算模型中通常采用多种单元类型,常见的八节点六面体、六节点五面体实体单元组成及单元所含节点数组结构如图1 和 2 所示。

图1 八节点六面体实体单元

图2 六节点五面体实体单元

有限元计算模型可视化技术主要有统计图表、网格体表面和全量绘制 3 种数据表达方式,由于网格体全量绘制需要调用后台的大量计算数据,在前端需要对网格数据进行计算重绘,在 Web 端渲染模型和表达数据将耗费大量软硬件资源。因此,采用绘制网格体表面数据的方式轻量化表达三维模型和计算数据,占用数据存储量少,渲染速度快,而且三维模型为实时绘制,便于进行模型实时交互操作。

网格体表面绘制方法须将体数据解析为表面数据,从而轻量化表达数据。经过分析,数据轻量化算法流程如下:1) 分析所有实体单元的单元类型,根据不同的单元类型,解析得到单元详细信息;2) 比较所有单元的表面结构数据,去除重复的节点索引号组合;3) 根据重构的表面结构数据,去除所有内部的单元;4) 按照建筑几何结构分割实体单元集合;5) 对每个子区域内所有单元包含的表面节点集合进行重新编号,并重构每个单元的表面结构数组。

1.2 WebGL 渲染技术

解析有限元计算结果中应力、位移数据,从而可在有限元计算数据的几何模型表面绘制云图,并动画显示形变动效。将应力或位移数据进行归一化处理,设置颜色梯度,按照数值范围处理每个节点的颜色值。

WebGL 是基于三角面片渲染三维模型的,首先,通过顶点着色器处理每个节点位置,顶点着色器通过坐标矩阵转换,可实现模型的选中、平移、缩放、旋转等操作。然后,通过片元着色器处理每个三角面片的颜色,片元着色器逐片处理由顶点着色器传递来的颜色,并进行光栅化处理。

2 可视化平台研究

2.1 功能介绍

可视化平台获取有限元分析的前、后处理数据,将不同节点所在位置直接在 Web 端三维空间中重构生成模型并进行展示,各节点的数据能够直观地根据颜色深浅进行表达。可视化平台采用 B/S 架构,采用关系型数据库管理系统 MySQL 进行数据存储,采用数字孪生技术软件 iTwin 进行三维渲染,采用计算机编程语言 TypeScript 进行前端编写,数据处理成JSON 格式传给前端,后端部分采用 JAVA 语言进行编写。提取有限元分析数据后经过进一步处理,对节点坐标和分析数据进行网格化建模,用云图着色模式对节点及周边平面进行着色,同时设定色域范围,从计算结果中划分数据的上下限范围,以此制定颜色划分机制,最终使用 WebGL 技术,在网页端呈现三维的图形化分析结果。

2.2 架构图

可视化平台架构可分为数据层、功能层和应用层3 个层次,具体架构如图3 所示。数据层和功能层介绍如下:

图3 平台架构

1) 数据层。数据层是有限元可视化的基础数据来源,也是可视化的数据基础,其中基本信息、网格几何信息、荷载信息、位移数据和应力数据为静态数据,监测数据为实时数据。

2) 功能层。功能层是可视化平台的主要组成部分,可对基础数据进行处理、分析和发布,为应用层提供服务功能。主要功能如下:a.可视化渲染。是对各类数据进行可视化展示的主要功能,可对网格文件进行解析,支持视图调整和交互操作。b.数据预处理及管理。是有限元软件与平台间的转换器,对多种不同文件中的数据进行提取并统一文件中的数据格式,用于平台的前端加载及后端存储,提供统一的入口维护数据并对数据文件进行管理。其中:工况管理功能是对平台中可视化的结果数据进行维护,利用组合工况功能实现用户自定义在线计算的功能;监测数据对比功能是将实际的监测数据与有限元计算结果进行可视化比对,通过2种数据进行结构安全状态的综合性判断。

2.3 数据流

将有限元分析计算所依赖的数据文件通过相应的聚合加工,生成对应的易于前端WebGL处理的JSON格式文件并存储到对象存储服务器中,同时建立结构化的文件元数据。在应用中根据场景提取相应的元数据,再通过文件元数据检索相应的数据文件,返回给前端进行渲染。数据流过程如图4 所示。

图4 可视化平台数据流

2.4 接口定义

根据数据流,可视化平台需要定义以下 3 种接口:1) 计算数据提取接口,将有限元中导出的数据处理为 JSON 格式;2) 工况组合计算接口,将可视化平台中的工况组合关系数据进行前端配置,用于调用计算结果数据的组合及计算;3) 根据前端场景,返回对应的计算结果文件用于前端的数据展示。

2.5 结果展示

不同工况应力、位移等有限元分析数据反映了结构形变等物理特征,为直观分析有限元分析数据的分布规律,需要在三维模型上以云图形式展示。目前实现云图的算法主要有点和面 2 种填充法,点填充法比面填充法具有更高的精度。从有限元软件中获取计算结果,可得到升船机塔柱结构计算模型网格中所有应力和位移点数据:针对节点荷载,采用矢量箭头形式标识应力方向,箭线长度按比例标识应力数值大小;针对面荷载,获取有限元分析网格单元数据集合,解析得到有限元分析表面数据集合,据此渲染面荷载数据;针对体荷载,比较得出所有点数据的极值,通过等值色阶平滑过渡得到以不同颜色区分的云图模型。

为更直观地展示变形特征,可视化平台提供变形动画功能。以初、末状态节点坐标为基准,利用插帧的形式显示变形的中间状态,组合后形成变形动画。中间状态节点坐标采用线性插值的方式进行计算,通过设置放大倍数直观体现较小变形。

2.6 关键技术

2.6.1 数据处理

计算数据利用脚本程序调用有限元软件导出。脚本程序执行流程如下:查询单元和节点编号的最小值和最大值,通过极值遍历所有计算节点和单元,依次获取单元和节点上的节点编号、节点坐标、单元-节点索引关系、单元材料和计算结果数据,并存储为文本格式的数据文件。

通过有限元软件导出的数据文件根据原本软件内部数据结构存储,核心以计算节点—计算网格—计算数据的模式存储。由于数据文件主要依赖于有限元软件的函数命令,无法直接转化为三维图形表达时所用的三角面片格式,因此需要将这种数据结构转换改写为计算机图形引擎能够识别的数据格式。

数据转换指对原本的文本文件进行解析,分离其中原本混杂存储的节点、网格和计算数据,包含以下3 个处理过程:1) 利用数据文件中的分隔符号,对数据进行处理和分离,以数组的方式存储,索引字段为节点编号,便于后期数据定位。2) 对网格数据进行处理。网格数据是将节点数据按一定的顺序和数量进行组合形成的数组,1 个网格由数个节点及各自的外表面(四边形或三角形)组成,每个网格数据内部包含组成网格的节点编号集合,索引字段采用单元编号。3) 每个节点的计算数据单独以节点为索引进行存储,计算数据包含每个节点的三向位移和应力,用于控制此节点的颜色。

经过数据转换,计算机可以识别有限元软件的计算结果数据,但绘制前还需进行处理,即将内部网格中包含的所有四边形与三角形拆分成为 Mesh (三角面片网)。计算机内部识别三维对象时均以 Mesh 的方式由显卡进行图形处理,所有的四边形与三角形都会被转换为相连的三角面片,这一过程不被用户感知,是由图形引擎内部自行操作的,因此开发过程中只需将所有组成网格的面数据离散化传入图形绘制程序即可。

2.6.2 面片生成

由于计算模型中包含上百万个单元,因而面集合数据量达到千百万数量级,这些庞大的数据体量会造成内存溢出,难以通过 WebGL 技术在浏览器端进行三维可视化表达。为简化计算模型数据体量,可移除重合的面,仅保留外表面集合。可进一步将外表面计算模型网格单元按照材料类型划分为更小的集合体,通过表面计算模型数据分割、异步加载,优化了计算模型渲染速度,避免了内存溢出。表面计算模型数据处理流程如图5 所示。

图5 表面计算模型数据处理流程

2.6.3 剖面云图分析

对于复杂的内部结构状态,一般利用剖切功能在选定结构位置生成剖面,剖面的结构状态利用云图形式进行展示,剖面云图详细描绘建筑物内部有限元分析网格单元的各类结果数据,以便直观分析建筑物形变、受荷情况。剖面云图生成算法主要流程如下:1) 获取剖切平面的法线和原点;2) 计算网格单元的棱线向量;3) 判断网格单元中棱线是否与剖切平面相交,如果相交,利用网格单元与剖切平面求交点算法计算得到相应的交点;4) 计算交点之间的排列顺序,利用网格单元与剖切平面求交面算法生成凸截面;5) 根据计算所得的交点与棱线端点之间的比例关系,计算该交点对应的有限元分析数值;6) 划分颜色梯度区间,计算得到交面的顶点颜色值;7) 绘制每个网格单元与剖切平面的交面,展示剖面的云图效果。

3 应用分析

3.1 数据基础

3.1.1 计算基础

某升船机塔柱结构采用通用有限元软件 Ansys进行计算。计算模型中包含地基和塔柱筒体 2 种结构模型,塔柱筒体上部的建筑结构作为永久均布荷载施加在塔筒结构中。网格节点数为 2 253 351 个,单元数为 633 604 个,以八节点六面体结构化网格为主,部分次要结构网格为六节点五面体。

塔柱结构受到运行过程中涉及的永久和可变及异常等作用在内的自重、活、风、温度和事故等荷载共计 21 个单工况,并且通过荷载组合形成 16 种不同工况结果。

3.1.2 文件基础

获取有限元计算的前处理及计算结果等数据,不同有限元软件涉及的数据格式和文件格式不一,但基本原理类似。本研究在 Ansys 软件中主要利用APDL(Ansys 参数化设计语言)编制程序和 PyAnsys工具实现调用 Ansys 及其文件达到数据获取的目的,主要数据如下:

1) 基本信息。基本信息为计算前的配置信息,包含前处理过程中涉及的参数,包括材料名称、序号、密度、弹性模量、泊松比、初始温度及线膨胀系数在内的材料参数及单元类型编号在内的单元信息。

2) 荷载信息。前处理中各类荷载按照主要作用方式,分为点荷载、面荷载、体荷载、约束及惯性荷载等信息,其中:点荷载中包含作用节点编号、类型及数值,面荷载中包含作用节点编号和数值,体荷载中包含作用节点编号、数值,约束包含作用节点编号、约束类型和数值等,惯性荷载包含全局坐标系下X,Y,Z3 个方向上的惯性加速度矢量大小。

3) 网格几何信息。主要包含模型的节点和单元等信息,节点信息包括节点编号、空间坐标,单元信息包括单元编号、单元所含节点编号及相应的连接顺序。由于网格的连接方式主要受单元的影响,因此须对不同类型的单元分别进行处理。

4) 结果信息。有限元计算的结果信息主要包含节点解中的应力和位移数据,数据按照不同荷载分类,位移数据包含节点编号及X,Y,Z3 个方向及合位移方向的位移值等数据,应力数据包括节点编号,以及X,Y,Z,XY,XZ,YZ方向上的应力等数据。

3.2 求解设置

求解设置主要包含材料与荷载展示,是计算前处理部分的可视化部分材料展示,包含材料名称、密度、弹性模量、泊松比、定义的参考温度和线胀系数等材料信息,不同材料采用不同的颜色渲染方案,可以选择特定材料进行突出显示,便于查看各材料结构。荷载展示主要以云图的方式显示施加的面荷载及体荷载,节点荷载采用矢量箭头的方式进行显示,支持单工况显示,并附有相应的荷载大小、作用梯度及方向等文字说明,能够较为直观地说明受荷情况。集中力下点荷载、均布面荷载及体荷载作用下的展示效果如图6~8 所示。

图6 集中力下点荷载显示效果

图7 均布面荷载显示效果

图8 温度荷载作用下云图显示效果

3.3 计算工况

计算工况展示是综合展示计算结果的模块,能够显示各项应力或位移的云图数据。选择相应工况的结果类型,前端利用接口从存储计算结果的数据库中获取数据,后端将数据生成 JSON 格式的文件传给前端进行显示。结果类型支持X,Y,Z方向上的位移,以及相应的X,Y,Z,XY,YZ,XZ方向上的应力。可视化平台中塔柱结构变形云图效果如图9 所示,原计算软件变形云图效果如图10 所示,可以看出 2 种渲染效果基本一致。

图9 平台中塔柱结构变形云图效果

图10 原计算软件中塔柱结构变形云图效果

前端页面中提供计算结果的文字说明,包括该工况下当前结构类型中的最大位移值,当前选中结果类型数据中的最大和最小应力值,以及最大和最小位移值。

可视化平台支持模型剖切功能,剖切后形成的切面利用结构体内部的计算节点数据绘制成云图进行显示,能够对整个模型的力学性质进行查看及分析。模块中可以将静态云图通过插帧算法进一步渲染成变形动画进行展示,相应的变形倍率可以进行人工设置,以便将微小的变形放大,突出显示效果。

可视化平台能够对相关工况进行自定义组合,用户通过前端对计算工况进行相关配置,将单工况进行自定义组合,形成组合工况计算数据,能够更广泛地拓宽整个计算的应用范围。

3.4 监测对比

在某升船机塔柱结构的上部和下部 2 个高程上,分别埋设有正垂线及倒垂线监测仪器。可视化模块中加入监测数据对比功能,将接入的测点与网格模型中的节点绑定,能够较为直观地展示监测仪器所在位置,测点数据以过程线图的形式进行展示。相对于传统的监测数据分析,可视化平台中监测数据增加了有限元计算结果数据的可视化对比。通过仪器埋设坐标位置确定相对应的节点编号,通过调用监测数据接口获取监测数据,读取所选择工况下计算数据中相应节点的计算结果数值,平台中测点对比效果如图11 所示,对比结果可用于展示计算结果的可靠性。

图11 测点数据对比效果图

通过以下对比,可以利用有限的监测测点推断塔柱结构各个部分的变形情况:1) 数值对比。利用表格展示监测及计算数据的具体数值,并计算偏差率。2) 历史数据对比。对比计算值和监测过程线,可研究分析影响塔柱结构变形的主要环境因素。3) 根据塔柱结构特点,将上下层测点数据所形成的测点位置相连,形成水平位移线,定量展示塔柱的变形情况,有限元计算的结果也在图中显示,用于对比分析,计算结果与监测结果对比效果如图12 所示。安全管理人员可根据对比效果图对计算结果的可靠性进行评判,并基于预设荷载计算成果评估该工况下的结构安全状态。

图12 监测数据对比效果图

4 结语

研究的升船机塔柱结构仿真可视化平台在某升船机数字化升级项目的建设过程中应用效果良好,可提供可视化展示及接口服务,一方面满足结果分析的可视化需求,另一方面接入相关数据用于扩展应用,具有较强的实用性和扩展性。可视化平台功能适用于常见的水工结构,可以作为工程数字孪生平台中的仿真可视化引擎。

相对于传统技术,本研究具有以下创新点:1) 平台能够实现独立于有限元计算软件的运行,不需要额外购买软件授权;2) 对计算数据和显示技术进行研究,将体模型优化成表面模型,减少了三角面片的渲染量,渲染时间变为原来的 1/4;3) 通过研究剖面算法,实现Web端的剖面云图生成。

目前仅对结构静力分析中的荷载可视化及云图显示进行了研究,不能完全覆盖水利水电工程中各种类型的仿真分析,后期拟对流体计算中涉及的流线图显示和地震响应计算过程中的变形展示进行研究,扩充结构仿真可视化平台在水利水电工程领域的适用性。

猜你喜欢
云图可视化网格
用全等三角形破解网格题
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
成都云图控股股份有限公司
反射的椭圆随机偏微分方程的网格逼近
“融评”:党媒评论的可视化创新
重叠网格装配中的一种改进ADT搜索方法
黄强先生作品《雨后松云图》
基于TV-L1分解的红外云图超分辨率算法