Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

条件付きサブシステムへのバリアント条件の伝播

条件付きサブシステム (条件付き実行サブシステムとも呼ばれる) とは、外部信号を使用して実行を制御できるタイプのサブシステムです。

条件付きサブシステムの例としては、Enabled Subsystem、Triggered Subsystem および Function-Call Subsystem があります。条件付きサブシステムを制御する信号は "制御信号" と呼ばれ、信号がブロックに入る端子は "制御端子" と呼ばれます。条件付きサブシステムの詳細については、条件付き実行サブシステムの概要を参照してください。

バリアント ブロックを使用して、条件付きサブシステム ブロックの実行を制御できます。

このモデルについて考えます。

Variant Source1 は、バリアント条件 V==1 をもつ単入力/単出力の Variant Source ブロックです。このモデルをシミュレートするとき、Variant Source1 ブロックからのバリアント条件は Subsystem ブロックの制御端子に伝播した後、その入力端子と出力端子に接続されたブロックに伝播します。

たとえば、V=1 の場合、Variant Source1 はアクティブで、バリアント条件は Subsystem ブロックの制御端子に伝播します。したがって、Subsystem ブロックもアクティブで、バリアント条件は Subsystem ブロックの入力端子と出力端子に接続されたブロックに伝播します。

Function-Call Subsystem へのバリアント条件の伝播

Function-Call Subsystem ブロックは、他のブロックがシミュレーション中に直接呼び出すことができるサブシステムです。Function-Call Subsystem ブロックは手続きプログラミング言語の関数と同じです。詳細については、Function-Call Subsystem の使用を参照してください。

単入力/単出力のバリアント ブロックを使用して、Function-Call Subsystem ブロックを条件付きにすることができます。

Variant Source ブロックには条件 V==1 があります。ここで、VSimulink.Parameter です。

このモデルをシミュレートするとき、Variant Source ブロックからのバリアント条件は SubA サブシステム ブロックの制御端子に伝播し、さらにその入力端子と出力端子に接続されたブロックに伝播します。

たとえば、V=1 の場合、SubA ブロックはアクティブです。また、バリアント条件は、入力端子 (In1) と出力端子 (Out1) に接続されたブロックに対して前後に伝播します。

V~=1 のとき (たとえば V=0)、SubA は非アクティブになり、Out1 を非アクティブにします。In2 はアクティブな SubB に接続されているため、アクティブなままです。

In2SubB に接続されていない場合、V~=1 のとき、In2 は非アクティブになります。

メモ: Function-Call Subsystem がグループ化されたバーチャル サブシステム内に配置された場合、Function-Call Subsystem をトリガーするバリアント条件は、上位のサブシステム ブロックの入力において対応する条件に一致していなければなりません。

詳細