查看原文
其他

喷墨打印机是如何喷墨的?用数值模拟直观告诉你!

hgsjclub 化工研学社 2023-10-08


前言

如果熟悉化工设计竞赛,相信大家也知道排名靠前的学校的ppt中肯定会出现一堆花花绿绿的图,看起来十分高大上,而这些云图慢慢的也成为全国赛的标配。这些云图一般是数值模拟软件生成的,比如ANSYS公司的Fluent软件。所以小编这次通过一个小案例带大家体会一下在Fluent中是怎样设置设置case并计算的吧~案例比较简单,是官方提供的一个关于喷墨打印机喷墨的模拟。为了缩短篇幅,这里只展示一些比较关键的设置。另外,本文的主要目标人群还是对数值模拟感兴趣,或者准备学这方面内容的同学,目的是让大家体验一下在Fluent中做数值模拟的大致流程是怎样的,所以case设置过程不会每一步都会讲解为什么。有兴趣的话文末会提供本文对应的官方教程和源文件,可以自己体验。


简化模型

喷墨打印机的喷嘴和气室都很小(不到1 mm),我们很难直观地看到,所以可以用数值模拟方法来探究喷墨过程墨滴的形状和运动。在模拟之前我们需要做一些合理的简化
1. 将几何简化,油墨的喷头简化为一个锥筒,气室简化为圆筒,如下图所示。
对于这样一个轴对称几何,内部的流场理论上也是对称的。为了减少计算时间,采用二维模拟的方式,又因为平面还是对称的,因此可以只模拟一半(即沿中间的对称轴对半分,只模拟其中的一块)。这样一个三维问题被简化为一个轴对称的二维问题,计算量大幅下降。
2.墨水组成复杂,性质不好设置,所以用水代替。3.因为整个结构很小(不到1 mm),尤其是喷嘴内空腔很小,可以认为是毛细管,所以喷嘴内是一直充满墨水的(毛细作用)。4.打印机在实际工作中不是匀速喷墨的,即进入喷嘴的油墨速度是变化的,我们假设在零时刻墨水流速是3.58 m/s,然后按照余弦公式逐步减小,在10 微秒时速度降为0。5. 由于结构微小,相对于表面张力而言重力可以忽略,所以在模拟过程中不引入重力。至于整个过程持续时长,我们只研究从开始喷墨,持续30微秒这段时间内发生了什么。 需要注意的问题:墨水进入喷嘴的速度是随时间变化的,Fluent的GUI不能设置这么复杂的条件,因此要使用UDF(用户自定义函数)来自己编译入口条件。不过比较方便的是,官方教程提供了UDF和画好的网格,我们直接拿来用。


Case设置

正常的模拟流程应当为构建几何,在计算域内划分网格,然后才是到Fluent去设置。没有接触过的同学可能对网格不太了解,这里简单做个说明:划分网格是通俗的叫法,用学术风格来描述应该叫做“计算区域的离散化”,即将空间上连续的计算区域划分为多个子区域,并确定每个区域中的节点。数学上,生成网格(离散化)后,就可以将连续的偏微分控制方程进行离散,也就是将描述流动与传热的偏微分方程转化为各个节点上的代数方程组。如果以上解释不易理解,也可以这样简单理解:现实中的流动传热问题都是连续的,而我们在计算时需要用有限个离散的点来代替这种连续空间,至于点之间的部分可以通过差值来弥补。理论上只要我们这些离散的点取得足够多,分布地合理就能够得到足够精确的结果,准确描述实际问题。这里就不展示构建几何和划分网格这两个过程(由相关软件完成),直接从Fluent的使用开始讲起。在启动Fluent时选择2D,并勾选“双精度”。


读取网格

首先导入网格(2D模型的一半),下方的黄线是对称轴。我们放大看一下网格的细节:
可以看出全部采用的是四边形网格,网格质量很好,总共24600个网格,网格数量应该能满足计算精度的需求。为了方便观察,我们将另一半也显示出来,但后续的计算依旧是只计算一半


