TMS BOOK · ACADEMY 讲义

整车外流场与气动—热耦合仿真

大纲的完整展开版——讲师授课蓝本 / 学员自学材料

J2-03 整车外流场与气动—热耦合仿真

课程代码 J2-03 · 板块 J 仿真分析 CAE / 三维流动与传热 CFD 时长 约 4.5 小时(8 讲) 前置 J2-01 CFD 基础、湍流模型与网格;J2-02 机舱热管理与前端模块 CFD;体系外前置(需自备):空气动力学基础 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 J2-03 大纲的完整展开版


按任务导航

你手上的事 直接看 还要配
审一份「关 AGS 能省 x% 电」的收益报告 第 2 讲:冷却阻力是两次仿真之差,报数必须捆着封堵态那五条定义 第 4 讲(三个状态、续航折算链逐项对账);第 8 讲(差值小于流程散布时只能写「分辨力以内」)
定这次外流算例的域尺寸、地面/车轮设定与网格 第 1 讲:域尺寸由「阻塞比够低/出流不回灌/成本可承受」三条互相打架的判据定;y⁺ 有两套目标窗口 第 7 讲(由要交的响应量倒推湍流方法)
挑一种外流—机舱耦合方式并写进仿真方案 第 3 讲:四类耦合方式各自的成立条件;两域交接只有两个压力边界 第 4 讲(先有耦合,AGS 权衡才算得出来)
写一份包底对流换热系数的交付规格给电池热团队 第 5 讲:h 提取的六个自由度与那张口径卡(参考温度、面积、平均粒度、与 y⁺ 的绑定) 第 6 讲(行驶/怠速两条量级带、闭合校核、下游三家的口径对齐)
准备一次 CFD 与整车风洞的对标 第 8 讲:比之前要先对齐的六类;差值拆成系统偏置与随机散布 第 2 讲(分母口径:密度、来流速度、迎风面积三处任一不同,两个风阻系数就不可比)

⛔ 本课不覆盖

栏一 · 不讲哪些题目:AGS 的控制策略、开度分档与标定(→ G7-04)· 机舱内流本身,含换热器多孔系数反解、风扇模型标定、热风回流(→ J2-02)· 面重构(wrap)参数的选取与失效征兆(→ J2-06)· 风洞试验方法本身、冷却风量的测量操作(示踪/热线/热平衡反算,→ L5-01 与 L7 测量技术板块)· 冷却阻力「进气动量损失 − 出口动量恢复」的定量拆账(→ L5-02)· 不确定度的抽样传播与由散布反推设计裕度(→ J7-06)· 热浸/静置的求解过程(→ J2-05,本课只交它的初始条件)· 湍流模型推导、壁面律与离散格式(→ J2-01)。

栏二 · ⛔ 真正不给的数:① SAE 车辆空气动力学与风洞试验系列、ASME V&V 20 的条款限值与等级号——本课未独立核对过原文,只写去向,版次按现行目录与适用范围确认;② 本企业的验收阈值(风阻达标线、冷却风量下限、包底 h 的验收值)——去本企业气动与热管理规范、项目 CSR;③ 教学假设之外的具体产品参数(你那台车的迎风面积与风阻系数、换热器多孔系数、风扇特性曲线、AGS 叶片几何、wrap 尺度)——去本平台三维模型、供应商样本、台架实测与 J2-06。⚠ 平台相关量本课照旧给典型带与常见值锚点;栏二说的是「你那台车的具体值」,⛔ 不是「一个数都不给」。


引言:你报出去的那 20 counts,是两次仿真之差

车头格栅开多大,是一场每个项目都会打一次的拉锯。气动组说:格栅是整车上少数还能拿到几十 counts 的地方,能关就关。冷却组说:夏天高温爬坡,风全靠这里进来,关小了换热器就喘不上气。两句话都对,但它们说的不是同一件事——一句是阻力账,一句是风量账,而这两笔账在各自的模型里都看不见对方。这门课要做的,就是把整车外流场算准,再把它和机舱内流接起来,让这两笔账落到同一张图上,然后回答一个可以交出去的问题:哪些开度是能用的。

