4、几何建模与网格划分:CAD模型导入、几何简化、网格类型与质量、网格无关性验证
各位工程师朋友,咱们今天聊聊仿真流程里最磨人、也最见功底的一步——几何建模与网格划分。
说实话,我见过太多仿真翻车的案例,十有八九不是求解器不行,而是几何和网格这第一步就埋了雷。你想想看,一个烂网格,再好的物理模型也算不出靠谱结果。我个人习惯把这一步叫做「仿真地基」,地基没打牢,后面全是白忙活。
4.1 CAD模型导入:别让格式坑了你
拿到一个CAD模型,第一件事不是急着画网格,而是检查导入的几何质量。我早期做项目时,从客户那边拿了个.stp文件,导入后看着挺完整,结果一检查,里面藏了上百个微小的碎面。那一次我硬是花了三天时间修几何,教训深刻。
常见的CAD导入格式有这些:
| 格式 | 适用场景 | 我的建议 |
|---|---|---|
| .step / .stp | 通用格式,大部分软件支持 | 首选,信息丢失少 |
| .igs / .iges | 老格式,曲面数据 | 尽量别用,容易丢面 |
| .x_t / .x_b | Parasolid内核 | 如果你用ANSYS或Fluent,这个很稳 |
| .sat | ACIS内核 | 适合小模型,大装配体容易崩 |
⚠️ 注意: 导入后一定要做几何检查。我常用的方法是:先看模型树里有没有「红色报错」或「黄色警告」,再用软件自带的几何修复工具跑一遍。别偷懒,这一步省不了。
4.2 几何简化:做减法才是真本事
很多工程师有个误区,觉得模型越精细越好。其实不是。你想想看,一个螺栓孔、一个倒角,在热仿真里对整体温度场的影响微乎其微,但网格量却可能翻倍。说白了,仿真不是做艺术品,而是做工程判断。
我个人习惯的简化原则:
- 删除小特征:直径小于3mm的孔、深度小于1mm的槽、半径小于0.5mm的倒角,直接删掉。我在做电池包热管理时,一个模组上有上百个螺丝孔,全部保留的话网格量直接爆炸。
- 压缩薄壁结构:厚度小于网格尺寸1/5的薄壁,建议用壳单元代替实体单元。这个技巧我在做散热器仿真时屡试不爽。
- 合并共面:多个相邻的平面如果法向一致,合并成一个面。这能减少网格划分时的面数量,提升计算效率。
- 去除内部空腔:如果某个空腔不参与流动或传热,直接填实。比如一些结构加强筋内部的空腔,对热传导几乎没有影响。
💡 小技巧: 几何简化不是乱删。我建议你先做一次「热路径分析」,找出热量传递的主要路径,只保留这条路径上的关键几何。其他地方的细节,能省则省。
4.3 网格类型与质量:选对工具干对活
网格类型的选择,说白了就是看你的物理问题是什么。我把它分成三类:
4.3.1 结构化网格 vs 非结构化网格
结构化网格(六面体)的优点是计算精度高、收敛快,但生成起来费劲。非结构化网格(四面体)生成快、适应复杂几何,但计算量偏大。怎么选?
- 几何规则(比如平板、圆柱、管道):用结构化网格。我在做芯片散热仿真时,热源和散热器之间用六面体网格,计算效率能提升30%以上。
- 几何复杂(比如带有大量曲面、倒角):用非结构化网格。别硬撑,强行画六面体只会让你崩溃。
- 混合网格:这是我最推荐的方式。核心区域用六面体,外围复杂区域用四面体,中间用金字塔网格过渡。嗯,这个技巧我用了好多年,效果一直不错。
4.3.2 网格质量指标
网格画完了,怎么判断好不好?我一般看这几个指标:
| 指标 | 理想值 | 可接受值 | 我的经验 |
|---|---|---|---|
| 偏斜度 (Skewness) | < 0.5 | < 0.85 | 超过0.9的网格,我直接重画 |
| 正交质量 (Orthogonal Quality) | > 0.7 | > 0.15 | 低于0.1的网格,收敛会出问题 |
| 长宽比 (Aspect Ratio) | < 5 | < 10 | 边界层网格可以放宽到100 |
| 雅可比 (Jacobian Ratio) | > 0.7 | > 0.3 | 负雅可比?那网格已经废了 |
🔑 核心原则: 网格质量不是越高越好,而是「够用就好」。我曾经为了追求0.1的偏斜度,花了两周时间调网格,结果计算结果和0.5的网格相差不到1%。从那以后,我学会了「适可而止」。
4.4 网格无关性验证:别让网格数量骗了你
这是整个网格环节里最重要的一步,没有之一。你想想看,如果你用10万网格算出一个温度,用100万网格算出另一个温度,你信哪个?
网格无关性验证,说白了就是找到那个「网格再加密,结果也不变」的临界点。我的做法是这样的:
- 粗网格起步:先画一套比较粗的网格,比如10万单元。跑一次,记录关键结果(比如最高温度、热阻值)。
- 逐步加密:每次加密1.5-2倍,比如10万→20万→40万→80万。每次跑完记录结果。
- 画曲线:以网格数量为横轴,关键结果为纵轴,画一条曲线。你会发现,随着网格增加,结果的变化越来越小。
- 找拐点:当相邻两次加密的结果变化小于1%时,恭喜你,网格无关了。
⚠️ 避坑指南: 我曾经犯过一个错误——只加密了全局网格,没加密局部。结果算出来的温度场在热源附近严重失真。后来我学乖了:先做一次粗算,找到温度梯度大的区域,然后只加密这些区域。这叫「局部加密」,比全局加密高效得多。
下面这张图是我自己总结的网格无关性验证流程,你可以参考一下:
最后说一句,网格无关性验证不是做一次就完事了。如果你换了物理模型(比如从稳态换到瞬态),或者改了边界条件,我建议你重新验证一次。嗯,经验之谈。
公众号:蓝海资料掘金营,微信deep3321