メール (前頁)<< >>(次頁) (Up)
2章 海洋物質循環(CO2吸収)と海洋開発経済モデル作成のための準備知識
2.3 要素モデルの動作
前の頁でも記載している通り、CommonMPではシミュレーションモデルを「要素モデル」の組み合わせとして作成します。
その詳細方法は、CommonMPホームページで紹介されている下記を参照ください。
国土技術政策総合研究所
令和2年度作成
1.洪水流出シミュレーションプロジェクトの構築方法(pdf形式:7.8MB)
図2.3.1にモデル作成するために、要素モデルを配置し、それらを接続して全体モデルを作成している様子を示します。
作図を行うようにツールボックス内の「演算要素」、「入力要素」、「出力要素」を、選択してモデル管理画面上に配置した後、各「要素モデル」を接続要素で結合します。(この時、接続要素には方向が有る事に注意してください)
ここで作図した要素モデルの配置と接続は、実際に実装するモデルを入れるための「箱」であり、この箱の中に「要素モデル」本体を入れていきます。
ライブラリ管理画面から、必要とする要素を選択して各箱の中に入れれば、要素モデルの作成は完成します。
図2.3.1 要素モデルを接続することで、モデル全体を制作している様子
図2.3.2に動物プランクトンを中心とした、各要素モデルの接続を示しています。
動物プランクトンへの入力としては、植物プランクトンの捕食、呼吸によるO2の吸収等があります。また、出力としては死や糞によるデトリタスへの供給、ネクトンからの捕食等があります。
(但し、この入出力の表現は正確ではなく、呼吸時にはCO2を排出します。また、捕食される動物プランクトンの数は、自分を捕食するネクトンの数に依存するため、ネクトン数を知らなければ、動物プランクトンからネクトンへの供給量は決定できません。この為、接続は一方向ではなく、双方向に設定する必要があります。これについては、後ほど詳しく説明します。)
ここで述べたいのは、「要素モデル」は、「他の要素モデル」からの入力と、「他の要素モデル」への出力が存在しているという事です。
図2.3.2 要素モデル「動物プランクトン」に接続される他の「要素モデル」
次に、「演算要素モデル」の動作について説明します。
一つの演算要素モデルの動作のフローを図2.3.3に示します。
図2.3.3 一つの要素モデルの動作フロー
図2.3.3に示す通り、シミュレーションを開始すると
@要素モデルのプロパティが設定されます。ここで、モデルが使用する係数等を設定します。
A要素モデル間の接続チェックを行います。ここでは、他の要素からどのような情報が取得されるのか等をチェックします。
B要素モデルの初期化を行います。ここで、要素モデルの各変数の初期値を設定します。
以上が、要素モデル開始前の準備となります。
以後、終了時間までの繰り返し計算を行います。
C入力:ここで、他の要素モデルの出力値を取り込みます。
D計算:ここで、入力を元に内部モデルに従って計算を行います。
E出力:ここで、計算結果を出力します。
計算は、モデルを構成している各要素モデルが順に呼ばれるため、各要素モデルはそれぞれδT秒のちの状態になります。
正確には 要素モデルのコールされる順番に従ってδT秒のズレが発生しますが、δTが十分小さいならば、ほぼ同時と見なします。(以降、「見なし同期」と呼ぶことにする)
図2.3.4に、上記処理フローを実行するメソッドの動作概念を示します。
図2.3.4 要素モデルの動作概念図
「要素モデル」の「プロパティ情報」と、「初期化情報」は画面を通して、設定します。
また、接続チェックによって、そのモデルが想定している入力が、どの接続入力かを判断し、内部の変数に設定します。
入力接続線からの入力は ReceiveData( ) メソッドを通して受信され、計算結果は、SendData( )
メソッドによって外部接続線に出力します。
演算に必要な情報は、「要素内演算中モデル」に格納します。これは、途中で計算を止めて再開する場合に、その情報をファイルに一時保管可能とする為です。
(前頁)<< >>(次頁)
初版:2022/05/22 |