質量流量 — CAE用語解説

カテゴリ: 用語集 | 2026-01-15
CAE visualization for mass flow rate - technical simulation diagram

質量流量

🧑‍🎓

先生、質量流量ってCFDの基本量ですよね。どう使うんですか?

理論と物理

質量流量の定義と基本概念

🧑‍🎓

「質量流量」って、単純に「単位時間あたりに流れる質量」で合ってますか?体積流量と何が違うんですか?

🎓

その理解で正しいです。定義式は

$$ \dot{m} = \frac{dm}{dt} $$
です。体積流量
$$ Q = \frac{dV}{dt} $$
との決定的な違いは、密度の影響を受けないこと。例えば、圧力1MPa、温度20℃の空気と、同じ条件の水では、体積流量が同じ1 L/minでも、密度が約12 kg/m³と1000 kg/m³で大きく異なるため、質量流量は約0.0002 kg/sと0.0167 kg/sで80倍以上の差になります。CAEでは、特に圧縮性流体や気液二相流を扱う際、質量保存則の基礎変数として質量流量が必須です。

🧑‍🎓

密度が変わるということは、気体の解析では体積流量より質量流量の方が本質的ってことですか?CAEソフトではどう入力するのが一般的なんですか?

🎓

その通りです。気体では圧力・温度で密度が大きく変動するため、境界条件は質量流量で与える方が物理的に安定します。Ansys FluentやSiemens STAR-CCM+では、インレット境界条件として「Mass Flow Inlet」を直接指定できます。例えば、自動車エンジンの吸気ポート解析では、バルブリフトに応じた瞬時質量流量プロファイルを入力します。逆に、送風機の出口など、圧力がほぼ一定の場合は「Pressure Outlet」を設定し、質量流量は結果として算出させるのが一般的です。

🧑‍🎓

質量流量が保存される、という連続の式は具体的にどう書くんですか?また、それがCAEの計算でどう使われるんですか?

🎓

微分形の質量保存則(連続の方程式)は

$$ \frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \vec{v}) = 0 $$
です。CAEソルバーは、この式を計算領域のすべてのコントロールボリューム(セル)で離散化して解きます。例えば、あるセルに流入する質量流量の合計と、流出する質量流量の合計の差が、セル内の質量の時間変化率と等しくなるように方程式を立てます。収束判定の重要な指標として、計算領域全体の「質量流量の不均衡(Mass Imbalance)」が、例えば1e-5 kg/s以下であることを確認します。これが大きいと計算が物理的に破綻しています。

数値解法と実装

離散化とソルバーでの扱い

🧑‍🎓

「質量流量の境界条件」をソルバーが内部でどう処理するのかイメージできません。速度を指定するのと、何が根本的に違うんですか?

🎓

根本的な違いは、未知数として扱う変数です。速度境界条件では、速度ベクトルを固定値とし、圧力と密度をソルバーが調整して質量流量を決めます。一方、質量流量境界条件では、

$$ \dot{m} = \rho (\vec{v} \cdot \vec{n}) A $$
の値が固定されます。ソルバーは、例えば密度基底の解法なら、指定された
$$ \dot{m} $$
を満たすように、境界面での速度または圧力を反復計算で調整します。圧縮性流れでは、流入境界の温度も同時に指定する必要があり、そこから密度が計算され、結果的に速度が決まります。

🧑‍🎓

離散化の際、セル界面の質量流量はどう計算されるんですか?単純に平均?

🎓

いいえ、単純な算術平均ではありません。対流項の離散化スキームに依存します。例えば、1次風上差分なら、上流側セルの値を使って

$$ \dot{m}_f = \rho_{upwind} (\vec{v}_f \cdot \vec{n}) A_f $$
と計算します。より高精度なQUICKや2次風上スキームでは、上流側と下流側の複数のセル値を使って界面値
$$ \phi_f $$
を補間します。Ansys Fluentのデフォルトは2次風上です。この界面流量の計算精度が、渦やせん断層の解像度に直結します。ただし、高次スキームは計算コストと発振のリスクが上がります。

🧑‍🎓

ソルバーの「Pressure-Based」と「Density-Based」で、質量流量の扱いは変わりますか?

🎓

