サブシステム内のサンプル時間
サブシステムには、以下の 2 つのカテゴリがあります。Triggered と Non-Triggered です。Triggered Subsystem では、一般的にサブシステムのサンプル時間はトリガー信号から取得されます。1 つの例外は、Trigger ブロックを使用して、Triggered Subsystem を作成する場合です。ブロックの [トリガー タイプ] を [関数呼び出し] に設定し、[サンプル時間タイプ] を [周期的] に設定すると、SampleTime
パラメーターがアクティブになります。この場合は、"ユーザー" が Trigger ブロックのサンプル時間を指定します。それによって、サブシステムのサンプル時間が確立されます。
Non-Triggered Subsystem には次の 4 つの種類があります。
バーチャル
Enabled
Atomic
アクション
Simulink® は、バーチャル サブシステムおよび Enabled Subsystem のサンプル時間を、それらの内容のそれぞれのサンプル時間を基準として計算します。
Atomic Subsystem は、サブシステムのブロックに SystemSampleTime
パラメーターが含まれている特殊なケースです。さらに、–1 の既定値以外のサンプル時間に対し、Atomic Subsystem 内のブロックは、Inf
の値、–1、またはサブシステムの SampleTime
パラメーターの同一 (離散) 値のみをもつことができます。Atomic Subsystem が継承のまま残されている場合、Simulink ではバーチャル サブシステムや Enabled Subsystem と同じようにブロックのサンプル時間を計算します。ただし、サブシステムの SampleTime
パラメーターの主な目的は、Atomic Subsystem 内で、すべて継承に設定されている多数のブロックを同時に指定できるようにすることです。Atomic Subsystem で設定されたサンプル時間を取得するには、コマンド プロンプトで次のコマンドを使用します。
get_param(AtomicSubsystemBlock,‘SystemSampleTime’);
最後に、Action Subsystem のサンプル時間は If ブロックまたは Switch Case ブロックによって設定されます。
異なるサンプル レートが指定されたブロックを含む Non-Triggered Subsystem の場合、Simulink は、サブシステムのコンパイルされたサンプル時間を、サブシステムに存在するすべてのサンプル レートの cell 配列として返します。これを確認するには、MATLAB® プロンプトで get_param
コマンドを使用します。
get_param(subsystemBlock,'CompiledSampleTime')