タンクの例
この例では,周囲への出口を持つタンクをモデル化する.このモデルを使用して,タンクの高さに応じて流速がどのように変化するかを観察する.
コンポーネントのドラッグイン
新しいモデルを作成し,Modelica標準ライブラリから以下のコンポーネントをドラッグする:
- System:システムプロパティとデフォルト値を定義するために使用されるので,コンポーネントごとに定義する必要はない.
- FixedBoundary:出口での圧力 (境界条件) を定義するために使用される.
タンクパラメータの定義
Medium ドロップダウン メニューから,たとえば「Extension of the standard water package」などの流体を選択する.(このパラメータを空白のままにすることはできない)
Height:タンク全体の高さ.デフォルトでは,タンク内の液体の初期レベルは 0.5 * height of the tankに設定されている.デフォルトを維持することも, Initializationタブに移動してlevel_startパラメータを変更することによって変えることもできる.
Ports:他のコンポーネントを接続することができるタンクの出口を指す.
nPorts:この例では,アンビエントのみに接続したいため,nPortsを1に設定する.
use_portsData:use_portsDataをtrueに設定する.
portsData:portsDataをリストとして与える,つまり,中括弧 {} を使用して指定する必要がある.引数として関数Modelica.Fluid.Vessels.BaseClasses.VesselPortsData()を取る.Class Browserの検索フィールドに名前を入力して関数を開くと,入力を確認できる:
diameter,height,その他のパラメータを定義できる.この例では,ポートの高さを1m,直径を0.3mに設定する.zeta_outとzeta_inにはデフォルトを使用する.portsDataへの入力は次のようになる:{Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter = 0.3, height = 1)}
境界パラメータの定義
Medium:ドロップダウンメニューから,たとえば「Extension of the standard water package」などの流体を選択する.
nPorts:アンビエントはタンクにのみ接続されているため,値を1に設定する.
接続とシミュレート
Experiment Setupでシミュレーションの時間を指定し,シミュレートする:
解析
Simulation Centerで出口の質量流量とレベルをプロットする.質量流量はポートデータ tank.ports[1].m_flowから取得できる.レベルは,tank.levelのようにプロットすることで取得できる.
負の質量流量は,液体がタンクから移動していることを示す.液体レベルが減少すると,質量流量も減少する.