打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
AM4I:增材制造的近轮廓冷却通道的设计和仿真研究

2020年4月,南极熊将发布以“如何把3D打印制造引入工业应用生产”为主题的重磅系列干货研究报告,非常专业,让你了解这个技术产业化应用的难点、方法、窍门。

原内容出自:欧洲耗时两年、耗资210万欧元的研究项目《AM 4 Industry》
译者:北京化工大学英蓝实验室  吴怀松、何其超、程月、王皓宇、张秀、刘俊丰

报告:

重磅干货:增材制造质量优化和成本分析

重磅干货:激光熔化增材制造缺陷因素汇总

下面是报告《应用示例介绍OpenFoam®和chtMultiRegion——近轮廓冷却通道的设计和仿真研究》

应用示例介绍OpenFoam®和chtMultiRegion——在AM 4工业项目中的近轮廓冷却通道的设计和仿真研究


前言
在AM 4工业项目的工作过程中,对近轮廓冷却通道的设计和仿真进行了研究。一个目标是为工具制造工程师提供一种可用于进一步优化冷却通道几何形状的仪器。特别是在近轮廓和不规则冷却通道的设计中,使用商业仿真程序进行仿真可能不够,因此需要额外的仿真步骤。对于此附加或补充的仿真步骤,将重点故意放在非商业仿真程序上。因此,选择程序OpenFoam®(开源现场操作和操纵)进行仿真。它是免费提供的,主要用于解决流动问题(计算流体动力学)。它是用C++编写的,甚至在基本版本中都附带有用的求解器,并且可以适配各种其他的求解器。主要优点之一是可以自由访问源代码以及算法。另外,代码和计算几乎可以任意扩展。

本手册以面向应用的示例为基础,详细描述了仿真的结构和性能。求解器chtMultiRegion用于模拟。通常用于计算固体和流体之间的热交换。本手册的目的是为开发,模拟工程师和学生提供面向应用程序的OpenFoam®简介,并概述如何使用它。各个步骤分为九章,内容如下:

  • 第1章和第2章概述了仿真示例以及OpenFoam®的仿真结构。

  • 第3至6章介绍了如何在OpenFoam®中设置模拟用例以及需要进行哪些设置。详细介绍了计算网格的创建和曲面的分配。

  • 第7章和第8章讨论了仿真的性能。讨论了边界条件的选择和流动模拟的理论。

  • 第9章总结了OpenFoam®提供的评估方法,以及如何将结果导出以进行进一步处理。


最后,应该提到的是,OpenFoam®环境乍一看似乎很奇怪,特别是对于习惯于Windows®操作系统的用户而言。这里绝对需要耐心。仅仅需要花费一些时间,程序的过程就可以被认为是逻辑上的,并且熟练掌握程序的运行和执行所必需的命令。但是,深入研究该主题当然是值得的,因为它提供了进一步完善模拟并做出更好预测的可能性。反过来,这可以提供明显的竞争优势。因此:祝您快乐地研究!

1.介绍
OpenFoam软件包通常在Linux上运行。在此处描述的情况下,在Ubuntu 14.04.5 LTS版本上。为了进行仿真,必须安装Linux操作系统。以下选项可用于OpenFoam或Linux操作系统:

  • 在装有Linux操作系统的计算机上直接安装OpenFoam

  • 双系统:一台计算机上安装了两个或多个操作系统(例如Windows和Ubuntu),并且在每个系统启动时,您都可以选择要启动的操作系统。

  • 服务器的使用:在单独的计算机上安装Linux操作系统,该操作系统可以通过网络(例如)访问。


在此还应注意,默认情况下,OpenFoam没有用户界面(GUI)。这意味着必须通过命令行输入所有命令。但是,有可以使操作变得更容易的市售GUI。这些包括例如CAESES [1],Visual-CFD [2],SimFlow [3]或MantiumFlow [4]。图1显示了OpenFoam的一般结构。

图1 OpenFoam结构概述[5]


它由预处理,求解和后处理三个子区域组成。预处理不包括Blender或PTC Creo之类的程序,而包括为求解器准备几何的软件包。这些包括例如blockMesh或snappyHexMesh。求解器包括分别执行计算或模拟的软件包。默认情况下,OpenFoam包含许多求解器,并且可以从各种Internet来源或论坛中添加更多的求解器。chtMultiRegion求解器默认情况下集成到OpenFoam中,可以在“传热和浮力驱动的流”求解器中找到。

此chtMultiRegion求解器是本手册的重点。使用说明性示例逐步描述了该过程。为此,分别选择了塑料加工或注塑技术的应用。该模拟旨在帮助可视化注塑模具内部的温度分布。更精确地来讲,是描述了所谓的变热注射成型工艺。原则上,注塑过程是这样进行的:将在室温下为固体的塑料颗粒在加热的圆筒中熔化,温度大约在 200℃。在塑化后,塑性材料变为液态,并注入到金属模具中。

