状態遷移表での実行時エラーのデバッグ
状態遷移表は、順序モーダル ロジック用の有限ステート マシンを表形式で表現します。ステートと遷移を Stateflow® チャートで描画する代わりに、状態遷移表を使用して、グラフィカル オブジェクトのメンテナンスが必要最小限で済む簡潔でコンパクトな形式でステート マシンをモデル化できます。詳細については、状態遷移表を使用した有限ステート マシンのモデル化を参照してください。
モデルと状態遷移表の作成
新しい State Transition Table を使って Simulink® モデルを作成します。
sfnew -STT以下のステートと遷移を表に追加します。

表には、階層の最上位レベルで 2 つのステート
Power_offとPower_onが設定されています。既定では、Power_offがアクティブです。イベントSWITCHは、システムをPower_offステートとPower_onステートの間で切り替えます。Power_onには、First、Second、Thirdの 3 つのサブステートがあります。既定の設定では、Power_onがアクティブになるとFirstもアクティブになります。Shiftが 1 に等しい場合は、イベントSWITCHが発生するたびに、システムはFirstからSecond、SecondからThird、ThirdからFirstへと遷移します。その後、このパターンが繰り返されます。Simulink から 2 つの入力を追加します。
スコープ "Simulink から入力" と "立ち上がり" エッジ トリガーが設定された
SWITCHというイベント。スコープ "Simulink から入力" が設定された
Shiftというデータ。
モデル ビューで、Sine Wave ブロックを
SWITCHイベントとして、Step ブロックをShiftデータとして状態遷移表に接続します。
モデルには、イベント入力とデータ入力があります。Sine Wave ブロックは、Stateflow イベント
SWITCHに対応する反復入力イベントを生成します。Step ブロックは、Stateflow データ オブジェクトShiftに対応する反復パターン 1 と 0 を生成します。SWITCHイベントは、First、Second、Thirdを少なくとも 1 サイクル廻る頻度で発生させるのが理想的です。
状態遷移表のデバッグ
モデルと状態遷移表の作成の表をデバッグするには、以下の手順に従います。
Power_offステートを右クリックし、[ブレークポイントの設定] 、 [ステート Entry 時] を選択します。シミュレーションを開始します。
Power_offに対してブレークポイントを指定しているため、実行はそのポイントで停止します。[ステップ イン] ボタン
をクリックして次のステップに移動します。使用されているデータと現在の値を表示するには、各テーブル セルにカーソルを合わせます。
[ステップ イン] ボタンを繰り返しクリックして、ステートのアニメーション化を監視します。ステップごとに、チャートのアニメーションを監視し、実行シーケンスを確認します。ツールヒントを使用してデータ値を確認します。
シングルステッピングによって、ステート Power_on 内で First から Second を通り Third に至るループは発生しないことが示されます。Power_on から Power_off への遷移が優先されます。
実行時のエラーの修正
状態遷移表のデバッグで、状態遷移表のシミュレーションをステップ実行し、エラーを見つけます。イベント SWITCH によってシミュレーションが駆動されていますが、入力データ オブジェクト Shift が効果を持たないうちにシミュレーション時間が早々に経過しています。
このエラーを修正するには、以下を実行します。
表を編集できるようにシミュレーションを停止します。
Power_onからPower_offへの遷移に条件after(20.0, sec)を追加します。
これで、
Power_onからPower_offへの遷移は 20 秒を経過するまで実行されません。シミュレーションを開始します。
[ステップ イン] ボタンを繰り返しクリックして、修正された動作を観察します。