シミュレーションのステップ実行の仕組み
[シミュレーション ステップ オプション] ダイアログ ボックスで指定するパラメーターの値は、次の処理に影響します。
[ステップを進める] または [ステップを戻す] をクリックしたときのシミュレーションの進行
ステップを戻す機能をサポートするためのモデルの操作点のスナップショットのキャプチャ
シミュレーションのステップを進めると、シミュレーションが続行されます。一方、ステップを戻すときは、モデルが逆方向にシミュレートされるわけではありません。シミュレーションのステップを戻す機能をサポートするために、モデルのシミュレーション時にモデルの操作点のスナップショットがキャプチャされます。[ステップを戻す] をクリックすると、いずれかのスナップショットからモデルの操作点が復元されます。
メモ
ステップを戻すためのシミュレーションのスナップショットが収集されるのは、ステップを戻す機能が有効になっている場合だけです。進行中のシミュレーションでステップを戻す機能を有効にする場合、ステップを戻す前にステップを進めておかなければなりません。シミュレーションでステップを戻す機能を有効にした時点よりも前の時点にステップを戻すことはできません。
シミュレーションのスナップショットには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインで [最終の操作点を保存] を選択すると記録されるモデルの操作点の情報と同じ情報が格納されます。ステップを戻す機能をサポートするためにのみ、シミュレーションのスナップショットでモデルの操作点情報がキャプチャされます。ステップを戻すためにキャプチャされるシミュレーションのスナップショットには、シミュレーション中もシミュレーション後もアクセスできません。モデルの操作点の保存の詳細については、Save Block States and Simulation Operating Pointsを参照してください。
ステップを進める
[戻る/進むステップ数] パラメーターは、[ステップを進める] を 1 回クリックしたときにシミュレーションが進行するメジャー タイム ステップの数を指定します。次のイメージは、[戻る/進むステップ数] オプションで 1
と 2
のどちらが指定されているかに基づいて、シミュレーションがどのように進行するかを示しています。
シミュレーション開始時の [ステート 0] の時点では、パラメーターの値は
2
です。[ステップを進める] をクリックすると、シミュレーションが [ステート 1] を経て進み、[ステート 2] で一時停止します。2 番目のメジャー タイム ステップの後で一時停止しているときに、パラメーターの値を
1
に変更するとします。ここで [ステップを進める] をクリックすると、シミュレーションが [ステート 3] まで進行します。これは次のタイム ステップに対応します。4 番目のメジャー タイム ステップの後で一時停止しているときに、パラメーターの値を
2
に戻すとします。ここで [ステップを進める] をクリックすると、シミュレーションが [ステート 6] まで進行します。
シミュレーションのスナップショットのキャプチャ
ステップを戻すために収集されるシミュレーションのスナップショットには、スナップショットが取得された時点からシミュレーションを継続するために必要なすべての情報が含まれます。スナップショットの収集にはメモリが必要であり、シミュレーションのパフォーマンスに影響することがあります。シミュレーション ステップ オプションを構成するときは次を指定できます。
戻すステップの最大保存数 — 保存するスナップショットの総数
戻すステップの保存間隔 — 保存するスナップショット間でスキップするシミュレーション タイム ステップの数
保存するタイム ステップの総数を少なくし、スナップショット間でステップをスキップすると、ステップを戻す機能を有効にする場合のシミュレーションのパフォーマンスへの影響を軽減できます。
スナップショットを保存するためのシミュレーション ステップ オプションは、[ステップを進める] または [ステップを戻す] をクリックしたときのシミュレーションの進行方法を制御する [戻る/進むステップ数] オプションとは無関係です。
次のイメージは、[戻すステップの保存間隔] パラメーターの値が 3
の場合にスナップショットがどのようにキャプチャされるかを示しています。シミュレーションの開始時、3 番目のメジャー タイム ステップの後、および 6 番目のメジャー タイム ステップの後にスナップショットがキャプチャされます。
特定の時点について解析するために、より小さいインクリメントでシミュレーションを進める必要がある場合は、シミュレーション中にスナップショット間の間隔を変更できます。たとえば、次のイメージは、前の図のシミュレーションでスナップショット間の間隔を 3
から 1
に変更した場合にスナップショットがどのようにキャプチャされるかを示しています。
シミュレーションの開始時に [ステート 0] のスナップショットがキャプチャされます。
3 メジャー タイム ステップ後に [ステート 3] のスナップショットがキャプチャされます。
[ステート 3] で一時停止しているときに、[戻すステップの保存間隔] パラメーターの値を
3
から1
に変更します。[ステート 6] まで、各メジャー タイム ステップでシミュレーション状態のスナップショットがキャプチャされます。
ステップを戻す
シミュレーションのステップを戻す方法は、ステップを戻す時点のスナップショットが存在するかどうかによって異なります。
タイム ステップのスナップショットが存在する場合、そのスナップショットに格納されているモデルの操作点が復元されます。
タイム ステップのスナップショットが存在しない場合、そのタイム ステップよりも前の最後のスナップショットからモデルの操作点が復元され、そのタイム ステップまでシミュレーションが進められます。
たとえば、次のシミュレーションで 6 番目のタイム ステップの後に一時停止しているとします。
モデルの操作点のスナップショットを 3 タイム ステップごとにキャプチャする
[ステップを戻す] をクリックするたびに 1 タイム ステップずつステップを戻す
[ステップを戻す] をクリックすると、3 番目のタイム ステップの後にキャプチャされたスナップショットが復元され、シミュレーションが 2 タイム ステップ進んで 5 番目のタイム ステップの後に一時停止します。
シミュレーションの一時停止中に調整可能なパラメーターの値を変更できます。新しいパラメーターの値は、シミュレーションの次の順方向ステップで適用されます。シミュレーション ステップ オプションの構成方法によっては、シミュレーションの次の順方向ステップが [ステップを戻す] をクリックしたときに発生する場合があります。
ブレークポイントでの一時停止
有効なブレークポイントがモデルに含まれている場合、ステップを進める処理でブレークポイントの条件を満たすと、そのブレークポイントでシミュレーションが一時停止します。ブレークポイントはステップを戻すときは無視されます。
既定では、ブレークポイントの条件を満たすとすぐに、そのタイム ステップ内でシミュレーションが一時停止するように構成されています。ブレークポイントで一時停止しているときに [ステップを進める] をクリックすると、現在のタイム ステップまでシミュレーションが進みます。[ステップを戻す] をクリックすると、現在のタイム ステップの先頭にステップが戻ります。詳細については、ブレークポイント リストを参照してください。
シミュレーションのステップ実行に関するその他の考慮事項
シミュレーションのステップを戻す機能は、すべてのブロック、機能、モデル コンフィギュレーションでサポートされるわけではありません。ステップを戻す機能がサポートされていない場合はシミュレーションは中断されません。ステップを戻す機能を有効にしたモデルでステップを戻す機能がサポートされていない場合は、警告が発行されます。
ステップを戻す機能はモデルの操作点を保存する機能に依存するため、モデルの操作点の保存をサポートするモデルでしかステップを戻す機能はサポートされません。詳細については、モデルの操作点の保存と復元に関する追加の考慮事項を参照してください。
次の表では、複数のブロックおよびモデル構造におけるシミュレーションでのステップを戻す機能に関連したその他の考慮事項をまとめます。
機能またはモデル化パターン | ステップを戻す機能に関する考慮事項 |
---|---|
モデル参照 | シミュレーション中に参照モデルのシミュレーション ステップ オプションを変更すると、最上位モデルで同じオプションが変更されます。シミュレーションが完了すると、参照モデルのシミュレーション ステップ オプションはシミュレーション前の値に戻ります。最上位モデルのシミュレーション ステップ オプションは、シミュレーションの終了時と同じままになります。 |
可視化ブロック | 次のブロックの可視化は、ステップを戻す機能の結果を反映して更新されません。
|
MATLAB Function ブロック | 静的変数や副次的な影響 (ファイルへの書き込みなど) をもつ C コードを呼び出す MATLAB Function ブロックを含むモデルでは、ステップを戻した後のシミュレーション状態が正しくないことがあります。 |
S-Function |
|
参考
シミュレーション ステップ オプション | ブレークポイント リスト