Main Content

Stateflow.Chart

有限ステート マシンのグラフィカル表現

    説明

    Stateflow.Chart オブジェクトは、ステート、遷移、およびデータを組み合わせることによって有限ステート マシンのグラフィカル表現を作成するために使用します。詳細については、Stateflow チャートを使用した有限ステート マシンのモデル化およびStateflow API を使用したチャートの作成を参照してください。

    作成

    Stateflow.Chart オブジェクトを作成するには、関数 sfnew を呼び出します。たとえば、myModel という新しい Simulink® モデル内に空のチャートを作成するには、次のように入力します。

    sfnew myModel

    あるいは、関数 add_block (Simulink) を使用することにより、新しいチャートを既存のモデルに追加できます。

    add_block("sflib/Chart","myModel/Chart")

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

    chart = find(sfroot,"-isa","Stateflow.Chart", ...
        Path="myModel/Chart");

    プロパティ

    すべて展開する

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

    内容

    チャートの名前。string スカラーまたは文字ベクトルとして指定します。

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

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

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

    ステート構造

    チャート内の包含の最上位にあるサブステートの構造。"EXCLUSIVE_OR" または "PARALLEL_AND" として指定します。詳細については、ステート構造を使用した排他的モードとパラレル モードの定義を参照してください。

    チャートの初期化

    最初の入力イベントに際してではなく、時間 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 である場合にのみ適用されます。

    エクスポートされる関数

    チャートレベルの関数を Simulink モデル内の他のブロックにエクスポートするかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。詳細については、再利用のための Stateflow 関数のエクスポートを参照してください。

    チャートからエクスポートされる関数が Simulink モデル内でグローバルに可視であるかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティが有効な場合、モデル全体のブロックで、チャートからエクスポートされる関数を修飾表記を使用せずに呼び出すことができます。このプロパティは、チャートの ExportChartFunctions プロパティが true である場合にのみ適用されます。

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

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

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

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

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

    このプロパティは、MATLAB® をアクション言語として使用するチャートにのみ適用されます。

    チャートの既定の fimath プロパティ。次のいずれかの値として指定します。

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

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

    このプロパティは、チャートの ActionLanguage プロパティが "MATLAB" である場合にのみ適用されます。

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

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

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

    このプロパティは、MATLAB をアクション言語として使用するチャートにのみ適用されます。

    コード生成

    チャート内のバリアント条件のプリプロセッサ条件付きステートメントが、生成コードに含まれるかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、Embedded Coder® でコードを生成する場合にのみ適用されます。詳細については、バリアント遷移を使用したコード生成を参照してください。

    C アクション言語

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

    パラレル ステートおよび遷移の明示的な順序付けを使用するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。このプロパティは、C をアクション言語として使用するチャートにのみ適用されます。詳細については、ユーザー指定のステート/遷移実行順序を参照してください。

    デバッグ

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

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

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

    例: chart.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.StateFont オブジェクトとして指定します。

    • Name — フォント名。string スカラーまたは文字ベクトルとして指定します。このプロパティは、チャート内の注釈のフォントも決定します。

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

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

    • Size — 新しいボックス、関数、ステートに用いる既定のフォント サイズ。スカラーとして指定します。このプロパティは、チャート内における新しい注釈の既定のフォント サイズも決定します。

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

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

    例: chart.StateFont.Weight = "BOLD;

    例: chart.StateFont.Size = 8;

    チャート内のボックス、関数、ステートのラベルに用いる色。赤、緑、青の値を指定する [red green blue] 形式の 3 要素数値ベクトルとして指定します。各要素は 0 ~ 1 の範囲とする必要があります。

    チャート内の遷移ラベルのフォント。次のプロパティをもつ Stateflow.TransFont オブジェクトとして指定します。

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

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

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

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

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

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

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

    例: chart.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オブジェクトの子の特定
    defaultTransitions指定したオブジェクト内のデフォルト遷移の特定
    dialogプロパティ ダイアログ ボックスを開く
    view編集環境でオブジェクトを表示
    fitToViewグラフィカル オブジェクトの拡大表示

    すべて折りたたむ

    関数 sfnew を呼び出して、空の Stateflow チャートを含む新しい Simulink モデルを開きます。

    sfnew

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

    rt = sfroot;

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

    chart = find(rt,"-isa","Stateflow.Chart");

    バージョン履歴

    R2006a より前に導入