第一根钉子:冷却阻力不是算出来的一个量,它是两次仿真之差。ΔC_d,cool = C_d,open − C_d,sealed——通流状态的整车风阻系数,减去封堵状态的整车风阻系数。这句定义很短,后果有三条,而且贯穿全课:① 它的误差是两次误差之和,不是一次——两次各偏 5 counts、方向还相反,差值就错 10 counts,而你回头去看,两次的残差曲线都收敛得很漂亮,云图也都很干净,没有任何东西会报错;② 它的数值依赖「封堵态怎么定义」这个人为约定——封堵面贴在格栅外表面还是换热器叠层前?封堵后外形贴不贴平?两个状态里风扇各怎么设?旁通与泄漏留不留?换一套约定,数值就变,而两套约定都站得住;③ 因此它必须与口径捆绑交付。一个不带口径的冷却阻力数字,在工程上不可用,也不可与别人的数比较——它甚至不能和你自己上个项目的数比较。

量级上,乘用车的冷却阻力常见落在 10~40 counts,多数在 20 counts 附近,占整车风阻系数的百分之几到十几。⚠ 典型参考值,⛔ 不是验收依据,且它与本课定死的封堵态定义绑定,换定义就要重算;拿到你自己那个数的路只有一条——按同一套封堵定义做通流与封堵两个状态各一次实算,或在风洞里做两状态实测。这个量级值得先记住,因为它和整条流程自身的散布同量级(散布带在第 8 讲登记)。也就是说:本课全程都在分辨力边缘上工作。这不是悲观,这是本课所有报数纪律的来源——阻力差一律以 counts 报并取整,⛔ 不写「降低了 0.0203」这种比自身不确定度还细的假精度。

第二根钉子:「少开格栅省电」与「够风散热」这两个目标,只有在同一张耦合模型上才有交点;而这张模型的接缝处只有两个数——进气口总压 p_0,inlet 与机舱出口背压 p_out,bay。本课把外流场算出来的这两个数(连同它们在面上的分布)交给机舱模型,由机舱模型在压力边界下解出过芯风量 V̇_core,再回答「够不够散热」。⚠ 请注意本课的射程:过芯风量不是本课解的,本课只交付边界、并消费它的结果。

不做这一步会怎样?不是算错,是模型里根本没有「风量不够」这个失败模式。只做外流去扫 AGS 开度,你会得到一条漂亮的单调曲线,结论方向永远是「关得越多越好」——它一路指向全关。约束整条被漏掉了,而漏掉的东西不会以「差了几个 counts」的形式出现在结果里,它是整类不出现。⇒ 所以本课交付的从来不是一条阻力曲线,是阻力—风量平面上被那条约束线切出来的一块可行域:曲线告诉你收益有多大,可行域才告诉你哪些开度可以写进策略。

还有一条几乎每个人第一次都会读反的。⛔ 下面这句话是错的,本课其余各处都不会以正面表述出现:「冷却阻力就是进来的空气在换热器上损失的动量 ⇒ 过芯风量越大冷却阻力越大 ⇒ 想省风阻,把风扇转速降下来」。它之所以必然被读反,是因为拼成它的三句话各自都对——冷却阻力确实由通流态定义、通流态确实伴随风量、AGS 开度大确实同时抬高阻力与风量。它错在因果方向上:冷却阻力是两项之差——进气口把空气从来流速度减速到芯体速度带来的动量损失,减去空气从机舱出口排出时带回的动量恢复。风扇给空气做功、抬高出口速度,动的是后一项(增大恢复、减小净阻力),同时因为风量变大又抬高前一项。⇒ 冷却阻力对风扇转速的偏导数符号不定,取决于两项谁动得多,而这一点随车速强烈变化:高速冲压主导时增大风量确实增阻;低速与怠速时冲压压源接近零,进气动量损失本来就小,降风扇转速几乎省不到风阻——而低速正是散热的极限工况。

读反之后会做的那个错误动作是具体的:为省风阻去压风扇转速上限。它在高速工况上收益很小(那里风扇本来就不是主要压源),在低速工况上代价最大(那里全靠风扇),于是你花掉了散热余量,换回一个在续航报告里几乎看不见的数。真正能省阻力的动作在格栅/AGS 与进气路径那一侧。本课的处置也是具体的:第 2 讲把冷却阻力拆成「动量损失 − 动量恢复」两项讲清;第 4 讲的 AGS 扫描固定风扇转速,把风扇变量与格栅变量分开,⛔ 不许在一条曲线上同时动两者。

