Real-Time Workshop User's Guide | ![]() ![]() |
シングルタスクおよびマルチタスクモデル実行でのデータロギング
第3章の「ワークスペースI/Oオプションとデータロギング」に記述されているReal-Time Workshopのデータロギング機能を使って、システムの状態、出力、時間をモデル実行の終了時にMAT-ファイルに保存することができます。データロギングを行うLogTXY
関数は、シングルタスクとマルチタスク環境とでは、異なって実行されます。
シングルタスクおよびマルチタスク環境で、LogTXY
がどのように呼び出されるかを調べる場合は、シングルタスクではLogTXY
はModelOutputs
の後に呼び出されることに注意してください。このModelOutputs
の呼び出し中に、時間tでヒットするすべてのブロックが実行され、マルチタスクでは、LogTXY
は時間 tでヒットし、タスク識別子0をもつブロックのみを実行するModelOutputs(tid=0)
の後で呼び出されます。この結果が、シングルタスクとマルチタスクの値のロギングの違いになります。具体的には、2つのサンプル時間をもち、速いほうのサンプル時間が1.0秒で、遅いほうのサンプル時間が10.0秒であるモデルを考えます。時間t = k*10, k=0,1,2... で、速い(tid=0
)ブロックと遅い(tid=1
)ブロックは両方ともヒットします。マルチタスクモードで実行中に、LogTXY
が呼び出されるときは、遅いブロックはヒットしますが以前の値がロギングされ、シングルタスクモードで実行中は、カレント値がロギングされます。
その他の違いは、Enabledサブシステムでデータをロギング中に発生します。イネーブル端子に接続する遅い信号があり、Enabledサブシステム内に速いブロックがあるEnabledサブシステムを考えます。この場合、イネーブル信号の評価は遅いタスク内で発生し、速いブロックは1つのサンプル間隔のディレイを見るので、ロギングされた値はこれらの違いを示します。
シングルタスクとマルチタスクでのデータのロギングの違いをまとめます。違いは以下のとき発生します。
最初の2つの場合に対して、ロギングされた値は、シングルタスクとマルチタスクで異なっていても、モデルの結果は同じです。唯一の実際の違いは、ロギングが行われる場所(時間内のどのポイントか) です。3番目(Enabledサブシステム)の場合は、リアルタイム環境で確認可能なディレイになります。
![]() | Externalモードの通信 | ラピッドプロトタイピングと組み込みモデルの実行の違い | ![]() |