ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

パターン ウィザードを使用したフロー チャートの作成

パターン ウィザードは、グラフィカル関数やチャートで使用される一般的なフロー チャート パターンを生成する、ユーティリティです。パターン ウィザードには、フロー チャートを手作業で作成する場合よりも優れた点がいくつかあります。パターン ウィザードでは次のことが可能です。

  • 一般的なロジックや反復ループのパターンの生成

  • パターン間における形状とレイアウトの一貫性の促進

  • 主要な場所へのパターンの保存と再利用の促進

  • 既存のフロー チャートへのパターンの挿入

パターン ウィザードでは、MathWorks Automotive Advisory Board (MAAB) のガイドラインに準拠する形状とレイアウトをもつフロー チャートが生成されます。条件やアクションを変更したり、追加のロジック パターンを挿入したりすることでフロー チャートをカスタマイズできます。また、後から再利用できるように、フロー チャートをカスタム パターンとしてパターン ウィザードに保存することもできます。

たとえば、パターン ウィザードを使用して 2 次元行列の上三角部分を反復するためのグラフィカル関数を作成するとします。関数は 2 つの入れ子にされた for ループで構成されており、その中で、行インデックス i は常に列インデックス j 以下です。パターン ウィザードを使用すると、以下のことが可能です。

  1. 行インデックス i を反復する外部ループのフロー チャートを作成

  2. 列インデックス j を反復する内部ループを挿入することによってフロー チャートを拡張

  3. フロー チャートをカスタム パターンとしてパターン ウィザードに保存

  4. グラフィカル関数でカスタム パターンを再利用

再利用可能なフロー チャートの作成

フロー チャートを作成するには、[チャート][パターンをチャートに追加] メニューからパターンを選択します。パターンの選択肢は次のとおりです。

  • 判定: ifif-else、および入れ子にされた if の判定パターン

  • ループ: forwhile、および do-while のループ パターン

  • Switch: 最大 4 つの case をもつ switch パターン

  • カスタム: 後から再利用するために保存したカスタム パターン

[Stateflow® パターン] ダイアログ ボックスに、選択したパターンに固有の条件およびアクションを指定する画面が表示されます。フロー チャートのパターンの詳細については、パターン ウィザードから生成される MAAB 準拠のパターンを参照してください。

たとえば、上三角部分の反復子パターンで外部 for ループを作成するには、次を行います。

  1. Stateflow エディターで、[チャート][パターンをチャートに追加][ループ][For] を選択します。

  2. [Stateflow パターン] ダイアログ ボックスで、行列の 1 次元目を反復するための初期化式、ループ テスト式、カウント式を指定します。

  3. [OK] をクリックします。パターン ウィザードで次のフロー チャートが生成されます。

上三角部分の反復子パターンを完成させるには、2 つ目の for ループを、このフロー チャートの垂直方向の遷移に沿って挿入します。

既存のフロー チャートへのロジック パターンの挿入

パターン ウィザードを使用して、既存のフロー チャートにループまたは判定ロジックの拡張を追加します。使用可能な垂直方向の遷移を選択して、[チャート][選択対象にパターンを挿入] メニューからパターンを選択します。使用可能なパターンは、[判定][ループ] および [Switch] です。[Stateflow パターン] ダイアログ ボックスに、選択したパターンに固有の条件およびアクションを指定する画面が表示されます。

たとえば、上三角部分の反復子パターンに 2 つ目のループを追加するには、次を行います。

  1. Stateflow エディターで、外部の for ループ パターンから、{action1} というラベルの付いた垂直方向の遷移を選択します。

  2. [チャート][選択対象にパターンを挿入][ループ][For] を選択します。

  3. [Stateflow パターン] ダイアログ ボックスで、行列の 2 次元目を反復するための初期化式、ループ テスト式、カウント式を指定します。初期化式により、i が j を超えないことが確実になります。さらに、行列の上三角部分の各要素を取得するアクションも入力します。

  4. [OK] をクリックします。パターン ウィザードにより、フロー チャートに 2 つ目のループが追加されます。

  5. パターンを含むモデルを保存します。

ロジック パターン挿入のガイドライン

ロジック拡張を作成する際は、次に従ってください。

  • 拡張する遷移は一度に 1 つだけ選択できます。選択する遷移は、厳密に垂直方向で、遷移先のジャンクションをもっていなければなりません。

  • 拡張できるのはパターン ウィザードで作成したフロー チャートのみです。

  • フロー チャートを含む Stateflow チャートには、ジャンクションと遷移のみを含めることができます。このチャートには、ステート、関数、真理値表など、その他のオブジェクトを含めることはできません。

  • カスタムに作成または変更されたパターンは拡張できません。

  • カスタム パターンは拡張として選択できません。

挿入に適さない選択を行った場合は、[チャート][選択対象にパターンを挿入] を選択したときに、パターン オプションではなくメッセージが表示されます。

