メインコンテンツ

サブシステムのタイプの検討

サブシステムはバーチャルまたは非バーチャルにすることができます。

  • "バーチャル サブシステム" は、ブロック線図を視覚的に整理するのに役立ちます。バーチャル サブシステムでブロックをグループ化したりバーチャル サブシステムを展開したりすると、ブロックのパスが変わることによってブロックの実行順序に影響が及ぶことがあります。

  • "非バーチャル サブシステム" は、"Atomic サブシステム" とも呼ばれ、ブロック線図を機能的に整理するのに役立ちます。非バーチャル サブシステムでブロックをグループ化したり非バーチャル サブシステムを展開したりすると、モデルの動作が変わります。非バーチャル サブシステムは、親モデルの実行時に、それぞれ単一ブロックまたはアトミック単位として実行されます。非バーチャル サブシステム内のブロックは連続的に実行されます。

ヒント

コントローラーおよびその他のスタンドアロン コンポーネントに対して、非バーチャル サブシステムまたは参照モデルを使用して、関連するブロックを囲むハード境界を定義します。ハード境界を事前に定義することで、コンポーネント用のコードを生成するときに、コストのかかるリファクタリングを行わずに済みます。

サブシステムがバーチャルなのか非バーチャルなのかを判断するには、以下のいずれかの方法を使用します。

  • ブロックの境界線を確認する。バーチャル サブシステムの境界線は細くなっています。非バーチャル サブシステムの境界線は太くなっています。

    Virtual and nonvirtual subsystem blocks

  • 関数 get_param を使用して boolean のブロック パラメーター IsSubsystemVirtual をクエリする。例については、サブシステムがバーチャルかどうかの判断を参照してください。

次の表では、非バーチャル サブシステムのタイプのいくつかを分類しています。

サブシステム実行の基準サブシステムの説明

サブシステムのブロック名

詳細
制御信号値外部入力によって実行がイネーブルになるサブシステム。Enabled SubsystemEnabled Subsystem の使用
外部入力により実行がトリガーされるサブシステム。Triggered SubsystemTriggered Subsystem の使用
実行が外部入力によってイネーブルになり、トリガーされるサブシステム。Enabled and Triggered SubsystemEnabled and Triggered Subsystem の使用
外部トリガーでブロックの状態がリセットされるサブシステム。Resettable SubsystemResettable Subsystem の使用
If-else ロジックIf ブロックで実行がイネーブルになるサブシステム。If Action Subsystem選択サブシステムの実行
Switch ロジック実行が Switch Case ブロックによって制御されるサブシステム。 Switch Case Action Subsystem選択サブシステムの実行
関数呼び出しイベント外部関数呼び出し入力により実行が制御されるサブシステム。Function-Call SubsystemFunction-Call Subsystem の使用
反復回数シミュレーション タイム ステップ中に指定された反復回数だけ実行を繰り返すサブシステム。For Iterator SubsystemWhile Iterator Subsystem および For Iterator Subsystem を使用した反復サブシステムの実行
シミュレーション タイム ステップ中、論理条件が true である間、実行を繰り返すサブシステム。While Iterator SubsystemWhile Iterator Subsystem および For Iterator Subsystem を使用した反復サブシステムの実行
要素数入力信号の各要素またはサブ配列に対して実行を繰り返し、結果を連結するサブシステム。For Each SubsystemFor Each Subsystem を使用したアルゴリズムの繰り返し
メッセージメッセージが制御端子で使用可能かどうかに基づいて、各タイム ステップで条件付きで実行されるサブシステム。Message Polling SubsystemUsing Message Polling and Message Triggered Subsystems
サンプル時間とは関係なく、メッセージが制御端子で使用可能な場合に常に実行されるサブシステム。Message Triggered SubsystemUsing Message Polling and Message Triggered Subsystems
実行順序のみ親モデルの実行時に単一ブロック、つまりアトミック単位として実行されるサブシステム。 Atomic Subsystemサブシステムが Atomic かどうかの指定

参考

トピック