APP下载

面向高端装备智能研制的流场仿真平台开发

2023-10-29张欣超张洪辉

计算机仿真 2023年9期
关键词:算例文件夹流场

张欣超,彭 飞,2*,张洪辉

(1. 中车工业研究院有限公司,北京100071;2. 清华大学工业工程系,北京100084)

1 引言

随着人工智能、数字孪生、5G等技术的快速发展,以“数据+算力+算法”为核心的智能制造技术体系日趋成熟。工业多场(流-固-热-电-磁-声)仿真软件作为大型装备智能制造实现的必需使能工具,是企业数字化转型和智能化升级的关键。流体通常为大型装备(航天器、机车、汽车等)实际服役过程的激励源,易引发气动噪声、流致振动、生热等问题,为此类装备的精准设计、安全服役和失效评估带来诸多困难。因此,如何实现大型装备流场性能准确模拟和量化预测具有重要的理论研究价值和现实意义。

OpenFOAM是一个完全由C++编写的,在Linux下运行,面向对象的计算流体力学类库。OpenFOAM跟商用的CFD软件Ansys Fluent,CFX类似,但其作为开源,采用类似于我们日常习惯的方法在软件中描述偏微分方程的有限元体积离散化。目前很多学者对OpenFOAM理论进行了研究。郑澄远[1]对OpenFOAM中的核心代码进行了提取分析。孟德龙[2]将OpenFOAM移植到超级计算机神威太湖之光上,体现了OpenFOAM软件的重要性。黄刚[3]基于OpenFOAM设计了一种两相复杂流体数值求解器:FHRP-FOAM,用于研究二元聚合物混合液在相分离时的非平衡稳态现象,同时分析了求解器的并行瓶颈,提出了基于异步规约通信的并行性能优化方法。由于OpenFOAM的使用基本是在Linux或者Windows下虚拟机进行,对于大部分Windows系统使用者需要花费大量精力进行学习,因此在Windows为其开发界面是具有重要研究意义的。

针对热-流-固耦合,一直是国内外计算流体力学专家所研究的问题,其需要将复杂模型中的流场、温度场及应力场等多物理场之间的耦合关系进行研究,已经成为目前多场耦合的重点研究之一。Li等[4]基于不可压缩流体的N-S方程及能量方程,对飞机电动静液压执行器中轴向柱塞泵阀板摩擦副进行了热-流-固耦合分析。赵飞云等人[5]针对吊篮结构模型的热-流-固耦合问题进行了分析。党旭光[6]从理论上对三个物理场耦合模型进行了介绍,并在热-流-固耦合的基础上提出了如何建立其有限元仿真模型。Lei等[7]对超声速流动的复杂服役情况进行了热-流-固耦合的模型设计并进行了分析。而OpenFOAM在进行流-固耦合及热-流-固耦合工作时,往往需要与Windows系统下其他软件(如Ansys等)结合使用,由于OpenFOAM输出数据结构格式固定,难以与其他软件进行数据交互,使得自动化过程变得困难。

针对大型装备,如机车、飞机、汽车等,对这类模型进行流场分析时,由于其服役情况基本相同,其仿真分析过程便逐渐趋向流程化。刘洪泉[8]采用ANSYS FLUENT软件对飞行器进行模拟,获得模型外流场的温度、压力、密度、速度等物理参数的分布,并将流场结果导入进行耦合模拟,获得结构场的物理参数分布。彭佳艳等人[9]通过对高速机车车头运动过程进行流程分析,研究分析了高速机车车头压力随速度的变化情况,通过仿真得出高速机车车尾流线和湍流变化。黄森仁等人[10]针对某SUV车型的中后期造型阶段的CAS面模型,经过几何清理和模型网格划分,构建了整车CFD计算模型并进行了模拟仿真分析,通过分析结果指出了影响气动阻力的车身关键部件,为后续汽车外形的进一步优化指出了方向。彭昌明[11]讨论了汽车外流场仿真分析方法,建立了汽车外流场有限元仿真模型并进行了数值模拟,通过对汽车外流场参数分析来获得汽车外流场空气动力学的主要特性并进行优化研究。目前大多数人都还采用商业软件进行流场计算,如ANSYS等,但其对于企业来说,使用成本较高,同时其开发接口存在诸多限制,二次开发的难度较大,不便于后续研究的进行。

