Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Stateflow の状態遷移表

State Transition Table ブロックは、順序モーダル ロジック用の有限ステート マシンを表形式で表現します。ステートと遷移を Stateflow® チャートで描画する代わりに、状態遷移表を使用して、グラフィカル オブジェクトのメンテナンスが必要最小限で済む簡潔でコンパクトな形式でステート マシンをモデル化できます。

状態遷移表で制御ロジックを実装するには、MATLAB® または C をアクション言語として使用できます。詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

状態遷移表の作成

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

  • 新しい Simulink® モデル内で State Transition Table を作成するには、次を入力します。

    sfnew -STT
  • 新しい State Transition Table を既存のモデルに追加するには、関数 add_block (Simulink) を使用します。以下に例を示します。

    add_block("sflib/State Transition Table", ...
       "myModel/State Transition Table")

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

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

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

    Block icon for state transition table.

状態遷移表の構造

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

Diagram of state transition table highlighting state column, transition column, condition cell, condition action cell, and destination state cell.

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

  • 条件

  • 条件アクション

  • 遷移先のステート

状態遷移表を使用したボイラーのモデル化

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

State transition table with two top-level states called Normal and Alarm. Normal has three substates called Off, Warmup, and On.

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

Stateflow chart with two top-level states called Normal and Alarm. Normal has three substates called Off, Warmup, and On.

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

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

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

  • パラレル (AND) 構造

  • ローカル イベント

  • フロー チャート

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

状態遷移表を使用する場合のガイドライン

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

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

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

状態遷移表のプロパティは、状態遷移表が Simulink モデルとどのように連動するかを指定します。これらのプロパティは、[プロパティ インスペクター]、モデル エクスプローラー、または [状態遷移表] プロパティ ダイアログ ボックスで変更できます。

[プロパティ インスペクター] を使用するには、次を行います。

  1. [モデル化] タブの [データの設計] で、[プロパティ インスペクター] を選択します。

  2. Stateflow エディターで、状態遷移表をクリックします。

  3. [プロパティ インスペクター] で、状態遷移表のプロパティを編集します。

モデル エクスプローラーを使用するには、次を行います。

  1. [モデル化] タブの [データの設計] で、[モデル エクスプローラー] を選択します。

  2. [モデルの階層構造] ペインで、状態遷移表を選択します。

  3. [ダイアログ] ペインで、状態遷移表のプロパティを編集します。

[状態遷移表] プロパティ ダイアログ ボックスを使用するには、次を行います。

  1. Stateflow エディターを開きます。

  2. [モデル化] タブで [テーブル プロパティ] をクリックします。

  3. プロパティ ダイアログ ボックスで、状態遷移表のプロパティを編集します。

状態遷移表のプロパティは、Stateflow.StateTransitionTableChart オブジェクトを使用してプログラムで変更することもできます。Stateflow プログラム インターフェイスの詳細については、Stateflow API の概要を参照してください。

ヒント

状態遷移表のプロパティは、Stateflow チャートのプロパティのサブセットです。各プロパティの詳細は、「Stateflow チャートのプロパティの指定」を参照してください。

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

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

参考

ブロック

オブジェクト

関連するトピック