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 に戻ります。

関連するトピック