⚠ 与它同源、方向相反的另一句同样是错的:「整车风阻系数和风洞对上了 ⇒ 模型可信 ⇒ 冷却风量也可信」。真相是灵敏度极不对称:冷却阻力只占整车风阻系数的百分之几,过芯风量错一倍带来的风阻变化,可能小于网格与湍流模型自身的散布 ⇒ 风阻对标对风量几乎没有分辨力。反过来才勉强成立(风量错到极端会让风阻明显错),但那是充分不必要。想约束风量只有一条路:直接测风量并与仿真比对,第 8 讲收这个口。

全课八讲怎么走。第 1 讲先把「这次要交哪几类响应量」写下来,再定计算域、动地面与转动车轮、入口湍流量、对称面的射程与两套 y⁺ 网格——顺序反了,后面每一步取舍都没有判据。第 2 讲讲风阻系数的分母口径与三套构成分解,并把第一根钉子钉死。第 3 讲讲前端进气路径与四类耦合方式,交出那两个压力边界。第 4 讲做 AGS 权衡:三个状态、两个工况乘三个开度,交出可行域与续航折算链。第 5、6 两讲是本课作为热管理课程存在的理由——从同一个模型里提取包底对流换热系数,把六个自由度各定死一次,再把行驶态、怠速态、底护板封堵敏感度与下游三家的口径对齐一起交出去。第 7 讲讲湍流方法与尾流:由响应量决定方法,⛔ 不由保真度高低决定。第 8 讲讲风洞对标与不确定度:先对齐再比,四个源逐个登记,最后给结论的写法。

如果你今天只带走一样东西,带走这个报数模板。以后任何一个冷却阻力数字出你的手,就按这个形状写:「ΔC_d,cool = xx counts,封堵态定义为(封堵面位置/封堵后外形处理/两态风扇设定/旁通与泄漏处理/两态是否共用同一网格、车速与收敛准则)五条;本流程散布 ± yy counts;差值小于散布时只写『在本流程分辨力以内』。」少写其中任何一项,收到它的人都无法判断这个数能不能用——而这正是本课要治的那件事。

第 1 讲 外流场计算域与边界:先定交付物,再定域

整车外流 CFD 的第一步不是画域,是写下这次要交什么。因为域怎么搭、地面怎么动、网格怎么划、要不要用半模——这些取舍每一个都只在某类交付物上成立、在另一类上作废。先动手再补交付清单,等于把每一步的判据都换成了「别人一般都这么做」。

这一讲要做的,是把「本次要交哪几类响应量」这张清单立起来,然后逐条把它翻译成域尺寸、边界条件、几何保真度与网格策略上的具体决定。本讲结束时,你手上应该有一张能贴进项目记录的外流域与边界设定卡(本讲末给出它要写死的九项)。

1.1 本讲通用口径:两套空气物性基准态,各有射程

本课全程用两套空气物性基准态,各有各的射程,⛔ 不许混用、⛔ 不许写裸 ρ——每一处出现密度都必须带下标。

①气动基线态(20 ℃、101.325 kPa 干空气):ρ_20 = 1.2041 kg/m³、μ_20 = 1.813×10⁻⁵ Pa·s、λ_20 = 0.02577 W/(m·K)。ρ_20 由理想气体状态方程算出(R = 287.058 J/(kg·K)、T = 293.15 K、p = 101325 Pa;实气体物性库给出的值与之相差不到 0.05%,全课统一取 1.2041,⛔ 不许两值并存)。它用于 C_d / C_l / C_p 的定义式、Re_L,以及第 8 讲的风洞对标。

②热耦合工况态(40 ℃、101.325 kPa 干空气):ρ_40 = 1.1274 kg/m³(与前置课 J2-02 同值同舍入)。它用于与机舱耦合、AGS 的热校核、以及包底换热系数的算例。

⚠ 两者相差 6.8%。这个数字在第 3 讲会变成一条硬约束:交接压力边界时⛔ 不许把气动基线态下算出来的压力直接搬到热工况上用,必须在本次工况自己的温度下重算。λ_20 与 ρ_40 在本讲不参与计算,列在这里只为把两套基准态一次性声明完,避免后面各讲各取一套。

1.2 先写下这次要交哪六类响应量

一次整车外流 CFD 的交付物是六类,⛔ 不是「一个 C_d」:

① C_d 与它的构成分解(压差 / 摩擦 / 内部通流 / 干扰,按同一套分解口径); ② 升力与前后轴分配 C_l,f / C_l,r(AGS 开闭会同时改它); ③ 冷却阻力 ΔC_d,cool(两个状态之差,第 2 讲展开); ④ 机舱进出口边界 p_0,inlet 与 p_out,bay(含面上的分布,交给 J2-02); ⑤ 车底与包底表面对流换热系数 h 分布与近壁气温(交给 D3-03 / J3-02 / J1-06 / J2-05); ⑥ 非定常量(尾流脉动、冷却气流脉动、侧风瞬态响应、局部分离)。

⚠ 这六类是怎么数出来的:沿「气动组要一个 C_d」这条最自然的线索枚举,会整类漏掉 ④ 与 ⑤——而这两类恰恰是这门课作为热管理课程存在的理由;漏掉 ② 的后果是 AGS 结论只报了阻力收益、没报升力代价。⇒ 自检两问固定:我沿什么线索数的?有没有不在这条线索上、但同属这个集合的?

为什么顺序不能反。建模的每一个取舍,只有在「本次要交哪个响应量」确定之后才有判据:

  • 半模对 β = 0 的 C_d 基线够用,对尾流非定常是致命的(本讲 1.9);
  • 壁函数网格对阻力够用,对 h 交付直接作废(本讲 1.8);
  • 单向耦合对多数工况够用,对「机舱出流显著改变车底流场」的工况不成立(第 3 讲)。

三条里没有一条能在不知道交付物的情况下判。不先写下响应量就动手,等于赌。

六类的分量不一样:①②③ 是气动侧的主线交付物;④⑤ 是本课的热管理落点(下游是 J2-02、J2-05、D3-03、J3-02、J1-06 五门);⑥ 只在第 7 讲按需启用,⛔ 不是默认档。

三个易错点:①把「跑出来了、云图很漂亮」当成交付完成,而 ④⑤ 两类整类没交;②交了 C_d 却没交它的分解口径,下游拿到一个不可比较的数;③把 ⑥ 当成「更高保真所以更好」的默认选项,成本翻十倍,而要回答的问题其实稳态 RANS 就够。

⇒ 今天就能用的一步:开工前在项目记录里写一行「本次交付:①③④」这样的清单,并让它成为后面每一次建模争论的裁判——凡是拿不出「这个决定影响到清单上哪一项」的争论,先搁置。

1.3 计算域尺寸:三条互相打架的判据

域尺寸的常用写法,是以车长 L_veh 为单位给四个方向各自的距离:上游、下游、侧向、顶部。它不是「越大越好」,也不是一个可以抄的推荐值——它由三条方向相反的判据折中出来:

判据一:阻塞比够低。计算域阻塞比 B_blk = A_fr / A_域横截面(域的宽 × 高;A_fr 是车辆在垂直于来流方向平面上的正投影面积,半模时侧向按半宽算并把 A_fr 也取半)。本课目标 B_blk ≤ 1%,常见做法落在 0.25%~1%(⚠ 典型做法,⛔ 不是标准限值、⛔ 不是验收依据)。这条判据把侧向与顶部尺寸往大推。

⇒ 并且要写死一条后果:达到这个量级之后,本课不再对 CFD 结果做任何阻塞修正。

⛔⛔ 这里有一个必须立刻分开的坑:风洞阻塞比 B_wt = A_fr / 试验段截面积,通常在百分之几量级,而且必须修正。B_blk 与 B_wt 是两个量、两套处置,⛔ 不许互相引用限值或公式——把风洞的阻塞修正公式套到 CFD 结果上是重复修正(第 8 讲会看到它的后果:CFD 因此「更接近」风洞,从而把真实偏差掩盖掉)。

判据二:出流面不能回灌。下游取得太短时,尾流还没恢复就撞上出口边界,压力出口处出现倒流,收敛变差,而且尾部压力被边界人为锁住——阻力随之偏低。这条判据把下游尺寸往大推。

判据三:成本。它把三个方向全往小推,而域体积随尺寸是三次方增长。

为什么必须写成「三条打架」而不是一个推荐值:三条的主导者随工况变。做 β ≠ 0 的侧风工况时,侧向尺寸是主导(尾流被吹向一侧);做高速尾流非定常时,下游尺寸是主导。同一套「推荐倍数」在这两件事上不可能都是对的。

