ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

COMSOL激光熔覆热固流仿真:从温度场到熔池动力学

COMSOL激光熔覆热固流仿真:从温度场到熔池动力学 激光熔覆的仿真我前后折腾了快两年。最开始只是想算个温度场看看基体表面在激光扫过之后能不能达到熔点。结果温度场倒是算出来了熔池形貌却怎么看怎么不对劲——后来才知道问题出在熔池里的流动上。熔池不是一锅死水表面张力梯度会推着液态金属转圈流动又会把热量带偏等温线、熔合线的形状全都会变。从那天起我就明白做激光熔覆仿真温度场和流场必须耦合在一起算也就是大家常说的热固流仿真。这篇就来聊一聊我用COMSOL做激光熔覆热固流仿真的完整思路从物理机理怎么理到几何材料参数怎么给再到接口怎么设、网格怎么划、结果怎么看最后把我踩过的坑和排查方法都写出来。适合正在做激光熔覆数值模拟的同行也适合刚接触COMSOL多物理场仿真、想把熔池动力学做明白的研究生和工程师。即便你还没做过激光熔覆这套热固流耦合的建模逻辑也可以直接平移到你自己的激光焊接、增材制造问题里。1. 先别急着建模型把激光熔覆里的物理场吃透1.1 激光熔覆过程到底有哪些物理过程同时发生激光熔覆的核心其实不复杂一束高能激光以一定的功率密度打在基体和同步送粉形成的粉床/熔覆材料上材料吸收光能后迅速升温、熔化形成一个局部的小熔池激光束移动之后熔池尾部凝固形成与基体冶金结合的新一层。但“不复杂”是对工程过程而言的。把仿真模型搭起来热传导、金属流动、相变潜热、自由表面变形、甚至凝固组织演变全都搅在一起问题立刻就变成了多物理场耦合的大系统。热固流仿真这个说法圈内一般指的就是“热传导—熔化相变—熔池流体流动”这条主线固体区域里以热传导为主熔池里则是导热加对流传热并存而流场的驱动力又来自温度分布。所以我在用COMSOL建模之前一定会先把五个物理过程写在纸上热源输入与吸收、固体内部热传导、熔化/凝固相变潜热、熔池内的层流流动、自由表面或变形边界上的力学作用。谁排第一、谁是因变量、谁反馈给谁这些因果箭头画清楚比直接开COMSOL拖物理场接口重要得多。我见过太多人一上来就套“层流固体传热”两个接口结果耦合关系没想明白后面调参数调到怀疑人生最后才反应过来是方向性问题。1.2 流场对温度场的反馈这是整篇文章的支点单算温度场时你会把热量输运看成纯热传导。加上流场之后熔池内液态金属的对流换热会迅速搬运热量效果比单纯的导热强得多。流场的强度可以简单估算一下熔池表面由马兰戈尼效应驱动的流速通常在0.1到1米每秒量级而激光扫描速度一般只有几到几十毫米每秒也就是说熔池内的对流比激光移动快一到两个数量级。热量进入熔池后很快就会被流动“搅匀”一部分等温线不再是一个理想高斯热源下的椭圆而是会出现熔池前端陡、后端拖尾的形态。这种反馈还体现在凝固组织上。晶粒生长方向往往跟随熔池边界的温度梯度方向也就是说流场通过改变等温线形状间接决定了凝固方向和组织形貌。这也是为什么熔池动力学研究很少只做温度场大家最后都会回到“温度场流场”耦合上。要判断一个热固流仿真模型是否靠谱先看温度场等温线有没有被“搅”出该有的形态再看流场是否和驱动力源头对得上这两条比盯着某个峰值温度精确不精确更有诊断价值。1.3 几个无量纲数帮你快速判断主导机制做仿真之前先算几个无量纲数能帮你少走很多弯路。最常看的是马兰戈尼数和热瑞利数它们分别衡量表面张力梯度驱动力和浮力驱动力相对于黏性/热扩散效应的强弱。以钢为例熔池半径量级取1毫米表面张力温度系数约负0.3e-3牛每米开尔文温度差一两千开尔文算出来的马兰戈尼数通常在10的4次方到5次方量级。这个数量级说明表面张力梯度驱动的对流远远强于热扩散熔池内部“热对流”主导了热量输运不能忽略。热瑞利数往往比马兰戈尼数低一两个量级说明在这个尺度下浮力是次要因素。还有一个更直观的普朗特数。液态金属普朗特数普遍很小在0.01到0.1之间意味着热扩散要比动量扩散慢或者相当边界层和热边界层厚度会有明显差异网格划分时就要特别注意流场边界层。这几个数算完之后你会明白一件事激光熔覆熔池的流场不是“锦上添花”的细节而是决定温度分布、熔池形貌和凝固组织的主控因素。2. 几何建模和材料参数这些准备工作定生死2.1 几何建模怎么取舍二维半还是全三维COMSOL里做激光熔覆常见的几何方案有三种二维横截面、二维纵向截面和全三维实体。二维横截面适合研究熔池深度方向上的流场和热影响区但不能表达激光沿扫描方向的移动效应研究移动热源时不推荐单独使用。二维纵向截面也就是沿着激光扫描方向切开的一个薄片既能保留热源移动又能大幅压缩网格量是我最推荐的起步方案。全三维实体最接近真实过程可输出论文级的结果图但网格数量、时间步长、求解器调试难度都会成倍上升。我个人的习惯是初学或者改参数阶段先用二维纵向截面把物理机制跑通确定流动方向、温度量级、熔池形态都和文献对得上了再升级到三维做详细图。很多人觉得三维才是“完整模型”但三维模型一旦不收敛你根本分不清是网格问题、物理方向问题还是求解器参数问题排查成本极高。二维模型在这个阶段就是你的“物理验证器”。几何可以从COMSOL内部直接画也可以从SolidWorks等CAD软件导入导入时务必确认单位统一不然一个毫米一个米会让温度场直接飞到几千亿开尔文。2.2 材料参数温度相关的物性比你想的更敏感熔覆材料通常是钢或镍基合金最常用的七个参数是密度、比热、导热系数、动力黏度、表面张力及其温度系数、光谱吸收率、熔/沸点与相变潜热。我整理了一组钢的典型取值供参考具体数值要按你仿真的材料牌号去查。参数典型取值范围说明密度7600~7800 kg/m³液态时变化不大可用常数导热系数20~40 W/(m·K)固态随温度升高略降液态可适当降低比热容600~800 J/(kg·K)尽量用变值涉及潜热时注意动力黏度5~8e-3 Pa·s决定流场量级很敏感表面张力温度系数-0.2e-3~-0.5e-3 N/(m·K)符号决定流动方向重中之重光谱吸收率0.2~0.5对1064nm激光受表面状态影响大最易翻车熔点/沸点约1500°C/2900°C钢用于相变判断和蒸发判据这里特别强调吸收率。表面是否氧化、粗糙度多大、激光波长是多少都会显著改变实际吸收率。钢对1064纳米YAG激光的吸收率通常在0.2到0.5之间你要是随手填了个0.65甚至更高峰值温度直接超沸点几千度结果全乱。另一个容易被忽略的是黏度的温度依赖性。如果只看温度场黏度影响不大但一旦要算流场黏度给错一个数量级流速就偏一个数量级。表面张力温度系数的影响更大它是流场驱动的“方向盘”方向反了熔池宽深比直接反转后面我会专门讲这个问题。2.3 热源模型和散热边界高斯热源是默认选择激光能量在光斑内近似高斯分布工程上最常用的表面热通量表达式是q(r)2ηP/(πR²)乘以exp(-2r²/R²)。这里的P是激光功率η是有效吸收系数R是有效光斑半径r是计算点到光斑中心的距离。关键要理解R不是光束出口直径而是实际熔覆过程中作用于工件表面的特征光斑半径通常按光强降到中心1/e²处的半径来取。功率密度分布对温度场影响极大光斑半径差0.3毫米峰值温度可能差出几百开尔文。散热边界相对简单。自由表面通常同时考虑对流传热和辐射散热对流换热系数在10到30瓦每平方米开尔文表面辐射率取0.2到0.4。激光熔覆加热时间短、基体尺寸大远边界可以设为绝热或固定室温但基体厚度最好大于熔池深度的10倍否则底部边界会影响热积累造成温度场偏高。这里再提供一个经验如果你发现最高温度明显偏低先检查基体尺寸和边界距离而不是急着调激光功率。3. COMSOL里的多物理场装配从接口配置到移动热源3.1 物理场接口怎么选层流固体传热变形几何COMSOL里做激光熔覆热固流仿真最标准的组合是启用“固体传热”和“层流”两个物理场接口再通过“多物理场”节点里的“非等温流动”耦合。注意在COMSOL 6.x版本中多物理场节点会自动把流体密度、黏性耗散和传热项耦合起来比早期版本手动加项要省心很多。我目前用的是6.4版本这个流程在6.1上也能跑通差别主要是耦合节点的位置和命名略有不同。若熔池自由表面位移不可忽略还需要再加“移动网格”或者说“变形几何”接口。这里必须讲一个关键技巧冻结固态区。COMSOL的层流接口默认会把整个几何都当成流体域来计算也就是说基体的固态区域也会参与流动这显然不符合物理算出来的流场会在整个基体里乱窜。实际做法是给黏度一个随温度剧烈变化的函数温度低于固相线时把黏度人为放大10的4次方到6次方倍“让流场动不起来”。用一句话概括就是把固态区假装成极黏的液体。这个思路在工程仿真里非常常见但要注意黏度函数必须在固液相线之间平滑过渡不能阶跃突变否则会在固液界面附近产生虚假的压力振荡。3.2 熔池流动的驱动力怎么加边界力和体积力流场的驱动力有几种加到COMSOL里的位置各不相同。马兰戈尼切应力加在熔池自由表面边界上本质是表面张力温度梯度产生的切向“拖动”力表达式上可以处理成沿边界的切向分量等于表面张力温度系数乘以表面温度梯度的切向分量。蒸发反冲压力加在与激光作用面法向的边界上通常在局部温度接近沸点时才有量级方向垂直表面向内。浮力作为体积力加在整个流体域但在熔池尺度小、温度梯度大的条件下浮力相对弱保留即可。新手最容易犯的错误是把马兰戈尼力当成法向压力施加。它不是压强是切向力。方向怎么判断大多数金属的表面张力随温度升高而下降也就是表面张力温度系数为负所以熔池中心高温区的表面张力小边缘低温区的表面张力大液体就从中心沿表面流向边缘在截面上形成两个涡旋。这种流动会把热量带向两侧熔池形态偏宽、偏浅。有些含硫等表面活性元素的钢表面张力温度系数会变号流动方向反过来熔池就偏深。做仿真前先查清楚你材料的系数符号别拿默认值硬套。在COMSOL里加这些力时可以用的方式有两种一是用“边界载荷”节点直接引入切向表达式二是用“弱约束”接口把表面力投影到边界切向。实操时注意切向梯度的计算要用边界切向导数运算符比如dtang(T)而不是直接用全局梯度在边界上的分量否则力和边界几何方向对不上收敛会非常困难。3.3 移动热源怎么实现三种常见方案移动热源的实现方案我实际用过三种。第一种是空间坐标平移法在热通量表达式里用x减去光斑中心位置xt(t)来代替原来的xxt(t)按扫描速度随时间线性变化。这方法简单、稳定直线扫描场景够用我最常用。第二种是通过事件接口或LiveLink for MATLAB/Python控制光斑位置适合复杂轨迹或者批量参数扫描比如光斑走个“几”字形甚至圆形路径用外部脚本改参数再批量跑效率高很多。第三种是让网格动起来热源固连在某个网格点上工件网格反向运动类似滚动坐标系适合处理大变形和较长扫描距离但设置复杂网格质量不容易保持。不管用哪种方案热源移动速度和激光扫描速度必须严格一致时间单位、长度单位都要先统一。我见过有人把扫描速度设成100毫米每秒热源表达式里用的却是秒结果温度场全程在“瞬移”熔池形态完全不对。建议在模型里加一个“全局计算”节点随时检查光斑中心位置随时间的轨迹快速排除这类低级问题。4. 网格划分与求解器调参熔池周围是命脉4.1 网格尺寸怎么定先算热源特征尺寸网格划分的原则可以用一句话概括一切为了捕捉温度梯度和流场边界层。激光光斑范围内的热通量沿径向按高斯分布变化如果网格太粗热源峰值落在单个节点上会产生“温度尖峰”和强烈的数值振荡。我通常要求热源有效区域至少分布10个以上网格点。举例来说光斑半径1.5毫米熔池区网格就控制在0.1毫米量级最小不低于0.05毫米最大不超过0.15毫米。远离熔池的基体区域可以快速粗化用“扫掠”或“映射”网格从细网格过渡到粗网格粗化比控制在3到5倍即可。粗化比拉太大会让中间过渡区出现畸形单元反而拖慢求解。液态金属自由表面如果有强烈对流还需要在表面上设置2到3层边界层网格第一层厚度取决于表面热边界层尺度。另外二维纵向截面模型里激光扫过的路径建议用映射网格处理成长条状单元这样移动热源穿越网格时数值更平稳不会出现热源“一格一格跳”的假象。4.2 自适应网格和移动网格用的时机COMSOL有自适应网格细化功能可以自动加密温度梯度大的区域听起来很美好但激光熔覆的热源和熔池是随时间移动的开启自适应加瞬态计算计算开销会成倍增加。我的建议是瞬态阶段不要开完整自适应先把物理算对再用研究里的“辅助扫描”或“网格细化研究”做一次局部加密验证看温度场和流场结果随网格细化变化是否已经收敛。如果加密前后熔池深宽比变化超过百分之十说明网格还没收敛需要继续加密。移动网格或者说变形几何的设置要看重指定三类区域变形区、固定区、以及网格平滑类型。变形区要尽量小只覆盖熔池及其紧邻区域即可否则每一步都要更新大量网格还容易出现单元翻转。平滑方法一般选超弹性或拉普拉斯型超弹性对大幅变形更稳健拉普拉斯计算快但容易卡在畸变上。另一个细节是变形区域不要包含固态基体的外边界或流体进出口边界否则边界上的网格会不断移动产生伪法向速度污染整个流场。4.3 时间步长和求解器稳定性时间步长怎么定最稳妥的方式是同时看两个约束。第一个约束是热源移动时间步长乘以扫描速度不能超过一个网格尺寸否则热源会在网格上“跳跃”。比如网格0.1毫米、扫描速度10毫米每秒单步位移一个网格耗时0.01秒时间步必须小于这个值。第二个约束来自热扩散稳定性Δt要小于网格尺寸平方除以两倍热扩散系数。钢的热扩散系数约5e-6平方米每秒网格0.1毫米时这一步长上限算出来大概在1e-3秒量级比前一个约束更严格。所以我的经验是初始时间步长从1e-4秒起步后面允许自适应步长逐步增大到2e-3秒这样既稳又不会慢到跑不动。求解器设置上层流与传热耦合时COMSOL既可以走分离式求解器也可以走全耦合求解器。全耦合收敛慢但稳定分离式每步迭代量小但需要更多子步。对激光熔覆这种强热流耦合问题我习惯先用分离式把整个过程跑通观察残差曲线再根据情况切全耦合。阻尼因子从0.01级别开始防止第一帧就发散。初始条件也值得多花一分钟基体温度设为室温层流初始速度设为0初始压力设为0。先做纯传热、把温度场算稳再打开层流做耦合是解决“无法找到一致的初始值”这类报错的最有效手段。5. 温度场与流场结果怎么看从图到定量分析5.1 温度场熔池边界就是一条等温线温度场首先要看两个地方最高温度和相变线位置。把温度高于液相线的区域用等值线或等值面提取出来就是模拟出的熔池边界。这里有一个很重要的合理性判断模拟出的峰值温度是不是远超过沸点钢在标准大气压下的沸点约2900摄氏度左右。如果峰值温度明显超出沸点很多而你模型里没考虑蒸发冷却和反冲压力那结果会偏热。定性研究还能接受如果要和实验结果定量对比就必须把蒸发冷却项加进去否则熔池深度和宽度都会系统性地偏大。还可以在基体表面固定放置几个“探针”提取熔覆过程的完整热循环曲线得到升温速率、峰值温度和冷却速率。这些数据是后续做凝固组织预测的重要输入。我之前犯过的一个错误是在求解完成之后才建探针结果需要重新跑一遍瞬态才能取数。正确做法是在求解之前就把“探针”、“截线”、“数据集”这些后处理对象建好算完直接看省时间还不容易漏。5.2 流场盯着表面流向和涡结构看流场图上最值得注意的特征是表面流线方向和涡结构。大多数钢合金由于表面张力温度系数为负熔池中心液体沿表面向边缘流动在二维截面上会形成两个对称涡旋。看到这种涡结构基本可以确定驱动力方向设对了、边界条件加对了。如果只观察到微弱的浮力涡而没有明显的表面驱动涡要回头检查马兰戈尼力是不是被“冻结黏度”吃不掉了或者切向梯度表达式里的边界切向导数用错了。流速量级也应该和理论估计对一下。钢熔池表面流速通常在几十厘米每秒量级。如果你算出来只有几毫米每秒多半是黏度给得太大或者表面张力温度系数在表达式里的单位错了。如果算出来几米每秒以上则要考虑是不是网格太粗、时间步长太小导致的假速度尤其是表面热负荷刚启动的那几个时间步最容易出现高速伪流。定量验证可以结合文献里的无量纲关联式或者直接和实验测得的熔池深宽比对比。5.3 后处理技巧导出论文级结果图后处理这块我有几个屡试不爽的习惯。温度场用云图加等值线等值线特别标出固相线和液相线能直接看出熔池轮廓。流场用流线并用速度大小着色否则全是一样颜色的线条看不出强对流区域。导出动画时把表面云图、流线、以及熔池边界等值线放在同一个绘图层里帧与帧之间用时间步长控制速度就能得到很直观的熔池动力学动画。定量后处理方面用“全局计算”算熔池深宽比和熔覆层截面积用“一维截点”提取不同时刻的中心线温度剖面用“二维截线”对比不同位置的温度分布。最重要的是和实验金相做对比把预测的熔池宽度、深度、稀释率与实验测得的数据放在一张表里。误差在百分之十五以内算是很好的结果如果偏差很大优先回头看吸收率和光斑半径这两个参数对结果的影响几乎是线性的调试效率最高。6. 常见问题与排查技巧实录6.1 不收敛先找“无形的固态边界”做热固流仿真不收敛是家常便饭。先列一个速查表你按顺序排查基本能定位九成问题。典型现象可能原因排查思路温度量级完全不对单位混用或表达式漏了系数检查单位制与所有自定义表达式迭代残差震荡、波浪状黏度冻结函数太陡用平滑过渡的黏度函数流场方向与预期相反表面张力温度系数符号给错确认材料参数并区分切向力方向提示找不到一致初始值初始压力速度不合理先纯传热再开层流或逐步加载功率热源位置出现尖峰跳跃时间步长过大或网格太粗减小时间步、局部加密温度场锯齿状过渡网格太粗用映射网格或平滑过渡细化这里最容易被忽略的就是“无形固态边界”那条。很多人觉得把固态区黏度设成一个很大的常数就完事了结果固液相线附近出现阶跃边界上速度和压力来回振荡。正确做法是用光滑阶跃函数比如tanh函数或者带过渡带的step函数让黏度在几十开尔文宽度内从液态值过渡到冻结值。太陡了会振荡太缓了又会让熔池边缘失真过渡带宽度需要试几次。6.2 温度场有尖峰或异常大概率是功率密度数值病温度尖峰最常见来源是热源功率被重复计数。高斯热源里如果同时设了有效吸收系数又在外面的边界条件里再乘一次吸收率峰值温度会直接超沸点几千开尔文。我在调试阶段习惯用“全局计算”把瞬态过程的总注入能量算一遍看它是否等于激光功率乘吸收系数再乘作用时间。如果多了一倍那不用怀疑表达式里存在重复乘积。网格太粗时高斯热源峰值落在单个节点上也会产生尖峰。解决方法是先做一次局部加密把热源中心周围的网格尺寸降到光斑半径的十分之一再看峰值是否明显下降。如果加密后峰值稳定了那就不是物理发散是离散误差。峰值的另一个来源是时间步太大导致热源在一个时间步内扫过好几个网格每个网格瞬间接受一大块能量而上一时间步还是室温自然会产生“锯齿尖峰”。6.3 熔池怎么都算不深流场方向反向的结果温度场看着正常最高温度也够但熔池宽度明显太大、深度不够这种情况高度怀疑马兰戈尼应力的方向加反了。之前说过表面张力温度系数为负时流从中心流向边缘熔池会又宽又浅如果你模型里给他加了正号流从边缘拉回中心热被带到深处熔池会又深又窄。不用对着文档猜符号直接在二维模型里把系数正负两种配置各跑一次观察熔池深宽比的变化再选与实验一致的那个方向这是最快的方法。还有一个我踩过的坑是冻结黏度的函数作用域覆盖了熔池表面附近导致表面切向力加不上去。看起来边界条件设了马兰戈尼力但实际计算时那个区域的流体黏度已经高到“冻死”了流场根本动不起来。检查方法是把黏度场单独画出来看液相线以上的液态区是否还保有正常黏度值。如果整个表面都被冻结了那你的马兰戈尼力等于加在一个“固体墙”上白加。最后再分享一个小经验吧。我目前用的COMSOL版本是6.4这个流程在6.1上也能跑通差别主要是多物理场节点和耦合项位置略有不同。激光熔覆热固流仿真最怕的不是模型复杂而是物理参数和方向搞反之后反复调那些看似有用实则无关的参数。我现在的习惯是先在二维纵向截面上用同一组参数跑完一整套最高温度、熔池形状、流速量级、对流方向全都和文献量级对上了再迁到三维模型做详细图。即便你的最终目标就是论文里的三维漂亮图二维验证这一关也别跳它省下的调试时间至少能帮你少走一个月的弯路。如果哪一天你算出来的温度场和流场跟实验怎么都对不上也别急着加更多物理场。把吸收率、光斑半径、黏度冻结这三项先检查一遍这三个位置至少占了八成以上的“灵异事件”。激光熔覆是强热流反馈耦合问题一个方向没搞对后面全部白搭。祝仿真顺利——熔池自己会讲故事关键是别把它关在错误的边界条件里。
返回列表