メインコンテンツ

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

State Transition Table

モーダル ロジックを表形式で表現

  • State Transition Table block

ライブラリ:
Stateflow

説明

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

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

端子

入力

すべて展開する

[シンボル] ペインを使用して Stateflow 状態遷移表で入力データを作成すると、Stateflow により State Transition Table ブロックに対応する入力端子が作成されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

出力

すべて展開する

[シンボル] ペインを使用して Stateflow 状態遷移表で出力データを作成すると、Stateflow により State Transition Table ブロックに対応する出力端子が作成されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

メモ

State Transition Table ブロックには Subsystem (Simulink) ブロック パラメーターもあり、これらのパラメーターにアクセスするには、ブロックを右クリックして [ブロック パラメーター (Subsystem)] をクリックします。ただし、これらのブロック パラメーターを更新することは推奨されません。

Stateflow 状態遷移表を更新または起動する方法。[継承][離散]、または [連続] として指定します。

継承

Simulink モデルからの入力によって、シミュレーション中に状態遷移表を起動するタイミングが決定されます。

状態遷移表の入力イベントを定義した場合、トリガー端子に接続されている Simulink ブロックからの信号によって状態遷移表がトリガーされます。Simulink 信号は、[立ち上がり][立ち下がり]、または [両方] (立ち上がりと立ち下がり) か、[関数呼び出し] に応答するものになります。詳細については、入力イベントの送信による Stateflow チャートのアクティブ化を参照してください。

入力イベントを定義していない場合、Stateflow 状態遷移表は暗黙的に Simulink モデルからのトリガーを継承します。これらの暗黙的なイベントは、入力を状態遷移表に渡す Simulink 信号の離散サンプル時間または連続サンプル時間です。データ入力を定義している場合、状態遷移表は最速のデータ入力のレートで起動します。状態遷移表のデータ入力を定義していない場合は、状態遷移表は親サブシステムの実行動作の定義に従って起動します。

離散

Stateflow 状態遷移表は、Simulink モデルが [サンプル時間] 状態遷移表プロパティで指定した一定の時間間隔で暗黙的イベントを生成すると起動します。Simulink モデルの他のブロックは、サンプル時間が異なる場合があります。

連続

Stateflow 状態遷移表がそのステートを更新するのはメジャー タイム ステップ中のみで、出力およびローカル連続変数はメジャー タイム ステップ中とマイナー タイム ステップ中に計算されます。状態遷移表はゼロクロッシングを登録でき、ステートの変化が発生するたびに、Simulink モデルによる Stateflow 状態遷移表のサンプリングを許可します。Stateflow 状態遷移表は、ローカル連続変数の導関数を計算します。詳細については、Stateflow の連続時間モデルを参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ChartUpdate
値: "INHERITED" (既定値) | "CONTINUOUS" | "DISCRETE"

既定の時間間隔は -1 で、これは Stateflow 状態遷移表が Simulink からサンプル時間を継承することを示します。

シミュレーション中に状態遷移表が起動する時間間隔を指定します。既定値は、状態遷移表が Simulink からサンプル時間を継承することを示します。サンプル時間の指定の詳細については、サンプル時間の指定 (Simulink)を参照してください。

Subsystem ブロック パラメーターの [サンプル時間] パラメーターは使用しないでください。代わりに、プロパティ インスペクターを使用してください。

依存関係

このパラメーターを有効にするには、[更新方法][離散] に設定します。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SampleTime
値: "-1" (既定値) | string scalar | character vector
データ型: string | char

状態遷移表のアクティブ ステート データの出力端子を作成するかどうか。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: HasOutputData
値: false or 0 (既定値) | true or 1
データ型: logical

アクティブ ステートの出力データに対する監視モード。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: OutputMonitoringMode
値: "ChildActivity" (既定値) | "LeafStateActivity"

状態遷移表のアクティブ ステート データ オブジェクトの名前。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: OutputPortName
値: "State_Transition_TableMode" (既定値) | string scalar | character vector
データ型: string | char

状態遷移表のアクティブ ステート データ オブジェクトの名前。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnumTypeName
値: "State_Transition_TableModeType" (既定値) | string scalar | character vector
データ型: string | char

アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。詳細については、ステート アクティビティの列挙型の定義を参照してください。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: DoNotAutogenerateEnum
値: false or 0 (既定値) | true or 1
データ型: logical

詳細設定