大きく変わります。Pressure-Basedソルバー(低速~亜音速流れ向け)は、圧力補正法(SIMPLE, PISO)を用い、連続の式を圧力補正方程式の形で満たします。質量流量はこの補正プロセスの中心変数です。一方、Density-Basedソルバー(超音速流れ向け)は、密度、運動量、エネルギーの保存式をカップリングして解きます。こちらも質量保存は厳密に扱われますが、解法のアプローチが異なります。例えば、Fluentでマッハ数0.3以上の圧縮性流れを解く時、Density-Basedソルバーを選択すると、質量流量境界条件がより直接的に扱われ、衝撃波の解像度が向上することがあります。

実践ガイド

境界条件設定と結果検証

🧑‍🎓

実際の解析で、インレットに質量流量を設定する際、どんな単位系を使うのが無難ですか?SI単位のkg/sだと値が小さすぎて入力ミスしそうです。

🎓

実務では、プロジェクトや業界の慣習に合わせます。自動車業界ではg/sやkg/hがよく使われます。例えば、エンジン吸気量は数十から数百kg/hのオーダーです。航空宇宙ではlb/s(ポンド毎秒)も見かけます。重要なのは、ソフトウェア内で単位系を一貫させること。Ansys Workbenchでは「単位系」を設定すると、入力フィールドにその単位が表示されるので便利です。また、値が極端に小さい/大きいとソルバーのスケーリング問題を引き起こすことがあるので、例えば1e-5 kg/sではなく10 mg/sと入力するなど、オーダーを1前後に調整する工夫も有効です。

🧑‍🎓

計算が終わった後、質量流量が保存されているかどうかを確認するには、具体的にどこを見ればいいですか?

🎓

主要なCAEソフトには専用のモニター機能やレポート機能があります。Ansys Fluentなら、「Reports」→「Fluxes」で、選択した境界面(インレット、アウトレット、壁など)を通る質量流量の合計を算出できます。すべての流入面の合計と流出面の合計が、収束後の定常解析ではほぼ一致し(例えば差が1e-6 kg/s以下)、非定常解析ではその差が計算領域内の質量変化率と一致していることを確認します。また、ソルバーの収束履歴に「Net Mass Flow Rate」や「Mass Imbalance」のモニターを追加して、反復計算中にゼロに近づいていくことをリアルタイムで確認するのが標準的な手順です。

🧑‍🎓

複数のインレットやアウトレットがある系で、一部の境界条件が質量流量、他が圧力の場合、設定順序や注意点はありますか?

🎓

設定順序自体に大きな影響はありませんが、物理的に「過制約」や「未制約」にならないように注意が必要です。典型的な過制約は、すべての開口部に質量流量を設定すること。これでは圧力が決まらず、ソルバーが発散します。少なくとも1か所は圧力基準(Pressure Inlet/Outlet)が必要です。逆に、すべて圧力条件だと質量流量が決まらない未制約にはなりませんが、現実の駆動力が再現できない場合があります。例えば、換気扇のある部屋の解析では、ファン面に質量流量(または体積流量)を、外部開口部に圧力条件を設定するのが現実的です。

ソフトウェア比較

各ソフトウェアでの実装と特徴

🧑‍🎓

Ansys FluentとSiemens STAR-CCM+で、質量流量の入力インターフェースや機能に違いはありますか?

🎓

基本的な概念は同じですが、インターフェースと高度な機能に違いがあります。Fluentでは、境界条件ダイアログで「Mass Flow Rate」を直接入力し、「Direction Specification Method」で流入方向を定義します。STAR-CCM+では、「Mass Flow」を選択し、値と共に「Flow Direction」を「Normal to Boundary」や「Components」で指定します。STAR-CCM+の特徴は、「Field Function」を使って、位置や時間の関数として質量流量を柔軟に定義できる点です。例えば、ピストン運動に連動した正弦波状の質量流量プロファイルを、GUI上で数式として直接記述できます。FluentでもUDF(ユーザ定義関数)で同様のことは可能ですが、プログラミング知識が必要です。

🧑‍🎓

COMSOL Multiphysicsのようなマルチフィジックスソフトではどうですか?「質量流量」の設定は物理場によって変わりますか?

🎓

COMSOLでは、物理場インターフェースごとに流入条件の名称が異なりますが、本質は同じです。「CFDモジュール」や「微視的流れ」では「流入」(Inlet)境界に「質量流量」を指定できます。「非等温流」や「反応流」を扱う場合も同様です。COMSOLの強みは、これに「固体力学」や「電磁界」を直接連成させられる点です。例えば、MEMSのマイクロポンプ解析で、ピエゾ駆動による膜変形(固体力学)で生じる体積変化を、流路内の質量流量源項として自動的に連成させることができます。この場合、ユーザが質量流量を直接指定するのではなく、連成物理から間接的に決まります。