本文基于OpenFOAM交叉编译可执行文件及C++语言开发了大型装备用流场仿真定制软件平台,旨在对大型装备进行流-固耦合及热-流-固耦合中的流场及传热分析。针对大型装备,其服役环境往往相差不大,在进行类似大型装备的流场分析时,仅需要修改其模型即可。本研究将OpenFOAM集成到C++平台下,通过界面参数输入及按钮驱动来调用OpenFOAM,增强了其自动化功能。同时,便于研究者进行模型、自研算法等源码的集成,适用于行业知识沉淀,同时为后续轨道交通等装备多场多层级多尺度性能自动仿真及面向数字孪生下的产品正向设计和自主创新,提供了有效的使能工具。

2 OpenFOAM交叉编译及功能调用

鉴于OpenFOAM软件基于Linux系统开发,当用于Windows环境与自编程序或力学仿真软件(ANSYS、ABAQUS等)进行流固耦合仿真时,需实现数据的自动传递。故需实现OpenFOAM的交叉编译来获得其在Windows环境下的可执行文件。

2.1 Openfoam软件交叉编译方法及实现路径

OpenFOAM的交叉编译采用Ubuntu系统来实现,其实现方法为:

在SourceForm页面获取OpenFOAM及ThirdParty压缩包;

安装交叉编译所需要的安装包,如mingw32、w3m、flex、wget、zlib等;

下载PatchesNBatches170压缩包,并将其放入OpenFOAM目录下进行解压,用于修补程序。

修改ThirdParty-1.7.0文件内的Build-mingw44及Build-mingw45;

设置环境选项;

运行build-mingw44或build-mingw45,构建MinGW交叉编译器;

运行OpenFOAM内的wmake文件进行交叉编译;

将文件复制到Windows下,即可进行使用。

交叉编译实现路径如图1所示。

图1 OpenFOAM交叉编译实现图

2.2 基于MFC的Openfoam调用实现

软件编写流程图如图2所示。

图2 软件设计思路流程图

图2中,软件界面采用MFC进行设计,算例模板内容包含于设计文件中,调用OpenFOAM则采用CreateProcess函数完成,输入命令则通过管道技术完成。

2.3 装备流场性能仿真模板文件

OpenFOAM作为CFD开源软件,主要包括前处理、求解器、后处理三个部分,其中,前处理主要包括计算模型的网格划分,初始条件和边界条件的设置,物性参数的设置、控制方程和离散方程的设置和离散方程的求解设置等,本文在前处理中,将网格细化参数、初始条件等设置为界面输入,控制方程和离散方程内容则采用模板内容;求解器作为OpenFOAM的核心部分,每个求解器都可以对不同的流体类型进行求解,其中包括不可压缩流体求解器、燃烧求解器及应力分析求解器等,本文以不可压缩流体求解器中的simpleFoam求解器为例,进行开发,本文方亦适用于其他类型求解器。

OpenFOAM算例由三个文件夹组成,分别是0、constant及system,使用时,需要调用这三个文件夹下的字典来进行求解。

1) 外网格及模型网格划分模板及参数设置

在OpenFOAM中,首先需要生成外部网格,外网格是采用blockMesh命令来生成,其调用的是blockMeshDict字典,该字典内命令如表1所示[12]。

表1 blockMeshDict字典命令

对于本文研究对象,将block设定为大于飞机模型的模板,以保证模型改为机车或汽车时,模型能够在block里面,同时也方便操作者的使用。

生成外网格后,第二步是使用snappyHexMesh调用位于system文件夹下的snappyHexMeshDict文件,该文件用于在block划分出所需要的复杂模型的网格,其主要字典命令如表2所示[12]。

表2 snappyHexMeshDict字典命令