借助于温度控制单元冷却的金属模具一方面提供几何造型,另一方面提供对成型零件的冷却。但是,如果模制件具有非常细微的结构(微结构),则常规的模具冷却概念是不够的。然后应用上述可变热过程。在此,在注射之前将金属模具加热到大约熔融温度。然后在注射过程中已经将其再次冷却。图2显示了两种工艺变量的填充过程中的事件。

图2 注塑过程中的填充过程,不使用可变温度控制和使用可变温度控制的比较[6]


在此可以看出,塑料熔体在与冷模具壁接触时固化。这降低了模制微结构的能力。但是,如果模具壁被加热,则塑料熔体有足够的时间蠕变成精细的结构。加热和冷却过程由两个独立的冷却单元进行。通常将水或油分别用作冷却或加热介质。下图显示了这种温度控制概念的示例:


图3 带有两个温度控制单元和一个阀开关单元的变温液体温度控制原理[6]


为了能够生产高质量的塑料产品,必须知道确切的模具壁温。因此,值得用OpenFoam模拟该过程并仔细研究一下。
本手册旨在作为使用OpenFoam映射所描述的过程的基础。作为初步概述,表1显示了该方法的各个步骤,分为准备,预处理,求解和后处理。关于建模以及将几何数据集成到OpenFoam中,可以使用各种各样的过程。本文描述的仿真案例通过以下方法解决:

表1 使用OpenFoam和chtMultiRegio进行仿真的过程


为模拟示例选择的几何形状是一个长方形,在其端面的上半部具有一个温度控制孔。计划以限定的速度和温度的水流过该钻孔。目的是确定上表面的加热和冷却过程。下图以图形方式显示了仿真的几何形状。

图4 几何仿真图


在接下来的章节中,将逐步介绍所描述的仿真示例。在每种情况下也都提到要执行的命令。它们以彩色显示,PTC Creo命令以蓝色显示,Blender命令以黄色显示,OpenFoam命令以红色显示。

2.制备
在本手册或所示示例中,设计活动分别使用PTC Creo进行。结构不仅限于Creo程序,还可以任意选择。唯一的先决条件是必须使用* .stl格式将几何传递给OpenFoam。由于导出几何图形时通常会发生错误,因此,可使用免费的软件Blender [7]对其进行额外检查,并在必要时进行修复。典型的错误示例如未封闭的表面。
2.1模拟几何的构造
第一步是使用PTC Creo设计基本几何图形。作为要模拟的几何形状,选择了图4所示具有纵向孔的钢块。大大简化了带有冷却孔的注塑模具的设计。下图显示了此基本几何图形的尺寸。

图5 CAD程序PTC Creo中仿真模型的基本几何形状


基本几何图形的宽度为80毫米,高度为100毫米。钻孔的直径为15毫米,位于上表面下方20毫米处。将该基本几何形状拉长到500毫米的长度。选择钢1.2343(X38 CrMoV 51)作为材料,因为它通常用于注塑模具中的模具嵌件。随后,该模型被导出为* .stl文件。导出功能可以在Creo CAD程序中的以下位置找到:File > Save As > Save Copy


然后出现保存资源管理器。在这里选择“ Stereolithography(STL)”。单击“确定”确认后,将出现一个窗口,可以在其中选择导出设置。为了以后使用OpenFoam进行处理,必须将格式设置为“ ASCII”(美国信息交换标准代码)。这决定了文件只能以机器语言(二进制)格式可读还是同时以文本编辑器(ASCII)可读。另外,必须调节和弦高度和角度控制。必须为弦高输入0.01范围内的值,为角度控制输入1范围内的值。通过指定和弦高度,可以指定和弦与曲面之间的最大距离。弦高越低,与实际零件表面的偏差越小。为了更好地理解,在图6中显示了一个解释。

图6 和弦高度的说明


还应注意,和弦高度越小,导出的* .stl文件将变得越大。角度控制可在0到1的范围内进行调整。此值确定小半径时弦高的调整。值1导致将三角形精确调整为小半径。相反,值为0不会导致调整。下图7显示了两种不同设置的比较。

图7 两种角度控制设置的比较[8]


设置格式,和弦高度和角度控制后,用“确定”确认设置,几何图形将作为* .stl文件导出。

2.2 控制和后处理
如果几何图形可作为* .stl文件使用,则可以在Blender中开始工作。首先必须导入几何。可以通过File > Import.来完成。为了使模型最佳工作,必须首先设置正确的模式。初始默认设置为“对象模式”。必须将其更改为“编辑模式”。可以在下部屏幕区域中进行设置(图8)。

图8 在Blender中选择编辑模式


另外,选择类型必须设置为“面”。依次可以在屏幕底部选择。使用数字键盘上的键“ 5”,还可以进行缩放行为。完成这些设置后,可以使用鼠标右键选择表面。要选择多个表面,请按住“ Shift”键。