メッセージ問題点
垂直方向の遷移を選択してください垂直方向の遷移が選択されていません。
選択した遷移は厳密に垂直方向でなければなりません遷移を選択しましたが、垂直方向ではありません。
垂直方向の遷移を 1 つだけ選択してください複数の遷移を選択しました。
エディターには遷移とジャンクションのみが含まれなければなりませんステート、関数、または真理値表など、他のオブジェクトがチャート内にあります。

フロー チャートのカスタム パターンの保存

パターン ウィザードを使用してフロー チャートのパターンを主要な場所に保存すると、その後簡単に取得してグラフィカル関数やチャートで再利用できます。保存するパターンをもつフロー チャートを選択して、[チャート][パターンの保存] を選択します。

たとえば、後から再利用するために上三角部分の反復子パターンを保存するとします。

  1. カスタム パターンを保存するフォルダーを作成します。カスタム パターン フォルダー作成のガイドラインを参照してください。

  2. Stateflow エディターで、上三角部分の反復子のフロー チャートを選択します。

  3. [チャート][パターンの保存] を選択します。

  4. カスタム パターン フォルダーをまだ指定していない場合は、フォルダーの選択を求める画面がパターン ウィザードに表示されます。作成したフォルダーを選択して [フォルダーの選択] をクリックします。

  5. プロンプトで、パターンの名前 UpperTriangleIterator を指定し、[保存] をクリックします。パターン ウィザードにより、パターンがモデル ファイル UpperTriangleIterator.slx としてカスタム パターン フォルダーに保存されます。

メモ

パターン ウィザードを使用して再利用できるのはフロー チャートのみです。ステートやサブチャートを再利用するには、Atomic サブチャートを作成します。詳細については、Atomic サブチャート使用した再利用可能なサブコンポーネントの作成を参照してください。

カスタム パターン フォルダー作成のガイドライン

パターン ウィザードでは、フロー チャート パターンの保存と取得に、単一のフラット フォルダーが使用されます。

  • フロー チャートはすべてカスタム パターン フォルダーの最上位に保存します。サブフォルダーは作成しないでください。

  • すべてのフロー チャート ファイルに .mdl または .slx の拡張子が付くことを確認します。

カスタム パターン フォルダーの変更

パターン ウィザードでは、選択したカスタム パターン フォルダーが今後のセッションのために記憶されます。別のフォルダーを選択するには、既存のカスタム パターン フォルダーの名前を変更して、次のいずれかを行います。

  • 新しいカスタム パターンをパターン ウィザードに保存

  • パターン ウィザードの既存のカスタム パターンを再利用

新しいフォルダーの選択を求める画面がパターン ウィザードに表示されます。

フロー チャートのカスタム パターンの再利用

パターン ウィザードでは、フロー チャートはモデル ファイルとしてカスタム パターン フォルダーに保存されます。このフォルダーに保存したパターンは、[チャート][パターンをチャートに追加][カスタム] を選択するとドロップダウン リストに表示されます。カスタム パターンは、チャートに直接追加するか、チャート内のサブチャート化したグラフィカル関数に追加できます。

たとえば、上三角部分の反復子のカスタム パターンをグラフィカル関数に追加するには、次を行います。

  1. オブジェクト パレットから、グラフィカル関数の定義の説明に従ってグラフィカル関数をチャートに追加します。

  2. 次の関数シグネチャを入力します。

    function y = ut_iterator(u, numrow, numcol)
    この関数は以下の 3 つの入力をとります。

    入力説明
    u2 次元行列
    numrow行列の行数
    numcol行列の列数

  3. 関数を右クリックし、[グループとサブチャート][サブチャート] を選択します。関数は不透明なボックスとして表示されます。

  4. サブチャート化したグラフィカル関数をダブルクリックして開きます。

  5. [チャート][パターンを関数に追加][カスタム] を選択します。ダイアログ ボックスが開き、カスタム パターン フォルダーに保存されているすべてのパターンの一覧が表示されます。

  6. 上三角部分の反復子パターンを選択し、[OK] をクリックします。カスタム パターンがグラフィカル関数に追加されます。

  7. グラフィカル関数で、action1 を、適切なアクションに置き換えます。このアクションは、行列の行ごとに 1 回ずつ繰り返されます。

パターン ウィザードから生成される MAAB 準拠のパターン

パターン ウィザードでは、MathWorks Automotive Advisory Board (MAAB) のガイドラインに準拠する形状とレイアウトをもつフロー チャートが生成されます。

判定ロジック パターン

 if

 if-else

 if-elseif

 if-elseif-else

 if-elseif-elseif-else

 入れ子形式の if

反復ループ パターン

 for

 while

 do-while

Switch パターン

 2 つの case と既定値をもつ switch

 3 つの case と既定値をもつ switch

 4 つの case と既定値をもつ switch

関連するトピック