← 返回 2026-01-27

面向大规模流动控制的强化学习算法即插即用基准测试 Plug-and-Play Benchmarking of Reinforcement Learning Algorithms for Large-Scale Flow Control

Jannis Becktepe, Aleksandra Franz, Nils Thuerey, Sebastian Peitz 📅 2026-01-21 👍 2 2026-07-13 08:35
基准测试 多智能体 强化学习 流体控制 计算流体力学

FluidGym:首个全自包含、全可微分的流体控制强化学习基准平台

前置知识

主动流动控制 (AFC, Active Flow Control)

主动流动控制是指通过外部执行器(如喷流、加热器、旋转部件)对流体运动施加主动干预,以改变流动特性的一种技术。与被动控制(如改变几何形状)不同,AFC 需要实时感知流场状态并施加控制动作,目标包括减阻、增强换热、提高气动效率等。在工程中,AFC 的典型应用场景包括:通过在汽车或飞机表面布置吹吸射流减小气动阻力、通过控制热对流增强工业换热效率、以及通过壁面吹吸控制湍流减阻。AFC 面临的核心挑战在于流体系统的高维状态空间和强非线性动力学特性,这使得传统控制方法难以设计有效的策略。

本文的整个研究都围绕 AFC 展开,FluidGym 基准的所有环境和控制目标都是 AFC 任务,理解 AFC 的核心概念和挑战是阅读本文的基础。

强化学习 (RL) 在流体控制中的应用

将流体控制系统建模为马尔可夫决策过程 (MDP):状态为流场传感器观测,动作为执行器输入(如喷流速度、加热温度),奖励基于控制目标(如阻力系数、Nusselt 数)的变化。智能体通过与 CFD 模拟环境交互学习最优控制策略。已有的应用包括圆柱绕流减阻、湍流通道流控制、Rayleigh-Bénard 对流换热控制等。然而,由于 CFD 模拟计算成本高昂、不同研究的实验设置差异大、评估标准不统一,该领域面临严重的可重复性和可比性问题。

理解 RL-AFC 的现有研究范式和面临的问题是理解本文提出 FluidGym 的动机的关键。论文旨在通过统一基准解决这些碎片化问题。

可微分模拟 (Differentiable Simulation)

可微分模拟是指模拟器的前向计算过程被嵌入到自动微分计算图中,使得可以通过反向传播计算模拟输出(如阻力系数、Nusselt 数)相对于输入(如控制动作、物理参数)的梯度。这使得基于梯度的优化方法(如 DPC)可以直接利用模拟器的梯度信号来学习控制策略,而无需依赖 RL 中的试错式探索。在计算流体力学中,实现全可微分模拟需要 CFD 求解器的所有计算步骤(包括压力校正、对流项离散化等)都支持自动微分,这在工程上具有相当的挑战性。

FluidGym 的一个核心卖点就是全可微分性,理解这一概念才能理解 DPC 基线的价值以及与已有基准的本质区别。

PISO 算法与 PICT 求解器

PISO(Pressure Implicit with Splitting of Operators)算法是求解不可压缩 Navier-Stokes 方程的经典数值方法,由 Issa 于 1986 年提出。它通过预测-校正步骤交替求解速度场和压力场:首先用动量方程预测速度,然后通过求解压力泊松方程使速度场满足连续性方程(无散度条件)。PICT 是 Franz 等人(2026)开发的 GPU 加速 PISO 求解器,完全基于 PyTorch 实现,支持多块网格和可微分计算。其关键创新在于结合了 Discretize-then-Optimize (DtO) 和 Optimize-then-Discretize (OtD) 两种梯度计算范式,实现了端到端可微分的 CFD 模拟。

PICT 是 FluidGym 的底层求解器引擎,理解其工作原理有助于理解 FluidGym 为何能实现全可微分和 GPU 加速,以及其计算精度和性能特点。

多智能体强化学习 (MARL)

多智能体强化学习是将单一复杂控制问题分解为多个子智能体协同决策的框架。在流动控制中,MARL 特别适合空间分布式执行器场景(如壁面上的喷流阵列、底部加热器阵列),每个智能体控制一个或一组执行器,基于局部观测选择动作。MARL 的核心挑战包括:信用分配问题(如何评价每个智能体的贡献)、协调问题(如何让多个智能体形成全局最优的协同策略)、以及观测局部性(每个智能体只能观测到自己附近的流场信息)。在 FluidGym 中,MARL 设置下各智能体共享策略网络参数,利用平移等变性实现在不同空间位置的策略复用。

