DEVELOPMENT AND TEACHING APPLICATION OF VIRTUAL REALITY TECHNOLOGY FOR THE THREE-DIMENSIONAL FLOW FIELD
-
摘要:
开发了一种动态展示三维精细流场结构的虚拟现实系统。该系统包括:流场生成模块,用于通过数值模拟计算目标场景的瞬时流场,并进行可视化,得到目标场景的三维流场模型;存储模块,用于存储目标场景的三维流场模型;显示模块,根据按键指令调用并播放三维流场模型。通过虚拟现实技术实现多种模型的三维瞬时流场动态展示,实现了在流体力学教育与研究领域还原复杂流场中三维结构的功能,极大地激发了学生的求知欲与探索精神。
Abstract:This article develops a virtual reality system that dynamically displays the fine structures in three-dimensional (3D) flow fields. The virtual reality system includes a flow field generation module, which is used to calculate the instantaneous flow field of target scenarios through numerical simulation, and visualize the flow field data to obtain 3D flow field models of target scenarios; a storage module for storing 3D flow field models of target scenes; a display module, used to call the corresponding 3D flow field model according to the button instructions, and play the 3D flow field model. By using the virtual reality technology to display multiple models of 3D flow fields, the restoring function of 3D structures in complex flows is achieved in the field of fluid mechanics education and research, greatly stimulating students' pursuit of knowledge and exploration.
-
Keywords:
- virtual reality /
- three-dimensional flow field /
- vortical structure
-
虚拟现实技术(virtual reality,VR)在科学计算可视化领域有着重要应用。从早期的手工绘图,到计算机绘图,再到如今的交互式显示技术,科学可视化工具是虚拟现实研究的重要手段之一[1]。例如,虚拟风洞用于模拟航天飞机周围气流分析,也用于教育领域,如在虚拟风洞仿真实验室开展低速风洞测压实验、高超声速风洞双椭球测压实验和数值风洞流场认知实验的教学;水模拟水灾害虚拟仿真教学实验以计算机三维仿真建模、虚拟现实为技术支撑,呈现极端水力学现象和城市雨洪、河道洪水等典型水灾害演进过程[2]。对于流体力学领域的三维流场信息,相比于二维平面显示三维结构,VR技术具有独特的优势:显示深度信息,使得物体与物体之间的距离一目了然;通过映射关系还原真实三维结构;具有更多的交互渠道,三维空间交互渠道不仅局限于视觉,也可融入触觉与听觉元素,鼓励人们进行探索和求知。随着沉浸式虚拟现实、人机交互技术的发展,在虚拟现实环境下对三维瞬态流场信息进行可视化并实现多通道交互的方法成为一种发展趋势。面向流场可视化的沉浸式虚拟现实交互系统也得到相应的研究,基于用户凝视与手势的沉浸式交互实现了流场的可视化操作[3]。国家数值风洞工程研制了一套流场数据处理可视化软件系统,具有对流场数据处理与特征提取、几何图形绘制等可视化与交互功能[4]。基于流场可视化软件的强交互性需求,需对流场进行交互式探索并发掘关键信息,而已有的流场可视化显示和交互方式单一,未能提供便捷和可交互的三维瞬态流场结构演化过程信息。本文提出了一种基于计算流体动力学(computational fluid dynamics,CFD)数值模拟数据驱动的三维瞬时流场动态展示的虚拟现实技术,并开发了一款三维精细流场结构动态展示的虚拟现实软件。该技术可应用于教育领域中以激发受教育者求知与探索,也可应用于科学研究中还原复杂数据的三维结构。
流场是矢量场,采用速度梯度的第二不变量 $ Q $[5] 表征流场中的涡结构,这是一种常用的涡识别方法,由Hunt等[6]提出
$$ \begin{array}{c}Q=\dfrac{1}{2}\left\{{\left[\mathrm{t}\mathrm{r}\left(\nabla \mathit{u}\right)\right]}^{2}-\mathrm{t}\mathrm{r}\left[{\left(\nabla \mathit{u}\right)}^{2}\right]\right\}\end{array} $$ (1) 对于不可压缩流体,式(1)进一步简化,根据连续性方程
$$ \begin{array}{c}{\rm{tr}}\left(\nabla \mathit{u}\right)=\nabla \cdot {\boldsymbol{u}}=0\end{array} $$ (2) 再将速度梯度分解为应变张量 $ \mathit{S} $ 和旋转张量 $ {{\boldsymbol{\varOmega}} } $ 两部分,即
$$ \begin{array}{c}{\boldsymbol{S}}=\dfrac{1}{2}\left[\nabla \mathit{u}+{\left(\nabla \mathit{u}\right)}^{\mathrm{T}}\right]\end{array} $$ (3) $$ \begin{array}{c}{\boldsymbol{\varOmega}} =\dfrac{1}{2}\left[\nabla \mathit{u}-{\left(\nabla \mathit{u}\right)}^{\mathrm{T}}\right]\end{array} $$ (4) 得到
$$\begin{split} Q & = -\dfrac{1}{2}\left[\mathrm{t}\mathrm{r}\left({\mathit{S}}^{\mathrm{T}}\mathit{S}\right)-\mathrm{t}\mathrm{r}\left({{{\boldsymbol{\varOmega}} }}^{\mathrm{T}}{{\boldsymbol{\varOmega}} }\right)\right]=\\& \frac{1}{2}\left({\left\| {{{\boldsymbol{\varOmega}} }} \right\|}_{F}^{2}-{\left\| {\mathit{S}} \right\|}_{F}^{2}\right) \end{split} $$ (5) 式中,${\left\| \right\|}_{F}$表示F-范数,定义为
$$ \begin{array}{c}{\left\| {\mathit{A}} \right\|}_{F}^{2}=\sqrt{\mathrm{t}\mathrm{r}\left({\mathit{A}}^\text{T}\mathit{A}\right)}\end{array} $$ (6) 当 $ Q > 0 $时,表示旋转程度大于变形程度,认为该区域存在旋涡。在三维流场的虚拟现实技术中,通过显示 $ Q $ 的等值面表征流场涡结构。
1. CFD后处理与流场模型生成
CFD后处理是利用数值模拟计算得到的瞬时流场数据绘制空间点函数的等值面、矢量场等几何图形,将复杂的瞬时流场数据转化为观察者直观感受的可视化结果。流场模型生成是把后处理得到的几何图形转化为三维模型格式(.obj/.ply/.stl),将部分包含云图的模型染色,添加到可视化软件中。
1.1 二维数据批量后处理与模型生成
部分流体力学算例为二维算例,需为可视化软件添加显示二维计算结果的方法。Unity是一款实时三维互动内容的开发平台,可提供丰富的物理特效。采用 Unity开发虚拟现实项目,可实现高效率的开发与部署。Unity仅支持三维物体在场景中的显示,因此,将从绘图软件Tecplot里导出的.png格式图片转化为材质,添加到在Unity中创建的“薄板”几何体上(见图1)。以ONERA M6机翼为例,介绍流线模型制作流程。在Tecplot中将CFD的计算结果转为.plt格式文件,导入至图形可视化软件Paraview中,为“Calculator”添加过滤器“StreamTracer”,系统利用计算出的矢量场绘制1000根流线,也可以调整流线数量。在Paraview绘图界面画一条线段,系统生成通过这条线段的流线(如图2(a)所示)。使用StreamTracer生成的流线是“一维”的,通过添加过滤器“Tube”,将流线“三维化”(如图2(b)所示)。
1.2 三维数据批量后处理与渲染
三维算例选取了仿生飞行[7]、游动[8],以及降落伞下落[9]等复杂三维流固耦合问题进行流动显示。这类问题往往具有较复杂的几何外形以及非定常的运动,因而对传统CFD方法是较大的挑战。为此,当前仿生流动以及柔性体流固耦合算例采用浸没边界法(immersed boundary method, IBM)进行模拟。浸没边界法中固体边界由拉格朗日点描述,而流体则在固定的欧拉网格上求解,因此相比传统贴体网格方法计算效率得到了显著提升[10]。当前三维算例的流场总网格量约为106以上,因而计算所得的三维瞬时流场数据也较大,每个瞬时场的原始流场数据可达109字节以上。因此,对于数据存储、后处理和格式转化均是较大的挑战。
对于瞬时流场中物体建模的.plt格式文件不能被Unity识别,采用Paraview将其批量导出为.obj格式文件。在Tecplot中将.plt文件转换为binary编码,导入到Paraview中,使用“ExtractSurface”过滤器提取表面,应用“Triangulate”过滤器将表面化成三角形网格,使用write time steps逐帧导出.obj文件。在Blender中对这些模型进行批处理,利用基于Python脚本插件,实现一键批量导入.obj文件。.obj格式文件仅包含几何信息,.ply格式文件更为丰富,包含颜色、透明度、表面法向量、材质座标与资料可信度等。因此,使用.ply格式文件储存网格顶点颜色信息。以金枪鱼流场为例,在Paraview中显示Q等值面(如图3(a)所示),采用流场中的涡量染色(如图3(b)所示)。在Unity中将其作为模型材质完成染色(如图4所示)。
为了使在Unity中显示的瞬时流场动态演化过程更加美观并方便观察,尝试为流场添加反光和透明材质效果,提出以下三步操作(见图5)。
(1)将材料显示格式设为透明,透明度调整为合适大小。
(2)调节金属度和光滑度,并将其发光模式设为自发光,使其不受环境光影影响。
(3)添加反射探针模拟现实效果,并将渲染模式调为实时渲染。
需要说明的是,大部分数值模拟算例都是非定常算例,因此,需要以动画的形式展示这些算例。把某一时间步的流动状态称为某一帧,“一个流动模型”事实上则包含多个时间步的流动状态,即多帧。每一帧的流动状态是以几何模型的格式存储的。所谓“包含n帧的流动模型的动画展示”,则可以理解为“使流动模型第1至第n帧模型依次出现、消失”的过程。从第j帧到第j+1帧的转变,可以理解为“第j帧动画消失,第j+1帧动画出现”。因此,通过控制各帧模型的出现与消失,实现一个流动模型中涡结构的动态演化过程。
2. 交互界面搭建
作为一款应用软件,存储了不同类型的流动模型,为学生提供丰富的瞬时流场信息以丰富学生的学习体验。该软件搭建了主题各不相同的场景以存放不同类型模型。目前,Flow Visualization软件内置了4个场景:Nature,Industry,Lab和Benchmark(见图6)。4个场景之间的选择与切换通过主菜单实现,其设计灵感来自于VR游戏设备的主菜单,从而更加适合学生的操作习惯。其中场景切换通过图片阵列的整体旋转实现,场景选择通过检测到的指标大小决定所调用的场景,实现效果见图7。在进入新场景的加载时间中,用户阅读场景介绍。加载界面最核心的原理在于异步加载场景,先把体量较小的场景介绍加载出来,真正的场景再逐步于后台加载出来。场景介绍见图8,部分模型介绍见图9。
VR设备能够实现多元的人机交互,从多角度观察动态演化的流体模型。在安卓端、电脑端和VR端3个平台进行开发,其中VR端和电脑端的开发高度重合,采用手柄交互方式, 安卓端采用按钮交互方式。
3. 教学应用
三维流场的虚拟现实软件开发源于航天航空学院的“启航创新实践”课程,获得清华大学第32届学生实验室建设贡献一等奖,并在2023年春季学期首次应用于国家精品课“流体力学”课程中(见图10),属于国内流体力学领域的首例教学案例,课程授课对象为航天航空学院的大二学生和行健书院的钱学森力学班大二学生。每位同学带着VR眼镜,身临其境地体验了三维场景中各种模型周围的流动现象,看到了模型周围的涡结构动态演化过程,对流动现象有了非常直观的认识。该技术既增添了学生对课程的兴趣度,又帮助学生认识理解各种流动现象。学生体验效果非常好,给出的各种反馈信息包括:震撼、真实、神奇、魔幻、形象、视觉冲突、非常直观、挺有意思、挺好玩、挺有趣、挺真实、结构更大和首次看到等。
4. 总结与展望
作为一款动态展示三维精细流场结构的虚拟现实软件,完成多模型的三维流场展示,用户可以全方位地进行沉浸式体验,实现了在流体力学教育与研究领域还原瞬时流场中三维结构动态演化的功能,极大地激发了学生求知与探索。该软件源于“启航创新实践”课程,并应用于“流体力学”课程中。通过创新实践,将虚拟现实技术与流体力学交叉融合,实现了自主开发与应用,极大地提高了学生的创新思维与动手实践能力,实现理论与实践的有机融合。未来,将进一步增强程序功能,增加模型数量,优化模型场景,不仅实现模型展示,还将支持模型快速读取与编辑,拓宽软件应用范围,实现从VR展示程序到功能性应用程序的拓展。
-
[1] Bryson S. Virtual reality in scientific visualization. Communications of the ACM, 1996, 39(5): 62-71 doi: 10.1145/229459.229467
[2] 王峰, 李智星, 王俊珲等. 基于VR的水模拟水灾害教学实验平台研究. 科技与创新, 2022(18): 166-168 doi: 10.15913/j.cnki.kjycx.2022.18.049 [3] 许世健, 赵丹, 苏铖宇等. 面向流场可视化的沉浸式虚拟现实交互系统研究. 系统仿真学报, 2022, 34(5): 1160-1172 Xu Shijian, Zhao Dan, Su Chengyu, et al. Research on immersive virtual reality interactive system for flow visualization. Journal of System Simulation, 2022, 34(5): 1160-1172 (in Chinese)
[4] 陈呈, 赵丹, 王岳青, 等. NNW-TopViz流场可视分析系统. 航空学报, 2021, 42(9): 246-257 Chen Cheng, Zhao Dan, Wang Yueqing, et al. NNW-TopViz visualization analysis system for flow field. Acta Aeronautica et Astronautica Sinica, 2021, 42(9): 246-257 (in Chinese)
[5] Jeong J, Hussain F. On the identification of a vortex. Journal of Fluid Mechanics, 1995, 285: 69-94 doi: 10.1017/S0022112095000462
[6] Hunt JCR, Wray A, Moin P. Eddies, stream, and convergence zones in turbulent flows. Report CTR-S88. Center for Turbulence Research, 1988
[7] Zhang JD, Huang WX. On the role of vortical structures in aerodynamic performance of a hovering mosquito. Physics of Fluids, 2019, 31(5): 051906 doi: 10.1063/1.5090878
[8] Zhang JD, Sung HJ, Huang WX. Specialization of tuna: a numerical study on the function of caudal keels. Physics of Fluids, 2020, 32(11): 111902 doi: 10.1063/5.0029340
[9] Wang L, Xie C, Huang W. A monolithic projection framework for constrained FSI problems with the immersed boundary method. Computer Methods in Applied Mechanics and Engineering, 2020, 371: 113332 doi: 10.1016/j.cma.2020.113332
[10] Li RY, Xie CM, Huang WX, et al. An efficient immersed boundary projection method for flow over complex/moving boundaries. Computers & Fluids, 2016, 140: 122-135
-
期刊类型引用(2)
1. 陆培锦. 例谈抽象科学概念的教学策略. 湖北教育(科学课). 2025(02): 56-58 . 百度学术
2. 张涛. 基于虚拟现实技术的小学科学项目式学习模式的构建与实施. 中国信息技术教育. 2024(23): 84-87 . 百度学术
其他类型引用(2)