Main Content

遷移とジャンクションを結合して分岐パスを作成

"コネクティブ ジャンクション" は、遷移パスの判定点を表します。遷移とコネクティブ ジャンクションを結合すると、単一の遷移元から複数の遷移先へのパス、または複数の遷移元から単一の遷移先へのパスを作成できます。分岐パスのセマンティクスの詳細については、コネクティブ ジャンクションを使用した複数パスの表現を参照してください。

コネクティブ ジャンクションの追加

遷移をチャートに追加するときに、Stateflow® エディターはジャンクションまたはステートを追加できるようにするためのグラフィカル キューを提供します。ジャンクションを遷移の末尾に配置するには、円形のキューをクリックします。

New transition with graphical cues for adding a junction or state.

または、次の手順でチャートに孤立したジャンクションを追加します。

  1. オブジェクト パレットで、ジャンクション アイコン をクリックします。

  2. チャート キャンバスで、新しいコネクティブ ジャンクションの位置をクリックします。

コネクティブ ジャンクションのプロパティの変更

1 つ以上のコネクティブ ジャンクションのサイズを変更するには、次の手順に従います。

  1. コネクティブ ジャンクションを選択します。

  2. 選択したジャンクションのいずれかを右クリックし、[ジャンクション サイズ] を選択します。

  3. ドロップダウン リストから、ジャンクションのサイズを選択します。

コネクティブ ジャンクションのその他のプロパティを変更するには、コネクティブ ジャンクションを右クリックして [プロパティ] を選択します。[コネクティブ ジャンクション] ダイアログ ボックスに次のプロパティが表示されます。

  • — コネクティブ ジャンクションの親ステート。親を前面に表示するには、ハイパーテキスト リンクをクリックします。このプロパティは読み取り専用です。

  • 説明 — ジャンクションの説明。

  • ドキュメント リンク — 関数のオンライン ドキュメンテーションへのリンク。適切なオンライン形式 (HTML ファイルや MATLAB® コマンド ウィンドウのテキストなど) でドキュメンテーションを表示する、Web の URL アドレスまたは MATLAB コマンドを入力できます。[ドキュメント リンク] ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。

コネクティブ ジャンクションがある遷移パスの例

遷移とコネクティブ ジャンクションを結合すると、次のような共通の遷移パターンを作成できます。

  • if-then-else 判定パターン

  • for ループ パターン

  • while ループ パターン

これらのパターンの作成時間を短縮するには、パターン ウィザードを使用します。詳細については、パターン ウィザードを使用したフロー チャートの作成を参照してください。

無条件遷移がある If-then-else パターン

この例では、ステート Start からの遷移に 3 つのコネクティブ ジャンクションがあります。パスの分岐のうち最初の 2 つは、条件によりガードされています。パスの最後の分岐には条件がありません。

チャートは時相論理を使用して、入力 u が 1 に等しくなる時点を判別します。

  • 時間 $t=2$ より前に u が 1 に等しくなる場合、ステート Fast がアクティブになります。

  • $t=2$$t=5$ の間で u が 1 に等しくなる場合、ステート Good がアクティブになります。

  • $t=5$ より後で u が 1 に等しくなる場合、ステート Slow がアクティブになります。

このチャートの詳細については、経過時間の検出を参照してください。

For ループ パターン

この例では、フロー チャートで遷移とコネクティブ ジャンクションの結合が使用され、for ループが作成されています。

カウンター i の値が 1 から 10 まで増加すると、それに伴いフロー チャートは配列 output の要素を定義します。このフロー チャートのループは、次の MATLAB コードのスニペットと等価です。

for i = 1:10
    output(i) = 2*i;
end

While ループ パターン

この例では、フロー チャートで遷移とコネクティブ ジャンクションを結合し、入力の最大公約数を計算する while ループを作成しています。

このフロー チャートのループは、次の C コードのスニペットと等価です。

while(q > 0) {
    r = fmod(p,q);
    p = q;
    q = r;
}

コネクティブ ジャンクションのプロパティの指定

[プロパティ インスペクター]、モデル エクスプローラー、または [コネクティブ ジャンクション] プロパティ ダイアログ ボックスで、以下に示すプロパティを変更できます。

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

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

  2. Stateflow エディターで、コネクティブ ジャンクションを選択します。

  3. [プロパティ インスペクター] で、コネクティブ ジャンクションのプロパティを編集します。

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

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

  2. [モデルの階層構造] ペインで、コネクティブ ジャンクションの親のステートまたはチャートを選択します。

  3. [コンテンツ] ペインで、コネクティブ ジャンクションを選択します。

  4. [ダイアログ] ペインで、コネクティブ ジャンクションのプロパティを編集します。

コネクティブ ジャンクションのプロパティ ダイアログ ボックスを使用するには、次を行います。

  1. Stateflow エディターで、コネクティブ ジャンクションを右クリックします。

  2. [プロパティ] を選択します。

  3. プロパティ ダイアログ ボックスで、コネクティブ ジャンクションのプロパティを編集します。

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

コネクティブ ジャンクションの親。このプロパティは読み取り専用であり、[プロパティ インスペクター] では使用できません。親のハイパーリンクをクリックすると、Stateflow エディターで親が前面に移動します。

説明

コネクティブ ジャンクションの説明。

ドキュメント リンク

コネクティブ ジャンクションのオンライン ドキュメンテーションへのリンク。HTML ファイルまたは MATLAB コマンド ウィンドウのテキストとしてドキュメンテーションを表示する、Web の URL アドレスまたは MATLAB コマンドを入力できます。[ドキュメント リンク] ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。

参考

オブジェクト

ツール

関連するトピック