最初の入力イベントに際してではなく、時間 0 で状態遷移表のステート構成を初期化するかどうか。詳細については、チャートの初期化実行を参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ExecuteAtInitialization
値: false or 0 (既定値) | true or 1
データ型: logical

状態遷移表内のデータが整数オーバーフローで飽和するかどうか。このパラメーターをオフにすると、状態遷移表内のデータは整数オーバーフローでラップします。詳細については、チャート データの整数オーバーフローと列挙オーバーフローの処理を参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SaturateOnIntegerOverflow
値: true or 1 (既定値) | false or 0
データ型: logical

状態遷移表が起動するたびに出力データを初期化するかどうか。

このパラメーターをオンにすると、時間 0 だけでなく、状態遷移表が起動するたびに状態遷移表の出力値がリセットされます。関数呼び出し、エッジ トリガー、または時間刻みで状態遷移表がトリガーされるたびに、状態遷移表の出力値はリセットされます。出力データ オブジェクトの初期値を設定した場合、出力はその値にリセットされます。それ以外の場合、出力はゼロにリセットされます。このパラメーターは、以下の目的がある場合に選択します。

  • 状態遷移表が実行されるたびに、すべての出力が確実に定義されるようにする。

  • 出力のラッチを回避する (つまり、以前の実行時に計算された出力値を回避する)。

  • すべての状態遷移表出力に有効な初期値を指定する。

詳細については、初期値を参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: InitializeOutput
値: false or 0 (既定値) | true or 1
データ型: logical

状態遷移表が可変サイズ データをサポートするかどうか。詳細については、Stateflow チャートでの可変サイズ データの宣言を参照してください。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SupportVariableSizing
値: true or 1 (既定値) | false or 0
データ型: logical

状態遷移表のスーパー ステップのセマンティクスを有効にするかどうか。安定したステートに達するまで、タイム ステップごとに状態遷移表で複数の遷移が可能になるようにするには、このパラメーターを選択します。このオプションは、チャート プロパティ [更新方法] を [連続] に設定している場合には使用できません。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[更新方法][離散] に設定します。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnableNonTerminalStates
値: false or 0 (既定値) | true or 1
データ型: logical

1 つのスーパー ステップで実行できる遷移の最大回数。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[スーパー ステップのセマンティクスを有効にする] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: NonTerminalMaxCounts
値: 1000 (既定値) | positive integer
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

スーパー ステップが 1 つのスーパー ステップにおける遷移の最大回数を超過した場合に Stateflow によって実行されるアクション。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[スーパー ステップのセマンティクスを有効にする] を有効にします。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: NonTerminalUnstableBehavior
値: "Proceed" (既定値) | "Throw Error"

R2023a 以降

状態遷移表が長さ 1 の次元をもつ非スカラー データを固定サイズとして扱うかどうか。このパラメーターをオンにすると、[可変サイズ] データ プロパティを有効にしたかどうかに関係なく、状態遷移表は少なくとも 1 つの次元の長さが 1 である非スカラー データを固定サイズとして扱います。このパラメーターをオフにすると、状態遷移表は [可変サイズ] プロパティが有効になっている非スカラー データを可変サイズとして扱います。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: TreatDimensionOfLengthOneAsFixedSize
値: true or 1 (既定値) | false or 0
データ型: logical

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

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ActionLanguage
値: "MATLAB" (既定値) | "C"

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

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: StateMachineType
値: "Classic" (既定値) | "Mealy" | "Moore"

固定小数点プロパティ

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

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

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

このパラメーターは、MATLAB をアクション言語として使用する状態遷移表にのみ適用されます。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: TreatAsFi
値: "Fixed-point" (既定値) | "Fixed-point & Integer"

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

  • Same as MATLAB — 状態遷移表は、現在の既定の fimath オブジェクトと同じ fimath オブジェクト プロパティを使用します。テキスト ボックスが淡色表示され、現在のグローバル fimath オブジェクトが読み取り専用で表示されます。

  • Specify other — テキスト ボックスで独自の fimath オブジェクトを指定します。

詳細については、fimath オブジェクトの作成 (Fixed-Point Designer)を参照してください。

依存関係

このパラメーターを有効にするには、[アクション言語][MATLAB] に設定します。

プログラムでの使用

ブロックのパラメーター値をプログラムで設定するには、ブロックの Stateflow.StateTransitionTableChart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EmlDefaultFimath
値: "Same as MATLAB Default" (既定値) | "Other:UserSpecified"

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2012b で導入

すべて展開する