🧑‍🎓

オープンソースのOpenFOAMでは、質量流量境界条件はどう設定するんですか?

🎓

OpenFOAMでは、境界条件は「0/」ディレクトリ以下の各場(U, p, Tなど)のファイルで、パッチごとに指定します。質量流量を直接指定する境界タイプは「flowRateInletVelocity」です。この設定では、`massFlowRate` または `volumetricFlowRate` のキーワードに値を書き、ソルバーが境界での速度を内部で調整します。例えば、`inlet { type flowRateInletVelocity; massFlowRate 0.01; // kg/s value uniform (0 0 0); }` と記述します。商用ソフトに比べて設定ファイルを直接編集する必要があり、初期学習コストは高いですが、カスタマイズ性は極めて高く、特殊な質量流量プロファイルもプログラミングで自由に実装できます。

トラブルシューティング

よくあるエラーと対策

🧑‍🎓

質量流量をインレットに設定して計算したら、ソルバーが「reversed flow」の警告を出しました。これは問題ですか?どう対処すればいいですか?

🎓

「逆流」警告自体は、計算の初期段階や流れが複雑な領域ではよく起こり、必ずしもエラーではありません。しかし、定常計算で収束後も継続する場合は問題です。原因は、設定した質量流量に対して出口の圧力が高すぎる、または流路内に大きな障害物があって圧力損失が想定より大きいなどです。対策は、(1) 初期条件を現実に近づける(例えば、インレット近傍のセルに適切な速度を設定)、(2) ソルバー設定で「Pressure Outlet」の「Backflow Direction Specification Method」を「Normal to Boundary」から「From Neighboring Cell」などに変更する(Fluentの場合)、(3) 非定常計算として解く、などがあります。根本的には境界条件の設定が物理的に妥当か再検討が必要です。

🧑‍🎓

計算が発散して、「mass flow rate at inlet is too large」のようなエラーが出ました。値を見直す以外の原因はありますか?

🎓

はい、質量流量の値自体は正しくても、関連する他の設定が原因の場合があります。主な原因と対策は以下の通りです。
1. **メッシュ品質**: インレット面のメッシュが極端に粗い、または歪んでいる。界面での流量計算が不安定になります。面メッシュの品質を改善しましょう。
2. **密度の設定**: 材料の密度が間違っている、または理想気体則を使う場合に操作条件(圧力、温度)が非現実的。例えば、温度を300Kと設定すべきところを3Kと入力すると、密度が100倍になり、実質的な質量流量が想定より大幅に増加します。
3. **ソルバースキーム**: 高次精度スキームと大きな質量流量の組み合わせで発振することがあります。まずは1次風上差分で安定化させ、収束後にスキームを上げる「スキームの緩和」が有効です。
4. **タイムステップ(非定常)**: タイムステップが大きすぎて、1ステップで流入する質量がセルの容量を超える(Courant数が大きすぎる)。タイムステップを小さくします。

🧑‍🎓

複数の流路が合流する「マニホールド」の解析で、各インレットに細かい質量流量を設定したのに、出口の総質量流量が合わないことがあります。メッシュ依存性ですか?

🎓

メッシュ依存性も一因ですが、より直接的な原因は「数値的な流れの分配」にあります。合流部の複雑な渦や逆流によって、設定通りの流量が各枝に分配されないことが起こり得ます。対策としては、
1. **合流部のメッシュを細かくする**: 特に、各流路が衝突するコーナー部分の解像度を上げます。
2. **初期条件を工夫する**: すべてのインレットに一様な速度(質量流量に比例した値)を初期条件として与え、計算の出だしを安定させます。
3. **ソルバー設定を調整する**: 圧力-速度連成のソルバー(SIMPLE, PISO)の緩和係数を小さく(保守的に)して、各反復での流量調整を穏やかにします。
4. **現実的な境界条件に変更**: 可能であれば、マニホールドの上流側の共通ダクトまでモデルに含め、そこに一つの質量流量を設定し、下流の分配は流れの抵抗(圧力損失)によって自然に決まるようにモデル化する方が、現実に近く、数値的にも安定することが多いです。

この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
プロフィールを見る