MARL 支持是 FluidGym 相比已有基准的重要优势之一,论文中大量实验涉及 MARL 设置,理解 MARL 的基本概念是理解这些实验的前提。

研究动机

强化学习在主动流动控制 (AFC) 领域取得了令人瞩目的成果,但该领域的研究现状高度碎片化,严重阻碍了技术进步和知识积累。具体而言,现有研究存在以下几个核心问题:首先,实验设置差异极大——不同研究在执行器类型(合成射流 vs 圆柱旋转 vs 壁面加热)、传感器布置、物理参数设定(雷诺数、瑞利数等)上各不相同,导致无法直接比较不同方法的优劣。其次,评估实践不规范——超过 75% 的 AFC 研究仅使用 PPO 算法(据 Moslem 等 2025 年的综述),而更先进的连续控制方法(如 SAC、TD-MPC)在 AFC 中基本未被探索;许多工作仅与无控制基线对比(Tokarev 等 2020;Vignon 等 2023),且 RL 训练的初始条件选择不一致,有些甚至重用训练和测试的初始条件。第三,可重复性和统计稳健性严重不足——部分工作仅报告单次运行结果(Guastoni 等 2023;Sonoda 等 2023),未使用多个随机种子,这在 RL 领域是已知的方差来源。现有的 AFC 基准(如 DRLinFluids、drlFoam、DRLFluent、Gym-preCICE、Beacon、HydroGym)虽然在一定程度上缓解了这些问题,但各自存在不同的局限:多数依赖外部 CFD 求解器(如 OpenFOAM、Fluent、FEniCS),需要复杂的软件安装和耦合过程,不具备端到端可微分性,缺乏对多智能体 RL 的原生支持,且主要限于 2D 环境。

本文的目标是本文的核心目标是创建一个全新的、全面的 AFC 强化学习基准平台——FluidGym,实现以下具体目标:(1)构建首个完全自包含(standalone)、完全基于 PyTorch 的 AFC-RL 基准,用户只需通过 pip 安装即可运行,无需编译或耦合任何外部 CFD 软件;(2)实现所有环境的端到端可微分,使得基于梯度的控制方法(如 DPC)可以直接使用,无需任何额外适配;(3)提供统一的训练/验证/测试协议,包括预定义的初始条件划分(各 10 个随机生成的初始域),确保不同方法的公平比较;(4)覆盖多样化的流动场景(圆柱绕流、Rayleigh-Bénard 对流、翼型绕流、湍流通道流),支持 2D 和 3D 环境,支持单智能体和多智能体设置;(5)通过系统的实验研究建立 PPO、SAC、DPC、TD-MPC 等多种算法的基线结果,消耗超过 25,000 GPU 小时,所有数据公开发布。

与已有工作不同的是,FluidGym 的独特切入点在于它同时满足了已有基准各自缺失的四个关键需求——这是目前没有其他平台能做到的。具体来说,已有基准中:DRLinFluids、drlFoam、DRLFluent、Gym-preCICE 都依赖外部 CFD 求解器;Beacon 虽然是纯 Python 实现但不支持可微分;HydroGym 虽然支持 MARL 和 3D 但不同环境依赖不同的后端(FEniCS 用于 2D,m-AIA 用于 3D),且只有 JAX 环境可微分。FluidGym 的设计哲学是“一个 Python 包解决所有问题”——它将 GPU 加速的 PICT CFD 求解器与标准化的 RL 接口(兼容 Gymnasium、PettingZoo、Stable-Baselines3、TorchRL)完全集成在一个 PyTorch 代码库中,环境步进和反向传播使用相同的自动微分机制,就像标准深度网络一样。这种架构设计不仅降低了使用门槛(不需要 CFD 专业知识),更重要的是为端到端可微分的控制方法研究提供了统一的基础设施。

核心方法

FluidGym 的设计理念可以用一个类比来理解:如果说现有的 AFC-RL 研究像是每个团队都自己造一辆车(从安装发动机到组装车身),那么 FluidGym 就是提供了一辆标准化的测试平台车辆——研究者只需坐进去踩油门(写策略网络),而不需要关心发动机(CFD 求解器)怎么工作。在技术架构上,FluidGym 由三个核心层组成:(1)底层是 PICT 求解器,一个完全基于 PyTorch 的 GPU 加速不可压缩流 PISO 求解器,负责所有 CFD 计算;(2)中间层是 FluidEnv 抽象,封装了所有 CFD 计算并暴露标准化的观测、动作、奖励接口,支持单智能体和多智能体两种交互模式;(3)顶层是与标准 RL 库的接口层,兼容 Gymnasium、PettingZoo、Stable-Baselines3 和 TorchRL。整个系统完全运行在 PyTorch 生态中,环境步进(前向模拟)和策略梯度计算(反向传播)使用相同的 autograd 机制,实现了真正的端到端可微分。