其中,castellatedMeshControls主要用来控制网格切分,其主要信息如表3所示[12]。

表3 castellatedMeshControls字典命令

在snappyHexMeshDict文件中,大多数参数可以按照模板给定,但geometry以及refinementSurfaces需要按照实际进行修改,本文将geometry及refinementSurfaces需要修改的内容通过界面给定,geometry及refinementSurfaces使用如下:

geometry

{

chetif.stl ∥需要用到的stl模型文件名称

{

type triSurfaceMesh;

name chetif; ∥按照模型文件名称进行修改

}

refinementSurfaces

{

chetif

{

level (3 5); ∥用于指定需要细化的STL几何面及它们细化的最小和最大程度( )。

}

}

2)计算流程及数据文件模板

在进行计算之前,需要对许多参数进行设置,由于OpenFOAM需要设置的内容过多,本文只对需要修改的重要参数进行说明,其他参数均为OpenFOAM自带摩托车算例模板内容。

1) 修改速度及压强

这两个参数位于0文件夹下initialConditions,速度设置格式为(Ux Uy Uz),压强通常设置为0,除此之外,由于采用的kOmegaSST湍流模型(可压缩-多相),还需在该文件中设置k及ω,ω表示的是每单位体积单位时间的能量耗散,ω的倒数表示湍流的时间尺度,kω则类似于湍流耗散率ε。在本文中,这两个参数均采用模板数值。

2) 动力粘度系数v

该参数位于constant文件夹下的transportProperties文件中,通常设置为1.5e-5。

3) 求解器选则

该部分参数位于system文件夹中的fvSolution中,用于设置矩阵求解器、残差及其他算法控制,本文求解器选择simpleFoam求解器,其余参数均使用默认值。

simpleFoam为OpenFOAM中稳态不可压缩流动(层流或者RAS湍流)求解器,其压力速度耦合采用的simple算法,simple算法的基本思想为:在流场仿真中,速度场是根据设定的压力场通过离散形式的控制方程 求得的[13],其通过迭代方法求解耦合的Navier-Stokes方程。N-S方程表达式如(1)式所示[14]。

(1)

4) 离散格式

该部分参数位于system文件夹中的fvShcemes中,本文均采用默认参数值。

5) controlDict设置

该文件位于system文件夹下,主要用于控制求解开始/终止时间,时间步及输出数据参数,本文采用输出数据为acsii码格式。

在完成snappyHexMesh后,算例文件下会生成1、2、3三个文件夹,代表三个时间步,此时需要将0文件夹中修改好的问价复制到3文件夹下,该部分操作通过C++代码实现。

完成上述所有步骤后,向OpenFOAM中输入simpleFoam命令使其开始计算,计算耗费时间较长。

完成计算后,OpenFOAM会输出网格信息及每个时间步的速度、压强变化。网格信息位于constant文件下的polyMesh文件夹,主要有faces、neighbour、owner、points等文件,其中,points内容为每个节点的坐标;faces内容为组成每个面单元的节点;owner内容对应于faces内容,映射了面单元所属于的体单元;neighbour内容同样对应于faces,映射了面单元相邻的体单元,该文件只包含内部单元,不说包含边界单元。OpenFOAM输出文件内容如图3。

图3 OpenFOAM输出文件格式

由此,完成了OpenFOAM仿真计算及参数输出,结果可视化可以选用ParaView等软件进行。

3 大型装备流场性能智能仿真工具开发

工具为OpenFOAM开发了友好的界面,让操作者能够直观的通过界面输入求解内容并调用OpenFOAM进行求解,同时,本文为简单的流场求解,如机车、汽车等提供了模板算例,使操作者能够大大节约时间,解决了OpenFOAM操作繁琐的问题。

3.1 界面规划

软件主要分为四个区域,第一个区域为工作路径设置区域,内容为输入OpenFOAM可执行文件路径、算例路径、模型路径及模型名称;第二个区域为参数设置区域,内容为速度、湍动能、湍流频率及运动粘度系数等参数的输入;第三个区域为求解参数设置,内容为网格细化程度、求解时长及输出结果文件的时间间隔设置。

