Real-Time Workshop User's Guide    

シングルタスクおよびマルチタスクモデル実行でのデータロギング

第3章の「ワークスペースI/Oオプションとデータロギング」に記述されているReal-Time Workshopのデータロギング機能を使って、システムの状態、出力、時間をモデル実行の終了時にMAT-ファイルに保存することができます。データロギングを行うLogTXY関数は、シングルタスクとマルチタスク環境とでは、異なって実行されます。

シングルタスクおよびマルチタスク環境で、LogTXYがどのように呼び出されるかを調べる場合は、シングルタスクではLogTXYModelOutputsの後に呼び出されることに注意してください。この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モードの通信 ラピッドプロトタイピングと組み込みモデルの実行の違い