1. 课程导入与优化问题界定

在工程仿真中,很多初学者会把 Fluent 当作“验证工具”:几何建好、网格划好、边界条件设好,跑一遍,看看压力损失或换热系数是多少,然后写报告。这种方式能回答“这个设计行不行”,却回答不了“哪个设计更好、为什么更好、还能好到什么程度”。参数化设计与多目标优化要解决的,正是后一类问题。它的核心不是把仿真跑得更快,而是把仿真从一次性的“结果计算”变成可重复调用的“性能函数”,让几何尺寸、边界条件等输入参数与压降、换热、温度均匀性等性能指标之间建立起可计算、可搜索的映射关系。

从“单次仿真”到“参数—性能映射”

先看一个具体对象。假设我们要优化一个板翅式散热器的冷却流道,几何上可调的参数包括翅片高度 H、翅片间距 P、流道长度 L,入口流速 v 由工况给定。我们关心的性能指标有两个:一是换热能力,用进出口温差或平均对流换热系数表征;二是流动阻力,用进出口总压降 Δp 表征。这两个目标天然冲突——翅片越密、越高,换热面积越大,换热越好,但压降也越大。这就是典型的多目标优化问题:不存在让两个目标同时达到最优的单一解,而是一组权衡解。

要让 Fluent 参与优化,第一步是把几何参数变成可自动修改的输入。在 Ansys 工作流中,通常用 SpaceClaim 或 DesignModeler 建立参数化几何,把 H、P、L 标记为输入参数;在 Fluent 中把 Δp、出口平均温度等结果标记为输出参数。这样,一次“几何改动—网格更新—求解—提取结果”的完整过程就可以被 Workbench 参数集或脚本自动驱动。此时,Fluent 求解器相当于一个黑箱函数:输入一组参数,输出一组性能指标。

关键认识:参数化设计不是“把尺寸写成变量”这么简单,而是要求整个仿真流程具备可重复、可自动、可追溯的特性。几何、网格、求解设置、结果提取四个环节中任何一环依赖手工操作,优化循环就无法稳定运行。

Fluent 仿真流程与优化环节的衔接

常规 Fluent 仿真流程大致为:几何建模 → 网格划分 → 物理模型与边界条件设置 → 求解 → 后处理。优化环节并不是接在最后,而是包裹在整个流程之外,形成“外层优化算法 + 内层仿真评估”的结构。外层算法(如拉丁超立方采样、遗传算法、NSGA-II 或梯度类算法)负责生成参数样本或候选设计点;内层则对每个设计点执行一次完整的参数化仿真,并把性能指标返回给外层。外层根据返回结果更新搜索方向,再生成下一批设计点,直到满足收敛条件或达到计算预算。

这里有一个容易被忽视的衔接点:网格。如果每个设计点的几何都重新划分网格,网格数量和质量会随参数变化而波动,导致数值误差混入优化过程。工程上常用两种策略:一是采用自适应网格或统一网格尺度,使不同设计点的网格密度尽量一致;二是对简单参数变化采用网格变形而非重划,保持拓扑不变。无论哪种方式,都要在优化前确认:参数在小范围内变化时,求解结果对网格的敏感度低于对几何参数的敏感度,否则优化结果可能被数值噪声主导。

参数化仿真与多目标优化的衔接结构 外层:优化算法 / 试验设计 设计变量(输入) 翅片高度 H 翅片间距 P 流道长度 L 参数化几何 SpaceClaim / DM 尺寸驱动更新 网格更新 变形 / 重划 质量检查 Fluent 求解 流场 / 温度场 收敛监控 性能指标(输出) 目标1:换热能力 ↑(出口温差 / 平均 Nu) 目标2:流动阻力 ↓(进出口总压降 Δp) 约束:最高壁温 ≤ 限值、流量偏差 ≤ 5% 反馈:更新采样 / 搜索方向 内层:每个设计点执行一次完整参数化仿真;外层:根据性能反馈迭代搜索 Pareto 前沿

建立映射思维:把工程问题翻译成优化问题

从上面的结构可以看出,参数化设计与多目标优化的第一步不是打开软件,而是把工程需求翻译成数学形式。以散热器为例,工程语言是“在泵功率允许范围内尽量提高散热能力”,翻译成优化语言就是:

设计变量:H ∈ [4, 12] mm,P ∈ [1.5, 4] mm,L ∈ [60, 120] mm
目标函数:max f1 = 换热能力(如出口平均温度降)
          min f2 = Δp(进出口总压降)
约束条件:最高壁温 Tmax ≤ 85 °C
          入口流速 v = 2 m/s(工况固定)
          几何可制造性:P ≥ 1.5 mm

这里要特别注意“约束”和“目标”的区别。约束是必须满足的硬边界,目标是可以互相权衡的软指标。如果把最高壁温也当成目标去最小化,问题就变成了三目标优化,Pareto 前沿的维度和解释难度都会上升。工程上更常见的做法是:把安全、法规、制造相关的量设为约束,把真正希望改善的性能设为目标。

另一个关键判断是参数范围。范围太窄,优化空间有限,算法很快触到边界;范围太宽,可能出现几何自交、网格失败或流动状态突变(如层流变湍流),导致仿真结果不可比。合理的做法是先做单参数扫描,观察性能随参数的变化趋势和拐点,再据此设定优化区间。例如,当翅片间距 P 小于 2 mm 时压降急剧上升,而换热增益趋于平缓,那么 P 的下界就不宜设得过低。

在正式优化前,建议先做一次“基线仿真”:取一组中间值参数,完整跑通几何—网格—求解—后处理流程,记录网格量、收敛步数、单次求解耗时和关键结果。这个基线既是后续对比的参照,也是估算优化总计算量的依据。若单次仿真需要 40 分钟,而计划采样 200 个设计点,就需要提前评估计算资源是否可承受。

多目标优化的结果不是“一个最优解”

单目标优化输出一个最优参数组合,多目标优化输出的是一组互不支配的解,称为 Pareto 最优解集。所谓“互不支配”,是指在不牺牲至少一个目标的前提下,无法再改善另一个目标。对散热器问题而言,Pareto 前沿上的每个点都代表一种合理的权衡:有的设计换热强但压降大,有的设计压降小但换热弱。最终选哪个,取决于工程偏好——如果泵功率充裕而空间受限,可能偏向高换热端;如果能耗敏感,则偏向低压降端。

因此,本课程后续会反复围绕三个问题展开:如何让 Fluent 仿真可靠地参数化运行;如何用尽量少的仿真次数找到高质量的 Pareto 前沿;如何根据工程需求从 Pareto 解集中做出选择。这三个问题分别对应参数化建模、试验设计与代理模型、多目标决策。本章的任务是建立整体框架,后续章节将逐一展开具体操作与实现细节。

最后强调一个常见误区:优化不是“让软件自动找到最好设计”。优化算法只能在给定的参数范围、目标定义和约束条件下搜索,它不会质疑问题本身是否提得合理。如果目标函数选错了,或者约束漏掉了关键制造限制,优化结果再漂亮也无法落地。因此,优化问题界定阶段投入的思考,往往比后面调算法参数更有价值。