水平卧式流化床 · 空床流场仿真

用 GPU 加速的 3D D3Q19 格子玻尔兹曼方法 (LBM) 计算水平卧式流化床空床(无颗粒)气相流场, 以恒功率离心风机曲线为压力进口,布风板为多孔板,流量与压差由物理自洽涌现。


1. 物理场景

项目 参数
布风板尺寸 2400 mm (x, 长度) × 567 mm (y, 宽度),水平放置
布风板厚度 2 mm
布风板开孔 孔径 2 mm,开孔率 5.6%,孔轴 5° 倾斜(朝 -x,出料方向)
进风分区 沿长度均分 4 段(每段 600 mm),每段下方独立风箱
风箱高度 450 mm
进风管 每段 DN300,从 567 mm 侧面水平居中进入(风向平行床板)
沸腾/渐扩段 由 2400 × 567 在 1000 mm 高度内渐扩至 2400 × 1200
上部稳压段 2400 × 1200 × 400 mm
渐缩段 500 mm
排风 顶部居中 DN800 圆管

工况(离心风机)

项目 数值
单段额定风量 2500 m³/h(4 段合计 10000 m³/h)
额定压差 2900 Pa(布风板上下)
风机特性 恒功率输出 Δp · Q = P,P = 2900 × (10000/3600) ≈ 8056 W
关死压力 4350 Pa(用于 Q→0 截断)

关键物理认识:2500 m³/h 与 2900 Pa 是风机额定点上的两个值,不是两个独立约束。 离心风机给的是风机曲线,实际工况点是「风机曲线 ∩ 系统阻力曲线」的唯一交点。 因此仿真中只施加风机曲线压力,流量由系统阻力自然涌现。


2. 数值方法

  • 求解器:D3Q19 格子玻尔兹曼,BGK 碰撞 + 推流 + 半步反弹(bounce-back)固体边界
  • 加速:NVIDIA GPU(numba.cuda),实测约 120 MLUPS(百万格点更新/秒)
  • 网格:100 格/m,240 × 130 × 265 = 8,268,000 单元(本机 8 GB 显存上限)
  • 进口:压力进口(固定密度 = 风机曲线压力),速度零梯度自由
  • 出口:压力出口(密度 = 1,速度自由)
  • 布风板:固体薄板 + 规则开孔(1 格孔 / 间距 4 格 ≈ 6.25% 开孔率)
  • 固体壁:无滑移

缩放

量 说明
U_LB 0.015(进口参考速度对应的格子速度)
SCALE_U U_in / U_LB
SCALE_P 1.2 × SCALE_U²(格子压力 → Pa)

3. 结果(100 格/m,2 mm 板厚)

指标 数值
工况点风量 Q ≈ 1463 m³/h(风机曲线与系统阻力交点)
风机压力 4350 Pa(关死)
风箱静压 4061 Pa
沸腾段静压 181 Pa
布风板压差 +3880 Pa(风箱 > 沸腾段 ✓)
最大流速 4.89 m/s
求解 3900 步 / 184 s

压力符号、结构、量级均正确:风箱高压 → 布风板节流降压 → 沸腾段低压 → 向排风递减。


4. 输出图(docs/assets/,19 张,4× 分辨率)

文件 内容
fbed-overview.png 四联总览(x-z / y-z / 近板 / 沸腾段)
fbed-montage-plenum.png 风箱层水平切面 ×5(4 段侧进风分布)
fbed-montage-nearplate.png 布风板近区水平切面 ×6(射流合并)
fbed-montage-freeboard.png 沸腾段/渐扩/排风水平切面 ×6
fbed-montage-xz.png 垂直切面 x-z ×5
fbed-montage-yz.png 垂直切面 y-z ×8(沿长度)
fbed-sections.png 4 个区段中心 y-z
fbed-zoom-sections.png 按区段剖分的 x-z 局部放大
fbed-streamlines.png 双大图流线
fbed-vectors.png 速度矢量图
fbed-components.png 速度分量 ux/uy/uz
fbed-3d-cutaway.png 三正交切面三维剖切
fbed-pressure.png 静压场四联
fbed-pressure-drop.png 布风板压差分析
fbed-uniformity.png 各区段流量均匀性
fbed-decay.png 沿高度气速衰减
fbed-flowrate.png 进风/布风板/排风 风量平衡
fbed-tilt.png 布风板 5° 倾斜对近板风向影响
fbed-geometry.png 几何与边界示意

数据:docs/assets/fbed_fields.npz(ux/uy/uz/rho/solid)。


5. 复现

# 依赖: Python 3.11+, numpy, numba, numba-cuda, CUDA 13.2 runtime, matplotlib
# 主仿真 (100 格/m, 约 3-5 分钟)
python tools/fbed_simulation.py

# 批量出图 (秒级, 读 npz)
python tools/fbed_figures.py
python tools/fbed_analysis.py

环境变量(可选):

变量 默认 说明
FBED_PPM 100 网格分辨率 (格/m)
FBED_ULB 0.015 参考格子速度(越小越不可压,但越慢)
FBED_HOLE / FBED_SPACE 1 / 4 开孔大小 / 间距(格)
FBED_TB 120 求解墙钟预算 (s)
FBED_DP 2900 额定压差 (Pa)

6. 脚本说明

