Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow.StateTransitionTableChart

モーダル ロジック用のステート マシンの表形式の表現

    説明

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

    作成

    Stateflow.StateTransitionTableChart オブジェクトを作成するには、関数 sfnew を引数 -STT を指定して呼び出します。たとえば、myModel という新しい Simulink® モデル内に State Transition Table ブロックを作成するには、次のように入力します。

    sfnew -STT myModel

    あるいは、関数 add_block (Simulink) を使用することにより、新しい State Transition Table ブロックを既存のモデルに追加できます。

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

    次に、Stateflow.StateTransitionTableChart オブジェクトにアクセスするために、Simulink.Root オブジェクトに対し関数 find を呼び出します。

    table = find(sfroot,"-isa","Stateflow.StateTransitionTableChart", ...
        Path="myModel/State Transition Table");

    プロパティ

    すべて展開する

    Stateflow API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。プロパティにアクセスするかプロパティを変更するには、ドット表記を使用します。複数の API オブジェクトの複数のプロパティにアクセスするか、それらを変更するには、関数 get および関数 set をそれぞれ使用します。詳細については、Stateflow オブジェクトのプロパティの変更と関数の呼び出しを参照してください。

    内容

    状態遷移表の名前。string スカラーまたは文字ベクトルとして指定します。

    状態遷移表のプログラミングに使用されるアクション言語。"MATLAB" または "C" として指定します。詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

    状態遷移表によって実装されるステート マシンのセマンティクス。"Classic""Mealy"、または "Moore" として指定します。詳細については、Mealy マシンと Moore マシンの概要を参照してください。

    状態遷移表が可変サイズ データをサポートするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、Stateflow チャートでの可変サイズ データの宣言を参照してください。

    チャートの初期化

    最初の入力イベントに際してではなく、時間 0 で状態遷移表のステート構成を初期化するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、チャートの初期化実行を参照してください。

    関数呼び出し入力イベントが状態遷移表を再び有効にするときのステートの動作。次のいずれかの値として指定します。

    • "" — 状態遷移表に関数呼び出し入力イベントが含まれていません。

    • "held" — 状態遷移表はステートの最新の値を保持します。

    • "reset" — 状態遷移表はステートの初期状態に戻ります。

    詳細については、関数呼び出し入力イベントによって有効になったチャートでのステートの制御を参照してください。

    状態遷移表が起動するたびに出力データを初期化するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、チャート実行ごとに出力を初期化を参照してください。

    アクティブ ステートの出力

    状態遷移表のアクティブ ステート データの出力端子を作成するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。

    この プロパティ は読み取り専用です。

    状態遷移表のアクティブ ステート データ オブジェクト。Stateflow.Data オブジェクトとして指定します。このプロパティは、状態遷移表の HasOutputData プロパティが true である場合にのみ適用されます。

    状態遷移表のアクティブ ステート データ オブジェクトの名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、状態遷移表の HasOutputData プロパティが true である場合にのみ適用されます。

    アクティブ ステートの出力データに対する監視モード。"ChildActivity" または "LeafStateActivity" として指定します。

    状態遷移表のアクティブ ステート データ オブジェクトの列挙データ型の名前。string スカラーまたは文字ベクトルとして指定します。詳細については、Enum 名を参照してください。

    アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、ステート アクティビティの列挙型の定義を参照してください。

    離散時間と連続時間のセマンティクス

    状態遷移表のアクティブ化方法。"CONTINUOUS""DISCRETE"、または "INHERITED" として指定します。詳細については、更新方法を参照してください。

    状態遷移表のアクティブ化のサンプル時間。string スカラーまたは文字ベクトルとして指定します。このプロパティは、状態遷移表の ChartUpdate プロパティが "DISCRETE" である場合にのみ適用されます。

    状態遷移表内のステート遷移でゼロクロッシング検出を有効にするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、状態遷移表の ChartUpdate プロパティが "CONTINUOUS" に設定されている場合にのみ適用されます。詳細については、ゼロクロッシング検出の無効化を参照してください。

    スーパー ステップのセマンティクス

    状態遷移表のスーパー ステップのセマンティクスを有効にするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、スーパー ステップのセマンティクスを参照してください。

    状態遷移表が 1 つのスーパー ステップで実行できる遷移の最大回数。整数スカラーとして指定します。このプロパティは、状態遷移表の EnableNonTerminalStates プロパティが true である場合にのみ適用されます。

    安定したステートに到達する前に、NonTerminalMaxCounts プロパティで指定した遷移の最大回数を状態遷移表のスーパー ステップが超過した場合の動作。次のいずれかの値として指定します。

    • "Proceed" — 状態遷移表は最後のアクティブ ステート構成でスリープします。

    • "Throw Error" — 状態遷移表はエラーを生成します。

    このプロパティは、状態遷移表の EnableNonTerminalStates プロパティが true である場合にのみ適用されます。

    整数および固定小数点データ

    状態遷移表内のデータが整数オーバーフローで飽和するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティが無効な場合、状態遷移表内のデータは整数オーバーフローでラップします。詳細については、チャート データの整数オーバーフローの処理を参照してください。

    Fixed-Point Designer™ fi オブジェクトとして扱う、継承された Simulink 信号。次のいずれかの値として指定します。

    • "Fixed-point" — 状態遷移表はすべての固定小数点入力を fi オブジェクトとして扱います。

    • "Fixed-point & Integer" — 状態遷移表はすべての固定小数点および整数の入力を fi オブジェクトとして扱います。

    このプロパティは、状態遷移表の ActionLanguage プロパティが "MATLAB" である場合にのみ適用されます。

    状態遷移表の既定の fimath プロパティ。次のいずれかの値として指定します。

    • "Same as MATLAB Default" — 現在の既定の fimath オブジェクトと同じ fimath プロパティを使用します。

    • "Other:UserSpecified"InputFimath プロパティを使用して既定の fimath オブジェクトを指定します。

    このプロパティは、状態遷移表の ActionLanguage プロパティが "MATLAB" である場合にのみ適用されます。

    既定の fimath オブジェクト。string スカラーまたは文字ベクトルとして指定します。状態遷移表の EmlDefaultFimath プロパティが "Other:UserSpecified" である場合、このプロパティを使用して次のことが可能です。

    • fimath オブジェクトを構成する式を入力。

    • fimath オブジェクトの変数名を MATLAB® またはモデル ワークスペースに入力。

    このプロパティは、状態遷移表の ActionLanguage プロパティが "MATLAB" である場合にのみ適用されます。

    C アクション言語

    状態遷移表内のステート アクションおよび遷移アクションでビット演算を使用するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、C をアクション言語として使用する状態遷移表にのみ適用されます。詳細については、C 言語のビット演算が可能を参照してください。

    デバッグ

    状態遷移表に対するデバッガーのプロパティ。次のプロパティをもつ Stateflow.ChartDebug オブジェクトとして指定します。

    • Breakpoints.OnEntryOn Chart Entry ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    詳細については、チャートのデバッグのためのブレークポイントの設定を参照してください。

    例: table.Debug.Breakpoints.OnEntry = true;

    グラフィカルな外観

    この プロパティ は読み取り専用です。

    状態遷移表のエディター。Stateflow.Editor オブジェクトとして指定します。このオブジェクトを使用すると、Stateflow エディター ウィンドウの位置、サイズ、倍率レベルを制御できます。

    Stateflow エディター ウィンドウに状態遷移表を表示するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    状態遷移表用に自動生成されるチャートの背景色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    状態遷移表用に自動生成されるチャート内のステートの色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    状態遷移表用に自動生成されるチャート内の遷移の色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    状態遷移表用に自動生成されるチャート内のジャンクションの色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    状態遷移表用に自動生成されるチャート内のステート ラベルに用いるフォント。次のプロパティをもつ Stateflow.STTStateFont オブジェクトとして指定します。

    • Name — フォント名。string スカラーまたは文字ベクトルとして指定します。

    • Angle — フォントの角度。"NORMAL" または "ITALIC" として指定します。

    • Weight — フォントの太さ。"NORMAL" または "BOLD" として指定します。

    • Size — 新しいステートに用いる既定のフォント サイズ。スカラーとして指定します。

    例: table.StateFont.Name = "Arial";

    例: table.StateFont.Angle = "ITALIC";

    例: table.StateFont.Weight = "BOLD;

    例: table.StateFont.Size = 8;

    状態遷移表用に自動生成されるチャート内のステート ラベルの色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    状態遷移表用に自動生成されるチャート内の遷移ラベルに用いるフォント。次のプロパティをもつ Stateflow.STTTransFont オブジェクトとして指定します。

    • Name — フォント名。string スカラーまたは文字ベクトルとして指定します。

    • Angle — フォントの角度。"NORMAL" または "ITALIC" として指定します。

    • Weight — フォントの太さ。"NORMAL" または "BOLD" として指定します。

    • Size — 新しい遷移に用いる既定のフォント サイズ。スカラーとして指定します。

    例: table.TransitionFont.Name = "Arial";

    例: table.TransitionFont.Angle = "ITALIC";

    例: table.TransitionFont.Weight = "BOLD";

    例: table.TransitionFont.Size = 8;

    状態遷移表用に自動生成されるチャート内の遷移ラベルの色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    階層

    この プロパティ は読み取り専用です。

    状態遷移表を含むマシン。Stateflow.Machine オブジェクトとして指定します。

    この プロパティ は読み取り専用です。

    モデルの階層構造における状態遷移表の場所。文字ベクトルとして指定します。

    状態遷移表が開かれたか保存された後に変更されたかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    状態遷移表がロックされているかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。状態遷移表内の変更を防止するには、このプロパティを有効にします。

    この プロパティ は読み取り専用です。

    状態遷移表がロックされているかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティはプロパティ Locked と等価ですが、シミュレーション中の状態遷移表の変更を防止するために内部で使用されます。

    識別

    状態遷移表の説明。string スカラーまたは文字ベクトルとして指定します。

    状態遷移表のドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。

    状態遷移表のユーザー定義のタグ。任意の型のデータとして指定します。

    この プロパティ は読み取り専用です。

    一意の識別子。整数スカラーとして指定します。このプロパティを使用して、状態遷移表をモデル内の他のオブジェクトと区別します。このプロパティの値は、新しい MATLAB セッションを開始するたびに再割り当てされ、オブジェクトが削除されるとリサイクルされる場合があります。

    オブジェクト関数

    find階層内で指定したオブジェクトの識別
    getChildrenオブジェクトの子の特定
    dialogプロパティ ダイアログ ボックスを開く
    view編集環境でオブジェクトを表示
    exportAsStruct状態遷移表の内容を構造体配列としてエクスポート

    すべて折りたたむ

    関数 sfnew-STT 引数を指定して呼び出して、空の State Transition Table ブロックを含む新しい Simulink モデルを開きます。

    sfnew -STT

    関数 sfroot を呼び出して Simulink.Root オブジェクトにアクセスします。

    rt = sfroot;

    Simulink.Root オブジェクトに対し関数 find を呼び出して、Stateflow.StateTransitionTableChart オブジェクトにアクセスします。

    table = find(rt,"-isa","Stateflow.StateTransitionTableChart");

    状態遷移表を使用したバンバン制御器のモデル化の状態遷移表の内容を構造体の配列としてエクスポートします。この状態遷移表には、2 つの最上位ステートと 3 つのサブステートが含まれています。

    状態遷移表の Stateflow.StateTransitionTableChart にアクセスします。

    table = find(sfroot,"-isa","Stateflow.StateTransitionTableChart");

    状態遷移表の内容を、構造体の配列としてエクスポートします。

    structure = exportAsStruct(table)
    structure = 
    
      1×5 struct array with fields:
    
        rowText
        depth
        rowType
        isDefaultTransitionOwner
        isWhenState
        hasHistory
        isExpanded
        outlinedTransitionIdxs
        sfObjectInfo
        aslInfo
        decompositionInfo

    最上位ステートの内容を表示します。

    structure(1)
    ans = 
    
      struct with fields:
    
                         rowText: {'Normal'  {3×1 cell}  {3×1 cell}}
                           depth: 1
                         rowType: 0
        isDefaultTransitionOwner: 1
                     isWhenState: 0
                      hasHistory: 0
                      isExpanded: 1
          outlinedTransitionIdxs: [0 0 0]
                    sfObjectInfo: [1×3 struct]
                         aslInfo: [1×1 struct]
               decompositionInfo: [1×1 struct]

    子ステートの内容を表示します。

    structure(4)
    ans = 
    
      struct with fields:
    
                         rowText: {'On↵entry:↵boiler_cmd = 1;'  {3×1 cell}  {3×1 cell}}
                           depth: 2
                         rowType: 0
        isDefaultTransitionOwner: 0
                     isWhenState: 0
                      hasHistory: 0
                      isExpanded: 0
          outlinedTransitionIdxs: [0 0 0]
                    sfObjectInfo: [1×3 struct]
                         aslInfo: [1×1 struct]
               decompositionInfo: [1×1 struct]

    バージョン履歴

    R2012b で導入

    すべて展開する