第四章 计算流体力学(CFD)基础
各位工程师朋友,欢迎来到热仿真最核心的章节之一。说实话,很多初学者一听到「计算流体力学」这六个字就头大,觉得那是数学家和程序员才该碰的东西。但我告诉你,搞热设计不懂CFD,就像开车不懂发动机原理——虽然也能跑,但出了问题你根本不知道从哪下手。
这一章,我会用最接地气的方式,把CFD的三大控制方程、湍流模型和网格概念讲清楚。别怕,咱们不推公式,只讲道理。
4.1 CFD三大控制方程:流体运动的物理法则
CFD仿真,说白了就是用计算机求解流体运动的物理方程。这些方程不是凭空捏造的,它们来自三个最基本的物理定律:质量守恒、牛顿第二定律和能量守恒。
我刚开始学CFD时,导师跟我说了一句话,我一直记到现在:「你不需要会推导这些方程,但你必须知道每个方程在说什么。」好,咱们一个一个来看。
4.1.1 连续性方程(质量守恒)
这个方程讲的是:流入控制体的质量,等于流出控制体的质量加上内部质量的变化。用大白话说就是——流体不会凭空消失,也不会凭空产生。
我在项目中遇到过这样一个案例:一个风冷散热器的进风口和出风口尺寸设计不合理,导致仿真结果和实测差了30%。后来一查,就是连续性方程没满足——进风量远大于出风量,压力场完全失真了。
核心要点:
- 稳态流动:流入 = 流出
- 瞬态流动:流入 - 流出 = 内部质量变化
- 不可压缩流体(如水、低速空气):密度不变,方程简化为速度场的散度为零
我的经验:在做自然对流仿真时,一定要检查进出口的质量流量是否平衡。如果偏差超过1%,你的结果基本可以扔掉了。我曾经因为这个吃了大亏,后来养成了每次仿真前先跑几步检查质量守恒的习惯。
4.1.2 动量方程(牛顿第二定律)
动量方程,其实就是F=ma在流体中的版本。它描述了流体微团在压力、粘性力和体积力(如重力)作用下的运动规律。
你想想看,为什么热空气会上升?就是因为密度变小了,重力作用减弱,压力梯度推动它往上跑。动量方程就是用来描述这个过程的。
动量方程在三个方向上各有一个,所以实际上有三个方程。这就是为什么CFD计算量这么大的原因之一。
避坑指南:
- 自然对流仿真必须开启重力项,否则结果完全错误
- 高雷诺数流动要注意网格质量,否则动量方程求解会发散
- 我见过有人把进口边界条件设成速度进口,但出口设成压力出口,结果动量不守恒,仿真直接崩了
4.1.3 能量方程(热力学第一定律)
能量方程讲的是:进入控制体的能量,等于离开控制体的能量加上内部能量的变化。说白了就是能量守恒。
在热仿真中,能量方程是我们最关心的。它把温度场和流场耦合在一起——流体流动会带走热量,温度变化又会改变流体密度,进而影响流动。
我记得有一次做LED灯具的热仿真,客户说温度总是比实测高5度。我检查了半天,发现是能量方程中的粘性耗散项没开。对于高速流动,粘性耗散产生的热量不可忽略。开了之后,误差降到了1度以内。
小技巧:在做共轭传热(流体+固体)仿真时,一定要确保固体区域也参与了能量方程求解。很多人只设置了流体域,固体域没激活能量方程,结果温度场完全不对。
4.2 湍流模型简介:k-epsilon与k-omega
好,三大方程讲完了。但现实中的流动,绝大多数都是湍流。湍流是什么?就是那种乱七八糟、毫无规律的流动状态。你倒一杯水,水流是平稳的(层流);但如果你用高压水枪喷水,那就是湍流了。
直接求解湍流的所有细节,目前的计算机还做不到。所以我们需要湍流模型——用一些近似方法来描述湍流的平均效应。
4.2.1 k-epsilon模型
这是工业界最常用的湍流模型。它用两个方程来描述湍流:一个方程求解湍动能k,另一个求解湍流耗散率ε。
k-epsilon模型的优点是:计算稳定,收敛性好,对大多数工程问题精度足够。我个人的习惯是,做风冷散热器仿真时,首选k-epsilon模型。
适用场景:
- 高雷诺数流动(Re > 10^4)
- 外部流动(如风冷散热器)
- 管道流动
不适用场景:
- 近壁面流动(需要壁面函数配合)
- 强旋流
- 自然对流(效果较差)
4.2.2 k-omega模型
k-omega模型用湍动能k和比耗散率ω来描述湍流。它和k-epsilon最大的区别在于:k-omega对近壁面流动的处理更好。
我在做电子设备内部自然对流仿真时,发现k-omega模型的结果比k-epsilon更接近实测数据。为什么呢?因为自然对流的流速很低,边界层很厚,k-omega能更好地捕捉近壁面的流动细节。
我的建议:
- 如果你关注的是整体流动和换热,用k-epsilon就够了
- 如果你关注的是壁面附近的温度梯度(比如芯片结温),用k-omega更靠谱
- 如果你不确定,可以用SST k-omega模型,它结合了两者的优点
注意:湍流模型不是万能的。我曾经遇到一个案例,用k-epsilon算出来的结果和实测差了20%,换了k-omega还是差15%。最后发现是几何模型简化过度了——一个很小的倒角改变了流动分离点。所以,模型简化要谨慎。
4.3 网格的基本概念:把连续空间离散化
CFD求解的核心思想,就是把连续的空间划分成一个个小格子(网格),然后在每个格子上求解控制方程。网格质量直接决定了仿真结果的精度和计算效率。
4.3.1 网格类型
| 网格类型 | 特点 | 适用场景 |
|---|---|---|
| 结构化网格 | 规则排列,计算效率高,但几何适应性差 | 简单几何(管道、平板) |
| 非结构化网格 | 灵活,适应复杂几何,但计算量大 | 复杂几何(电子设备、散热器) |
| 多面体网格 | 介于两者之间,兼顾精度和效率 | 大多数工程问题 |
我个人最喜欢用多面体网格。为什么?因为它在保证精度的同时,网格数量比四面体网格少30%-50%,计算速度快很多。
4.3.2 网格质量指标
网格不是随便画一画就行的。有几个关键指标必须关注:
- 正交性:网格边之间的夹角越接近90度越好。低于20度,结果基本不可信。
- 长宽比:网格最长边和最短边的比值。边界层内可以大一些(10-100),主流区最好小于5。
- 偏斜度:网格偏离理想形状的程度。一般要求小于0.9,最好小于0.8。
血的教训:我曾经为了赶项目进度,用了一套质量很差的网格跑仿真。结果温度场看起来挺漂亮,但和实测一对比,差了15度。后来重新画了网格,误差降到了2度。从那以后,我每次仿真前都会先检查网格质量,不合格的坚决不跑。
4.3.3 网格独立性验证
这是很多新手容易忽略的一步。网格独立性验证,就是看看你的结果是否依赖于网格数量。如果加密网格后结果变化很大,说明你的网格还不够密。
我的做法是:先用粗网格跑一遍,然后加密一倍再跑一遍。如果两次结果差异小于5%,说明网格已经足够密了。如果差异很大,继续加密,直到收敛为止。
经验之谈:网格独立性验证不是一次性的。每次修改几何或边界条件后,都要重新验证。我见过有人用一套网格跑了所有工况,结果只有一种工况是准确的,其他都是错的。
4.4 本章知识体系
下面这张图,是我自己总结的CFD基础知识框架。你可以把它当作一个思维导图,快速回顾本章的核心内容。
好了,这一章的内容就到这里。CFD三大控制方程是热仿真的物理基础,湍流模型是处理现实流动的关键工具,网格则是把理论变成计算结果的手段。这三者缺一不可。
下一章,我们会进入实战环节——用具体的软件工具把这些理论变成可操作的仿真流程。到时候你会发现,理解了今天的内容,后面的操作就顺理成章了。
公众号:蓝海资料掘金营,微信deep3321