貯水槽のスロッシング解析

貯水槽のスロッシング解析

貯水槽のスロッシング解析

1. はじめに

スロッシングは自由表面を有する界面の振動現象です。スロッシングは減衰しにくいため、一度スロッシングが起きると長時間にわたって振動し続けます。さらに固有振動数に近い振動数で加振されると共振が発生します。ロケットの燃料タンク、タンクローリーやLNGタンカーの燃料の運搬、石油貯蔵タンクや貯水槽の地震時の溢水等、安全性の面から見ても様々な分野でスロッシング対策が必要となります。

円柱や矩形などのシンプルな形状では、固有振動数の理論式が定式化されていますが、形状が複雑になるほど理論式から共振を判断する事は難しくなります。流体解析ソフトを利用すると、さまざまな条件下でのスロッシング状況を確認する事ができます。

オープンソースコードOpenFOAMのVOF法のソルバーであるinterFoamを利用して、スロッシング解析を実施しました。精度検証としておこなった矩形水槽における共振の確認計算と、解析事例として貯水槽の溢水解析について説明します。

 

2. 矩形水槽の検証

2-1. モデル説明

図1に示す矩形プールにおいて加振周期を変更したスロッシング解析を2ケース行い、界面の振動を調査しました。

A=10m、b=5m、水深9mにおける1次モード(i=1、j=1)の固有振動数は、以下に示す式から算出可能で、0.2784[1/s]となります(=周期3.592秒)。

参考文献:
機械学会編.事例に学ぶ流体関連振動.第 2 版,技報堂出版,2003, 344p
Robert D.Blevins PhD. FORMULAS FOR NATURAL FREQUENCY AND MODE SHAPE, 1979. 367p

 

図1 モデル図(左:寸法、右:メッシュ図)

 

 

2-2. 計算条件

図2に加振周期を示します。計算は2ケース実施し、ケース1では加振周期3.592秒をケース2では1.796秒を定義します。
2-1節で示した通り、今回計算する矩形水槽の1次モードの固有振動数は0.2784[1/s](=周期3.592秒)です。このため、ケース1では共振して時間経過とともに波が高くなることが予想されます。一方、ケース2では波が打ち消し合い水面の変動はほとんど起きない事が予想されます。

 

 

矩形水槽に定義した単振動の加振周期

図2 加振周期

 

 

 

 

2-3. 計算結果

図3に、ケース1とケース2のアニメーションを示します。

 

 

図3-1 ケース1

 

図3-2 ケース2

ケース1では共振により、計算時間の経過とともに波高が高くなる様子が確認できました。

一方、ケース2では。界面の振動が抑えらえる様子が確認できました。

 

 

3. 貯水槽のスロッシング

3-1. モデル説明

図4に示す貯水槽におけるスロッシングの解析事例です。地震波を再現した加振データを水平方向に付加し、溢水の様子を確認しました。

 

 

貯水槽の流体解析のモデル図

図4 貯水槽のモデル図

 

3-2. 計算条件

図5にメッシュ図を、図6に地震波を示します。

 

 

図5 メッシュ図

 

貯水水槽に定義した地震波

図6 地震波

 

 

3-3. 計算結果

図7に溢水の様子のアニメーションを示します。

 

 

 

図7 貯水槽のスロッシング

 

4. まとめ

OpenFOAMによるスロッシング解析の事例を紹介しました。

OpenFOAMは非構造格子に対応しているため、複雑な曲面を有する水槽でも形状を正確に再現する事ができます。また。境界層メッシュも作成可能です。一般的に、自由表面の計算を必要とするスロッシングの計算は大規模になりますが、ライセンスフリーのOpenFOAMを利用する事で、様々な水槽形状のスロッシング状況を低コストで実施する事が出来ます。

 

 

 

5. 補足(設定の概要説明)

流体解析ソフトでスロッシングの計算を行う際は、実際に剛体運動で水槽を振動させる方法と、重力方向を地震波に応じて時間変化させる方法等があります。本解析事例では、水槽を剛体運動で振動させて計算しました。

OpenFOAM で、剛体運動させる際は、constantフォルダ下にdynamicMeshDictファイルを作成します。
(※ ファイル名はバージョンによって異なります。ここでは、バージョン6で説明します。)
6自由度の剛体運動は、solidBodyMotionFunctionをtabulated6DoFMotionに指定し、各時刻の並進3成分と回転3成分のデータを、テーブル形式で定義します。

 

dynamicMeshDictファイルの設定例を以下に示します。
---------- dynamicMeshDictファイル---------
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolver solidBody;
solidBodyMotionFunction tabulated6DoFMotion;
CofG (0 0 0);
timeDataFileName "$FOAM_CASE/constant/6DoF.dat";
-------------------------------

ここで、CofGは剛体運動させる際の重心位置を示します。

 

この事例では、各時刻の並進3成分と回転3成分のデータを6DoF.datファイルとして定義しています。XとY方向の並進運動のみ指定しているため、それ以外の成分は0となります。
---------- 6DoF.datファイル---------
101
(
( 0 (( 0 0 0)(0 0 0)))
( 0.1 (( 0.006266662 1 0)(0 0 0)))
( 0.2 (( 0.012434494 2 0)(0 0 0)))


-------------------------------
ここで、先頭の101はデータの個数を示します。
()内の初めの数値が時刻を、次の()内が並進3成分を、その次の()内が回転の3成分を示します。

 

参考チュートリアル:
/opt/OpenFOAM/OpenFOAM-6/tutorials/multiphase/interFoam/laminar/sloshingTank3D6DoF/

環境水理カテゴリの最新記事