Main Content

条件付き実行サブシステムを使ったカウンター

この例では、Enabled Subsystem および Triggered Subsystem を使用してカウンターを実装する方法を示します。この例では、モデル sldemo_counters がタンクへの水の流れを制御し、オーバーフローの発生回数をカウンターでカウントします。タンクの水位が 30 秒以上にわたって 8 メートル以上になるとオーバーフローが発生します。

オーバーフローの発生回数のカウントに加えて、Triggered Subsystem はバルブを閉じてタンクへの水の流れを停止し、タンクの水位が最大許容限度を下回っている状態を維持します。

モデルを開きます。

open_system('sldemo_counters.slx')

Model that uses Enabled and Triggered subsystem to generate a counter that counts number of times water overflow occurs in a tank.

Enabled Subsystem を使用したカウンター

Enabled Subsystem は、水位が 8 メートル以上の場合に実行されます。サブシステムのカウンターは Unit Delay ブロックと Bias ブロックを使用し、30 秒以上にわたってその水位になるどうかをチェックします。正の出力信号 (Overflow Detected) 値によってオーバーフローが示されます。その値により、Triggered Subsystem Close Intake Valve の Trigger 端子がアクティブになります。

Enabled subsystem that contains a counter that checks if water level stays at a level equal to or more than 8 meter for more than 30 seconds or more.

Triggered Subsystem を使用したカウンター

モデルには 2 つの Triggered Subsystem が含まれています。

  • Close Intake Valve - このサブシステムには、Unit Delay および Bias ブロックを使用して、オーバーフローの発生回数をカウントし、オーバーフローが検出されたときにバルブを閉じる別のカウンターを実装するアルゴリズムが含まれています。このカウンターは Unit Delay ブロックを使用し、オーバーフローが検出されるたびに値を 1 ずつ増やします。

Triggered subsystem that counts number of times overflow occurs and closed the valve when there is overflow.

  • Open Intake valve - タンク内の水位が最小許容限度である 2 メートルを下回ると、このサブシステムがトリガーされます。このサブシステムには、バルブを開いて水をタンクに流入させるアルゴリズムが含まれています。

Triggered subsystem that is triggered when the water level is less than the equal to the allowable lower limit of 2 meters.

Tank Dynamics

Tank Dynamics サブシステムには、水の流入量、流出量、タンク断面積に基づいてタンク内の水位を決定するアルゴリズムが含まれています。このアルゴリズムは次の方程式を実装します。

Tank Dynamics algorithm that computes the current water level based on the water inflow-outflow rate and the tank cross sectional area.

モデルのシミュレーションと結果の確認

モデルのシミュレーションを実行します。

sim('sldemo_counters.slx');

シミュレーション中に、次のコンポーネントを観察します。

  • Emergency Indicator - Lamp ブロックは Enabled Subsystem ブロックの入力信号 (control signal) に接続されており、水位が 8 メートル以上になると赤色 (オン) になります。オーバーフローが発生していない場合、インジケーターは緑色 (オフ) です。たとえば、インジケーターは t =100s あたりで初めてオンになります。

  • Overflow Counter - このカウンターは、オーバーフローの発生回数を表す Display ブロックを使用します。たとえば、最初のオーバーフローは t =130s で記録されます。

  • Water Tank - このコンポーネントは、タンク内の水位を表す Horizontal Gauge ブロックを使用します。シミュレーション中、タンク内の水位の変化が示されます。

Model Animation.

  • Scope ブロック - このコンポーネントは、Scope ブロックを使用して、シミュレーションのさまざまなタイム ステップでの水位と、対応するバルブ開閉コマンドを表します。

シミュレーション中、タンクの水位が 2 メートルまで低下すると (たとえば、t =38s)、取水バルブが開き、水がタンクに流入します。

At t=18s, the tank height goes below 2m and allows intake valve is opened.

タンク内の水位が高さ 8 メートルに達し、その後 30 秒にわたってその高さ以上の水位が続くと、オーバーフローが発生します。その後、バルブが閉じてタンクへの水の流入が止まります。例として、t =100s から t =130s までのシミュレーションを観察してください。

Intake valve is closed to stop the overflow.

参考

|

関連するトピック