Main Content

Stateflow の状態遷移表

状態遷移表は、順序モーダル ロジックを表現する際の代替方法です。ステートと遷移を Stateflow® チャートでグラフィカルに描画する代わりに、状態遷移表を使用してモーダル ロジックを表形式で表現します。状態遷移表は、Simulink® モデル内のブロックとしてのみサポートされています。

状態遷移表を使用する利点は次のとおりです。

  • モーダル ロジックでステートがその隣接するステートに順次遷移していくトレイン状のステート マシンのモデル化が簡単になります。

  • ステート マシンが簡潔でコンパクトな形式になります。

  • グラフィカル オブジェクトのメンテナンスが軽減されます。

  • チャートでステートの追加や削除を行う場合は、ステート、遷移およびジャンクションを再配置しなければなりません。これに対し、状態遷移表でステートの追加や削除を行う場合は、グラフィカル オブジェクトを再配置する必要はありません。

状態遷移表では、MATLAB® および C の両方をアクション言語として使用することがサポートされています。これらのアクション言語の違いの詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

ステート遷移チャートの使用によるボイラーのモデル化

次の状態遷移表には、ボイラーの温度を 2 つの指定値の間に維持するモーダル ロジックが含まれています。

次の Stateflow チャートは同じモーダル ロジックを表現しています。

状態遷移表を使用する場合のルール

  • 遷移セルでアクションを指定する場合は、条件アクションを使用しなければなりません。

  • 状態遷移表は、少なくとも 1 つのステート行と、1 つの遷移列をもたなければなりません。

状態遷移表とチャートの違い

状態遷移表では、Stateflow チャートで最も一般的に使用される要素のサブセットがサポートされています。状態遷移表でサポートされていない要素には、次のものがあります。

  • スーパートランジション

  • パラレル (AND) 構造

  • ローカル イベント

  • フロー チャート

  • チャートレベル関数 (グラフィカル、真理値表、MATLAB および Simulink) の使用

状態遷移表の構造

状態遷移表には、以下のコンポーネントが含まれています。

各遷移列には、次のステート間の遷移情報が含まれています。

  • 条件

  • 条件アクション

  • 遷移先のステート

状態遷移表の作成とプロパティの指定

新しい状態遷移表の作成方法

MATLAB コマンド プロンプトで、次のように入力します。

sfnew('-STT')

Simulink ライブラリ ブラウザーから、次の操作を実行します。

  1. Stateflow ライブラリを選択します。

  2. 状態遷移表をモデルにドラッグします。

状態遷移表のプロパティ

プロパティにアクセスするには、Stateflow エディターの [モデル化] タブで [テーブル プロパティ] をクリックします。

これらのプロパティは、MATLAB をアクション言語として使用するチャートのプロパティと同じです。各プロパティの詳細は、「Stateflow チャートのプロパティの指定」を参照してください。

状態遷移表から状態遷移図の生成

Stateflow ソフトウェアでは、作成した状態遷移表から読み取り専用の状態遷移図が自動的に生成されます。状態遷移表に対して変更を入力すると、Stateflow によって状態遷移図もインクリメンタルに更新されます。基となる状態遷移図の最新バージョンを表示するには、[デバッグ] タブで [自動チャートの表示] をクリックします。

参考

関連するトピック