FluidGym 最核心的创新不在于发明了新的 RL 算法或 CFD 方法,而在于“集成架构”本身——它首次将一个 GPU 加速的可微分 CFD 求解器与标准化的 RL 环境接口完全融合在一个 Python 包中,消除了 AFC-RL 研究中最大的工程障碍。这一架构选择带来了几个根本性的优势:第一,由于模拟和梯度计算在同一 PyTorch 计算图中,DPC 等基于梯度的方法可以零成本使用,无需任何适配工作——这在之前依赖外部求解器的基准中是无法实现的。第二,所有环境共享统一的观测/动作/奖励规范,使得跨环境、跨方法的公平比较成为可能。第三,MARL 的支持是从架构层面内建的而非事后添加的——每个执行器自然映射为一个智能体,局部观测和局部奖励的定义与空间布局直接对应。这种“即插即用”的架构设计使得研究者可以将精力集中在算法创新上,而非工程耦合问题上。

方法步骤详情

FluidGym 的工作流程可以分为以下几个步骤:(1)环境初始化——用户通过标准 API 创建环境(如 gym.make('CylinderJet3D-easy-v0')),首次使用时自动下载预定义的初始域数据并缓存到本地;(2)环境重置——env.reset() 对初始域施加随机扰动和随机步进,配合固定 RNG 种子确保可重复性,返回初始观测向量;(3)交互循环——在每个控制步 $t$,智能体基于当前观测 $\vec{o}_t$ 选择动作 $\vec{a}_t \in [-1, 1]$,环境内部通过映射函数 $\Gamma$ 将归一化动作转换为物理边界条件值(如射流速度、加热器温度),并进行空间平滑以避免非物理的硬过渡;(4)CFD 模拟——PICT 求解器执行若干数值时间步(由自适应 CFL 条件控制),推进流场至下一控制步,返回新的流场状态;(5)观测与奖励计算——从虚拟传感器位置提取速度/温度分量作为观测,根据控制目标计算标量奖励(如减阻率、换热改善率、气动效率提升率);(6)梯度计算(可选)——由于整个模拟过程在 PyTorch 计算图中,可以直接通过 torch.autograd.grad() 计算奖励相对于策略参数的梯度,用于 DPC 等基于梯度的优化方法。在 MARL 模式下,多个智能体各自选择局部动作,环境内部将其聚合成全局动作向量后再执行映射。

技术新颖性

FluidGym 的技术新颖性主要体现在以下几个方面:首先,在架构层面,它是首个将 GPU 加速的可微分 CFD 求解器(PICT)直接嵌入 RL 环境接口的基准平台,实现了真正的“单一 Python 技术栈”——已有基准要么依赖外部求解器(DRLinFluids、drlFoam、DRLFluent、Gym-preCICE、HydroGym),要么虽然自包含但不支持可微分(Beacon)。其次,在覆盖范围上,FluidGym 是首个同时提供全可微分支持、原生 MARL 支持和高保真 3D 环境的 AFC 基准(见论文 Table 1 的对比),13 个环境涵盖 4 类流动场景和 3 个难度等级。第三,在评估规范上,FluidGym 提供了标准化的 train/val/test 划分协议,每个划分包含 10 个随机生成的初始域,通过一致的 RNG 种子确保可重复性——这在已有 AFC-RL 研究中是前所未有的。第四,在实验覆盖度上,本文首次在 AFC 领域对 PPO、SAC、DPC、TD-MPC 进行了系统的跨环境、跨难度、跨维度的比较,累计消耗超过 25,000 GPU 小时。

FluidGym 中四个无控制环境类别
Figure 1: FluidGym 中四个无控制环境类别
FluidGym 架构概览(以 2D RBC 环境为例)
Figure 2: FluidGym 架构概览(以 2D RBC 环境为例)

实验结果