为了使OpenFoam与CAD几何一起工作,必须首先关闭开放的几何曲面。例如,在所示的几何形状的情况下,冷却通道的入口和出口的几何形状没有关闭。要关闭这些开口,填充功能是合适的选择。为此,首先将选择模式更改为点选择(顶点选择)。然后按“ c”键,随即出现一个选择圈。现在按下鼠标左键时,标记选择圆中的所有点。可以使用鼠标滚轮缩小或放大选择圆圈。一旦选择了所有必需的点,请按鼠标右键以结束选择,然后按“ f”键填充点所包围的表面。

图9 按“ c”键(左)选择圆,按“ f”键填充表面


在各个填充命令之间,必须始终确保没有选择其他曲面。为了确保没有选择其他项目,应在不同的命令之间激活键“ a”以取消选择任何选定的点。成功关闭所有开放的几何图形后,可以使用功能非流形检查所有曲面是否都封闭。可以在屏幕左下方的Select > Non Manifold 或者Select > Select All by Trait > Non Manifold,  or by pressing Shift-Ctrl-Alt-M中找到此功能,或者按Shift-Ctrl-Alt-M如果激活了“编辑模式”并且视图设置为“线框” ,开放区域将突出显示。通过按“ n”键,还可以显示开放区域的XYZ坐标。

图10 菜单项非歧管


一旦确保几何形状闭合,就必须定义各个表面,以便以后可以在OpenFoam中为它们指定某些属性,例如冷却剂的入口和出口。这意味着每个具有自己属性的曲面都必须单独导出为* .stl文件。这包括入口,出口,冷却管和钢块。为此,切换到表面选择模式并选择要定义的表面。然后按“ p”键并选择“区域”。然后,选定的曲面将单独出现在右侧的结构树中。现在可以为每个表面分配一个名称。以下定义对于OpenFoam很重要:

  • 入口

  • 出口



在第6章中,将详细介绍要导出的表面和区域。如果在选择曲面时忽略了各个局部曲面,则可以在以后添加它们。选择被忽略的表面,然后按“ p”键。然后选择被忽略的曲面以及要添加它们的区域,然后单击Tools > Edit > join

以执行连接命令。这将合并两个选定的曲面。为了正确地模拟模型,以下* .stl文件必须可用于导入OpenFoam:

  • 入口(单个)

  • 出口(单个)

  • 管(单个)

  • 壁(所有不属于入口,出口或壁的东西)

  • 实体(壁-以后应具有相同固体边界条件的所有表面)

  • 流体(入口,出口和壁-以后应具有流体边界条件的所有表面)


为了将多个曲面导出为单个* .stl文件(例如,流体),必须在结构树的右侧选择它们。使用Shift +鼠标左键选择多个文件。选择各个表面后,可以在“文件”>“导出”>“ STL(* .stl)”下将其导出。导出时,请确保在导出菜单中将复选标记设置为“ ASCII”。

图11 *.stl导出的Blender菜单项

图12 Blender * .stl导出设置,ASCII


3. 使用OpenFoam进行预处理
为了能够在OpenFoam中开始预处理,所有几何形状都必须单独可用,即,入口几何形状,管形几何形状,壁几何形状,流体几何形状和固体几何形状必须在手边。一旦所有几何文件都可用,就可以开始构建仿真。在此模拟示例中描述的情况旨在显示介质流经的钢块的加热和冷却过程。为此,首先使用blockMesh和snappyHexMesh对几何进行网格化。然后将使用求解器“ chtMultiRegionFoam”显示温度分布。

使用OpenFoam执行的仿真通常具有以下标准结构:

图13 大多数OpenFoam模拟的文件夹结构


当开始在OpenFoam中设置仿真时,建议复制一个现有的仿真案例并对其进行调整。对于大多数求解器,OpenFoam的标准安装中有一些示例,可在“教程”文件夹中找到。

在以下步骤中将更详细地描述仿真示例,其结构如下:
模拟示例的名称:cfdkurs
模拟示例的存储位置:〜/ OpenFOAM / OpenFOAM3.0.1 / simulations / CFD-Kurs / cfdkurs $
在模拟示例的存储位置(也称为主目录)中,以下所有命令均在终端(外壳)中执行。这意味着,例如,如果必须使用blockMesh创建第一个计算网格,则必须首先打开cfdkurs文件夹,然后输入命令> blockMesh。cfdkurs目录包含文件夹0,常量和系统。