文件 作用
tools/fbed_simulation.py 主求解器(GPU LBM + 风机曲线 + 多孔板)
tools/fbed_figures.py 切面/矢量/压力/流量等批量出图
tools/fbed_analysis.py 几何/倾斜/均匀性/衰减/压差等分析图
tools/fbed_check.py / fbed_check2.py 通量与压差诊断
tools/fbed_probe.py 切面 ASCII 速度探针
tools/fbed_rans.py RANS(投影法+AMG) 尝试版(未收敛,留档)

7. 局限与已知问题(诚实声明)

  1. 板厚亚网格:2 mm 板厚在 100 格/m(格距 10 mm)下小于一个网格,只能按 1 格最薄板近似。要真正解析 2 mm 板 + 2 mm 孔,需 ~500 格/m(约 10.3 亿单元,需 ~157 GB 显存,本机 8 GB 无法承载)。
  2. 5° 倾角未施加:倾角水平分量仅为垂直分量的 8.7%,粗网格下孔道倾斜不足 1 格,无法几何分辨;作为动量源施加时曾导致进口反流,暂关闭。方向已按设计设为 -x。
  3. 不可压近似:LBM 密度波动 ~2.5%,压力场为相对值。
  4. 层流:未加湍流模型,粗网格下湍流混合未解析。
  5. 工况点偏低:细网格把布风板开孔阻力解析得更"阻",工况点落在 1463 m³/h;若要标定到额定 10000 m³/h,需放大等效开孔或减薄板厚。

8. 前景价值与 AI 相关性

8.1 工业价值

流化床是化工、能源、制药、食品行业的核心装备(催化裂化、煤/生物质气化、干燥、造粒、燃烧、涂层)。 空床气相流场是流化床设计与运行的基础:

  • 布风均匀性 → 决定起始流化质量与死区分布
  • 孔板射流动量 → 决定气泡生成与颗粒夹带
  • 渐扩段气速衰减 → 决定颗粒扬析与返料
  • 风箱配气 → 决定分区控制精度

传统 CFD(Fluent / OpenFOAM)单次仿真为小时~天级,无法支撑设计迭代、参数扫描与在线优化。 本项目用 GPU LBM 把空床流场压到分钟级,可直接用于:

场景 价值
布风板开孔/倾角优化 快速比选方案,缩短研发周期
分区风量配比标定 验证各区段均匀性
故障诊断(堵孔、偏流) 快速复现异常工况
教学/演示 实时可视化流场结构

8.2 科学意义

  • 验证了 「恒功率风机曲线 + 压力进口 + 多孔板」 这一物理自洽的建模路线: 流量与压差由「风机曲线 ∩ 系统阻力」唯一确定,而非人为指定。
  • 定量揭示了不可压求解器表达高损失系统(损失系数 K≈900)的固有限制: 2900 Pa 压差在 LBM 中对应约 10% 密度波动,逼近不可压假设边界。
  • 给出了亚网格多孔板的建模误差(2 mm 板在 100 格/m 下不可分辨)。

8.3 AI 相关性(核心)

本项目天然是 AI for Science / 神经算子 的数据工厂与落地场景:

GPU 求解器(真值)  ──►  参数化数据集  ──►  神经算子训练  ──►  毫秒级实时推理
   (本仓库)            (几何/边界/风速)     (FNO/GNN/Transformer)   (数字孪生)
AI 方向 与本项目的结合点
神经算子 (Neural Operator) FNO / DeepONet 把「解算子」参数化为网络权重;输入几何+边界,输出全场
图神经网络 (GNN) MeshGraphNet 类模型适配非结构/复杂几何,天然处理不规则边界
Transformer / Attention 把流场当序列建模,长程依赖捕捉回流与全局耦合
物理约束机器学习 (PINN) 在损失中嵌入 Navier-Stokes / 守恒律,提升外推可信度
数字孪生 毫秒推理 → 参数拖拽即时刷新 → 在线优化与预测性维护
代理模型加速 用 1% 的算力逼近求解器精度,支撑大规模参数扫描

闭环价值:

  1. 数据:GPU LBM 批量生成 (几何 + 风机曲线 + 开孔率) → 流场/压力场
  2. 训练:FNO / GNN / Transformer 学习解算子
  3. 推理:毫秒级出结果,替代逐次 CFD
  4. 迭代:在线优化布风板与配气,反馈回设计

本仓库当前提供第 1 环(真值引擎 + 快速基线);后续接入第 2–4 环即可实现 「物理世界流场实时仿真」的完整闭环。

8.4 战略意义

  • 自主可控:全链路 Python + 开源栈(numba / CUDA / scipy / pyamg),无商业 CFD 许可依赖
  • 可扩展:同一套 GPU 求解器可平移至洁净室、数据中心、燃烧室、气象等流场场景
  • 算力弹性:单卡可跑 100 格/m,多卡/云 GPU 可扩展至 500 格/m 以上

9. 后续方向

  • 用 OpenFOAM(simpleFoam + k-ε + porousBafflePressure)在 CPU 上跑更高分辨率(~250–300 格/m)
  • 布风板改用多孔跳变边界(Δp = K·½ρv²,K≈900),避免离散开孔的网格依赖
  • 以求解器生成参数化数据集 → 训练 GNN/Transformer 神经算子 → 毫秒级实时推理

本项目为物理世界流场实时仿真方向的水平卧式流化床 Demo。

S
Description
物理流畅仿真-横波扩散算法验证
Readme 89 MiB
Languages
Python 99.1%
JavaScript 0.9%