☰
金属凝固传热仿真的核心难点与潜热处理算法解析
2026/10/23 23:28:59 网站建设 项目流程

我做金属凝固过程的传热学仿真,最早是从一个很简单的想法开始的:把“金属凝固”当成一个带冷却的瞬态导热问题去解。真正把模型跑起来之后,结果却让我怀疑人生——按一个普通热传导问题算出来的中心温度,在十几秒内就掉到了固相线以下,而现场的工艺数据告诉我,这个位置的凝固至少还要持续几分钟。问题出在哪?出在我把凝固过程的难点想简单了。金属凝固数值模拟和普通导热分析最大的区别,就是它必须在能量守恒里处理“相变潜热”,而潜热在数学上会带来一个非常陡的非线性项,处理不好,算出来的温度场完全是错的。这篇文章我就从传热学仿真的角度,把金属凝固过程数值模拟里最核心的物理模型、潜热处理算法、完整的算例搭建过程以及我在调试中踩过的坑全部讲一遍。无论你是刚开始接触凝固模拟的学生,还是已经在用商业软件做铸件、焊件热仿真的工程师,这篇文章都能够帮你把底层逻辑理顺。

1. 凝固传热和普通导热模拟的差距,藏在三个“低温细节”里

很多人在刚接触时都会问:凝固不就发生在液相线温度和固相线温度之间吗?我只要在这个温度区间多放一点“热容量”不就行了?思路没有错,但在具体执行时,有三个细节会让仿真结果从“差不多能用”变成“差得离谱”。

1.1 潜热释放比过热度显热大一个数量级,必须当成能量储存来处理

我先用一个简化但很能说明问题的例子来算一笔账。以某铝合金为例,比热容约900 J/(kg·K),凝固潜热按390 kJ/kg计。假如浇注温度比液相线高40 K,那么过热段能释放的显热是900×40=36000 J/kg,也就是36 kJ/kg;而凝固过程中潜热释放量是390 kJ/kg,是过热显热的十倍以上。更夸张的是,金属从液相线继续冷却到室温时,全部显热加起来也不一定比潜热多多少。

这意味着什么呢?意味着如果你只把潜热简单当成一个“在冷却过程某一段释放的热量源项”去处理,数值上是很容易出问题的。潜热释放不是一个固定的集中热源,它取决于局部固相分数的变化速率,也就是:

ρ ∂H/∂t = ∇·(k∇T)

这里的焓H包含显热和潜热两部分。潜热的多少由固相分数fs决定,而fs是温度的函数。比如在一个二元合金里,液相线到固相线之间温度降低,固相分数从0逐渐增加到1,这个耦合关系非常强。如果不把焓作为一个独立的状态变量求解,而只盯着温度,那么数值格式在凝固区间里就很容易失去守恒性。

我见过不少初学传热学仿真的同学,在商业软件里把“潜热”填在材料表里就以为万事大吉,结果中心冷却曲线严重偏快,位置越靠中心的点偏得越厉害。核心原因就是他们没有意识到,凝固过程中的焓不是一个只跟“当前节点有没有凝固完”相关的量,它还和凝固时间跨度、空间分辨率和数值耗散全部耦合在一起。

1.2 固液两相的物性变化,让问题从一开始就是强非线性的

凝固仿真的第二个难点,是物性。液相的导热系数和固相不同,密度也不同,比热容在相变区间附近也不是常数。以钢来说,固态时的导热系数大约在30~50 W/(m·K),液态时虽然本身的导热系数不高,但流动性带来的自然对流使得等效换热能力远高于单纯导热。

这种非线性的物性变化会让“温度场”和“固相分数场”相互纠缠。温度决定固相分数,固相分数反过来决定热容、导热系数和界面热阻。如果我们抱着“常温导热模拟”的惯性,把材料参数设置成常数,或者只是粗略地做个线性插值,那算出来的凝固时间、温度梯度、糊状区分布基本上是没有什么定量参考价值的。

对做铸件凝固工艺的人来说,我们最关心的往往不是某一个点的温度,而是最后凝固的液相孤立区在哪、糊状区的形态怎么演化。这些东西对物性模型的敏感程度远高于对边界条件中辐射率的敏感程度。所以,在做金属凝固过程数值模拟之前,要把材料物性随温度的变化整理清楚。不需要强求实验室级别的精确度,但至少固相、液相、固液两相区的三个典型值必须给出来,并设置成随固相分数平滑过渡。

2. 做凝固仿真前,先定下这三件事:相变区间、液相流动、界面换热

很多新手一上来就找潜热处理算法,或者急着调时间步长。我的建议是反过来,先把下面三个物理问题定下来。这三个问题不定清楚,后面无论用什么算法都是空中楼阁。

2.1 相变区间模型:固相分数和温度的关系不是随便画条线就行

合金的凝固过程通常在一个温度区间里完成,这个区间由液相线温度和固相线温度确定。但在这两条线之间,固相分数随温度的演化规律并不是唯一的,常见处理有三种。

第一种是线性模型,认为固相分数从液相线到固相线均匀增加。这个模型最简单,计算成本低,适合做基本工艺判断。