3.1 网格创建-常规
在OpenFoam中,可以使用SnappyHexMesh函数创建网格。将通过一个简单的示例[9],[10]来说明这种创建过程。
步骤1:第一步,需要几何图形的* .stl文件。在使用CAD程序创建的该文件中,几何形状的表面通过三角形描述。
步骤2:使用blockMesh将第一个背景网格叠加到此几何上。blockMesh函数可用于创建一个长方体,该长方体被分成几个立方体或长方体单元。在blockMeshDict中,定义了用于执行blockMesh的文本文件,定义了长方体角点的坐标及其之间的单元数。
步骤3:snappyHexMesh函数现在可以优化STL表面周围的单元格。在snappyHexMeshDict中定义了要精炼这些单元的频率。
步骤4:然后移除查看空间内部或外部的单元,并进一步优化其余单元。
步骤5:在最后一步中,对边缘和表面进行平滑处理。此外,可以引入其他层来细化单元格和几何表面之间的过渡,从而提高分辨率。


第3步到第5步全部在执行snappyHexMesh的过程中一次执行,并在snappyHexMeshDict的系统文件夹中精确定义。

图14 步骤1,现有* .stl文件

图15:步骤2,创建一个BlockMesh块(背景网格)

图16:步骤3,使用SnappyHexMesh函数细化网格

图17:步骤4,移除观察空间内部或外部的单元

图18:步骤5,网格的平滑和细化


以下各节提供了此处描述的过程的更详细说明。

4. 第一个计算网格– blockMesh
在开始创建第一个计算网格之前,必须确保几何具有正确的缩放比例。分别创建* .stl文件或导出文件时,请注意导出几何图形的单位。OpenFoam使用SI单位,因此所有几何尺寸均以米为单位。例如,如果以毫米为单位导出了几何图形,则可以在OpenFoam中执行转换。可以使用> transformPoints命令来完成。
> transformPoints-比例为'(0.001 0.001 0.001)'-区域流体
> transformPoints-比例为'(0.001 0.001 0.001)'-区域固体


使用blockMesh,如上所述将背景网格叠加在几何图形上。要执行命令blockMesh,需要相应的文本文件blockMeshDict和文本文件controlDict。两者都保存在“ system”文件夹中,通常从其他模拟模板复制,然后适应于各自的新情况。使用以下命令,可以将文本文件复制到新文件夹中:
> cp文件所在的路径目标文件夹/


示例:〜/ OpenFOAM / OpenFOAM-3.0.1 / simulations / CFD-Kurs $ cp StandardVersuchBaseCaseVH / system / blockMeshDict system
在文本文件blockMeshDict中,定义了长方体角点的坐标及其之间的像元数。下图19显示了blockMeshDict文件。

图19:文本文件blockMeshDict(左),坐标点描述(右)[11]


从第19行到第28行,该矩形的顶点以X,Y,Z格式给出。第33行包含以下信息:

  • hex(0 1 2 3 4 5 6 7)六面体块的定义。注意顺序!

  • (30 10 10)角点之间的像元数量

  • simpleGrading(1 1 1)角点之间的像元缩放


有两种方法可以在几何图形上叠加合适的块。角坐标是已知的并已输入到blockMeshdict文件中,或者坐标是未知的并且必须确定。如果未知,则可以使用Paraview确定它们。这样,可以在Paraview中可视化STL零件的几何形状和生成的blockMesh块,并读取相应的值。为了显示blockMesh块,必须满足以下几点:

  • blockMeshDict文本文件存在于系统文件夹中

  • controlDict文本文件存在于系统文件夹中

  • 在终端o> blockMesh中执行的blockMesh

  • 案例文件夹中存在虚拟文件foam.foam


要在case文件夹中创建虚拟文件,必须执行以下命令:> nano foam.foam
例如:〜/ OpenFOAM / OpenFOAM-3.0.1 / simulations / CFD-Kurs / cfdkurs $ nano foam.foam
文本编辑器打开,并出现一个空的文本文件。Ctrl + o保存文件,而Ctrl + x再次关闭编辑器。然后可以通过以下命令打开Paraview:> paraview
然后必须在Paraview中打开* .stl几何数据和虚拟文件foam.foam:File > Open > foam.foam
如果文件没有立即显示,则必须打开 单击“应用”确认。


图20:在Paraview中创建的块


所选几何的角点坐标显示在左下方菜单区域的“信息”部分中。图21显示了solid.stl几何的角点坐标。

图21:solid.stl几何的角点坐标


现在,必须将从Paraview中读取的模拟几何的坐标输入到文本文件blockMeshDict中。在这里,应该始终将blockMesh块选择为略大于仿真几何体。在所示示例中,blockMesh块比模拟几何图形大5个单位。因此,生成的块具有以下尺寸:

图22:在blockMeshDict文件中输入的生成的BlockMesh块的角点坐标


将角点坐标输入到blockMeshDict-File中之后,仍必须用“刷新”更新Paraview中的显示。然后,先前定义的块将出现在查看区域中(图23)。

图23:叠加了BlockMesh块(网格)的仿真几何


