メインコンテンツ

同時実行タスク間でのデータ転送設定の構成

データ依存性は、信号が 1 つの分割の 1 つのブロックから発し、別の分割のブロックに接続される場合に生じます。並列処理に有利な条件を作成するために、Simulink® には、同時実行する分割間でのデータ転送の処理に関する複数のオプションが用意されています。これらのオプションを使用すると、次のように数値の信号遅延は計算のレイテンシとトレードオフの関係になります。このトピックでは、同時実行用に構成されたモデルについて、同じレートで動作する分割間のデータ転送設定を構成する方法を説明します。同時実行用のモデルの設定の詳細については、同時実行用のモデルの構成を参照してください。

異なるレートで動作する分割間のデータ転送を構成するには、Rate Transition ブロックを手動で追加するか、[コンフィギュレーション パラメーター] で [データ転送に対するレート変換を自動的に取り扱う] を選択して、Rate Transition ブロックの自動挿入を有効にします。

同時実行分割に対するデータ転送オプションの指定

タスク間の通信を定義するには、[同時実行] ツールの [データ転送] のパラメーターを使用します。データ転送のパラメーターに対して [グローバル設定を使用] オプションを選択した場合、[信号プロパティ] ダイアログ ボックスの [データ転送] タブで値を設定します。[信号プロパティ] ダイアログ ボックスの [データ転送] ペインでオプションを設定することで、[同時実行] ツールで設定されたオプションをオーバーライドできます。

データ転送の構成は、タスクにどのように通信させるかと、計算のレイテンシと数値的な信号遅延のトレードオフによって決まります。この表では、システムでのデータ転送を必要とする各信号に適用できるモデルレベルのオプションを示しています。

データ転送オプション

目的データ転送タイプシミュレーション展開
  • 並列処理に有利な条件を作成します。

  • 信号レイテンシを削減します。

Ensure data integrity only

データ転送は 1 ステップ遅延を使用してシミュレートされます。

Simulink Coder™ はデータ転送中の整合性を確保します。Simulink は、最大の応答性とデータの整合性で動作するコードを生成します。ただし、実装で割り込みが発生し、データ転送中にデータが失われる可能性があります。

確定的な実行スケジュールを使用して、展開環境で確定性を実現します。

  • 並列処理に有利な条件を作成します。

  • 生成されたコードの実行ごとに繰り返される数値結果を生成します。

Ensure deterministic transfer (maximum delay)

データ転送は 1 ステップ遅延を使用してシミュレートされ、数値結果に影響する可能性があります。これを補うには、これらの遅延要素に対する初期条件を指定しなければならない場合があります。

Simulink Coder はデータ転送中の整合性を確保します。さらに、Simulink Coder によってデータ転送がシミュレーションと同一になることが確保されます。
  • データ依存性を強制します。

  • 生成されたコードの実行ごとに繰り返される数値結果を生成します。

Ensure deterministic transfer (minimum delay)

データ転送は同じステップ内で行われます。

データ転送オプションの表を使用して、タスクにどのように通信させるかを決定し、Concurrent Executionツールの [データ転送] ペインで周期信号と連続信号の既定値を選択してください。連続信号には外挿法も選択できます。Simulink は外挿法を使用して、データ転送の遅延と不連続性を原因とする数値エラーを補正します。

Concurrent Execution tool with Data Transfer parameters open.

たとえば、T 感覚データを読み込むコントローラーが T+Δ 時にアクチュエータに対する制御信号を生成しなければならない制御アプリケーションについて考えてみます。[データ転送オプション] 表に基づき、以下を使用することを検討できます。

  • Ensure deterministic transfer (minimum delay): 逐次アルゴリズムがタイミング期日を満たす場合。

  • Ensure deterministic transfer (maximum delay): 組み込みシステムで確定的スケジュールが提供される場合。

  • Ensure data integrity only: 信号遅延を導入して、並列処理に有利な条件を作成する場合。

初期条件の設定

[Ensure Data Integrity Only] のデータ転送と [Ensure deterministic transfer (maximum delay)] のデータ転送用に構成されている信号で数値誤差を回避するために、初期条件を指定しなければならない場合があります。

初期条件は、[信号プロパティ] ダイアログ ボックスの [データ転送] タブで指定できます。このダイアログ ボックスにアクセスするには、信号線を右クリックして、コンテキスト メニューの [プロパティ] を選択します。

Signal Properties dialog box with the Data Transfer tab open.

初期条件パラメーターを使用して、データ転送の受信側の初期入力を指定できます。

  • 離散信号の場合、初期条件は [Ensure data integrity only] および [Ensure deterministic transfer (maximum delay)] データ転送タイプに適用されます。

  • 連続信号の場合、初期条件は外挿法によって使用され、以下に適用されます。[Ensure deterministic transfer (maximum delay)] データ転送タイプ。

Simulink では、初期条件値を Inf または NaN にすることはできません。

参考

トピック