第二种是杠杆定律模型,它假设固相和液相内部完全扩散均匀,固相分数随温度以非线性的方式变化。这种模型适合分析凝固速度较慢、扩散时间充分的场合,但多数快速凝固工况其实不满足假设。

第三种是Scheil模型,假设固相内没有扩散而液相内完全混合,这个模型在铸件凝固模拟中很常用,对于枝晶偏析严重的合金更接近实际情况。

在传热学仿真里,固相分数曲线确定之后,潜热释放的速率分布也就确定了。同样的凝固区间,采用不同固相分数模型,虽然总潜热一样,但释放的时机和峰值速度不同,最终的温度场和冷却曲线也会有差别。如果项目目标是做宏观温度场评估,用线性模型通常够用;如果后续要做微观组织预测或者缩孔分析,建议至少采用Scheil模型。

2.2 液相对流到底算不算?算不清楚就先用有效导热系数

金属液在凝固过程中并不是静止的。冷壁附近的金属液温度低、密度大,会向下流动,形成自然对流;如果有电磁搅拌或者浇注带来的初始流动,那就是强制对流。液体的对流会显著改变凝固前沿的温度分布,尤其是在铸件上表面和侧壁附近,对流强的地方壳层不容易长厚。

在一个完整的物理过程中,凝固传热仿真可以细分为传热、流动、传质三部分。但如果项目目标是偏宏观的传热学仿真,通常不会直接去求解液相区的Navier-Stokes方程,因为液固两相区的流动、糊状区渗透率、结晶间流动模型都会让计算变得极其复杂,稳定性也更难控制。

一个折衷方案是采用有效导热系数法,也就是把液相自然对流对热量输运的贡献,近似等效成一个比纯导热大得多的导热系数。具体放大多少倍,要根据熔体的Pr数、Grashof数和容器几何形状来估计,没有统一常数,多数工程实践里取3到10倍。做参数敏感性分析时,可以把这个倍数作为一个不确定变量,先看它对凝固时间的影响有多大。如果影响很大,说明你的工况不能省掉流动模拟;如果影响很小,那就可以安心用传热模型。

2.3 铸件—铸型界面的换热系数比合金物性更值得花时间

做金属凝固传热学仿真,最容易栽跟头的其实不是材料热物性,而是铸件和铸型之间的界面换热系数。这个数值的波动范围极大。举个具体的例子,铝合金砂型铸造时,铸件和砂型之间的界面换热系数可能只有几百W/(m²·K);而入金属模或水冷铜模时,这个换热系数可能上千甚至数千W/(m²·K)。同一个铸件,换热系数差一倍,凝固时间可能差出30%以上。

很多模拟者喜欢把这个量设成一个常数,然后用“反算标定”的方式去拟合实测热电偶曲线。如果能拟合得好,那当然没问题。但要注意,随着凝固收缩,金属外壳会和铸型脱开,形成气隙,气隙越大,界面换热系数下降越明显。所以界面换热系数其实是随凝固时间变化的。在比较精细的仿真里,需要把气隙厚度作为反馈量,联动修改界面换热系数,或者至少用分段常数近似。

我的建议是,如果项目还没有可靠的界面换热系数数据,不要花太多时间去折腾潜热算法。先用一组典型参数把模型跑通,再结合现场测温反算这个换热系数,这样循环几次,模型才能真正有预测价值。

3. 潜热处理的三类算法实测:等效热容、焓法、温度回升法的真实取舍

物理模型确定之后,棘手的问题才真正到来:怎么在数值计算里处理潜热?我在实际项目中用过三种主流方案,下面把它们各自的实现思路、优缺点和应用场景都摊开来说。

3.1 等效热容法:能跑通,但不要为了收敛去拉宽凝固区间

等效热容法的逻辑非常直观。在固液两相区内,温度每变化1 K,材料除了显热比热之外还会释放一部分潜热,于是可以把凝固潜热折算成比热容的一部分:

cp_eff = cp + L / (TL - TS)

这个公式理解起来毫无门槛。实现方式就是在材料属性表里,把固液两相区的比热容设为一个峰值更大的值。很多商业软件自带这个功能,用户只需要输入潜热量和凝固区间就行。

但等效热容法有一个非常隐蔽的坑:如果凝固区间很窄,比如纯金属或共晶成分合金只有1~2 K的凝固温度范围,那么这个等效比热可能比实际比热大上百倍。在数值计算里,网格节点温度刚刚跨过液相线时,它会瞬间“吃掉”大量热量,导致温度被压低到固相线附近,凝固平台的温度位置被严重扭曲。

为了缓解这个问题,有的人会人为把凝固区间拉宽,比如把20 K的真实区间改成200 K。这样计算是稳定了,但糊状区的空间范围被数值误差人为放大,后面所有基于糊状区位置的分析都会失真。所以使用等效热容法时,我的经验是:凝固区间内部至少要覆盖3到5个网格,时间步长要保证单个步长内温度变化不超过凝固区间宽度的1/10,同时尽量不要为了

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询