矩形的形状理想上应该是立方的。这可以通过调整blockMeshDict文本文件中的拆分来调整。为此,必须打开文本文件blockMeshDict,并修改第33行“((30 10 10)–角点之间的像元数”)。通过再次执行blockMesh命令,将接受调整后的数据:
>blockMesh  


示例:~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ blockMesh

5.第二计算网格– snappyHexMesh
然后,snappyHexMesh程序会优化围绕STL几何图形的单元格。为了使用snappyHexMesh进行优化,必须首先将以下文件复制到“ system”文件夹中:

  • system

snappyHexMeshDict
meshQualityDict surfaceFeatureExtractDict
fvSchemes
fvSolutio

此外,*.stl文件必须位于文件夹“ constant”中:

  • 常数

文件夹“ triSurface”(可能必须创建)
solid.stl
fluid.stl
如果文件夹“ triSurface”不存在,则无需费时即可创建该文件夹。可以使用以下命令创建:
> mkdir triSurface


示例:〜/ OpenFOAM / OpenFOAM-3.0.1 / simulations / CFD-Kurs / cfdkurs / constant $ mkdir triSurface
接下来,您可以开始修改文本文件。下图显示了文本文件“ snappyHexMeshDict”的内容:

图24:内容snappyHexMeshDict文件,第1-232行

图25:内容snappyHexMeshDict文件,第233-336行


在此,必须首先修改几何文件。此处,在几何图形(第30行)下,必须指定所使用的STL几何图形。在示例中,这包括以下* .stl文件:

  • solid.stl

  • fluid.stl


几何下的其余条目可以删除。此外,“特征”(第103行)的条目可以类似于几何形状的更改进行更改。

还必须修改“ refinementSurfaces”部分(第138行)。必须再次将名称更改为“ solid”和“ fluid”。在条目“ faceZone”和“ cellZone”中,必须输入* .stl文件的名称。另外,必须指定位于要划分网格的几何内部的点的坐标。必须输入“固体”和“流体”。线201包含条目“ locationInMesh”,在该处必须再次指定要网格化的几何体内的点。在几何图形内部指定点的作用是分别定义网格的开始或内部几何图形或外部几何图形的网格。

下面的图26显示了meshQualityDict文件的内容。模拟也需要这样做,但是不需要更改。

图26:meshQualityDict文件的内容


在文本文件“ surfaceFeatureExtractDict”(图27)中,再次必须输入* .stl文件的名称(第17和33行)。

图27:目录surfaceFeatureExtractDict文件


调整完所有文本文件后,命令必须执行。
> surfaceFeatureExtract
示例:〜/ OpenFOAM / OpenFOAM-3.0.1 / simulations / CFD-Kurs / cfdkurs $ surfaceFeatureExtract
这将生成文件

  • solid.eMesh

  • fluid.eMesh


在“ triSurface”文件夹中。
然后命令
> snappyHexMesh--overwrite
可以执行。
示例:〜/ OpenFOAM / OpenFOAM-3.0.1 / simulations / CFD-Kurs / cfdkurs $ snappyHexMesh -overwrite

使用命令“ -overwrite”,因为如果网格已经存在,否则将创建一个新文件夹。

6. 创建和分配区域
由于在此示例中模拟了从液体到固体物质的热传递,因此必须对各个几何形状进行分类。这用于通知程序哪个几何形状或体积是固体还是液体,并且之后可以为其分配适合的材料参数。


使用Blender,在上一步中,将几何图形分别导出为* .stl文件。在这里,实体solid.stl由wall.stl和tube.stl组成。fluid.stl几何图形由tube.stl,入口.stl和出口.stl组成。这意味着总共必须存在7个单独的* .stl文件。根据模拟设置,可能不需要几何图形“ tube.stl”。图28说明了各个STL几何形状。

图28 单个* .stl文件的插图


各个* .stl文件必须分配给某些区域。表2显示了带有相应区域的* .stl文件的列表。

表2:将* .stl文件拆分为区域


在分配这些区域之前,必须先划分区域(流体区域和实体区域)。这是通过以下命令完成的:
>splitMeshRegions -cellZones –overwrite
示例:~/OpenFoam/OpenFoam-3.0.1/simulations/CFD-Kurs/cfdkurs$splitMeshRegions -cellZones- overwrite

然后,必须分别将各个* .stl文件或曲面指定给区域。这是通过以下命令完成的:
>surfaceToPatch „Location of the *.stl file“ -region „fluid or solid“  

示例:~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ surfaceToPatch constant/triSurface/inlet.stl -region fluid
~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ surfaceToPatch constant/triSurface/outlet.stl -region fluid
~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ surfaceToPatch constant/triSurface/tube.stl -region fluid
~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ surfaceToPatch constant/triSurface/wall.stl -region solid

在这里,可能会出现以下错误消息(图29):
-->FOAM FATAL ERROR:
参数数量错误,应该找到1个2个无效选项:-region