本文的实验结果覆盖了 FluidGym 的全部 13 个环境和 3 个难度等级,主要发现如下:(1)SAC 在标准化性能分布中总体优于 PPO。在所有环境和难度等级上,SAC 的四分位均值(IQM)分数均高于 PPO,这与 SAC 在非线性连续控制任务上的已知优势一致(Abuduweili & Liu, 2023)。具体而言,在圆柱绕流 easy 任务上,SAC 实现 4.5-6.7% 的阻力降低,PPO 为 3.4-5.6%;在 hard 任务上,SAC 达到 44.4% 减阻(CylinderJet2D-hard),PPO 为 40.4%。(2)多智能体变体 MA-PPO 和 MA-SAC 的表现相当,MA-SAC 总体略优。在 TCF 环境中,MA-PPO 在小通道上实现 12-21% 减阻,MA-SAC 为 9-17%;在大通道上 MA-PPO 为 0.1-13%,MA-SAC 为 5-9%。(3)DPC 在简单流动中展现出巨大的样本效率优势。在 CylinderJet2D-easy 上,DPC 仅需约 100 步就超越 PPO 在数千步后的表现,收敛速度比 PPO 快约一个数量级,比 SAC 快约两个数量级。在 RBC2D-hard 上,DPC 与 TD-MPC 和 SAC 表现相当,明显优于 PPO。DPC 实现的阻力降低约 7.2%,与 PPO 和 TD-MPC 的约 8% 相当。(4)TD-MPC 在 RBC2D 环境中表现最佳。在 easy 难度下实现 31.7% 的换热改善率,medium 下 21.8%,hard 下 16.1%,均优于其他方法。在 CylinderRot2D-hard 上,TD-MPC 实现 34.1% 减阻,略优于 SAC 的 32.6%。(5)策略迁移实验表明,从 2D 到 3D 的直接迁移在某些设置下可行。在 CylinderJet3D-easy 上,迁移的 2D 策略甚至优于直接在 3D 训练的基线;在 medium 难度下与 PPO 和 MA-SAC 基本持平;在 hard 难度下再次达到最高减阻率。在 TCF 的域大小迁移中,小通道训练的策略在大通道上的表现与反对控制基线相当,明显优于直接在大通道上训练的策略,证明 MARL 可以学习到空间不变的控制策略。(6)在 3D RBC 环境中,MA-PPO 学习到了有组织的协同控制行为——各智能体协调底部加热器形成两个稳定的对流卷(convection rolls),这与 Vasanth 等人(2024)的发现一致,表明 RL 可以学到空间不变的控制策略并形成全局协调行为。

现有 AFC-RL 基准对比
Table 1: 现有 AFC-RL 基准对比
FluidGym 环境概览
Table 2: FluidGym 环境概览
3D 流场可视化:无控制 vs 有控制
Figure 3: 3D 流场可视化:无控制 vs 有控制
FluidGym 整体性能分布
Figure 4: FluidGym 整体性能分布
DPC 训练曲线和控制行为分析
Figure 5: DPC 训练曲线和控制行为分析
RBC3D-easy 的 MA-PPO 控制行为
Figure 6: RBC3D-easy 的 MA-PPO 控制行为
CylinderJet3D 减阻率对比:SARL、MARL 和 2D→3D 迁移
Figure 7: CylinderJet3D 减阻率对比:SARL、MARL 和 2D→3D 迁移
TCF 域大小迁移实验
Figure 8: TCF 域大小迁移实验
算法训练时间对比
Figure 9: 算法训练时间对比
查看结构化数据
任务指标本文基线提升
CylinderJet2D-hard 减阻 阻力降低 (%) SAC: 44.4%, TD-MPC: 44.3%, PPO: 40.4% 无控制基线 CD=3.619 SAC 相对基线减阻 44.4%
RBC2D-easy 换热抑制 换热改善率 (%) TD-MPC: 31.7%, DPC: 24.8%, MA-PPO: 20.0% 无控制 Nu=4.841 TD-MPC 相对基线改善 31.7%
Airfoil2D-medium 气动效率 气动效率提升 (%) SAC: 102.6%, PPO: 87.7% 无控制效率 3.572 SAC 将气动效率提升 102.6%
TCFSmall3D-easy 减阻 阻力降低 (%) MA-PPO: 20.7%, MA-SAC: 17.1% 反对控制 ~20% MA-PPO 与反对控制基线持平
CylinderJet2D-easy DPC 收敛速度 收敛步数 DPC: ~100 步 PPO: ~10000 步, SAC: ~20000 步 DPC 比 PPO 快约 100 倍
2D→3D 策略迁移 (CylinderJet3D-easy) 阻力降低 (%) 迁移策略: 6.8% SARL 3D: PPO 3.4%, SAC 2.5%, MA-SAC 5.9% 迁移策略优于所有 3D 训练基线

局限与改进

