液体タンク
概要と主要な概念
FluidTankは、材料を同時に送受信できるシンプルな液体オブジェクトです。モデラーはタンクの最大容量のほか、タンク内のコンテンツが到達するとトリガーを起動する点(「マーク」と呼ばれる)を3つまで設定できます。
FluidTankは最も一般的な液体オブジェクトです。材料を同時に送受信できます。モデラーは、入力レートと出力レートを制御する変数に詳細にアクセスできます。また、各ティックの最後に起動する2つの関数が備わっています。これらの関数は、「AdjustOutputRates」と「AdjustInputRates」と呼ばれ、モデル実行中の入力レートや出力レートの値の変更に使用されます。
タンクでは、コンテンツを持たないモデル、つまり量が設定されたモデルを開始できます。コンテンツを持つタンクが開始されると、実行中にその分だけ作成されます。ただし、上流から材料を受け取り続ける場合もあります。開始時にコンテンツの値が固定されていると、モデルに入る材料の量が固定されるため、大変便利です。モデラーの流入材料のストリームを一定または無限に設定する場合は、代わりにFluidGeneratorを使用します。
Tankの最大容量はモデラーが定義します。タンクのコンテンツがこの値を上回ることはありません。ティックの終了時に、Tankが現在の保持量よりも多くの量を受け取る必要があるとティッカーが判断した場合、Tankを満たすのに必要な量だけの材料が転送されます。
モデラーは、Tankのコンテンツが到達したときにトリガーを起動する3つの点を定義できます。これらの点は「マーク」と呼ばれます。タンクのコンテンツがいずれかのマークを通過するたびに(上昇または下降のいずれか)、トリガーが起動します。このトリガーは、ポートの開閉、メッセージの送信、レートの変更など、さまざまな操作に利用できます。2つ以上のマークが同じ値に設定されていると、そのうちの1つのみのトリガーが起動します。たとえば、低マークと中マークが両方とも10に設定されている場合、タンクのコンテンツが9から10に変わったときに、低マークのトリガーのみが起動します。
状態
統計的な目的で、液体タンクは、シミュレーション実行中、さまざまな位置で次のいずれかの状態になります。
空
タンクに材料がありません。
空ではない
タンクには材料が入っています。
フル
タンクの最大容量に達しました。一部の材料を送り出さない限り、材料を受け取ることができません。
プロパティ
液体タンクオブジェクトには、さまざまなプロパティを持つ7つのタブがあります。最後の5つのタブは、ほとんどの液体オブジェクトに共通する標準タブです。これらのタブのプロパティの詳細については、以下を参照してください。
[統計]タブは廃止され、このオブジェクトではサポートされていません。代わりにオブジェクトのクイックプロパティの統計グループを使用します。
残りの2つのタブである[タンク]タブと[マーク]タブは、液体タンクオブジェクトに固有です。これらのタブのプロパティについては、次の2つのセクションで詳しく説明します。
[タンク]タブ
[タンク]タブには次のプロパティがあります。
最大コンテンツ
このオブジェクトがいつでも保持できる液体材料の最大量。
初期コンテンツ
モデルがリセットされたときのオブジェクト内の材料の量。
初期製品
これにより、[初期製品ウィンドウ]が開き、モデラーはこのオブジェクトにある材料の製品IDとサブコンポーネントの組み合わせを定義できます。
入力レートを調整
この関数はティックごとに呼び出され、モデル実行中にユーザーが入力レートとスケール係数を変更できるようにします。レートとスケール係数を保持するノードへの参照となっているアクセス変数があります。現在のレート(オブジェクトまたはポート)を読み取るには、getnodenum()コマンドを使用します。レートを変更するには、setnodenum()を使用します。スケール係数を読み取ったり変更したりするには、getnodenum()とsetnodenum()をrank()コマンドとともに使用します。
出力レートを調整
この関数はティックごとに呼び出され、モデル実行中にユーザーが出力レートとスケール係数を変更できるようにします。レートとスケール係数を保持するノードへの参照となっているアクセス変数があります。現在のレート(オブジェクトまたはポート)を読み取るには、getnodenum()コマンドを使用します。レートを変更するには、setnodenum()を使用します。スケール係数を読み取ったり変更したりするには、getnodenum()とsetnodenum()をrank()コマンドとともに使用します。
入力ポート
これらのプロパティは、オブジェクトが上流のオブジェクトから材料を受け取る方法に影響します。
- 最大オブジェクトレート - 結合したすべての出力ポートを通って材料がこのオブジェクトに入る最大レート。
- 最大ポートレート - 材料が任意の1つのポートを通ってこのオブジェクトに入る最大レート。
- 入力ポートのスケール係数 - テーブルの各行は1つの入力ポートのスケール係数です。値に最大ポートレートを掛けて、その特定のポートの実際の最大レートを決定します。これにより、モデラーはモデル実行中に個々の入力ポートのレートを変更できます。
出力ポート
これらのプロパティは、オブジェクトが下流のオブジェクトに材料を送る方法に影響します。
- 最大オブジェクトレート - 結合したすべての出力ポートを通って材料がこのオブジェクトを離れる最大レート。
- 最大ポートレート - 材料が任意の1つのポートを通ってこのオブジェクトを離れる最大レート。
- 出力ポートのスケール係数 - テーブルの各行は1つの出力ポートのスケール係数です。値に最大ポートレートを掛けて、その特定のポートの実際の最大レートを決定します。これにより、モデラーはモデル実行中に個々の出力ポートのレートを変更できます。
[マーク]タブ
[マーク]タブには次のプロパティがあります。
低マーク
コンテンツがこの値を超えると(上昇または下降)、PassingLowMarkトリガーが起動します。
中マーク
コンテンツがこの値を超えると(上昇または下降)、PassingMidMarkトリガーが起動します。
高マーク
コンテンツがこの値を超えると(上昇または下降)、PassingHighMarkトリガーが起動します。
通過低マーク
コンテンツが[低マーク]を通過すると、このトリガーが起動します。その一般的な用途には、ポートの開閉、メッセージの送信などがあります。液体レベルがマークを通過して上昇しているか、下降しているかをモデラーに知らせるアクセス変数があります。
通過中マーク
コンテンツが[中マーク]を通過すると、このトリガーが起動します。その一般的な用途には、ポートの開閉、メッセージの送信などがあります。液体レベルがマークを通過して上昇しているか、下降しているかをモデラーに知らせるアクセス変数があります。
通過高マーク
コンテンツが[高マーク]を通過すると、このトリガーが起動します。その一般的な用途には、ポートの開閉、メッセージの送信などがあります。液体レベルがマークを通過して上昇しているか、下降しているかをモデラーに知らせるアクセス変数があります。