Real-Time Workshop User's Guide | ![]() ![]() |
リアルタイムでのモデルの実行
リアルタイムプログラムは、プログラムが実際の時間に同期してモデルコードを実行しなければならない点で、Simulinkシミュレーションと異なります。すべての計算で、ある程度の計算の遅れが生じます。これは(Simulinkでのように)サンプル間隔を短くしたり、長くしたりできずに、効率的な実行ができないことを意味します。
定義では、サンプル時間はリアルタイムでクロックされるので、サンプル間隔t1は、圧縮して実行速度を上げることはできません。
Real-Time Workshopアプリケーションプログラムは、マルチタスク機能を使うことで、この潜在的な非効率性を克服するように設計されています。この手法は、優先度が異なるタスクが、異なるサンプルレートをもつモデルコードの部分を実行するように定義します。
この機能に関する詳細は、「マルチタスクと擬似マルチタスク」を参照してください。つぎの節に進む前にその部分を理解しておくことが重要です。
マルチタスク操作
モデルが大きく、個々のレートで実行するブロックをもつ場合、マルチタスクの利用によりプログラムの効率は改良されます。モデルが単一のレートで、遅いレートで実行されるブロックが少ししかない場合は、性能が悪くなる場合があります。この場合に、タスク切り替えでのオーバヘッドは、遅いブロックを実行する時間よりも長くなります。すべてのブロックを同じレートで実行する方が効率的です。
マルチタスクの実行により効果を得られるモデルの場合は、正しい結果を生成するために、この方式に対してSimulinkモデルを修正する必要がある場合があります。
シングルタスク操作
リアルタイムプログラムは、シングルタスクモードで実行することができます。シングルタスクプログラムは、このモードの実行の非効率性のため、より長いサンプル間隔が必要です。
![]() | Simulinkを使ったモデルのシミュレーション | サンプルレートの遷移 | ![]() |