基础设置

在导入网格后我们需要校验网格尺寸,如果有偏差可通过“Scaling Factors”进行修正。接下来我们需要更改长度和表面张力的单位,如下图所示,将单位分别设置为“mm”和“dyn/cm”。
接下来是求解器(Solver)的设置。我们研究的是一个瞬态(Transient)过程,选择默认的基于压力的求解器。因为我们将几何简化为了轴对称结构,别忘了选择“Axisymmetric”。


模型选择

接下来选择多相流模型,这里选择VOF(Volume of Fluid),其他保持默认。


物料/相设置

通过材料库添加空气液态水(代替油墨)。本案例中有两相,可设置空气为primary phase,水为secondary phase,相的名字可以自己指定(这里指定为 air 和 water-liquid )。
下一步是设置表面张力。在Phase Interaction对话窗内打开Surface Tension选项卡,激活Surface Tension Force Modeling。然后启用壁面附着力(Wall Adhesion),以便可以指定接触角。在指定表面张力系数(Surface Tension Coefficient)时选择常数(constant),输入73.5 dyn/cm。


操作条件

我们需要指定操作压力和参考压力位置。默认的操作压力为1个大气压。参考位置需要指定一个一直只有空气一个相存在的空间位置,这里可以设置为(0.10,0.03)。


用户自定义函数(UDF)

前面提到,我们需要墨水进入速度按照时间呈余弦变化,通过Fluent的GUI是无法实现的,需要依靠UDF。下图是官方提供的代码,可以看出定义了一个“membrane_speed”的变量,即墨水的入口速度。后面的if条件语句的功能是:在开始的10微秒内,墨水进入速度赋值为3.58*cos(π*时间/30e-6),10微秒过后速度赋值为0,即停止注射。
有了代码就可以将其导入Fluent中:


边界条件

边界条件的设置非常关键,本案例中我们需要指定入口、出口以及壁面条件。首先定义入口条件。入口已经设定为速度入口(Velocity Inlet),在速度入口的设置界面中,混合物的速度值选择为我们在UDF中定义的“membrane_speed”,第二相(water-liquid)的体积分数设置为1(代表入口只进墨水,不进空气)。
出口条件已设置为压力出口(Pressure Outlet),Backflow Volume Fraction值保持默认的0。
接下来设置壁面条件。前面在设置表面张力时我们启用了壁面附着力(Wall Adhesion),所以现在可以指定墨水和壁面的接触角,气室中和墨水接触的壁面为下图标红的部分,我们将接触角设置为175°
同理,喷嘴部分的壁面,设置为90°


求解

求解的设置如下图:
在开始计算前我们还需要初始化。初始化的目的是指定计算域内流体的初始分布和状态。因为毛细效应喷嘴内部是一直充满墨水的,我们需要将喷嘴对应的几何区域“Mark”起来,如下图所示,然后利用初始化中的“Patch”功能将该区域的液相体积分率设置为1。
接下来就是软件的计算时间,根据配置的不同耗时不同,我们可以通过监视器来观察计算过程中的残差变化。
为了方便展示,小编把结果做成了动画:
在上面的设置中,喷嘴与气室连接部分的液相接触角设置的是175°。大家不妨思考一下如果接触角更小一点,对液滴的生成有什么影响?
这是小编将接触角改为10°后的计算结果:
思考题:有哪位同学分析一下这个过程中液滴的形状为什么会这样变化?欢迎在留言区讨论~畅所欲言!


后台回复“打印机”获得官方教程(英文)、case源文件和算好的data(Fluent 17.0及以上才能打开)!
编辑/排版:Papaw

觉得内容还不错的话,给我点个“在看”呗

能设置个“星标”更好啦

_:(´°ω°`」 ∠):_

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存