工程量级:行业常见做法是上游取 3~5 L_veh、下游 7~10 L_veh、侧向与顶部各 5~6 L_veh。⚠ 这是典型范围,来源是各主机厂外流 CFD 的内部最佳实践与公开文献的常见做法,⛔ 不是标准限值、⛔ 不是验收依据;⛔ 本课不写「必须取 x 倍」。

⇒ 拿到你自己那一套的路:在本项目上做一次域尺寸敏感度——逐个方向加倍,看 C_d 的变化落不落进本流程的散布(散布怎么量见第 8 讲)。落进去了,说明这个方向已经够;没落进去,说明还没够,而且你现在知道是哪一个方向不够。

三个易错点:①只按「阻塞比达标」定域,下游取得太短,尾部压力被出口边界锁住而阻力偏低;②域加大了但加密区没跟着调,远场单元尺寸膨胀太快,尾流在半个车长内就被数值耗散抹平(这与前置课 J2-01 讲的数值扩散是同一件事);③把风洞试验段的尺寸直接当计算域尺寸——风洞是有壁面的、要做阻塞修正,CFD 域是自由来流、不做修正。

俯视与侧视双联示意:整车外流计算域的四个方向尺寸(各以车长 L_veh 为单位)、六类边界(速度入口标 V_∞ 与湍流强度、湍流长度尺度;压力出口;侧顶滑移远场;动地面按 V_∞ 运动;车体壁面;车轮旋转壁面 ω = V_∞/r),俯视图上虚线框出正投影面积 A_fr 与阻塞比 B_blk 的文字定义,以及车身贴体、车底与包底、尾流柱状三层加密区。本图是建模布局示意,⛔ 不得据图取任何尺寸、比例或网格尺度。
图1 计算域与边界设定的四类决定:四个方向尺寸各自决定、地面与车轮的运动是边界条件(不设就是设成了静止)、阻塞比由侧向与顶部尺寸控制、车底加密区的存在理由是「有交付物要从那里取」。本图是计算域与边界的布局示意,⛔ 不得据图取任何尺寸、比例或网格尺度;域尺寸的取值范围见正文,且随要交付的响应量而变。

1.4 动地面与转动车轮:不是「更真实一点」,是换掉了整条车底流动机制

三件事要一起做:地面按来流速度运动(动地面 / 滚带)、车轮按 ω = V_∞/r 旋转(旋转壁面或 MRF)、车轮与地面接触斑做相应处理。

为什么它不是「精度提高一点」:静止地面上会长出一层随距离增厚的边界层,到车头位置时它已经有可观厚度,把车底进气「垫」高、减小车底通流;不转的车轮既没有轮胎表面的切向拖带,也没有轮腔的泵吸,轮后尾流结构完全不同。这三处恰恰都在车底——也就是第 5、6 讲要提取包底换热系数的那个区域。⇒ 对热管理而言,这不是「差几个 counts」的问题,是包底 h 的载体到底成不成立的问题。

工程量级:固定地面 + 不转车轮相对动地面 + 转动车轮,C_d 偏差典型在十几到几十 counts 量级(1 count = 0.001 个 C_d)。⛔⛔ 符号(偏高还是偏低)随车型、轮辋开孔率、离地间隙而变,本课明确不给固定方向——在一部分车型上成立的方向,⛔ 不许写成全称结论。

⚠ 但有一条方向是确定的:车底速度与包底 h 会系统性偏低。这一条本课给方向、不给数值。

⇒ 拿到它的路:在本车型上做一次「地面 / 车轮设定」对比算例。这次对比同时有第二个用途——它就是第 8 讲不确定度登记表里「系统偏置源」之一的量法。

三个易错点:①只开了动地面、忘了转车轮(或反过来)——两者一起改才有意义;②滚带宽度 / 位置与风洞的地面模拟形式不一致,第 8 讲对标时把这个差异误归因成湍流模型;③把「动地面让 C_d 变了 20 counts」当成「动地面更准 20 counts」——它是换了机制,⛔ 不是修了一个偏差,因此这 20 counts ⛔ 不能拿去当修正量用。

1.5 入口条件:湍流度、湍流尺度、地面边界层厚度,三个都要显式写下来

入口除了速度,还要给湍流量:湍流强度 I,以及湍流长度尺度(或湍流黏度比)。求解器不给就用默认值,而默认值通常对应「一股很干净的自由来流」。

