人気ブログランキング
人気ブログランキング
OPEN FOAMあれこれ指南 PR

OpenFOAMで自然換気と快適性評価をやってみた(PMV・PPD・空気齢)

記事内に商品プロモーションを含む場合があります

すっかりOpenFoamにのめり込んでしまっています。

次に行うのは、部屋の自然換気の計算です。

今回はOpenFOAM(v2412)を使って、室内の自然換気と快適性評価(PMV, PPD, 空気齢など)をやってみた。

モデルはSTLで作った「壁と屋根に開口を持つ室内」。窓から空気が入って、天井の開口から抜けていくイメージ。

ソルバーは buoyantSimpleFoam を使用。定常状態の熱流体解析を目指します。

CFDだけで「空気の流れ」+「温度分布」+「快適かどうか?」まで全部見られるのは面白いです。

使用モデルと条件

  • モデル:STLファイル3種(壁・inlet・outlet)
    • wall.stl(壁・床・天井)
    • inlet.stl(壁の通気口)
    • outlet.stl(屋根の排気口)
  • 室内サイズ例:5m × 5m × 3m(だいたい)
  • 条件設定:真夏の猛暑を想定
    • 壁温度:315 K(約42℃)
    • 外気温:310 K(約37℃)
    • 窓からの流入温度:25℃の冷風
    • 重力方向:-Z(g = (0 0 -9.81))
    • 乱流モデル:kOmegaSST
    • Boussinesq近似:使用(密度差による浮力だけ考慮)

境界条件の設定メモ

  • 0/T(温度)
    • wall:fixedValue 315;
    • inlet:fixedValue 298; outlet:type zeroGradient;
  • 0/U(速度)
    • wall:noSlip;
    • inlet:fixedValue uniform (0 0.5 0);
    • outlet:pressureInletOutletVelocity;
  • 0/p_rgh(静水圧補正圧力)
    • wall:fixedFluxPressure;
    • outlet:prghTotalHydrostaticPressure;
  • 0/alphatcalculated(内部は 1e-5、壁は,compressible::alphatJayatillekeWallFunction)

数値安定化の工夫

  • 速度制限(fvOptions)
    • velocityDampingConstraintUMax 10;
    • 数値発散を防止しつつ物理的な上限も保てる
  • 温度制限(fvOptions)
    • limitTemperaturemin 273; max 330;
    • 上昇しすぎや低下しすぎをクランプ(冷えすぎて全体280K固定化 → 起きる)

快適性評価(PMV/PPD/DR)

  • OpenFOAMの comfort functionObject を使用
    • 出力される場:
      • PMV:-3(寒い)〜 +3(暑い)
      • PPD:%(不快と感じる人の割合)
      • DR:ドラフト感度(寒い空気の風当たり)
  • 条件パラメータ:
    • 着衣量(clo):0.6
    • 代謝量(met):1.2
    • 放射温度:壁温度と同じ
    • 湿度:50%
計算結果(PMVを表示)

換気効率評価(空気齢)

  • がっつりチュートリアルを参考にしています。
  • age functionObject を使用(OpenFOAM v2412以降で標準装備)
  • 年齢0(fresh air)がinletから入り、1秒ごとに「1歳とる」
  • 滞留してる空気は「年を取っている」→ 換気効率が悪いエリアがわかる
  • age フィールドとして出力(ParaViewで等値面で見やすい)
空気齢を色で表してみた。

収束と計算時間短縮テクニック

  • スキーム:
    • div(phi,U) → div(phi,U) bounded Gauss upwind;
  • ソルバー:
    • p_rghGAMG
    • U, TsmoothSolver(relTol 0.01)
  • fvSolution:
    • SIMPLE { consistent yes; } → SIMPLEC方式で加速
    • nNonOrthogonalCorrectors 2;

まとめ

  • OpenFOAMで自然換気 + 快適性評価が一通りできました。
  • STLジオメトリでも functionObject をうまく使えば、空気齢やPMV/PPD/DRまで評価できます。
  • 温度や速度が暴走しないように fvOptions で制御するのがポイントですね。
  • ParaViewでの流線・温度断面・空気齢等値面表示がわかりやすくて超便利です。
  • 次は条件を変えて「通風 vs 自然換気の比較」や、「家具あり/なし」の差も見ることが出来そうです。
ABOUT ME
den
完全独学でWEBデザインやpythonアプリ製作や流体解析を無謀にも挑戦している中年男。生成AIのおかげで独学が出来る世の中に感謝。 工場勤務の会社員で3児の父。 チャレンジを忘れず、妻に怒られても心はおれず。 有益な情報を発信し、これを見ている人の為になればと思っています。
関連記事一覧