実行領域の指定
実行領域の仕様により、モデルとそのサブシステムおよび参照モデルを設定して離散時間システムまたはデータ駆動型システムとしてシミュレーションできます。この設定を使用して、たとえば、連続時間ダイナミクスでモデル化されたプラントの展開可能なコントローラーの設計で、そのダイナミクスの他の部分から離散ダイナミクスを分離します。
計算量の多い信号処理またはマルチレート信号処理システムをシミュレーションするために、データフロー領域を割り当てることもできます。データフロー領域は、計算同期データフローのモデルを使用してシミュレーションします。これはデータ駆動型であり、静的にスケジュールされます。詳細については、Dataflow Domain (DSP System Toolbox)を参照してください。
環境とは関係なく、離散実行領域を維持するサブシステムを作成できます。サブシステムを離散に制約することで、サブシステムのコンポーネントとしての再利用性を向上させることができます。コード生成を向上させるために、この仕様で不要な更新メソッドを削減し、主要なタイム ステップ チェックを削減して、生成コードの再利用性を向上させます。
領域の仕様バッジ
領域の仕様バッジは、モデル ブロック線図を更新するときにモデルまたはサブシステムに対して計算された実行領域を示します。[サンプル時間の表示] をオンにして、領域の仕様バッジの表示/非表示を切り替えることができます。サンプル時間の表示/非表示の詳細については、サンプル時間情報の表示を参照してください。バッジは、Simulink® エディターの左下隅に表示されます。
次のモデルは、Gain ブロックを駆動する前に、レートが Rate Transition ブロックによって削減される離散 Sine Wave ブロックを示します。
その内容がすべて離散であるため、モデルが "離散" 実行領域を受け取っていることが分かります。
[プロパティ インスペクター] の [実行] タブの [領域の仕様の設定] パラメーターを有効または無効にすることで、バッジの表示/非表示を切り替えることもできます。
実行領域のタイプ
Simulink では、[プロパティ インスペクター] を介して、許容されるサンプル時間と共に実行領域を割り当てるように指示できます。
指定 | 離散 | その他 | データフロー |
---|---|---|---|
内容から推定 | X | X | - |
離散 | X | - | - |
データフロー | - | - | X |
エクスポート関数 | X | - | - |
[内容から推定]
Simulink がサブシステムの内容に基づいて実行領域を割り当てるようにします。[離散]
サブシステム内のすべてのブロックが離散化するように制約します。[データフロー]
計算量の多い信号処理またはマルチレート信号処理システムをシミュレーションします。この設定には DSP System Toolbox™ が必要です。[エクスポート関数]
モデルをエクスポート関数モデルとして扱うものと指定します。モデルをエクスポート関数モデルとして指定すると、モデル コンフィギュレーション パラメーターの [ソルバーの選択] が Simulink によって自動的に[固定ステップ]
および[自動]
に設定されます。詳細については、エクスポート関数モデルの概要を参照してください。
モデル ブロック線図を更新する、またはモデルのシミュレーションを実行すると、バッジはモデル コンポーネントの計算された実行領域を示します。Simulink には 3 つの実行領域があります。
[離散] ブロックは離散状態とサンプル時間をもちます。許容されるサンプル時間は、離散サンプル時間、制御可能なサンプル時間、および非同期のサンプル時間です。
[データフロー] データフロー領域は、計算同期データフローを使用してシミュレーションします。これはデータ駆動型であり、静的にスケジュールされます。この実行領域には DSP System Toolbox が必要です。詳細については、Specifying Dataflow Domains (DSP System Toolbox)を参照してください。
[その他] ブロックは厳密には離散ではありません。
[その他] 実行領域を受け取るサブシステムには、以下が含まれます。
連続サンプル時間、マイナー ステップに固定および可変サンプル時間を含む、ブロックが連続状態とサンプル時間をもつサブシステム。
連続サンプル時間と離散サンプル時間が混在するサブシステム。
非同期のサンプル時間をもつサブシステム。
サブシステムに、連続サンプル時間、可変サンプル時間、マイナー ステップに固定サンプル時間、定数サンプル時間、またはサンプル時間の混在が存在する場合、バッジを使用して領域の仕様を有効または無効にすることができます。それでも、サブシステムは [その他] 時間領域を受け取ります。
現在選択されているサブシステムまたはモデルが、リンク付きブロックであるか、ライブラリ内のブロックであるか、[その他] 領域を受け取る条件付き実行サブシステムである場合、領域の仕様バッジはアクション可能ではありません。リンク付きライブラリ ブロックの実行領域を変更するには、親ライブラリ ブロックへのリンクを解除します。ライブラリ ブロックへのリンクの無効化または解除を参照してください。
実行領域の設定
プロパティ インスペクターの [実行] タブを使用して、サブシステムごとにモデルのルート レベルで領域の仕様を設定できます。モデルに対してプロパティ インスペクターを有効にするには、[モデル化] タブの [設計] の下で [プロパティ インスペクター] をクリックするか、キーボードで Ctrl+Shift+I を押します。領域の仕様バッジが表示されたら、バッジをクリックして、プロパティ インスペクターの [実行] 設定を開くこともできます。領域の仕様バッジを参照してください。
[実行領域の設定] チェック ボックスをオンにします。これで、[領域] を指定できます。
メモ
モデルのルート レベルで領域の仕様を変更しても、その子サブシステムの設定は変更されません。
set_param
を使用して SetExecutionDomain
パラメーターを 'on'
または 'off'
に設定し、コマンド ラインからのこの設定を有効にすることもできます。
有効にすると、[領域] パラメーターの既定の設定は [内容から推定]
です。ブロック線図を更新する場合、実行領域は、現在開いているサブシステム内のブロックの特性から推定されます。たとえば、離散ブロックのみをもつシステムは、[離散] 実行領域内にあります。実行領域のタイプを参照してください。
バッジには現在の仕様設定が表示されます。サブシステム領域を [内容から推定]
に設定すると、ブロック線図を更新するまでバッジ テキストには [Deduce] と表示されます。一度モデル ブロック線図を更新すると、バッジには実行領域のタイプで説明されている計算された実行領域が表示されます。[領域の仕様の設定] を有効にし、[領域] を [内容から推定]
に設定すると、Simulink は、サブシステム内のブロックとサンプル時間に基づいて現在フォーカスがあるサブシステムの実行領域を計算します。
コマンド ラインから [領域] パラメーターを設定するには、set_param
を使用して ExecutionDomainType
を 'Deduce'
または 'Discrete'
に変更します。サブシステムの CompiledExecutionDomain
パラメーターを使用して、ブロック線図を更新した後に計算された実行領域も取得できます。
サブシステムに離散実行領域を適用
このモデルでは、モデルの構成サブシステムの実行領域を指定する方法を説明します。モデルには、Desired Speed ブロックの基準速度のセットを追跡する Discrete Cruise Controller Subsystem があります。Car Dynamics サブシステムは、自動車の連続時間ダイナミクスをモデル化します。
モデルの離散クルーズ コントローラーの入力端子に Car Dynamics の出力からの連続時間信号が存在するため、このコントローラーにはハイブリッドのサンプル時間があることに注意してください。
コントローラーの離散時間実行を適用するには、サブシステムを選択し、Simulink エディターの左下隅にある [領域] バッジをクリックして、[プロパティ インスペクター] の [実行] タブを開きます。
[実行領域の設定] パラメーターを有効にし、[領域] を [Discrete
] に設定します。モデル ブロック線図を更新するか、モデルをシミュレーションします。
Discrete Cruise Controller Subsystem が離散になっていることに注意してください。
Car Dynamics の実行領域を [Deduce from Contents
] に設定することもできます。Car Dynamics サブシステムは、ハイブリッド サンプル時間および [その他] 実行領域を受け取ります。必要に応じて、このサブシステムの Inport ブロックの [サンプル時間] パラメーターを 0 に設定します。
参考
サンプル時間とは | サブシステム内のサンプル時間 | 伝播が継承サンプル時間に影響を与える方法 | Dataflow Domain (DSP System Toolbox)