为什么必须显式写出来:湍流度影响分离点位置——尤其在后视镜、A 柱、车尾这些压力梯度大、而分离点又不被几何硬钉死的地方;同一辆车在不同来流湍流度下的 C_d 可以差出几个 counts。地面边界层厚度则决定车底进气条件,直接影响车底流量与包底 h。

工程量级:整车气动风洞试验段的来流湍流强度典型在零点几个百分点量级。⚠ 典型量级,各洞实测值不同,⛔ 不许把某个数当通用值。⇒ 拿到它的路:查该风洞自己的流场品质标定报告。

⇒ 这里引出一条容易被忽略的分岔:实际道路来流的等效湍流度要高得多,所以「CFD 对齐风洞」与「CFD 对齐路况」是两件不同的事。本课只做前者;路况谱去向 L5-01。

⚠ 这三项也正是第 8 讲对标之前要逐项对齐的边界条件那一类——现在不写下来,到那时就无从归因。

三个易错点:①入口湍流量用了默认值而报告里一个字不写,第 8 讲发现差异时无从归因;②只写了湍流强度不写长度尺度——两者要一起给,只给一个等于没给(湍流会在到达车前就衰减掉,衰减速率正是由长度尺度定的);③把地面边界层厚度当成「域的属性」——它由入口到车头的距离与地面是否运动共同决定,动地面时它几乎不发展,这是动地面的又一个后果。

1.6 面重构与加密区:几何保真度是一个可调参数,而它不会报错

整车 CFD 前处理要先做面重构(wrap / shrink-wrap)把脏几何缝合成水密面,再按分区设加密。本讲只定外流域这一侧的尺度分层与加密区范围:车身表面基准尺度、前端与格栅区加密、轮腔与轮后加密、尾流区柱状加密、车底与包底区加密(第 5 讲的 h 交付要用它)。

⚠ wrap 参数本身怎么选、失效有什么征兆,去向 J2-06,本课不重讲。

为什么这一条要出现在一门外流课里:格栅细缝、格栅后的蜂窝、护风罩与风扇的间隙,全都是毫米级特征,而整车外流的基准尺度是厘米级。wrap 一粗,这些缝就被填平或被连通,有效通流面积被悄悄改掉了——于是通流态的 C_d 偏低、冷却阻力偏小、交给机舱模型的进气口总压也跟着错。而它不会报错,残差照样收敛。

工程量级:本课要求前端进气路径区域的面尺度必须细到能分辨最小通流特征;⛔ 本课不给 wrap 尺度的具体数值与分辨倍数——那是 J2-06 的射程,本课只给类型与去向。

三个易错点:①把整车做成一个统一尺度,前端与尾流两头都不对;②加密区只按「哪里流动复杂」设,漏掉包底——而包底 h 是本课的交付物之一,它的加密理由不是流动复杂,是有东西要从那里取;③几何被 wrap 改了却没有目检,只看网格质量报告——那份报告不会告诉你一条缝没了。

⇒ 今天就能用的一步:在前处理收尾时,固定切三个截面目检——格栅细缝、护风罩间隙、底护板与包底之间——并把这三张截图存进项目记录。它比任何网格质量指标都更接近「有效通流面积有没有被改」这个真问题。

1.7 Re_L:定域与定网格尺度的标尺

Re_L = ρ_20·V_∞·L_veh/μ_20。按本课的教学假设车(车长 L_veh = 4.8 m,⚠ 教学假设值,⛔ 不对应任何平台;这套教学车的完整参数在第 2 讲写死)与 30 m/s、气动基线态物性:

Re_L = 1.2041 × 30 × 4.8 / 1.813×10⁻⁵ ≈ 9.6×10⁶

算它是为了拿到三件事:

① 这个量级下,车身边界层在车头很短一段之后就转捩,全程按湍流处理是合理的(本课不做转捩建模;要做去向 J2-01); ② 它同时说明壁面附近的黏性尺度有多小——这正是下一节「为什么这个项目要划两套网格」的物理根源; ③ 它是与风洞比对时的第一个对齐项:模型风洞若用缩比模型,Re 不匹配,而 Re 不匹配会改变分离位置(第 8 讲展开)。

工程量级:乘用车常规车速段的 Re_L 落在 10⁶~10⁷。从 30 km/h 到 120 km/h 只变四倍 ⇒ Re 不是本课各工况之间的主要差别;主要差别在冲压压源(∝ V²)与热负荷——这一点会直接连到第 4 讲那个问题:为什么低速才是散热的极限工况。