图29:输入命令“ surfaceToPatch constant / triSurface / inlet.stl-区域流体”时的错误消息


在这种情况下,必须执行附加步骤,或者必须分别分配区域。也就是说,surfaceToPatch命令必须在单独创建的文件夹中执行。这允许彼此分离地分配(修补)区域。因此,将创建虚拟文件夹结构(流体>常量> polyMesh),因为否则OpenFoam将无法识别文件夹结构。如果仅存在一个区域(即仅存在固体或流体),则可以在主文件夹中直接执行surfaceToPatch命令(在示例“ cfdkurs”中)。但是,由于示例中有两个区域,因此必须执行以下步骤:
1.首先,您必须在主文件夹中创建文件夹“ solid”和“ fluid”。
2.然后必须在每个文件夹中创建一个恒定文件夹。使用命令> mkdir文件夹名称创建一个文件夹。
3.然后,必须将主文件夹(〜/ OpenFOAM / OpenFOAM3.0.1 / simulations / CFD-Kurs / cfdkurs / constant)的polyMesh文件夹复制到该常量文件夹中。
4.此外,必须在相应的文件夹(实体和流体)中创建文件夹系统,并且必须将文件controlDict复制到该文件夹中。可以在系统文件夹的主文件夹(cfdkurs)中找到它。
5.最后,必须将相应的* .stl文件复制到创建的文件夹中。

创建和复制文件后,文件夹结构必须如下所示:
cfdkurs

  • Constant

polyMesh
  fluid
   polyMesh
solid
   polyMesh

  • solid

constant
   polyMesh o
system
   controlDict
wall.stl

  • fluid


constant
   polyMesh
system
   controlDict
inlet.stl
outlet.stl

目录常数> solid只能包含外墙的* .stl文件。例如,这意味着不得包括内管壁。创建文件夹结构后,导航到创建的文件夹(实体或流体),并对每个包含的* .stl文件执行surfaceToPatch命令:
>surfaceToPatch CAD_file.stl  
示例:
~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs/solid$ surfaceToPatch wall.stl
~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs/fluid$ surfaceToPatch inlet.stl etc.

在为每个单独的* .stl文件运行此命令之间,必须更改polyMeshboundary文件中的patch0条目。下面逐步介绍了各个步骤:流体示例
cfdkurs > fluid > 0.

  • 打开第一次步骤文件夹(0.1)(非0)

  • 打开polyMesh文件夹打开边界文件

  • 将patch0重命名为入口(或分别重命名为sufaceToPatch中使用的名称)在cfdkurs文件夹中>> surfaceToPatch outlet.stl 

  • 打开cfdkurs>流体> 0.2

  • 复制polyMesh文件夹并将其粘贴到cfdkurs>常量>流体

  • 然后可以将整个cfdkurs>流体文件夹保存为备份或删除


之后,边界文件中的以下条目必须删除,并且第18行(图30)中的编号必须从4更改为3,因为补丁数量已更改。如果未更改,则稍后在Paraview中显示结果时,将出现错误消息。以下命令(例如用于区域实体)可用于检查生成的网格的正确性:
> checkMesh -region solid
示例:~/OpenFOAM/OpenFOAM-3.0.1/simulations/CFD-Kurs/cfdkurs$ checkMesh -region solid

图30:流体的边界文件

为了能够将它们的属性和初始条件分配给区域,需要使用constant的regionProperties文件。其中必须包含以下条目:


图31:文件夹常量中的regionProperties文件


一旦执行了这些步骤,就可以输入初始条件和边界条件。

7.解决–使用chtMultiRegion进行仿真

在选定的模拟情况下,将考虑加热和冷却过程。在加热过程中,温度为90°C的水流过管道10秒钟。接下来是冷却过程,在此过程中,温度为30°C的水流过管道10秒钟。此外,为了分别观察层流和湍流中的热传递,分别用两个不同的雷诺数或流速进行了模拟。


7.1 流动模拟理论
湍流模型标准k-ε用于模拟通道中的流动。这是一个两方程模型,是描述CFD模拟中流量的最常用模型。在输运方程中,湍动能k的产生和扩散是近似的。


𝑃𝑘    生产
𝐷𝑘    扩散
𝜈𝑇    涡旋粘度
𝑆̅𝑖𝑗    粘性应力张量
𝑥𝑗    位置坐标
𝑢̅𝑗    平均速度
𝑘     湍动能
𝜀     各向同性耗散率
𝐶μ    模型常数
𝑐𝜀1      模型常数
𝑐𝜀2       模型常数
𝜎𝑘    模型常数
𝜎𝜀      模型常数

通常,模型常数定义如下:Cμ = 0.09; cε1= 1.44;cε2= 1.92;σk = 1.0;且σε= 1.3。
为了能够计算yPlus,需要湍流初始值,其计算如下[13]:


其中k是湍动能,I是湍流强度,假定为0.8。uref是速度,
ε是湍流耗散率,Cμ是一个值为0.09的常数,L是通道的长度。
νt是湍流粘度。


以下值来自模拟示例的图示公式:
k =0.273
ε =1.563
ν = 0.00324


7.2 输入参数
为了完成模拟,下面列出了层流和湍流模拟的输入参数。对于入口速度(初始条件),在两种情况下均使用以下公式:

在此,Re是在[1]中的雷诺数,u是在[m / s]中的速度,D是在[m]中的通道直径,以及v(nu)在[m2/ s]中的运动粘度。水在不同温度下的运动粘度取自下表:

表3:不同温度下水的物质参数[14]


流经的水的压力为5 bar(5∙105 Pa)。在模拟开始时,冷却剂流过的金属块的恒定温度为30°C。
7.2.1 输入参数层流

  • 雷诺数              Re = 500

  • 通道直径            D =0.015 m

  • 运动粘度,水        ν = 0.801 * 10-6 m2/s at 30 °C

  • 0.326 * 10-6 m2/s at 90 °C

  • 这导致以下速度:

  • 流动速度           u = 0.0267 m/s at 30 °C

  • 0.011 m/s at 90 °C


7.2.2 输入参数湍流

  • 雷诺数              Re = 10.000

  • 通道直径            D =0.015 m

  • 运动粘度,水        ν= 0.801 * 10-6 m2/s at 30 °C

0.326 * 10-6 m2/s at 90 °C

  • 这导致以下速度:

流动速度           u = 0.533 m/s at 30 °C
0.217 m/s at 90 °C

这些输入参数或初始条件在文件夹0>流体中的文档中定义。其中包含文件alphat,epsilon,k,nut,p,p_rgh,T和U。文件p和T位于文件夹0> solid中。


为了能够使用k-ε模型,yPlus值必须提供介于20和100之间的值,该值提供有关最接近墙的单元格高度的说明。该值使用以下命令检查:
> yPlus -region fluid

为了执行此命令,必须包括以下文件夹结构和列出的文件:
0

  • fluid

alphat
epsilon
k
nutp
p_rgh
T
U

  • solid

P
T

在流体文件中,必须在入口boundaryFields中为epsilon,k,nut,p,p_rgh,T,U修改几何名称。在模拟示例中,因此需要输入入口,出口和fluid_to_solid。对于实体文件p和T,必须输入wall和solid_to_fluid。此外,必须调整初始条件,包括速度[m / s],压力[Pa]和温度[K]。

文件夹常量必须包含以下文件夹和文件:
内容

  • fluid

