遷移とジャンクションを結合して分岐パスを作成
"コネクティブ ジャンクション" は、遷移パスの判定点を表します。遷移とコネクティブ ジャンクションを結合すると、単一の遷移元から複数の遷移先へのパス、または複数の遷移元から単一の遷移先へのパスを作成できます。分岐パスのセマンティクスの詳細については、コネクティブ ジャンクションを使用した複数パスの表現を参照してください。
コネクティブ ジャンクションの追加
遷移をチャートに追加するときに、Stateflow® エディターはジャンクションまたはステートを追加できるようにするためのグラフィカル キューを提供します。ジャンクションを遷移の末尾に配置するには、円形のキューをクリックします。
または、次の手順でチャートに孤立したジャンクションを追加します。
オブジェクト パレットで、ジャンクション アイコン をクリックします。
チャート キャンバスで、新しいコネクティブ ジャンクションの位置をクリックします。
コネクティブ ジャンクションのプロパティの変更
1 つ以上のコネクティブ ジャンクションのサイズを変更するには、次の手順に従います。
コネクティブ ジャンクションを選択します。
選択したジャンクションのいずれかを右クリックし、[ジャンクション サイズ] を選択します。
ドロップダウン リストから、ジャンクションのサイズを選択します。
コネクティブ ジャンクションのその他のプロパティを変更するには、コネクティブ ジャンクションを右クリックして [プロパティ] を選択します。[コネクティブ ジャンクション] ダイアログ ボックスに次のプロパティが表示されます。
親 — コネクティブ ジャンクションの親ステート。親を前面に表示するには、ハイパーテキスト リンクをクリックします。このプロパティは読み取り専用です。
説明 — ジャンクションの説明。
ドキュメント リンク — 関数のオンライン ドキュメンテーションへのリンク。適切なオンライン形式 (HTML ファイルや MATLAB® コマンド ウィンドウのテキストなど) でドキュメンテーションを表示する、Web の URL アドレスまたは MATLAB コマンドを入力できます。[ドキュメント リンク] ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。
コネクティブ ジャンクションがある遷移パスの例
遷移とコネクティブ ジャンクションを結合すると、次のような共通の遷移パターンを作成できます。
if-then-else
判定パターンfor
ループ パターンwhile
ループ パターン
これらのパターンの作成時間を短縮するには、パターン ウィザードを使用します。詳細については、パターン ウィザードを使用したフロー チャートの作成を参照してください。
無条件遷移がある If-then-else
パターン
この例では、ステート Start
からの遷移に 3 つのコネクティブ ジャンクションがあります。パスの分岐のうち最初の 2 つは、条件によりガードされています。パスの最後の分岐には条件がありません。
チャートは時相論理を使用して、入力 u
が 1 に等しくなる時点を判別します。
時間 より前に
u
が 1 に等しくなる場合、ステートFast
がアクティブになります。と の間で
u
が 1 に等しくなる場合、ステートGood
がアクティブになります。より後で
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; }
コネクティブ ジャンクションのプロパティの指定
[プロパティ インスペクター]、モデル エクスプローラー、または [コネクティブ ジャンクション] プロパティ ダイアログ ボックスで、以下に示すプロパティを変更できます。
[プロパティ インスペクター] を使用するには、次を行います。
[モデル化] タブの [データの設計] で、[プロパティ インスペクター] を選択します。
Stateflow エディターで、コネクティブ ジャンクションを選択します。
[プロパティ インスペクター] で、コネクティブ ジャンクションのプロパティを編集します。
モデル エクスプローラーを使用するには、次を行います。
[モデル化] タブの [データの設計] で、[モデル エクスプローラー] を選択します。
[モデルの階層構造] ペインで、コネクティブ ジャンクションの親のステートまたはチャートを選択します。
[コンテンツ] ペインで、コネクティブ ジャンクションを選択します。
[ダイアログ] ペインで、コネクティブ ジャンクションのプロパティを編集します。
コネクティブ ジャンクションのプロパティ ダイアログ ボックスを使用するには、次を行います。
Stateflow エディターで、コネクティブ ジャンクションを右クリックします。
[プロパティ] を選択します。
プロパティ ダイアログ ボックスで、コネクティブ ジャンクションのプロパティを編集します。
ジャンクションのプロパティは、Stateflow.Junction
オブジェクトを使用してプログラムで変更することもできます。Stateflow プログラム インターフェイスの詳細については、Stateflow API の概要を参照してください。
親
コネクティブ ジャンクションの親。このプロパティは読み取り専用であり、[プロパティ インスペクター] では使用できません。親のハイパーリンクをクリックすると、Stateflow エディターで親が前面に移動します。
説明
コネクティブ ジャンクションの説明。
ドキュメント リンク
コネクティブ ジャンクションのオンライン ドキュメンテーションへのリンク。HTML ファイルまたは MATLAB コマンド ウィンドウのテキストとしてドキュメンテーションを表示する、Web の URL アドレスまたは MATLAB コマンドを入力できます。[ドキュメント リンク] ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。
参考
オブジェクト
ツール
- モデル エクスプローラー (Simulink)