Main Content

関数呼び出し入力イベントによって有効になったチャートでのステートの制御

Simulink® モデルでは、Stateflow® チャートが関数呼び出しの入力イベントによってイネーブルにされるとき、[イネーブル時の状態]チャート プロパティを設定してチャートのステートを制御できます。このプロパティは、入力イベントによってチャートが再度イネーブルにされるときのステートとデータの値を決定します。

  • Held— ステートとデータの最新の値を保持。

  • Reset— ステートとデータの初期値に戻す。

新しいチャートの場合、既定の設定はHeldです。詳細については、入力イベントの送信による Stateflow チャートのアクティブ化を参照してください。

関数呼び出しの入力イベントによってイネーブルにされるチャートの例

以下のモデルでは、CallerチャートはイベントEを使用してCalleeチャートを起動し、実行します。

Callerチャートには 2 つのステート、ABが含まれています。出力イベントEをステートAにバインドすると、次のようになります。

  • Aを入力してCalleeチャートを有効化します。

  • Aを終了してCalleeチャートを無効にします。

  • Aを再入力してCalleeチャートを再び有効にします。

時相論理演算子afterは、10 タイム ステップごとにアクティブ ステートを変更するので、Calleeチャートは繰り返しイネーブルおよびディセーブルにされます。

Calleeチャートには 2 つのステート、CDが含まれています。チャートが実行されるたびに、出力データyが 1 ずつ増分されます。最初は、ステートCはアクティブです。1 タイム ステップの後、yの値が正になり、チャートはステートDに遷移します。

プロパティがHeldの場合のチャートのシミュレーション

Calleeチャートでは[イネーブル時の状態]プロパティがHeldに設定されています。シミュレーション中に、関数呼び出し入力イベントが時間$t=20$および$t=40$でチャートを再度イネーブルにすると、ステートDがアクティブのままになり、出力yは最新の値を保持します。

プロパティがResetの場合のチャートのシミュレーション

Calleeチャートで[イネーブル時の状態]プロパティをResetに変更します。シミュレーション中に、関数呼び出し入力イベントが時間$t=20$および$t=40$でチャートを再度イネーブルにすると、ステートCがアクティブになり、出力yは初期値 0 に戻ります。

関連するトピック