4. 输出参数定义与提取

在参数化设计与多目标优化的流程中,输入参数决定了设计空间的搜索方向,而输出参数则决定了优化器“看见”的目标。如果输出参数定义不准确、提取方式不稳定,即使求解器收敛良好,优化结果也可能毫无意义。本节围绕三类典型输出参数——压降、温度、升力与效率——说明如何在 Fluent 中通过监测点、报告定义和自定义场函数,把物理场中的性能指标自动、可重复地提取为优化可用的输出参数。

一、输出参数的本质:从物理场到标量目标

Fluent 求解得到的是离散网格上的速度、压力、温度等场变量,而优化算法需要的是标量目标值。输出参数定义的过程,本质上就是“场→标量”的映射设计。这个映射必须满足三个条件:物理意义明确(如进出口总压差)、数值稳定(不随迭代步剧烈振荡)、可自动更新(每次设计点变更后无需人工干预即可重新计算)。

Fluent 中可用的提取手段主要有四类:Report Definitions(报告定义)用于面积分、体积分、通量等标准统计量;Point/Surface Monitors(监测点/面监测)用于跟踪局部变量随迭代的变化;Custom Field Functions(自定义场函数)用于构造标准报告无法直接表达的复合量;Expression(表达式)则提供了更灵活的代数与条件运算能力。四者配合,可以覆盖绝大多数工程性能指标。

输出参数提取链路:从物理场到优化目标 求解物理场 压力 p 温度 T 速度 v 湍动能 k 质量流量 ṁ (网格上的离散场) 提取手段 Report Definitions Point / Surface Monitor Custom Field Function Expression 面积分 / 体积分 / 通量 代数与条件运算 输出参数 Δp 压降 T_out 出口温度 F_L 升力 η 效率 标量、可自动更新 供优化器读取 优化闭环 设计点变更 → 自动重算 → 输出参数刷新 → 目标/约束评估 输出参数必须可重复、可追溯、与网格无关性验证一致 关键原则 ① 报告定义的面/体必须与几何参数化绑定,避免设计变更后引用失效;② 监测点坐标应随几何参数更新; ③ 自定义场函数中的参考值(如参考面积、参考温度)应显式写入,不依赖默认值。

二、报告定义:压降与出口温度的标准提取

压降是最常见的输出参数之一。以一段带翅片的冷却通道为例,进口为速度入口(v = 5 m/s,T = 300 K),出口为压力出口(0 Pa 表压)。压降应取总压差而非静压差,因为总压差才真正反映不可逆损失。在 Fluent 中依次进入 Results → Reports → Definitions → New → Surface Report → Area-Weighted Average,分别对 inlet 和 outlet 面提取 Total Pressure,再通过表达式相减得到 Δp。若直接使用 Pressure(静压),在高速流动中会低估压降。

出口温度同样使用面积加权平均。对于有回流可能的出口,面积加权平均比质量加权平均更稳定;若关心的是能量平均温度,则应选择 Mass-Weighted Average。两种平均方式的差异在出口温度分布不均时会达到数开尔文,必须在报告定义中明确选择并保持一致。

Report Definition 示例(压降):
  Name:        dP_total
  Type:        Surface Report → Area-Weighted Average
  Field:       Total Pressure
  Surfaces:    inlet, outlet
  Expression:  areaAve("Total Pressure", ["inlet"]) 
             - areaAve("Total Pressure", ["outlet"])
  Report File: dP_total.out   (每次迭代追加一行)
  Report Plot: 开启,用于观察收敛趋势

报告定义创建后,务必勾选 Create Output Parameter,这样该报告才会出现在参数化研究(Parameter Set)的输出列表中。未勾选的报告只是后处理工具,不会参与优化。

三、监测点:局部变量的过程跟踪

监测点(Point Monitor)用于跟踪空间中某一点的变量随迭代步的变化,典型用途包括:监测钝体尾流区某点的速度脉动是否进入统计稳态、监测热源附近某点的温度是否达到设定阈值、监测叶轮出口某点的压力是否周期性稳定。监测点的坐标必须与几何参数化关联——如果叶片角度是输入参数,监测点应定义在相对于叶片的局部坐标系中,或通过表达式引用几何参数,否则设计变更后监测点会落在流场之外。

在 Solution → Monitors → Report Definitions 中新建 Point Report,指定坐标 (x, y, z) 和变量。对于非定常计算,监测点数据还可用于判断统计平均是否收敛:当监测量的滑动平均值在若干个周期内变化小于 1% 时,可认为统计量已稳定。

四、自定义场函数与表达式:升力与效率的构造

升力无法通过单一标准报告直接得到。对于二维翼型,升力为翼型表面压力与黏性切应力在垂直于来流方向上的合力。在 Fluent 中可通过 Custom Field Functions 构造被积函数,再对翼型表面做面积分。设来流方向为 +x,升力方向为 +y,则:

Custom Field Function 构造(二维翼型升力):
  f_pressure_y = Pressure * (-Normal_Y)      // 压力在 y 向的贡献
  f_viscous_y  = Wall Shear Stress * Tangent_Y // 黏性切应力 y 向分量
  F_L = ∫ (f_pressure_y + f_viscous_y) dA    // 对翼型表面面积分

Expression 写法(Fluent 2021R1 及以上):
  F_L = -areaInt(Pressure * Normal_Y, ["airfoil"]) 
        + areaInt(WallShearStress * Tangent_Y, ["airfoil"])

效率的定义因设备而异,必须与物理意义严格对应。以泵为例,水力效率 η = (Δp_total × Q) / P_shaft,其中 Q 为体积流量,P_shaft 为轴功率。在 Fluent 中,Q 可通过出口质量流量除以密度得到,P_shaft 则需从叶轮扭矩与转速计算:P_shaft = M_z × ω。扭矩 M_z 通过对叶片表面压力与黏性力绕 z 轴的力矩积分获得。整个效率表达式由多个报告定义组合而成,建议在 Expression 中一次性写出,避免中间量手工传递导致量纲错误。

量纲与符号约定:在构造自定义场函数前,先统一单位制(建议 SI),并明确法向、切向、力矩正方向的定义。Fluent 中 Normal_X/Y/Z 指向面外法向,Tangent_X/Y/Z 指向面切向,符号约定一旦确定,全文与图示必须一致。

五、自动提取与参数化联动

所有输出参数定义完成后,进入 Parameters → Parameter Set,检查输出参数列表是否完整。每个输出参数应具备:唯一的名称、明确的单位、可追溯的报告定义来源。在 Workbench 参数化流程中,设计点更新后 Fluent 会自动重算并刷新这些输出参数,无需人工重新提取。

为保证提取的可靠性,建议做三项检查:网格无关性——同一设计点在粗、中、细三套网格上提取的输出参数变化应小于 2%;迭代收敛性——输出参数在最后 200 步内的波动应小于 0.5%;参数敏感性——输入参数变化 5% 时,输出参数应有可分辨的变化,否则该输出参数对优化无贡献,应考虑剔除或更换定义方式。

常见错误:① 报告定义引用了固定面名称,几何参数化后该面被重命名或删除,导致更新失败;② 自定义场函数中使用了默认参考值(如参考面积 1 m²),设计变更后未同步修改;③ 效率表达式中混用了表压与绝对压,导致量纲或数值错误。建议在参数化研究前,先用两个差异明显的设计点做一次“提取链路验证”,确认输出参数能正确响应。

完成本节后,你应当能够针对压降、温度、升力、效率四类典型指标,独立选择报告定义、监测点或自定义场函数,并将其注册为可自动更新的输出参数。下一阶段的多目标优化,将直接建立在这些输出参数之上。