完颜振海+梁磊+杨亮+沈志军+罗军
摘要: 为提高数值仿真后处理的效率,满足分布式仿真系统在数值仿真数据方面的可视化需求以及实现仿真试验过程的可视化,基于EnSight的二次开发开展数值仿真可视化系统设计.提出基于Qt开发框架的系统集成、基于Python的功能开发和基于Socket的通信接口开发,实现具有协同功能的数值仿真可视化系统.该系统采用模板化技术实现带场景的可视化和快速后处理功能.给出系统架构、组成、实现效果及应用案例.应用结果表明:该系统能够适应多仿真类型结果分析,实现动态仿真过程的协同可视化.
关键词: 分布式仿真系统; 数值仿真; 后处理; 可视化; 协同系统
中图分类号: TP311.1文献标志码: B
Abstract: To improve the postprocessing efficiency for numerical simulation, satisfy the requirements of distributed simulation systems on numerical simulation data visualization and fulfill the numerical simulation process visualization, a system is designed on the basis of secondary development of EnSight. The system integration is implemented by Qt, the functions are developed by Python, and the communication interfaces are designed with Socket. So the visualized numerical simulation system with collaborative functions is developed. The system architecture, components, implementation results and application cases are also given. The application results show that, the system can be applied in the analysis on various types of simulation results and implement collaborative visualizations during dynamic simulation.
Key words: distributed simulation system; numerical simulation; postprocessing; visualization; collaborative system
0引言
CAE包括结构有限元分析、计算流体力学和多体动力学等,在产品研发和设计中的应用越来越广泛,已经成为一种非常重要的现代工程辅助设计方法.随着计算理论以及计算机硬件和软件的发展,利用CAE技术对复杂的工程问题进行精确模拟和分析已经成为可能.然而,CAE计算过程的可视化和计算结果的后处理仍然是薄弱环节:一方面有些分析计算是很漫长的过程,例如流体力学分析即使利用高性能计算平台也需要数天甚至数星期的时间,而现有的计算过程的可视化不完善,如果等计算全部完成再检查分析结果,一旦发现分析有误再重新计算会浪费大量的时间和计算资源;另一方面,CAE计算结果的后处理往往需要花费大量的时间,有些有限元分析后处理的时间甚至比计算时间还长,特别是对于多工况分析应用,计算结果的处理分析需要花费更多的时间[1].随着CAE应用的深入,多物理场耦合分析开始受到越来越多的重视,耦合分析往往需要多个求解器,其分析结果难以进行统一的显示和后处理.因此,开发高效适用的可视化系统是充分发挥CAE功效的重要途径之一,在此基础上构建可视化协同系统是实现分布式数值仿真的重要支撑.
CAE数值仿真的可视化,也可称作科学计算可视化,最早由美国国家科学基金会在1986年召开的一次关于科学计算与图形学及图像处理的讨论会上提出,是将计算机图形学和图像处理技术应用到科学计算领域,将科学计算过程中产生的数据转换为直观的图形或图像在屏幕上显示并进行交互处理的理论、方法和技术,涉及到计算机图形学、计算机辅助设计、图像处理、计算机视觉及人机交互技术等多个领域.[2]现有CAE软件的可视化和后处理功能以软件自带的后处理模块为主,各软件后处理模块大部分针对软件专有的仿真数据格式,因此相关数据的可视化和后处理必须借助该仿真软件才能使用[3],无法满足多专业耦合仿真应用分析结果的展现、分析研究和协同的需要.同时,一些软件的后处理不具备并行计算和渲染能力,导致后处理时间过长,特别是对于一些多工况分析的后处理,需要大量的重复劳动.[46]由于各类分析软件种类差异较大,很难适应多专业耦合仿真分析结果的可视化需求,也造成不同专业研究人员之间交流不便.
考虑到各种CAE结果的数据格式差異,可视化显示和结果后处理较为复杂,因此要求系统具有良好的适应性,同时考虑到后续发展,该系统还要具备扩展性,能够支持多种CAE结果的可视化工作,包括常用的Abaqus,Nastran,ANSYS,LSDYNA,FLUENT和CFX等常用的CAE软件.专业科学计算可视化软件能够适应不同的数据格式,但是软件自身无法实现自动可视化和后处理功能,也不能实现分布式仿真应用的协同支持,需要进行二次开发.
目前,能够支持多类型CAE结果数据可视化和后处理的专业软件主要有AVS/Express,EnSight和Tecplot等.AVS/Express是面向对象、基于虚拟编程范例的模块化三维可视化开发环境,具有跨平台的应用能力,可开发能力强,但CAE软件接口更新较慢.Tecplot主要支持计算流体力学类软件的后处理,对各类有限元分析的支持稍显不足.EnSight可支持多种类型CAE软件数据的可视化和后处理,包括常用的有限元分析软件、计算流体力学软件、多体动力学软件和CAD软件,同时该软件也具备较好的二次开发能力,支持沉浸式虚拟现实设备,因此选择在EnSight上进行开发.
1EnSight简介
EnSight是面向工程应用的科学工程可视化与后处理软件,支持多种操作系统,包括Linux/Unix平台,Windows平台和MacOS平台等.EnSight特点如下:(1)支持多类型数据格式.该软件支持大多数主流CAE程序接口和数据格式,包括50多种CAE和CAD软件,支持多个数据集,能够支持计算流体力学、有限元分析、计算机辅助设计和多体动力学结果的联合展示,具备多专业耦合分析结果显示能力;(2)支持服务器/客户端运行模式.该软件可以随意访问任意地点的数据,采用的服务器/客户端运行模式具有快速、稳定和跨平台的优点;(3)二次开发能力.该软件支持用户界面定制,可使用开源编程语言Python对EnSight的功能进行脚本编程[7].
2系统架构及组成
2.1系统架构
在EnSight提供的应用模块接口的基础上,使用Python作为开发语言,采用Qt开发框架作为软件集成开发环境,系统架构示意见图1.
系统完整地集成EnSight的图形界面,并允许用户进行定制,以最大程度地满足实际应用的需要.开发通信和数据接口,支持系统独立运行和协同运行2种工作模式:独立运行时可以作为单独的可视化后处理系统,支持各类分析结果的回放和输出;协同运行时可以接收来自分布式仿真平台的显示命令和数据,进行仿真过程中的可视化显示以及仿真结束后的后处理.
2.2系统组成
根据独立和协同工作的需求,系统由4部分组成,分别为系统界面模块、总线通信模块、可视化显示模块和后处理输出模块.系统完整集成EnSight的图形显示窗口,并提供统一的用户界面和管理功能.总线通信模块提供总线通信API,基于Socket通信模式能够接收总线的命令信息和数据,并执行相应的操作.系统根据总线命令进行初始化,包括选择应用场景、启动可视化显示.来自总线的数据包含数据模型信息、视景模型信息、应用场景信息、关键的监视参数信息、数据存储位置信息等,通过这些信息可视化系统可以自动读入要显示和处理的数据,并给出相应的显示结果.系统总线通信示意见图2.
可视化显示模块是系统的核心组成部分,其功能基于应用场景模板,用于仿真过程或结果数据的展现,包含数据预处理功能、显示控制功能和交互处理功能.数据预处理功能既能对仿真结果数据进行预处理,包括仿真部件的管理、变量的创建、动作信息等,也能对视景模型进行预处理,包括匹配仿真模型进行大小缩放、相对位置定义等.显示控制功能基于模板提供的控制面板,实现对显示效果的控制以及多视口显示等功能,例如对于计算流体力学分析结果,可以实现云图、矢量图、等值线和等值面、流线和粒子追踪等显示效果的控制,可以分别显示在不同的视窗当中.交互处理功能通过对图形显示界面进行交互式操作,能够实现模型及场景的缩放和旋转等功能,以实现全方位的展示和分析.
后处理输出模块也是系统的核心组成部分,其功能同样基于应用场景模板,用于仿真数据可视化结果输出,包含结果分析、渲染输出、生成报告3方面的功能.结果分析可以实现单工况分析结果参数提取、瞬态结果的时间历程分析,也可以给出不同工况下结果的对比分析.渲染输出将分析结果以高分辨率的图片、动画、视频的形式以及虚拟现实数据格式输出.生成报告功能则根据模板实现分析结果的自动生成,报告的内容包括各类分析结果及相应的图片.
3系统实现及应用案例
3.1系统实现
为实现系统的功能,分别对EnSight的Server和Client进行二次开发,其中系统的各功能模块均在Client端开发,Server端配合系统的输入接口模块和总线通信模块开发自动数据更新系统.系统集成EnSight的图形窗口,通过Driver发送命令给EnSight,调用其可视化和后处理功能.
在系统界面功能方面,通过动态生成Python脚本隐藏EnSight菜单栏、工具栏、列表面板等界面元素.考虑到高级用户的需求,允许用户对EnSight图形显示窗口进行定制,最大程度地满足实际应用的需要.
在总线通信方面,可视化协同系统与分布式应用系统的主控系统之间采用基于以太网Socket链路发送TCP/IP消息机制收发控制信息,通过二次开发实现由部署在仿真端的EnSight服务器端读取CAE仿真结果,然后通过EnSight自身的网络传输方式实现显示数据的推送,总线配置模块见图3.
模板可以方便地实现软件扩展和重用.[8]可视化显示模块通过Python实现定制化的应用场景模板,包括仿真数据的显示样式、显示效果以及与视景仿真的结合等.對于不同的应用来说,系统提供应用场景模板的管理和更改,带场景背景的可视化效果见图4.
后处理输出模块采用定制的模板库控制输出结果的样式和格式,样式包括云图、矢量图等,格式包括图片、视频和立体动画等.模板库定义语句为
……
显示接口模块通过二次开发调用EnSight实现相应的功能,包括支持显示屏、投影设备以及沉浸式虚拟现实设备等.
3.2应用案例
分别以计算流体力学仿真结果和结构有限元仿真结果开展应用案例分析.计算流体力学仿真采用FLUENT对圆柱体绕流的稳态流场进行仿真分析.结构有限元仿真采用LSDYNA对小汽车碰撞防护栏过程进行显式动力分析.
对于FLUENT仿真结果分析,数值仿真可视化系统处于独立运行模式,用于对不同工况下的仿真结果进行快速处理,包括云图、矢量图、流线图以及曲线图等,后处理系统界面及功能模板见图5.
对于LSDYNA仿真过程的可视化,数值仿真可视化系统处于协同工作模式,并由仿真主控系统接收来自仿真计算软件的数据,实现仿真过程可视化显示,见图6.仿真结束后,系统也可以对仿真结果进行后处理,例如显示不同部件和节点单元的详细信息,碰撞仿真结果的后处理见图7.
4应用前景分析
基于EnSight的数值仿真可视化协同系统支持多种应用场景,并且在以下方面发挥巨大优势.
4.1显著提高工程仿真效率
系统在以下3个方面大大提高工程仿真后处理的效率.首先,由于系统通过应用模板的方式实现自动化的可视化显示和后处理输出,模板具有无限扩展能力,因此只需通过一次定制可以实现重复使用,尤其在多工况分析等应用场景,可以显著减少仿真分析时间.其次,使用系统的仿真过程可视化功能可以避免必须仿真结束后才能判读结果的情况,大大增强仿真过程的可控性.最后,当前大多数复杂工程应用一般采用图形工作站进行前后处理、高性能计算服务器求解的方式,仿真数据的后处理需要从服务器上把计算结果下载到本地,大量数据下载导致人力物力浪费,而该系统能够跨操作系统使用,无须将高性能计算系统上的仿真结果下载到本地,从而可以节省大量时间.
4.2可以提供协同的仿真分析环境
目前,航空航天产品的协同设计正逐渐从数字样机向虚拟样机转变[910],通过可视化协同系统可以实现虚拟样机的协同,支持不同专业的仿真工程师和设计工程师共同进行产品的设计与改进.特别是对于复杂环境条件下的工程产品分析,由于需要多物理场耦合分析,仿真过程和结果分析需要各个专业的设计师共同参与,所以此可视化协同系统可以作为研究媒介和手段,为不同专业开展协同仿真分析提供环境.参考文献:
[1]乔爱科, 张乃龙, 孙洪鹏, 等. 钢结构CAE的简洁可视化后处理[J]. 北京工业大学学报, 2005, 31(3): 313317.
QIAO A K, ZHANG N L, SUN H P, et al. Postprocessing with concise visualization of CAE of steel structure[J]. Journal of Beijing University of Technology, 2005, 31(3): 313317.
[2]DeFANTI T A, BROWN M D, McCORMICK B H. Visualization: expanding scientific and engineering research opportunities[J]. Computer, 1989, 22(8): 1216. DOI: 10.1109/2.35195.
[3]汪旭, 田凌, 温颖怡. 协同仿真信息可视化共享系统的设计和实现[J]. 工程图学学报, 2011(2): 111117.
WANG X, TIAN L, WEN Y Y. Development of the visualization and sharing system on collaborative simulation information[J]. Journal of Engineering Graphics, 2011(2): 111117.
[4]孙国勇, 刘浙. 工程可视化仿真技术应用和发展[J]. 计算机仿真, 2006, 23(1): 176179.
SUN G Y, LIU Z. Application and development of engineering visual simulation[J]. Computer Simulation, 2006, 23(1): 176179.
[5]付正波. 机械系统虚拟样机仿真结果可视化的研究与应用[D]. 武汉: 华中科技大学, 2006.
[6]唐仪. 基于体绘制的有限元分析结果可视化研究[D]. 广州: 广东工业大学, 2014.
[7]房俊杰, 陆正刚, 孙效杰. 基于Ensight的轨道车辆运行可视化研究[J]. 内燃机车, 2012(5): 2325.
FANG J J, LU Z G, SUN X J. Railway vehicle running visualization based on EnSight[J]. Diesel Locomotives, 2012(5): 2325.
[8]屠立, 张树有, 陆长明. 基于知识模板的复杂产品设计重用方法研究[J]. 计算机集成制造系统, 2009, 15(6):10411048.
TU L, ZHANG S Y, LU C M. Design reuse method of complex product based on knowledge template[J]. Computer Integrated Manufacturing Systems, 2009, 15(6): 10411048.
[9]韓祥兰, 吴慧中, 张建明, 等. 大型武器系统虚拟采办方案研究[J]. 南京理工大学学报, 2005, 29(1):3034.
HAN X L, WU H Z, ZHANG J M, et al. Inland approach of applying simulation based acquisition to major weapon systems[J]. Journal of Nanjing University of Science and Technology, 2005, 29(1):3034.
[10]李伯虎, 柴旭东, 朱文海, 等. SBA支撑环境技术的研究[J]. 系统仿真学报, 2004, 16(2): 181185.
LI B H, CHAI X D, ZHU W H, et al. Supporting environment technology of simulation based acquisition[J]. Journal of System Simulation, 2004, 16(2): 181185.(编辑武晓英)