作者在论文中坦承了以下几个局限性:首先,由于 CFD 模拟的高计算成本,当前评估仅使用了有限数量的随机种子(每个配置 5 个种子),统计稳健性仍然不足,特别是在算法间的细粒度比较上。其次,FluidGym 当前依赖 CUDA-enabled GPU 运行快速模拟,因为底层 PICT 求解器依赖自定义 CUDA 内核,虽然提供了预编译的 wheel 包简化安装,但尚未支持纯 CPU 执行。第三,虽然 FluidGym 全面可微分,但 DPC 的演示仅限于 CylinderJet2D 和 RBC2D 两个 2D 环境,更复杂的 3D 环境中的梯度控制方法尚未系统探索。第四,基线算法均使用了 off-the-shelf 库的默认超参数,这虽然有利于可比性,但可能无法反映每个算法的最佳性能。此外,作者也指出当前评估中的两个实验限制:3D 翼型环境的 medium 和 hard 难度因计算限制未被评估;DPC 在 CylinderJet2D-easy 上的训练在约 10,000 步后出现退化,被迫提前停止。从独立观察来看,论文对 SAC 和 PPO 的默认超参数(如 SAC 使用 256×256 的网络而 PPO 使用 64×64)的差异讨论不够充分,虽然作者在附录中进行了 PPO 网络大小消融实验,但这表明实验设置可能存在一定的不公平性。

独立分析的弱点

第一个值得关注的弱点是实验设置的公平性问题。论文中 PPO 使用 [64, 64] 的网络结构,SAC 使用 [256, 256],这在不同算法的比较中可能引入偏差。虽然附录 E.5 的消融实验表明将 PPO 网络增大到 [256, 256] 并未显著改善性能,但这一差异说明默认超参数可能不适合所有算法。建议未来工作在统一的计算预算下进行网格搜索,为每个算法找到最优配置后再比较。第二个弱点是 DPC 的评估范围有限。DPC 仅在 2 个 2D 环境上进行了演示,而在更复杂的 3D 环境和湍流程度更高的场景中,DPC 的梯度信号质量和训练稳定性尚未被验证。特别是,论文发现 DPC 在 CylinderJet2D-easy 上的训练在约 10,000 步后出现退化,但未深入分析退化原因——这可能是梯度爆炸、长程依赖导致的梯度消失、或策略陷入局部最优。建议增加梯度范数监控和 Hessian 分析来诊断这一问题。第三个弱点是缺乏与传统控制方法的系统比较。论文仅在 RBC 中提供了 PD 控制器基线,在 TCF 中提供了反对控制基线,但在圆柱绕流和翼型绕流中未提供任何经典控制方法的对比。这使得读者难以判断 RL 方法相对于经典方法的实际优势有多大。建议增加基于伴随的 MPC 或进化优化方法作为对比基线。

未来方向

作者提出了几个明确的未来方向:增加随机种子数量以提高统计稳健性;将 DPC 实验扩展到更复杂的 3D 环境;评估可微分 RL 方法(如 Xu 等 2022、Xing 等 2025),这类方法将基于梯度的控制与经典 RL 结合;扩展环境覆盖范围以包含更多几何形状和物理机制(如 MHD 流动);以及随着控制方法的进步逐步增加更具挑战性的环境。基于本文成果,还有几个值得延伸的方向:首先,利用 FluidGym 的可微分性进行元学习或快速适应——由于梯度可以直接通过模拟反传,理论上可以在新的流动条件下通过少量梯度步快速适应策略。其次,探索扩散模型或大型语言模型在流场预测和控制策略生成中的应用——FluidGym 的标准化接口使得这类方法的评估变得可行。第三,利用 FluidGym 的 3D 环境研究模拟到现实的迁移(sim-to-real transfer),这在实际工程应用中至关重要。

复现评估

FluidGym 在可重复性方面做得非常好。首先,完全开源——代码托管在 GitHub(github.com/safe-autonomous-systems/fluidgym),所有环境、数据集和训练好的模型均公开发布在 HuggingFace(huggingface.co/datasets/safe-autonomous-systems/fluidgym-experiments)。安装极其简便——通过 pip install fluidgym 即可安装,无需编译任何 C/C++ 代码或安装外部 CFD 软件。初始域数据首次使用时自动下载并缓存。训练/验证/测试的初始条件通过预定义的随机种子生成,确保不同研究者能获得完全一致的实验条件。实验硬件需求方面:所有实验在单块 NVIDIA A100 GPU(40GB 或 80GB)上完成,每步运行时间从 0.29 秒(TCF-small)到 52.89 秒(3D 翼型)不等,总计消耗约 26,907 GPU 小时。对于资源有限的研究者,2D 环境可以在消费级 GPU 上运行。所有算法使用 Stable-Baselines3 的默认超参数,降低了复现的调参难度。