⚠ 符号纪律(本讲统一,⛔ 不在推导中间改口径):V_∞ 是来流速度(=计算域入口速度),V_veh 是车速(对地)。稳态零偏航时两者数值相等,但它们是两个概念:偏航 / 侧风工况下 V_∞ 是合成来流,⛔ 不等于车速。气动系数按 V_∞ 定义,AGS 权衡与续航折算按 V_veh 算。

三个易错点:①用车宽或轴距当特征长度算 Re,然后拿去和别人的数比;②在 40 ℃ 工况下仍用气动基线态的 ρ_20 / μ_20 算 Re(两套基准态各有射程,见 1.1);③把 Re 匹配当成缩比风洞的唯一对齐条件,忽略阻塞与地面模拟。

1.8 y⁺ 的两个目标窗口:这个项目要划几套网格,现在就要定

y⁺ 是无量纲壁面距离,它把首层网格厚度、局部流速与壁面处理绑在一起(机理与壁面律见前置课 J2-01,本课不重讲)。

本课的 y⁺ 有两个不同的目标窗口:

  • 阻力用:壁函数,y⁺ 30~300;
  • h 交付用:全解析近壁,y⁺ ≈ 1;
  • ⚠ 两者之间的缓冲层 y⁺ ≈ 5~30,两套处理都不成立——而实际划出来的网格常常正好落在这一段。

⛔ 一套网格不能同时声称满足两者。

为什么这条约束要在第 1 讲就定下来:整车的壁面积巨大,全解析近壁意味着首层极薄、棱柱层很多、单元数成倍增长;所以阻力基线的常规做法是壁函数网格。而第 5、6 讲要交付包底 h ——壁函数网格上算出来的 h 是壁函数本身的产物(换一个壁函数就换一个值),⛔ 不能交付给下游。

⇒ 结论是这个项目通常要两套网格:一套壁函数的,做阻力基线与 AGS 扫描(便宜,可以扫很多点);一套包底局部全解析的,做 h 交付(贵,只在选定工况上跑)。这件事决定的是排产,不是网格参数——它必须写进计划,⛔ 不能等到第 5 讲要交 h 时才发现。

成本量级:稳态 RANS 壁函数的整车网格常在数千万到一两亿单元,全解析近壁与 DES/DDES 再高一个量级左右;格子玻尔兹曼方法的体素数与之口径不同、不可直接比较。⚠⚠ 这个量级随硬件代际、求解器与网格策略剧烈漂移,写它只为让你对成本有个概念,⛔ 不作选型依据、⛔ 不作验收依据。⇒ 拿到你自己那一套的路:本项目的网格收敛研究(三套系统加密)加上实测墙钟时间。

⇒ 今天就能用的一步:y⁺ 的「目标」与「实际达到」是两回事。出一张 y⁺ 云图,把要交 h 的那块区域单独圈出来,核对那块区域实际落在哪一段——落进 5~30 的缓冲层,就是两套处理都不成立,⛔ 那块的 h 不能交。

三个易错点:①在一套壁函数网格上把 h 也一并交了,下游拿去算包体温升,而误差来源栏里只写着「CFD 结果」;②反过来,为了 h 把整车都做成 y⁺ ≈ 1,AGS 扫描成本翻几倍而扫不了几个点——分辨力全花在了不需要的地方;③把两套网格算出的 C_d 混在同一张对比图里——它们的散布不同,同一张图里并列的量必须同基准。

1.9 对称面(半模)的射程:三个条件同时成立才可用

对称面把计算量减半,代价是强制流场关于中纵剖面对称。它的射程是明确的:

  • β = 0(无偏航)的稳态阻力基线:允许用半模;
  • β ≠ 0 的任何工况、以及任何非定常尾流分析:一律全模型,⛔ 不得用对称面。

为什么这一条最容易被误用:在 β = 0 的稳态 C_d 上,半模与全模的差异典型只有几个 counts(常落在流程散布以内)。⚠ 典型量级、⛔ 不是验收依据。于是「实测证明半模够用」这个结论被建立起来,然后被搬到它不成立的地方去。

⛔⛔ 这个「差别很小」的结论不得外推到 β ≠ 0、非定常尾流、以及车底左右不对称布置的任何工况——半模在那些情形下是物理上不成立,⛔ 不是「误差略大一点」。

