Main Content

elapsed, et

ステートがアクティブになってからの時間

説明

elapsed(sec) は、関連付けられたステートがアクティブになってから経過した時間を返します。

et は、elapsed(sec) の代替の実行方法です。

メモ

elapsed(sec) および et は、temporalCount(sec) と等価です。

すべて展開する

ステートがアクティブになってからの経過時間を秒単位で格納します。

en,du:
   y = elapsed(sec);

Stateflow chart that uses the elapsed operator in a state.

チャートがイベント E のブロードキャストを処理するときに、関連付けられたステートから遷移し、ステートがアクティブになってからの経過時間を表示します。

E{disp(et);}

Stateflow chart that uses the et keyword in a transition.

ヒント

  • ステート アクションおよび遷移アクションでは、引用符を使用してキーワード 'sec' を囲むことができます。たとえば、elapsed('sec')elapsed(sec) と同じです。

  • Stateflow® チャートは、関連付けられたステートが再びアクティブになるたびに、elapsed 演算子で使用されるカウンターをリセットします。

  • 絶対時間の時相論理演算子のタイミングは Stateflow チャートのタイプによって異なります。

    • Simulink® モデル内のチャートは時相論理をシミュレーション時間で定義します。

    • MATLAB® のスタンドアロン チャートは時相論理を時計時間で定義します。

    タイミングの差はチャートの動作に影響する場合があります。たとえば、次のチャートはステート Aentry アクションを実行しているとします。

    Stateflow chart with one state. The entry action in state A calls a function f and stores the elapsed time in y.

    • Simulink モデルでは、f への関数呼び出しが 1 つのタイム ステップで実行され、シミュレーション時間に寄与しません。関数 f を呼び出した後、チャートは y に値 0 を代入します。

    • スタンドアロン チャートでは、f への関数呼び出しが完了するまでに時計時間で数秒間かかる可能性があります。関数 f を呼び出した後、チャートはステート A がアクティブになってから経過した 0 以外の時間を y に代入します。

バージョン履歴

R2017a で導入