デバッガーアクション

デバッグモードでは、シミュレーションを進行させるためのアクションを実行したり、一時停止中にブロックを修正したりすることができます。

ボタン

デバッガーダイアログボックスのいくつかのボタンを使ってシミュレーションを進めることができます。最初にデバッガーを開くと、以下のオプションが利用できます:
  • START: シミュレーションは、すべての一時停止条件が満たされるまで実行されます。一時停止条件が検出されると、シミュレーションは一時停止し、デバッガーダイアログボックスが再びアクティブになります。
  • STEP: シミュレーションは呼び出しごとに実行され、ステップが進みます。一時停止条件は、Tryモードの呼び出しを含めるかどうかを除いて無視されます。
  • FINISH: シミュレーションは、エラーが発生しない限り、最後まで一時停止することなく実行されます。

シミュレーションが一時停止されると、STARTボタンはCONTINUEに名称変更され、同じ動作を行います。QUITボタンがアクティブになり、シミュレーションを終了してデバッグモードを終了することができます。デバッグモードを終了すると、シミュレーションを完全に終了し、ブロックによってオープンされたファイルを閉じるために、ブロックに対して終了コールが行われます。

シミュレーション終了後は、RESTARTボタンで同じ条件でシミュレーションを再開できます。

OMLコマンド

シミュレーションが一時停止されると、実行するOMLコマンドのテキストボックスがアクティブになります。このテキストボックスにOML式を入力して、次に起こる一時停止で使用する変数を定義できます。ここで定義された変数は、デバッガーのワークスペースで永続化されます。
注: 永続変数は、デバッガーが非インタラクティブモードで実行され、OML命令が一時停止ごとに自動的 に実行される場合に特に便利です。詳しくは、非インタラクティブモードを参照してください。

OMLコマンドの結果は、ダイアログボックスの右側にある大きなテキストボックスに表示されます。

OMLコマンドを使って変数を再定義することができ、特にoutputsxdzozアクションのもとで関連するブロックシグナルの値を更新することができます。更新は、タイミングとフラグの値が一致していれば意味があります。例えば、フラグ=1(出力更新)の場合、ブロックの状態を変更しても意味がありません。ブロックに入るときに出力を変更しても、ブロックは出力を読まないので意味がありません。ブロックを離れる際に出力を変更することができます。

OML コマンドには、下表のいずれかの変数を含めることができます。使用できる変数はダイアログ・ボックスの下部に表示されます。

1. デバッグに利用できるOML変数
変数 説明
block_name ブロック名 (string)
t 現在のシミュレーション時間 (double)
inputs 入力値 (cell | mat)
outputs 出力値 (cell | mat)
nevprt ブロックアクティベーションコード (double)
x 連続時間状態量 (vector)
xd 連続時間状態量の微分 (vector)
mode ブロックモード (vector)
zcross ゼロクロッシングサーフェス(vector)
z 離散時間ブロック状態 (vector)
oz 離散時間オブジェクト状態 (cell | mat)
rpar ブロックパラメーター (vector)
opar オブジェクトパラメーター (cell | mat | scalar | string)
trymode Tryモードで呼び出された場合はtrue、そうでない場合はfalse
block ブロック構造に対応するOMLオブジェクト
flag 呼び出しに関連するアクションを示します。
prepost PreまたはPost-callかに応じて0または1
注: 利用可能な変数のリストにないブロックの要素を見るには、適切なAPIを使用する必要があります。たとえば、ブロックモードが固定されているフェーズでブロックが呼び出されているかどうかを知るには、 次のコマンドを使用します:
vssAreModesFixed(block)
この例では、BoocWenダンパーシステムデモモデルを使用しています。一時停止の条件:
  • ブロックリスト:SuperBlock/Integral
  • 含まれるアクション:Derivative更新(フラグ0)
  • Tryモード呼び出しを含める
  • 含まれるフェーズ:Post Callのみ
ブロック入力、状態、状態微分の値を表示するには、OML コマンドボックスに次のように入力します:
inputs
x
xd

STARTをクリックして最初のポーズを入力し、右側の結果を確認します。。初期値はt = 0で表示されます。特定の時間まで他の同様の呼び出しをスキップするには、停止条件を後の時間に設定します:

t > 0.05

CONTINUEをクリックすると、その時点の値が表示されます。