代价在哪里:半模的代价不是「漏掉一半流场」这么简单。真实车尾尾流即使在零偏航下也存在反对称的双稳态 / 摆动模态,而对称面把这类模态彻底禁止。⇒ 半模算出来的尾流是稳定的,而那是边界条件造出来的稳定,⛔ 不是流动本身。更麻烦的是,它看起来比全模的结果更「干净」。

⇒ 因此,一旦要交付的响应量涉及非定常尾流、侧风(β ≠ 0)、或车底左右不对称的封堵 / 排气 / 传动轴 / 包体布置,半模立刻失效。本课的 AGS 权衡(第 4 讲)与包底 h 交付(第 5、6 讲)一律在全模型上做——因为排气、传动轴、包体布置在左右方向上本来就不对称。

三个易错点:①「反正车身是对称的」——车身对称不代表流动对称,也不代表底盘布置对称;②用半模算完 C_d 基线,直接在同一套模型上加一个偏航角(对称面此时物理上已经不成立,而求解器照跑不误,不会给你任何提示);③把半模省下来的算力全投到网格加密上,得到一个更精细的、但结构性错误的尾流。

三步决策链:从本次要交的响应量与工况出发,依次问「β = 0 吗」「要交的响应量含非定常尾流或左右分布吗」「车底布置左右对称吗」,三个否决支分别标注「对称面在物理上不成立」「对称面会抹掉反对称摆动模态」「本课的包底 h 与底护板封堵交付一律全模型」,唯一的可用半模终点附带其代价与不得外推的边界。本图是决策链示意,⛔ 不得据图取任何数值。
图2 半模可用性的三步判断:三个条件同时成立才可用半模,任一不成立即全模型;三个否决支各写着不同的否决理由,⛔ 不可互相替代。本图是建模决策链的示意,⛔ 不得据图取任何数值;三个否决条件是本课约定的判据,需按本项目的交付物清单复核。

1.10 本讲的产物:一张外流域与边界设定卡

把上面九节压成一张能贴进项目记录、能被别人复核的卡片。九项,缺一项这次结果就不可比较:

  1. 本次交付的响应量清单(从 1.2 的六类里勾选,写明哪几类);
  2. 物性基准态(气动基线态还是热耦合工况态,写下带下标的 ρ 与 μ);
  3. 域尺寸(四个方向各自的倍数 + 敏感度算例的结论:每个方向加倍后 C_d 变了多少 counts);
  4. B_blk 实际值,并写明「已达标 ⇒ 不做阻塞修正」;
  5. 地面与车轮设定(动地面形式与滚带宽度、车轮转法、接触斑处理);
  6. 入口条件(V_∞、湍流强度 I、湍流长度尺度;⛔ 只写 I 不写尺度不算写);
  7. 几何保真度(wrap 版本、三张目检截图:格栅细缝 / 护风罩间隙 / 底护板与包底);
  8. 网格套数与各自的 y⁺ 实际分布(阻力那套 / h 交付那套;h 交付区圈出来的实际 y⁺);
  9. 半模还是全模,以及按 1.9 的三问逐条写下判断理由。

⚠ 这九项里,第 1 项决定其余八项——所以它排在第一位,⛔ 不是形式。

本讲小结:外流 CFD 要交的是六类响应量,⛔ 不是一个 C_d,而域、地面、几何、网格的每一个取舍都只有在交付清单确定之后才有判据。域尺寸由「阻塞比 / 不回灌 / 成本」三条方向相反的判据折中,⛔ 没有可抄的推荐值;动地面与转动车轮换掉的是整条车底流动机制,C_d 偏差符号随车型而变、本课不给方向,但车底速度与包底 h 系统性偏低;入口的湍流强度与长度尺度必须成对写下来;wrap 一粗就会悄悄改掉有效通流面积而不报错;Re_L ≈ 9.6×10⁶ 告诉你边界层全程湍流、以及为什么整车不可能全解析 ⇒ 这个项目通常要两套网格(阻力用壁函数、h 交付用全解析近壁),这件事现在就要写进排产;半模只在「β = 0 + 不交非定常与左右分布 + 车底布置对称」三条同时成立时可用,它的代价是用边界条件抹掉了尾流的反对称模态,而抹掉之后的结果看起来更干净。

后面还有 7 讲正文 · 关键公式 · 案例拆解 · 常见误区 · 动手做

会员专属

后续为会员深水区内容——四库数据与深度拆解。

查看会员方案