このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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 オブジェクトのプロパティの変更と関数の呼び出しを参照してください。
内容
Name
— 状態遷移表の名前
"State Transition Table"
(既定値) | string スカラー | 文字ベクトル
状態遷移表の名前。string スカラーまたは文字ベクトルとして指定します。
ActionLanguage
— アクション言語
"MATLAB"
(既定値) | "C"
状態遷移表のプログラミングに使用されるアクション言語。"MATLAB"
または "C"
として指定します。詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。
StateMachineType
— ステート マシンのセマンティクス
"Classic"
(既定値) | "Mealy"
| "Moore"
状態遷移表によって実装されるステート マシンのセマンティクス。"Classic"
、"Mealy"
、または "Moore"
として指定します。詳細については、Mealy マシンと Moore マシンの概要を参照してください。
SupportVariableSizing
— 状態遷移表が可変サイズ データをサポートするかどうか
true
または 1 (既定値) | false
または 0
状態遷移表が可変サイズ データをサポートするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、Stateflow チャートでの可変サイズ データの宣言を参照してください。
チャートの初期化
ExecuteAtInitialization
— ステート構成を初期化するかどうか
false
または 0 (既定値) | true
または 1
最初の入力イベントに際してではなく、時間 0 で状態遷移表のステート構成を初期化するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、チャートの初期化実行を参照してください。
StatesWhenEnabling
— イベントが状態遷移表を再び有効にするときのステートの動作
""
(既定値) | "held"
| "reset"
関数呼び出し入力イベントが状態遷移表を再び有効にするときのステートの動作。次のいずれかの値として指定します。
""
— 状態遷移表に関数呼び出し入力イベントが含まれていません。"held"
— 状態遷移表はステートの最新の値を保持します。"reset"
— 状態遷移表はステートの初期状態に戻ります。
詳細については、関数呼び出し入力イベントによって有効になったチャートでのステートの制御を参照してください。
InitializeOutput
— 出力データを初期化するかどうか
false
または 0 (既定値) | true
または 1
状態遷移表が起動するたびに出力データを初期化するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、チャート実行ごとに出力を初期化を参照してください。
アクティブ ステートの出力
HasOutputData
— アクティブ ステート データの出力を作成するかどうか
false
または 0 (既定値) | true
または 1
状態遷移表のアクティブ ステート データの出力端子を作成するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。
OutputData
— アクティブ ステート データ オブジェクト
Stateflow.Data
オブジェクト
この プロパティ は読み取り専用です。
状態遷移表のアクティブ ステート データ オブジェクト。Stateflow.Data
オブジェクトとして指定します。このプロパティは、状態遷移表の HasOutputData
プロパティが true
である場合にのみ適用されます。
OutputPortName
— アクティブ ステート データ オブジェクトの名前
string スカラー | 文字ベクトル
状態遷移表のアクティブ ステート データ オブジェクトの名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、状態遷移表の HasOutputData
プロパティが true
である場合にのみ適用されます。
OutputMonitoringMode
— アクティブ ステートの出力に対する監視モード
"ChildActivity"
(既定値) | "LeafStateActivity"
アクティブ ステートの出力データに対する監視モード。"ChildActivity"
または "LeafStateActivity"
として指定します。
EnumTypeName
— アクティブ ステート データ オブジェクトの列挙データ型の名前
string スカラー | 文字ベクトル
状態遷移表のアクティブ ステート データ オブジェクトの列挙データ型の名前。string スカラーまたは文字ベクトルとして指定します。詳細については、Enum 名を参照してください。
DoNotAutogenerateEnum
— 列挙データ型を手動で定義するかどうか
false
または 0 (既定値) | true
または 1
アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、ステート アクティビティの列挙型の定義を参照してください。
離散時間と連続時間のセマンティクス
ChartUpdate
— 状態遷移表のアクティブ化方法
"INHERITED"
(既定値) | "CONTINUOUS"
| "DISCRETE"
状態遷移表のアクティブ化方法。"CONTINUOUS"
、"DISCRETE"
、または "INHERITED"
として指定します。詳細については、更新方法を参照してください。
SampleTime
— 状態遷移表のアクティブ化のサンプル時間
"-1"
(既定値) | string スカラー | 文字ベクトル
状態遷移表のアクティブ化のサンプル時間。string スカラーまたは文字ベクトルとして指定します。このプロパティは、状態遷移表の ChartUpdate
プロパティが "DISCRETE"
である場合にのみ適用されます。
EnableZeroCrossings
— ゼロクロッシング検出を有効にするかどうか
true
または 1 (既定値) | false
または 0
状態遷移表内のステート遷移でゼロクロッシング検出を有効にするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、状態遷移表の ChartUpdate
プロパティが "CONTINUOUS"
に設定されている場合にのみ適用されます。詳細については、ゼロクロッシング検出の無効化を参照してください。
スーパー ステップのセマンティクス
EnableNonTerminalStates
— スーパー ステップのセマンティクスを有効にするかどうか
false
または 0 (既定値) | true
または 1
状態遷移表のスーパー ステップのセマンティクスを有効にするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、スーパー ステップのセマンティクスを参照してください。
NonTerminalMaxCounts
— 1 つのスーパー ステップにおける遷移の最大回数
1000
(既定値) | スカラー
状態遷移表が 1 つのスーパー ステップで実行できる遷移の最大回数。整数スカラーとして指定します。このプロパティは、状態遷移表の EnableNonTerminalStates
プロパティが true
である場合にのみ適用されます。
NonTerminalUnstableBehavior
— スーパー ステップが遷移の最大回数を超過した場合の動作
"Proceed"
(既定値) | "Throw Error"
安定したステートに到達する前に、NonTerminalMaxCounts
プロパティで指定した遷移の最大回数を状態遷移表のスーパー ステップが超過した場合の動作。次のいずれかの値として指定します。
"Proceed"
— 状態遷移表は最後のアクティブ ステート構成でスリープします。"Throw Error"
— 状態遷移表はエラーを生成します。
このプロパティは、状態遷移表の EnableNonTerminalStates
プロパティが true
である場合にのみ適用されます。
整数および固定小数点データ
SaturateOnIntegerOverflow
— データが整数オーバーフローで飽和するかどうか
true
または 1 (既定値) | false
または 0
状態遷移表内のデータが整数オーバーフローで飽和するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティが無効な場合、状態遷移表内のデータは整数オーバーフローでラップします。詳細については、チャート データの整数オーバーフローの処理を参照してください。
TreatAsFi
— fi
オブジェクトとして扱う、継承された Simulink 信号
"Fixed-point"
(既定値) | "Fixed-point & Integer"
Fixed-Point Designer™ fi
オブジェクトとして扱う、継承された Simulink 信号。次のいずれかの値として指定します。
"Fixed-point"
— 状態遷移表はすべての固定小数点入力をfi
オブジェクトとして扱います。"Fixed-point & Integer"
— 状態遷移表はすべての固定小数点および整数の入力をfi
オブジェクトとして扱います。
このプロパティは、状態遷移表の ActionLanguage
プロパティが "MATLAB"
である場合にのみ適用されます。
EmlDefaultFimath
— 既定の fimath
プロパティ
"Same as MATLAB Default"
(既定値) | "Other:UserSpecified"
状態遷移表の既定の fimath
プロパティ。次のいずれかの値として指定します。
"Same as MATLAB Default"
— 現在の既定のfimath
オブジェクトと同じfimath
プロパティを使用します。"Other:UserSpecified"
—InputFimath
プロパティを使用して既定のfimath
オブジェクトを指定します。
このプロパティは、状態遷移表の ActionLanguage
プロパティが "MATLAB"
である場合にのみ適用されます。
InputFimath
— 既定の fimath
オブジェクト
string スカラー | 文字ベクトル
既定の fimath
オブジェクト。string スカラーまたは文字ベクトルとして指定します。状態遷移表の EmlDefaultFimath
プロパティが "Other:UserSpecified"
である場合、このプロパティを使用して次のことが可能です。
fimath
オブジェクトを構成する式を入力。fimath
オブジェクトの変数名を MATLAB® またはモデル ワークスペースに入力。
このプロパティは、状態遷移表の ActionLanguage
プロパティが "MATLAB"
である場合にのみ適用されます。
C アクション言語
EnableBitOps
— ビット演算を使用するかどうか
false
または 0 (既定値) | true
または 1
状態遷移表内のステート アクションおよび遷移アクションでビット演算を使用するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、C をアクション言語として使用する状態遷移表にのみ適用されます。詳細については、C 言語のビット演算が可能を参照してください。
デバッグ
Debug
— デバッガーのプロパティ
Stateflow.ChartDebug
オブジェクト
状態遷移表に対するデバッガーのプロパティ。次のプロパティをもつ Stateflow.ChartDebug
オブジェクトとして指定します。
Breakpoints.OnEntry
—On Chart Entry
ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
詳細については、チャートのデバッグのためのブレークポイントの設定を参照してください。
例: table.Debug.Breakpoints.OnEntry = true;
グラフィカルな外観
Editor
— エディター
Stateflow.Editor
オブジェクト
この プロパティ は読み取り専用です。
状態遷移表のエディター。Stateflow.Editor
オブジェクトとして指定します。このオブジェクトを使用すると、Stateflow エディター ウィンドウの位置、サイズ、倍率レベルを制御できます。
Visible
— エディターに状態遷移表を表示するかどうか
true
または 1 | false
または 0
Stateflow エディター ウィンドウに状態遷移表を表示するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
ChartColor
— 背景色
[1 0.9608 0.8824]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャートの背景色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
StateColor
— ステートの色
[0 0 0]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャート内のステートの色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
TransitionColor
— 遷移の色
[0.2902 0.3294 0.6039]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャート内の遷移の色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
JunctionColor
— ジャンクションの色
[0.6824 0.3294 0]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャート内のジャンクションの色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
StateFont
— ステート ラベルのフォント
Stateflow.STTStateFont
オブジェクト
状態遷移表用に自動生成されるチャート内のステート ラベルに用いるフォント。次のプロパティをもつ 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;
StateLabelColor
— ステート ラベルの色
[0 0 0]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャート内のステート ラベルの色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
TransitionFont
— 遷移ラベルのフォント
Stateflow.STTTransFont
オブジェクト
状態遷移表用に自動生成されるチャート内の遷移ラベルに用いるフォント。次のプロパティをもつ 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;
TransitionLabelColor
— 遷移ラベルの色
[0.2902 0.3294 0.6039]
(既定値) | [red green blue]
状態遷移表用に自動生成されるチャート内の遷移ラベルの色。赤、緑、青の値を指定する [red green blue]
形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。
階層
Machine
— 状態遷移表を含むマシン
Stateflow.Machine
オブジェクト
この プロパティ は読み取り専用です。
状態遷移表を含むマシン。Stateflow.Machine
オブジェクトとして指定します。
Path
— モデルの階層構造における状態遷移表の場所
文字ベクトル
この プロパティ は読み取り専用です。
モデルの階層構造における状態遷移表の場所。文字ベクトルとして指定します。
Dirty
— 状態遷移表が変更されたかどうか
true
または 1 | false
または 0
状態遷移表が開かれたか保存された後に変更されたかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
Locked
— 状態遷移表がロックされているかどうか
false
または 0 (既定値) | true
または 1
状態遷移表がロックされているかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。状態遷移表内の変更を防止するには、このプロパティを有効にします。
Iced
— 状態遷移表がロックされているかどうか
false
または 0 (既定値) | true
または 1
この プロパティ は読み取り専用です。
状態遷移表がロックされているかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティはプロパティ Locked
と等価ですが、シミュレーション中の状態遷移表の変更を防止するために内部で使用されます。
識別
Description
— 説明
""
(既定値) | string スカラー | 文字ベクトル
状態遷移表の説明。string スカラーまたは文字ベクトルとして指定します。
Document
— ドキュメント リンク
""
(既定値) | string スカラー | 文字ベクトル
状態遷移表のドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。
Tag
— ユーザー定義のタグ
[]
(既定値) | 任意のデータ型
状態遷移表のユーザー定義のタグ。任意の型のデータとして指定します。
Id
— 一意の識別子
スカラー
この プロパティ は読み取り専用です。
一意の識別子。整数スカラーとして指定します。このプロパティを使用して、状態遷移表をモデル内の他のオブジェクトと区別します。このプロパティの値は、新しい 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 で導入R2022b: 状態遷移表の内容のエクスポート
オブジェクト関数 exportAsStruct
を呼び出すことにより、状態遷移表の内容を構造体の階層としてエクスポートします。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)