在流体到固的单向耦合仿真中,常常需要传递的物理量是压力和温度,它们可以作为结构分析的载荷条件。
不同软件之间数据格式不通,需要人为的去做数据转换。更关键的是,在实际项目中,做CFD仿真的和做CAE仿真的压根不是一个人。
这会带来两个问题:
(1)流体壁面和结构壁面模型坐标系不一致,参数无法直接用;
(2)流体壁面和结构壁面玩个节点不一致,无法进行点对点的参数传递。
所谓逢山开路遇水搭桥,在这种情况下,我们就需要开发一些小工具,自动完成参数映射。
本文以某型天线为例,给出CFD的温度场映射到ABAQUS模型上的方法。
步骤一,CFD结果导出:
做结构的人大部分对CFD格式不慎熟悉,当然我们可以提出需求,让CFD工程师帮忙把壁面(wall)上结果导出,每行数据依次按照x,y,z,temperature排布,形成一个四列数的文本。
如果对方搞不定,或者CFD就是我们自己做的,就只能自求多福了。
一般情况,如果我们所使用的CFD软件或者CFD-POST这类后处理工具,是可以帮助我们得到一个四列数的文本的。最不济,我们可以借助强大的Tecplot完成。
再或者,从以后使用方便角度考虑,直接导出一个Tecplot文件。然后我们自己编一个针对.plt的后处理程序,自动完成壁面参数提取。
工作室自研解析工具
步骤二,坐标系融合:
融合方法有两种:
(1) 公共点转换:当结构特征表现出明显的对应性的时候,且我们可以找到至少三个公共点,就可以建立坐标系转换关系,将流体坐标系转换到结构坐标系下。
(2) 点云配准:如果不具备上述特征,就需要采用点云配准的方法。该方法可以将两组点坐标,进行最佳拟合匹配。
在编程的时候,点云配准可以借助现有的点云算法库完成,目前较为流行的PCL库。
我们在步骤一得到了CFD壁板坐标,这里进行坐标系融合的时候还需要CAE模型的坐标,该坐标可以从ABAQUS inp文件中之间拷贝得到。
*Part,name=PART-1
*Node
1, 54.4015923, -5.89080048, 30.
2, 53.8370857, -11.9988546, 30.
3, -48.6207314, -3.89129758, 84.
4, -49.0763855, -4.09715223, 94.4679184
5, -53.4180222, -3.19716525, 94.5191727
6, -52.7271576, -2.91121149, 84.
7, -44.4379768, -4.5009594, 84.
8, -44.6520882, -4.47322035, 94.4163437
步骤三,参数映射:
ABAQUS中自带了场定义模块,通过粘贴坐标和对应变量值,自动实现插值映射。
如果有一些特殊情况,比如我的ABAQUS模型是带厚度的实体单元,我想让那个面的温度映射到整个厚度方向单元上。
这就需要我们自己做插值算法。可以采用如下思路:
(1)对于每个CAE模型的节点,计算它与所有CFD节点之间的距离。
(2)查找到每个CAE节点最邻近的CFD节点,将这个最邻近CFD数据点的温度插值到CAE中,这样便可得到CAE温度的插值数据。
(3)最后使用插值结果,对inp进行自动修改,将温度结果施加到每个节点上。
步骤四,渲染对照:
再开发一个可视化模块,将原始CFD温度分布和映射后面的CAE模型变量分布进行渲染。帮助我们确认是否有明显的映射错误。