软件的主要功能分为:

1) 界面部分:软件界面通过C++及MFC编写,通过将输入到界面的OpenFOAM执行文件、算例文件、模型文件路径,及用于求解的速度等参数传递到求解器中进行求解,并将结果文件输出到指定文件夹。

2)求解部分:通过C++中的CreateProcess函数及管道技术来调用OpenFOAM可执行文件,并向其传递运算命令,求解部分则使用OpenFOAM内的simpleFoam求解器。本文以SimpleFoam求解器为例进行相关功能展示,其他求解器开发亦可采用该方式实现。

3) 数据处理:用于提取计算生成的流场压力、速度、加速度、温度等结果,并生成可视化所需图像。

3.2 关键数据格式及可视化

软件功能流程图如图5所示。

软件的操作流程较为简单。在运行软件后,首先进入一个初始操作界面,软件操作界面如图4所示。操作界面提供了OpenFOAM可执行文件路径输入框、算例文件输入框及STL模型文件输入框,同时提供了速度、网格细化等级、求解时长及输出数据时间间隔等参数输入框。计算结果采用ParaView查看,并将图像返回到软件界面,如图5所示。

图4 软件初始操作界面示意图

图5 软件功能流程图

4 仿真平台应用案例

采用上述软件开发方法,实现了三类重要装备流场性能仿真。

4.1 航天器流场性能仿真及结果可视化

由于缺少航天器相关知识,无法获得航天器在运行时的环境参数,本文选用飞机着陆时的环境参数及速度。在飞机着陆时,由于硬着陆或不适当的着陆技术,导致轮胎(由于空气或陆地撞击)及减震支柱产生较高应力,导致它们更快磨损或断裂,对飞机造成损坏,因此对飞机的仿真是十分有必要的。本文选用着陆速度为35m/s,湍动能为8,湍流频率为52,运动粘度系数为1.5e-05。计算后通过ParaView返回图像如图6所示。

图6 飞机模型压力场

4.2 机车流场性能仿真及结果可视化

电力机车作为铁路运输的重要角色,研究其运动时车头压力分布是十分有必要的。本文取电力机车运行速度132km/h、湍动能0.24、湍流频率1.78、运动粘度系数1.5e-05[15]。在界面输入参数后,通过ParaView输出其压力云图,并返回到界面如图7所示。

图7 机车模型压力场

4.3 汽车流场性能仿真及结果可视化

对汽车而言,CFD对计算其车体所受压力及汽车车身造型设计都具有重要作用,在高速运行时,汽车服役环境与电力机车相差很小,本文取汽车速度为120km/h[10],其余参数参照4.2节中电力机车参数,计算后通过ParaView返回图像如图8所示。

图8 汽车模型压力场

5 结论

1)开发的OpenFOAM界面软件能够实现对常态服役情况的机车、汽车及飞机等交通工具进行流场仿真并计算出其压力场用于应力计算。

2)软件具有简单、友好的界面,操作简洁,使操作者能够准确在界面输入求解来获得压力场结果。

3)通过上述算例可以发现,对机车、汽车及飞机等进行压力场计算是十分有必要的,可以用来预测压力是否会引起这些大型装备外部的变形。

4)由于软件局限性,只能对单一服役情况的机车、汽车及飞机进行流场计算,并且在软件开发过程中只使用了OpenFOAM中的simpleFoam求解器,OpenFOAM所包含的内容还有很多没有进行开发,需要进一步改善。

猜你喜欢

算例文件夹流场
磁力文件夹
大型空冷汽轮发电机转子三维流场计算
转杯纺排杂区流场与排杂性能
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
基于HYCOM的斯里兰卡南部海域温、盐、流场统计分析
挂在墙上的文件夹
基于振荡能量的低频振荡分析与振荡源定位(二)振荡源定位方法与算例
基于瞬态流场计算的滑动轴承静平衡位置求解
互补问题算例分析