polyMesh(folder
fvSchemes
fvSolution
g
thermophysicalProperties
ttransportProperties
turbulenceProperties

  • solid

polyMesh(folder)
fvSchemes
fvSolution
thermophysicalProperties

文本文件的屏幕快照可以在附件的10.3节中找到。至10.4。
完成所有调整后,最终可以对固体和流体执行yPlus命令:
>yPlus -region fluid
>yPlus -region solid

由于所示示例中的yPlus值超过100,因此使用以下命令精炼流固边界处的单元:
>refineWallLayer '(fluid_to_solid)' 0.5
(无-region选项,因此必须在修补了进口和出口的文件夹中执行)

精炼后,必须将生成的polyMesh文件夹复制到constant> fluid。fineWallLayer命令插入了其他单元格行,从而将yPlus减少为平均值54.74426。图32显示了改进的网格:

图32:冷却管几何形状的精细啮合


固体的初始温度定义为30°C。此外,应通过更改条目“ externalHeatFluxTemperature”来定义外壁的边界条件。规定将固体和环境之间的传热系数定为10 W /m2K。这意味着在仿真中不会分别映射环境或空气,而仅在提及恒定边界条件时予以考虑。

8.运行模拟
为了能够开始仿真,必须定义一般条件。这些可以在常量文件夹中找到。应该定义以下条目:

1.在thermophysicalProperties中指定了流体和固体的材料数据;这些文件位于常量文件夹中。这包括通常用于钢和水的值,例如热导率或容量。
2.对于湍流模拟,需要一个名为turbulenceProperties的文件,其中定义了要使用的湍流模型。
3.默认使用在fvSchemes和fvSolution中找到的数字设置。
4.在controlDict中,指定了模拟的第一部分(=加热过程)需要10秒,并且每隔0.1s存储一次。
5.为了能够模拟总共20秒钟的加热和冷却过程,在经过10秒钟的加热阶段后,对文件夹10(模拟时间开关文件夹)中文件T和U的入口温度和速度进行了调整。为了能够最终还显示冷却阶段。

文本文件的屏幕快照可以在附件10中找到。最后,用
> chtMultiRegionFoam
模拟开始。湍流模拟完成后,也可以创建层流模拟。为此,创建了整个湍流箱(cfdkurs)的副本(cfdkurslaminar)。为了使用此复制的案例执行层流仿真,必须进行以下更改:
1.降低文件夹0> U中的速度以映射层流。
2.在常量文件夹中的turbulenceProperties文件中,流类型更改为层流。

9.结果
9.1 加热和冷却过程
模拟后,在Paraview中对加热和冷却过程进行了成像。下图以2.5秒的步长以图形方式显示了结果。湍流模拟工况显示在左侧,层流模拟工况显示在右侧。


从这些图中可以看出,湍流变体对温度变化的反应更加动态。为了说明这一事实,可以在表面上创建测量点图。仿真数据的导出将在下面的9.2小节中详细介绍。为导出定义了表面上的两个点(图34)。

图33:在模拟几何图形的表面上定义的测量点


第一个测量点在入口后面10毫米处。第二个测量点正好位于模块的中间,因此距入口250毫米。对于这些点,然后将生成测量值并以图表形式显示(图34和图35)。图34显示了湍流和层流情况下入口后10毫米处的温度曲线。在湍流情况下,流速在30°C下为0.533 m / s,在90°C下为0.217 m / s。在层流情况下,流速在30°C下为0.0267 m / s,在90°C下为0.011 m / s。

图34:表面温度曲线,入口,位置0.01 m


可以看出,湍流情况比层流情况动态得多。这是由于在高雷诺数下固体与流体之间的传热系数增加。图35显示了入口下游250毫米位置处的温度曲线。

图35:0.25 m位置的表面温度曲线,块中心


可以看出,与10 mm处的测量点相比,温度升高约低10°C。在层流模拟的情况下,温度不会升高,因为流速是如此之低,以至于热水仅在冷却过程中途到达250 mm的测量点。

9.2 导出测量值
在Paraview中显示几何之后,使用ProbeProbe功能(如图所示,可以在模拟几何的表面上生成一个测量点。

图36:Paraview函数ProbeLocation


使用文件>保存数据中的命令,然后可以输出时间步的所选数据。在所示示例中,输出温度数据。以这种方式导出数据的缺点是,每个时间步骤都会创建一个Excel文件。

但是,在存储文件的文件夹中,命令
for i in `seq 0 1 200`; do cat T.$i.csv >> masterT01.csv; done  

可用于将它们合并到单个Excel文件中。但是,此命令还会合并200个文件的标题,因此每个测量值行都有一个多余的标题行。要删除它们,必须执行以下命令:

1.打开文件
> vim createdfile.csv

2.开始宏录制:按两次“ q”键开始宏录制

3.删除行
按两次“ d”键
向下箭头以跳过行

4结束宏录制:按一次“ q”键

5.执行命令多次执行某个特定的次数:在数字键盘上输入执行次数,
以@q开始执行

6.保存并退出
:wq(写入并退出)

应当指出,Paraview具有评估各种模拟案例的广泛选择。此处显示的示例仅代表了可用可能性的很小一部分。有关使用Paraview的评估方法和教程的更多信息,可以直接在Paraview网站上找到[15]。


研究背景
2020年3月,奥地利技术公司Ecoplus Plastics和Mechatronics Cluster公布了他们的一项研究结果,内容主要是关于将增材制造应用于工业生产中的发现。两年前,这两家公司启动了这项耗资210万欧元的研究项目,称为“增材制造的工业4.0”(AM 4 Industry)。


项目目的是使企业能够在把增材制造引入生产领域时,做出更明智的决策。研究表明,增材制造技术能否成功应用于工业,主要取决于几大关键因素:
●质量特征的定义以及设计
●3D打印工艺的发展
●可靠的生产过程监控
●合适的后处理指南
●合适的成本效益模型

该报告一共包括五个细分报告:
●激光束熔化(LBM)增材制造缺陷研究
●增材制造设计非常重要
●增材制造中的设计与流程相关注意事项
●实施增材制造工艺之前,做好质量优化和成本分析
●应用示例介绍OpenFoam®和chtMultiRegion

这项研究,南极熊认为非常有价值,有利于激光熔化类的3D打印企业深入展开工业应用,推动我国智能制造的发展。

本报告的翻译,得到北京化工大学英蓝实验室  吴怀松、何其超、程月、王皓宇、张秀、刘俊丰等同学,和老师焦志伟的大力支持。正是由于这个也做3D打印相关研究的团队,付出了约1个月的时间和精力,本报告的中文版才得以问世。南极熊特此感谢!


南极熊会逐渐把报告的PDF文档上传“南极熊3D打印视频直播平台”,可供在线查看。

△微信扫码进入查看数十个3D打印 研究报告

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OpenFOAM教程|03 分块网格
分享stl
【烟花原创】VBA零基础之第207篇FSO对象(6)
openfoam使用步骤
后处理中截取任意面的数据方法总结
FasFluid FAQ(Frequently Asked Question) -- 2.Geometry(几何篇)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服