给一个机箱、一个风道、一块散热齿,脑子里第一反应就是"这风够不够、温度压不压得住"——这事儿在结构设计里几乎每周都会撞上。我早年也是拍脑袋估:换热系数随手取个 10 W/(m²·K),风量按风扇铭牌打个七折,结果样机一上电,实测热点温度比纸上算的高出二十多度,回头改模具改到怀疑人生。后来才老老实实把SolidWorks Flow Simulation捡起来做流体分析,从最初只会点"下一步"、跑出一堆彩色云图自我安慰,到后来能把仿真值和热电偶读数控制在几度以内,中间踩的坑足够写一本小册子。这篇就按我自己的实际使用路径来写:这个工具适合干什么、不适合干什么,项目向导里每个选项到底在影响什么,计算域和边界条件怎么定,网格和收敛怎么判断,结果图怎么读才不会被自己骗,最后附一份我自己整理的报错速查表和十条避坑经验。刚接触流体分析的设计工程师能照着走一遍,做过几次但总对不上实测的朋友,可以重点看第 3 章和第 6 章。
1. 先想清楚算什么:这个工具的定位与场景边界
1.1 它到底是个什么定位的 CFD 工具
SolidWorks Flow Simulation 是嵌在 CAD 环境里的有限体积法 CFD 求解器,最大的特点是全流程不离开建模窗口:几何不用导出、不用修补曲面、不用重新画网格前的清理,改一个圆角可以直接重算。这个特性决定了它的定位不是"替代通用 CFD 做研究级仿真",而是"让设计工程师在方案阶段快速判断方向对不对"。
我一般把它理解成设计流程里的"筛子":手上有五个散热方案,用它一天筛掉三个明显不行的,剩下两个再用实测或者更精细的工具去验证。它用的是笛卡尔网格加浸入边界处理,对复杂曲面的贴合靠网格细化来补,好处是划分极快、不需要人工做拓扑分块,坏处是薄壁、小缝隙、精细边界层这些地方天生吃亏,需要人工干预。
这个取舍很现实:通用 CFD 软件画一套高质量贴体网格可能要两三天,Flow Simulation 十几分钟就出初始网格。对做产品的人来说,快就是最大价值,精度可以用工程经验去兜底。
1.2 三类它特别擅长的场景
第一类是内部流动与压降评估。风道、机柜、管道、阀体、进气歧管这类封闭或半封闭空间,关注的是总流量分配、各支路风量、沿程和局部阻力。这类问题几何相对规整,边界条件明确,Flow Simulation 的结果和实测偏差通常在 10% 以内,完全够用来做方案比较。
第二类是共轭传热,也就是流体和固体一起算。散热器齿片温度、PCB 上芯片结温、电机外壳温升,只要打开"固体内热传导",固体域和流体域会同时求解,界面上的热量自动耦合。这是它比纯流体工具好用的地方——不用手工指定换热系数,那个系数恰恰是最容易拍错的东西。
第三类是外部绕流与风载。整机放在户外,评估迎风面的压力分布、通风口的进风量、雨雪防护罩附近的气流分离。用自由流(Free Stream)边界条件,计算域放大到足够尺寸就能算。
1.3 哪些问题别硬上,会浪费你的时间
有些活儿我试过,劝你别在这个工具上耗。高精度气动外形优化,比如翼型升阻比要算到 1% 以内,笛卡尔网格的边界层分辨率撑不住,得上贴体网格加壁面函数校准。强瞬态多相问题,比如液冷系统里的沸腾、气泡生成与溃灭,这里没有相变模型,算出来只能是错的。大变形流固耦合,比如风致振动的叶片颤振,它没有结构求解器耦合,只能做单向的流体力提取。
还有一类容易被忽略的:极低马赫数的可压缩效应和高马赫数激波。前者数值耗散会淹掉真实压差,后者需要激波捕捉能力,都不是它的强项。做 HVAC、电子散热、一般机械通风,这些场景基本碰不到这些问题,所以绝大多数结构工程师用它都是安全的。
2. 项目向导:每个选项都在后面埋雷
2.1 单位制与坐标系,第一颗雷就埋在这
新建项目弹出的向导第一步是单位系统。很多人图快直接沿用模板,结果长度是英寸、压力是 psi,跑完发现压降数值怎么看都不对,回头查半天才发现入口给的是 5 m/s 但模型是按英寸建的。我的习惯是:统一用 SI 或 MKS,长度单独设成毫米,压力设成帕,温度设成摄氏度。毫米加帕的组合最符合国内工程师的直觉,也不容易在 CAD 尺寸和流体尺寸之间来回换算出错。
坐标系这件事更隐蔽。向导里会让你确认重力方向,默认是沿 Y 轴负方向。如果你的装配体是"躺着"建模的,重力方向其实是 Z,那么在自然对流或者有液面、有浮升力的问题里,密度分布会整个算反。判断方法很简单:打开模型,看哪一侧是地面。或者更直接一点,把重力方向设好之后先跑一个只有重力的纯导热算例,看热空气是不是往上走。
注意:重力方向错了不会报错,结果图看起来还挺合理,只是数值全偏。这类错误最难查,因为没有任何提示。
2.2 流体类型的选择,别只看名字
向导第二步选流体。气体、液体、非牛顿、真实气体、可压缩液体,选项不算多,但选错的代价很大。最常见的错误是把空气当成不可压缩液体来算。空气在流速低于 0.3 马赫(约 100 m/s)时按不可压缩处理完全没问题,但如果风道里有局部收缩导致流速飙到 80 m/s 以上,密度变化就有 3% 左右,压降会明显偏低。这种情况下应该打开可压缩性,或者干脆用真实气体模型。
温度对物性的影响也常被忽略。默认空气的物性是在 20℃ 下取的常值,如果你的设备内部温度能到 80℃,空气密度会掉到约 1.0 kg/m³(20℃ 时是 1.205 kg/m³),粘度上升约 10%。同样是 5 m/s 的入口速度,质量流量差了将近 17%,风扇的工作点会跟着偏移。我的做法是:温差超过 30℃ 的算例,一定把流体设成"依赖温度"的物性,让求解器按当地温度插值,而不是用常值。
至于湿度和混合气体,除非你在算冷凝、结露或者烘干,否则别开。多一个组分就多一组输运方程,计算时间翻倍,收敛还更差。
2.3 壁面条件与固体内热传导,这是最要命的开关
向导第三步的"壁面条件"里有一个复选框——固体内热传导。默认是关闭的。关闭状态下所有固体都被当成绝热,热量进了固体就消失了,根本传不到另一侧。我见过不止一个人算散热器,跑完发现齿片根部和尖端的温度完全一样,还以为是网格问题,其实是这个开关没开。
打开之后还要确认材料。默认材料库里的铝合金、铜、PCB 板材、塑料都有,但如果你从别处导入的模型,材料可能全是"默认材料",导热系数是个奇怪的中间值。导热系数差一个数量级,结温能差几十度。铝的导热系数在 200 W/(m·K) 上下,铜接近 400,普通环氧 PCB 板材在厚度方向只有 0.3 左右,这些数值得自己核一遍。
默认壁面条件还有三个选项:绝热、热交换系数、指定温度。做外部绕流或者大空间自然对流时,用"热交换系数"配一个 5~10 W/(m²·K) 的对流加辐射等效值,比绝热更接近真实。做封闭机箱内部流场时,用绝热更稳妥,因为内部换热主要靠流体对流,机箱外壁的散热是次要路径,加错了反而引入误差。
2.4 初始条件:收敛速度的隐形推手
向导最后一步是初始条件:初始压力、初始温度、初始速度三个分量。默认值往往是一个大气压、20℃、零速度。对于封闭腔体内的自然对流,这个初始温度如果和后期实际温度差得多,前一两百次迭代全在把温度场"拉"到合理范围,白白浪费时间。
我的经验做法是:初始温度取你预估的平均温度,初始速度取入口速度的量级。比如强风冷机箱,入口 4 m/s,初始速度三个分量里主流动方向直接给 4 m/s,其余给 0,初始温度给 40℃。这样收敛迭代数能少三分之一左右。
初始压力则要注意:如果是封闭空间(比如密封机柜),初始压力不能简单给大气压,要按理想气体状态方程跟着温度走,否则质量和能量守恒会对不上,出现莫名其妙的压力漂移。
2.5 结果分辨率和几何检查,别急着点完成
向导里有个"结果分辨率",其实就是初始网格级别,1 到 8 级。默认通常是 3 级,网格比较粗,只适合快速看趋势。我建议第一次跑用 3 级探路,确认边界条件和几何没大问题,再提到 4 级或 5 级重算。直接上 6 级以上,网格数可能上千万,笔记本跑一晚上都出不来。
几何检查这一步千万别跳过。它会检查模型是否封闭、有没有零厚度面、有没有干涉体。内部流动问题如果模型有缺口,流体域会从缺口"漏"出去,算出来的流量分配全是错的。检查完发现有问题,回到 CAD 里补面、缝合,比在求解器里调参数高效一百倍。
3. 计算域与边界条件:结果准不准,八成在这里
3.1 计算域尺寸怎么定,给个能量化的标准
计算域(Domain)是流体求解的空间范围。软件默认按模型包围盒按比例外扩,但那个比例对内部流动够用,对外部绕流常常太小。我的量化标准是这样的:内部流动,计算域贴合模型内壁或者略大一圈即可,入口段留 1~2 倍水力直径让流动发展充分,出口段留 5 倍以上避免出口边界反射影响上游;外部绕流,上游留 3 倍特征尺寸,下游留 8~10 倍(尾流区很长),侧向和顶部留 5 倍。
还有一个更硬的指标叫阻塞比,等于模型迎流投影面积除以计算域入口截面积。经验上控制在 5% 以内,最多不超过 10%。超过 10% 相当于给流场加了一道"墙",流速会被虚高,压降和阻力系数都会偏大。我做过一个对比:同一个圆柱绕流,阻塞比 4% 时阻力系数是 1.18,阻塞比 15% 时算出来 1.42,差了 20%,这个误差已经超过工程可接受范围了。
计算域还能用对称面来省算力。几何和流动都关于某个平面完全对称时,把计算域切一半并设成对称边界,网格量直接减半。但要注意:只有几何对称还不够,边界条件也得对称。如果入口速度有偏角,或者一侧有热源,对称假设就破了,硬用会算出一个"半真半假"的漂亮结果。
3.2 入口出口边界怎么选,先分清谁定流量谁定压力
这是新手最容易搞混的地方。软件提供了入口速度、入口质量流量、入口体积流量、入口压力、出口压力、出口速度、出口质量流量等一堆选项,选错组合会导致解不收敛或者结果完全失真。
判断逻辑其实就一句话:设备的特性曲线决定哪个量是"给定"的。风扇吹一个开放风道,风扇本身有 P-Q 曲线,你能确定的是它在这个系统里的工作点,实操上常用"入口压力 = 0(环境压力)+ 出口体积流量"或者用风扇边界条件代替入口。鼓风机往密闭腔体里打气,腔体上有固定开孔,那么入口给质量流量、出口给压力更合理。
最常见的错误组合是入口给速度、出口也给速度。这在数学上是超定的,求解器会强行调整,结果是压力场乱跳,残差曲线像心电图。正确的组合是压力加流量配对,或者两端都用压力(此时流量由压差自然决定)。
还有一个隐蔽的坑:入口方向给反了。速度分量是带符号的,如果模型朝向是 -Z,你给 +Z 方向的速度,流体就从"出口"往里灌。表现是出口处出现大量回流,残差降不下去。跑之前花十秒确认一下箭头方向,能省掉两小时排查。
3.3 目标设置:它不只是输出,还是收敛判据
很多人把目标(Goals)当成"我想看什么结果",其实它同时是收敛的判据。求解器会监控每个目标值随迭代的变化,当所有目标都稳定在收敛准则(默认 0.001,即相对变化小于千分之一)以内,才认为收敛。
所以你设什么目标,直接决定了"什么时候算收敛"。如果目标只设了一个无关紧要的平均速度,那求解器可能在你关心的压降还在剧烈震荡时就宣布收敛了。我的原则是:每个你最终要报告的物理量,都必须设成目标。算散热就设最高温度、平均温度、关键表面的热流;算风道就设进出口压降、各支路质量流量;算受力就设指定面的力和力矩。
目标分几种:全局目标(整个计算域的平均/最大/最小值)、表面目标(某个面上的平均值)、体积目标(某个体区域内的量)、点目标(某个坐标点的值)。做电子散热,我会在每颗芯片的顶面设一个表面平均温度目标,在机箱出口设一个质量流量目标,再设一个全局最高温度目标。这样收敛时我能确定这几个关键数都已经稳定。
提示:目标数量不要太多,超过十个会让收敛判据变得苛刻,迭代次数明显增加。挑三到六个真正关键的就行。
3.4 风扇、多孔介质、热源的等效处理
真实设备里总有些东西不能直接建模:风扇叶片太细碎、滤网孔太多、发热元件内部结构太复杂。这时候要用等效模型。
风扇用 P-Q 曲线定义,输入风扇的静压-流量曲线(厂商样本上都有),软件会自动在求解中找工作点。这里有个细节:曲线要输入完整的一段,从自由吹风点(压差为零、流量最大)到截止点(流量为零、压差最大),只输入中间一段会导致外插失真。
多孔介质用达西-福希海默模型,压降写成 Δp = -(a·v + b·v²),a 是粘性阻力系数,b 是惯性阻力系数。这两个系数怎么来?用实验数据反推最靠谱:已知某个流速下的压降,取两个点解方程组就能定出 a 和 b。没有实验数据时,可以按开孔率估算,但误差可能到 30%,只能看趋势。
热源用体积热源或者表面热源,单位是 W 或 W/m³。这里最容易犯的错是把功耗当发热量直接填进去,忘了效率。电源模块标称输出 500 W,效率 92%,实际发热是 500×(1/0.92 - 1) ≈ 43 W,不是 500 W。这个数填错,温度结果会离谱到没法看。
4. 网格与收敛:算得快不如算得稳
4.1 全局网格级别与最小间隙的配合
全局网格级别从 1 到 8,每加一级,网格尺寸大约减半,网格数量翻 8 倍(三维)。3 级大概是几十万网格,5 级能到几百万。这个增长速度意味着你不能靠"加级别"来解决所有精度问题。
真正决定成败的是最小间隙这个参数。软件默认会自动估算,但估算逻辑是基于整体尺寸的,对于局部的小缝隙可能估大了。比如散热齿间距是 2 mm,但模型整体尺寸是 500 mm,自动估算的最小间隙可能是 5 mm,结果齿间通道直接被"糊"成一个实心块,流体根本过不去,你看到的是一片死区。
我的做法是:手动把最小间隙设成流道最窄处的 1/3 到 1/2。齿间距 2 mm,就设 0.7~1 mm。这样能保证窄通道里至少有三层网格。设得太小也不行,网格量会爆炸,而且笛卡尔网格在小尺寸上细化效率很低。
4.2 局部网格:把钱花在刀刃上
全局网格加密是"一刀切",不划算。更聪明的做法是用局部网格(Local Mesh)只加密关键区域。哪些区域值得加密?我的清单是:入口和出口附近(边界条件施加处,梯度大)、流道收缩和转弯处(流速变化剧烈)、换热表面附近(温度和速度边界层)、有分离和回流的地方(尾流区)。
局部网格可以设细化级别,也可以直接指定该区域的最小网格尺寸。我一般对散热齿片区域设 2 级细化,对风扇进出口设 1 级,其余保持全局级别。这样总网格量能控制在全局加密的 40% 左右,精度却接近。
还有自适应网格细化(Adaptive Mesh Refinement)这个功能,让求解器根据目标值变化或者梯度自动加密。听起来很美好,实际上要慎用:它会在求解中途反复重划网格,每次重划后流场要重新发展,收敛曲线会出现台阶,判断收敛变难。我一般只在最后做精度校核时开一次,把最大细化级别限制在 2 级。
4.3 网格无关性怎么验证,给个可操作的流程
"网格够不够细"这个问题没有理论答案,只能靠网格无关性验证。流程是这样:
先用 3 级网格跑一遍,记录关键结果(压降、最高温度、支路流量)。然后提到 4 级再跑,对比差异。如果差异小于 3%,说明 3 级已经够用;如果差异 10% 以上,继续提到 5 级,直到相邻两级的差异收敛到 5% 以内。我做过一个机箱算例,3 级和 4 级的最高温度差了 8℃,5 级和 4 级只差 1.2℃,那 4 级就是这个模型的经济网格。
这里有个容易忽略的点:不同物理量对网格的敏感度不一样。压降可能 3 级就收敛了,但局部最高温度要到 5 级才稳,因为热点附近的速度边界层很薄。所以验证时要盯着你最关心的那个量,不是随便挑一个。
4.4 网格阶段的典型报错与处理
最常见的报错是"无法生成网格"或者"流体域不连通"。前者多半是几何有零厚度面或者自相交,回到 CAD 里用检查工具查一遍。后者通常是模型有细小缺口,流体域被分割成几个互不相通的区域,软件只能算其中一块。
还有一种隐蔽情况:模型里有极薄的实体(比如 0.2 mm 的隔板),全局网格尺寸是 5 mm,这个隔板在网格里"时有时无",导致流体域出现意想不到的连通路径。处理方法是在这个隔板位置加一个局部网格,强制最小尺寸小于板厚;或者干脆简化几何,把不影响流动的薄板直接删掉。
5. 求解过程与收敛判断
5.1 迭代次数、收敛准则怎么设
默认迭代次数一般是 100 次,对于简单算例够用,复杂一点的往往不够。我一般直接设成"运行至收敛",让求解器自己判断,同时设一个最大迭代上限(比如 500 次)防止无限跑下去。
收敛准则默认 0.001,意思是目标值的相对变化小于千分之一。这个值对大多数工程问题合适。但如果你算的是很小的压差(比如自然对流驱动的几十帕),绝对值太小,相对准则可能永远达不到,这时候可以放宽到 0.01,或者改用绝对值判据。
物理时间步长(瞬态算例)是另一个关键。稳态问题不需要管,瞬态问题要满足库朗条件:时间步长乘以流速除以网格尺寸应该小于 1。举个例子,流速 5 m/s,最小网格 2 mm,时间步长就该小于 0.0004 s。实际取 0.0002 s 左右比较稳。步长给大了,流场会"跳过"细节,甚至发散。
5.2 收敛曲线怎么读,三种典型形态
残差曲线(RMS Residual)是求解器自己报的方程残差,一般要求降到 1e-4 以下。但残差降下去不代表结果对,它只说明方程解出来了,不说明解的是不是你要的那个问题。
真正要看的是目标值随迭代的变化曲线。健康形态是:前几十次迭代快速变化,然后逐渐变平,最后在很小的范围内波动。如果目标值一直在单调漂移(比如温度一直往上升),说明还没收敛,得继续跑。如果目标值在周期性地振荡,那要警惕——可能是物理上本来就是非稳态的(比如自然对流形成的周期性涡脱落,或者风扇叶片扫过产生的脉动),这时候硬按稳态算,得到的是一个"时间平均的假象"。
第三种形态最坑:目标值稳住了,但残差还在 1e-2 附近晃。这通常是网格质量差或者边界条件有冲突导致的。我的判断原则是:目标值稳定性优先于残差绝对值。目标稳了、物理上说得通、量级合理,就可以采信;残差低但目标还在漂,绝对不能采信。
5.3 算得慢怎么办,几个提速手段
完整模型跑一晚上是常态,但有些提速手段很有效。用对称面能直接减半,前提是对称性成立。用二维简化,如果问题是轴对称的(比如一个圆形散热柱),可以用二维轴对称算,速度快几十倍,验证完趋势再上三维。降低瞬态精度,如果只关心稳态平均结果,用稳态求解加伪瞬态松弛,比真瞬态快得多。
还有一个常被忽略的:简化不必要的几何细节。倒角、圆角、螺钉孔、铭牌凹槽,这些对宏观流场几乎没有影响,但在网格里会消耗大量单元。我在做方案筛选时会做一版"干净模型",把直径小于 3 mm 的特征全部删掉,计算时间能省 30% 以上。当然,做最终验证时要换回完整模型,确认细节没有带来意外影响。
6. 结果解读:图好看不等于对
6.1 切面图和等值面,位置选错全白搭
切面图(Cut Plot)是最常用的结果展示,但切面位置的选择直接影响你能看到什么。我见过有人把切面放在机箱正中间,结果正好切在挡板上,看到的是一片死区,还以为机箱设计得特别好。
正确的做法是:先看整体流动迹线,找到主流路径,再把切面放在主路径上;想看支路分配,就沿着支路切;想看散热齿间的流动,就切在齿片中间。同一个算例我通常会出三到五张切面,覆盖主流区、回流区、换热面附近,分开看再合起来判断。
等值面(Isosurface)适合看三维结构,比如"温度高于 60℃ 的区域有多大"。这个比切面直观,但要注意等值面的取值:取 60℃ 看到的是一个球,取 61℃ 可能就缩成一个小点,说明温度梯度很陡。多取几个值看形态变化,比单看一个值有信息量。
6.2 流动迹线和粒子研究,看的是路径不是速度
流动迹线(Flow Trajectories)显示的是流线,注意是"流线"不是"迹线",两者在非稳态流场里不一样。稳态流场里两者重合,所以看迹线就够了。迹线能直观告诉你:风从哪里进来、在哪里打转、哪里形成死区。
粒子研究(Particle Study)是追踪离散颗粒的,做粉尘、雨滴、焊渣飞溅分析时用。日常散热分析用得不多,但有个巧用:把粒子当作"示踪剂",看新风能不能到达某个角落,比看速度云图更直观。
看迹线有个经验:迹线密度要调。默认密度往往太稀,看不出回流结构。把密度调高,同时打开"按速度着色",能一眼看到哪里流速骤降——流速骤降的地方就是死区或者堵塞点。
6.3 表面参数和体积参数,报告的数值来源
最终要写进报告的数值,基本都来自表面参数(Surface Parameters)和体积参数(Volume Parameters)。表面参数能给某个面的平均温度、最大温度、热流密度、压力、摩擦力;体积参数能给某个体区域内的平均值和积分值。
这里有个细节要注意:表面参数默认包含整个面,包括你不关心的部分。比如算芯片顶面平均温度,如果这个面上还贴着导热垫的边界,平均值会被拉低。正确做法是先在 CAD 里把要统计的面分割出来,或者在结果里用面选择工具精确框选。我用过一个笨办法但很有效:在建模阶段就给每个关键表面单独命名(比如"芯片A顶面""散热器基板底面"),后处理时直接按名字选,不会选错。
还有热流密度这个量,符号约定容易搞混。正值和负值代表热量进出方向,看的时候要结合面的法向判断,别看到负号就以为算错了。
6.4 结果可信度的自查清单
每次出结果前我都会过一遍这几条:
| 检查项 | 判断标准 | 不合理时的处理 |
|---|---|---|
| 质量守恒 | 进出口质量流量差小于 1% | 检查是否有未封闭的开口或泄漏路径 |
| 能量守恒 | 热源总功率与出口带走热量差小于 5% | 检查固体内热传导是否开启、壁面是否绝热 |
| 流速量级 | 与手算的连续性方程估算值同量级 | 检查计算域尺寸和入口条件 |
| 压降量级 | 与 λ(L/D)(ρv²/2) 估算值差在 2 倍以内 | 检查网格最小间隙、是否有堵塞 |
| 温度分布 | 热点位置符合物理直觉(靠近热源、流动死区) | 检查热源位置、材料导热系数 |
| 网格无关性 | 相邻两级网格关键结果差小于 5% | 加密网格重算 |
这张表里"质量守恒"和"能量守恒"两条最能救命。Flow Simulation 的结果里可以直接查到进出口的质量流量和总热流,两个数对不上就说明模型有问题,这时候看再多云图都是自欺欺人。
7. 常见问题速查与踩坑实录
7.1 报错与异常现象速查表
下面这些是我这些年遇到过、也被别人问过最多的现象,按出现频率排:
| 现象 | 最可能的原因 | 排查顺序 |
|---|---|---|
| 求解发散,残差飙到 1e3 | 边界条件超定或方向反了 | 先看进出口箭头方向,再查是否两端都给流量 |
| 收敛但结果明显偏小 | 网格最小间隙过大,流道被糊住 | 看切面图上流道是否通畅,手动调小最小间隙 |
| 固体温差为零 | 固体内热传导未开启 | 回项目向导确认开关和材料 |
| 出口出现大量回流 | 计算域下游太短 | 下游延长到 5~10 倍特征尺寸 |
| 迭代 500 次目标仍漂移 | 物理本身非稳态 | 改瞬态求解,或接受平均值并说明 |
| 压力场出现棋盘状震荡 | 网格太粗或长宽比过大 | 局部加密,控制相邻网格尺寸过渡 |
| 风扇流量远低于铭牌值 | P-Q 曲线输入不完整或系统阻力大 | 补全曲线两端,检查下游是否有堵塞 |
| 结果随网格级别剧烈变化 | 网格无关性未验证 | 逐级加密,做到相邻级差小于 5% |
| 温度热点位置不合逻辑 | 热源功率或材料导热系数填错 | 核对功耗是否按效率折算 |
| 计算时间异常长 | 网格量过大或开了自适应细化 | 查网格数,关掉自适应,改局部加密 |
7.2 十条踩过的坑,逐条说清楚
第一条:默认壁面是绝热的,别忘了改。这是最高频的错误。算机箱散热,机箱外壁默认绝热,等于假设外壳完全不散热,算出来的内部温度会偏高。要么把外壁设成对流换热,要么在结果里明确说明"这是保守估计"。
第二条:初始温度别用默认的 20℃。一个内部温度 70℃ 的设备,初始给 20℃,前一百多次迭代全在升温,浪费时间还可能在中途出现非物理的密度突变。
第三条:材料库里的"默认材料"要挨个换掉。导入的模型材料往往是空的,软件给个中间值凑合。铝和塑料的导热系数差三个数量级,这个不换,结果没有任何意义。
第四条:热源功率要按实际发热算,不是标称功率。前面说过效率折算,还有个更隐蔽的:LED 的发热量大约是电功率的 70%~80%,不是 100%。电机发热要看效率曲线,低速轻载时效率低,发热比例反而高。
第五条:入口段太短会让流量分配失真。入口紧贴着第一个分流结构,流体还没发展成均匀剖面就撞上去了,各支路分到的流量和实际差别很大。入口前至少留 1~2 倍水力直径。
第六条:别迷信彩色云图的"漂亮"。云图的颜色是自动缩放的,同一个算例改一下色标范围,视觉印象完全变样。看云图一定要看色标数值,别只看颜色分布。
第七条:瞬态问题硬按稳态算,会得到一个"平均的假象"。自然对流在封闭腔里经常形成周期性的涡,稳态求解会收敛到一个不存在的定常解。判断方法:稳态算完后用瞬态再跑一段,看关键量是否周期性波动。
第八条:对称面不是想用就能用。几何对称但热源不对称、入口速度有偏角,用了对称面结果就错。用之前把边界条件也过一遍。
第九条:网格无关性验证不能省。尤其是最终要写进设计报告的数,一定要做两级网格对比。我吃过一次亏:3 级网格算出来最高温度 78℃,觉得余量够,5 级一算 86℃,直接把余量吃光了。
第十条:仿真和实测对不上,先怀疑边界条件,再怀疑工具。实测温度比仿真高,八成是漏了某条散热路径(比如连接器的导热、线缆的散热)或者环境温度取值偏低。仿真比实测高,多半是风扇曲线偏保守或者忽略了机箱开孔的实际泄漏。工具本身的误差通常在 10% 以内,剩下的差异基本都能从输入条件里找到原因。
7.3 一个完整的算例走查,把上面的东西串起来
拿一个很典型的场景举例:某设备的密闭机箱,内部有两块发热板,总发热 60 W,机箱侧面开两个百叶窗通风口,一个进一个出,内部有一个轴流风扇。目标是确认内部空气最高温度不超过 55℃,环境温度 35℃。
第一步,明确物理问题。这是内部强制对流加共轭传热,稳态,空气按不可压缩处理(流速低于 20 m/s)。风扇用 P-Q 曲线,百叶窗用多孔介质等效或者直接建几何。
第二步,建立计算域。计算域取机箱内腔加两个百叶窗外各延伸 50 mm 的小区域,这样进出口边界不直接贴在内壁上。阻塞比不用管,因为是内部流动。
第三步,边界条件。百叶窗开口处一个设入口压力(环境 101325 Pa、35℃),另一个设出口压力(同样环境压力),流量由风扇曲线和系统阻力共同决定。发热板设体积热源,功率按实际发热量分配。壁面条件打开固体内热传导,机箱板材按实际材料给导热系数,外壁加 8 W/(m²·K) 的对流换热(自然对流加辐射的等效值)。
第四步,目标设置。全局最高温度、出口质量流量、两块发热板的表面平均温度、风扇前后的压差,四个目标。
第五步,网格。全局 3 级起步,对风扇区域和发热板附近设局部 2 级细化,最小间隙设成百叶窗叶片间距的三分之一。先跑 3 级看趋势,确认收敛后再上 4 级做最终结果。
第六步,结果验证。进出口质量流量差小于 1%,能量守恒:出口带走的热量加外壁散热应该等于 60 W,允许 5% 误差。如果对不上,先查热源设置和外壁换热,再看是不是有未封闭的缝隙。
第七步,灵敏度。把风扇曲线往下调 20%,看最高温度怎么变;把环境温度提到 40℃,看余量还有多少。这两个扫一遍,方案才敢交出去。
这套流程走下来,一个中等复杂度的机箱算例,从建模到出报告大概两到三天。听起来不短,但比做一版样机、测出来不合格、改模、再测,快太多了。
我个人在实际使用中的体会是,这个工具最大的价值不在于"算得多准",而在于"让你在动手之前就知道哪个方向是错的"。我现在的习惯是:任何涉及风道、散热、通风的方案评审,先用 3 级网格跑一个粗算,哪怕误差 20% 也认,因为 20% 的误差足够分辨"够用"和"差得远"这两种情况。真正需要精确数值的时候,再做网格无关性、做灵敏度分析、和实测对标。把工具用在它擅长的位置上,比追求一个绝对精确的数字有用得多。