ドキュメンテーション

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

パターン ウィザードの使用によるフロー チャートの作成

パターン ウィザードを使用する理由

パターン ウィザードは、グラフィカル関数やチャートで使用される一般的なフロー チャート パターンを生成する、ユーティリティです。フロー チャートは手作業で作成することもできますが、パターン ウィザードを使用すると以下のような利点があります。

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

  • MathWorks Automotive Advisory Board (MAAB) のガイドラインを満たすパターンの生成

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

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

  • 既存のフロー チャートにパターンを挿入する機能の提供

メモ

パターン ウィザードはフロー チャートにのみ使用され、ステートやサブチャートの保存には使用できません。Atomic サブチャートはステートやサブチャートの再利用に使用できます。

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

フロー チャートをパターン ウィザードで作成する場合は、チャートを主要な場所に保存しておき、後で取得して再利用することができます。MAAB のガイドラインを満たした再利用可能なフロー チャートを作成するには、以下の手順に従います。

  1. チャートを開きます。

     新しい Stateflow チャートを作成して開く方法

  2. フロー チャートのパターンを選択します。

    作成するもの選択リファレンス
    if 判定パターン[チャート][パターンをチャートに追加][判定]

    フロー チャートの判定ロジック パターン

    for-、while-、および do-while のループ パターン[チャート][パターンをチャートに追加][ループ]

    フロー チャートの反復ループ パターン

    switch パターン[チャート][パターンをチャートに追加][Switch]

    フロー チャートの switch パターン

    [Stateflow® パターン] ダイアログ ボックスが表示されます。

  3. パターンの説明を入力します (オプション)。

  4. 条件とアクションを指定します (オプション)。

    条件とアクションは、チャートで直接追加、変更することもできます。

  5. [OK] をクリックします。

    パターンがチャートに表示されます。形状とレイアウトは MAAB のガイドラインを満たしています。

  6. パターンを必要に応じてカスタマイズします。

    たとえば、フロー チャートや条件、アクションを追加または変更します。パターン ウィザードでのカスタム パターンの作成と再利用 を参照してください。

  7. フロー チャート パターンの保存と再利用 の説明に従って、パターンを主要な場所に保存します。

保存したパターンは、エディターから直接取得して、グラフィカル関数やチャートで再利用できます。詳細は、フロー チャート パターンをグラフィカル関数に追加する方法フロー チャート パターンをチャートに追加する方法 を参照してください。

パターン ウィザードを使用したロジック パターンの挿入

パターン ウィザードを使用して、フローチャートで以前に作成したパターンにループまたは判定ロジックの拡張を追加できます。使用可能な垂直方向の遷移を選択し、[チャート][選択対象にパターンを挿入] を選択します。判定パターンまたはループ パターンの 1 つを選択すると、パターン ウィザードは遷移パスに沿ってアクションの下に新しいパターンを配置します。

ロジックの拡張を作成する際は、以下のルールが適用されます。

  • 拡張対象とする厳密に垂直方向の遷移を、一度に 1 つだけ選択します。

  • 遷移先のジャンクションをもつ垂直方向の遷移を選択します。

  • パターン ウィザードによって作成されたフロー チャートのみを拡張します。

  • チャート内にジャンクションと遷移をもち、他のオブジェクトをもたないフロー チャートのみを拡張します。

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

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

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

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

パターンの挿入

この例では、if-else パターンを while ループの本体に追加します。

  1. チャートを開きます。

  2. [チャート][パターンをチャートに追加][ループ][While] を選択します。

  3. パターンの説明を入力します (オプション)。

  4. 条件とアクションを指定します (オプション)。

    条件とアクションは、チャートで直接追加、変更することもできます。

  5. [OK] をクリックします。

    while パターンがチャートに表示されます。

  6. {action1} というラベルの付いた垂直方向の遷移を選択します。

  7. [チャート][選択対象にパターンを挿入][判定][If-Else] を選択します。

  8. [OK] をクリックします。

    if-else パターンが {action1} の下の while ループに追加されます。

フロー チャート パターンの保存と再利用

パターン ウィザードを使用すると、フロー チャート パターンを主要な場所へ保存した後、そこから簡単に取得し、Stateflow のグラフィカル関数やチャートで再利用することができます。パターン ウィザードを使用すると、保存したすべてのパターンにエディターからアクセスすることができます。

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

パターン ウィザードでは、フロー チャート パターンの保存と取得に、単一のフラット フォルダーが使用されます。パターン フォルダーを作成するときは、以下のガイドラインに従ってください。

  • フロー チャートはすべてパターン フォルダーの最上位に保存し、サブフォルダーは作成しないこと

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

フロー チャート パターンを取得しやすいように保存する方法

  1. パターンの保存用フォルダーを、パターン フォルダー作成のガイドライン の説明に従って作成します。

  2. チャートで、保存するパターンの入っているフロー チャートを選択します。

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

    カスタム パターンの保存用フォルダーの選択を求めるメッセージが、パターン ウィザードに表示されます。

    フロー チャートが、モデル ファイルとしてパターン フォルダーに保存されます。このフォルダーに保存したパターンは、フロー チャート パターンをグラフィカル関数に追加する方法およびフロー チャート パターンをチャートに追加する方法で説明されているように、[チャート][パターンをチャートに追加][カスタム] を選択するとドロップダウン リストに表示されます。

  4. [OK] をクリックしてメッセージを閉じます。

    [フォルダーの参照] ダイアログ ボックスが表示されます。

  5. 指定のフォルダーをクリック (または新しいフォルダーを作成) し、[OK] をクリックします。

    [パターンを名前を付けて保存] ダイアログ ボックスが表示されます。

  6. パターンの名前を入力し、[保存] をクリックします。

    パターン ウィザードにより、パターンが、モデル ファイルとして指定のフォルダーに保存されます。

パターン フォルダーの変更方法

  1. 既存のパターン フォルダーの名前を変更します。

  2. フロー チャート パターンをグラフィカル関数に追加する方法 または フロー チャート パターンをチャートに追加する方法 の説明に従って、パターンを追加します。

    フォルダーの選択を求めるメッセージが、パターン ウィザードに表示されます。

  3. フロー チャート パターンを取得しやすいように保存する方法 の説明に従ってください。

フロー チャート パターンをグラフィカル関数に追加する方法

  1. グラフィカル関数をチャートに追加します。

    グラフィカル関数の定義を参照してください。

  2. 関数ボックスを右クリックし、[グループとサブチャート][サブチャート] を選択して、グラフィカル関数をサブチャートにします。

    関数ボックスが灰色に変わります。

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

  4. メニュー バーで [チャート][パターンを関数に追加][カスタム] を選択します。

    [カスタム パターンの選択] ダイアログ ボックスが表示され、保存したすべてのパターンが表示されます。

     ダイアログ ボックスにパターンが表示されない場合

  5. ダイアログ ボックスの一覧からパターンをクリックし、[OK] をクリックします。

    パターンがグラフィカル関数に表示されます。グラフィカル関数は、フロー チャートに合わせて展開されます。

  6. グラフィカル関数とそれを呼び出すチャートで、必要な入力、出力、およびローカル データをすべて定義します。

フロー チャート パターンをチャートに追加する方法

  1. メニュー バーで [チャート][パターンをチャートに追加][カスタム] を選択します。

    [カスタム パターンの選択] ダイアログ ボックスが表示され、保存したすべてのパターンが表示されます。

  2. ダイアログ ボックスの一覧からパターンをクリックし、[OK] をクリックします。

    パターンがチャートに表示されます。

  3. チャートを手作業で調整して以下のことを実行します。

    • フロー チャートを適切な遷移に接続します。

    • 各階層レベルで排他的 (OR) ステートに対するデフォルト遷移が 1 つしかないことを確認します。

    • 必要な入力、出力、およびローカル データをすべて定義します。

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

パターン ウィザードでは、MAAB 準拠のフロー チャートが生成されます。

フロー チャートの判定ロジック パターン

パターン ウィザードで、MAAB 準拠の以下の判定ロジック パターンが生成されます。

 if

 if-else

 if-elseif

 if-elseif-else

 if-elseif-elseif-else

 nested if

フロー チャートの反復ループ パターン

パターン ウィザードで、MAAB 準拠の以下の反復ループ パターンが生成されます。

 for

 while

 do-while

フロー チャートの switch パターン

パターン ウィザードで、MAAB 準拠の以下の switch パターンが生成されます。

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

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

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

パターン ウィザードでのカスタム パターンの作成と再利用

この例では、2 次元行列の上三角部分を反復するフロー チャートのカスタム パターンを作成、変更、保存する方法を示します。上三角部分で、行インデックス i が列インデックス j を超えることはありません。このフロー チャート パターンでは、入れ子形式の for ループを使用することで、i が j を超えないようにしています。

上三角部分の反復子パターンの作成

  1. 新しい (空の) チャートを開きます。

  2. [チャート][パターンをチャートに追加][ループ][For] を選択します。

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

    アクションはまだ指定しません。行列の 2 次元目を反復するためのループを追加します。

  4. [OK] をクリックします。

    パターン ウィザードにより、最初の反復ループがチャートに生成されます。

    このパターンは、次のようになります。

  5. 2 つ目のループを追加します。

    1. チャートに 2 つ目のパターンが表示されるように、エディター ウィンドウを展開します。

    2. {action1} というラベルの付いた垂直方向の遷移を選択します。

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

    4. 2 つ目の反復子 j の初期化式、ループ テスト式およびカウント式、ならびに上三角部分の各要素を取得するアクションのプレースホルダーを以下のように入力します。

    5. [OK] をクリックします。パターン ウィザードにより、最初のループに 2 つ目のループが追加されます。

  6. チャートを保存します。

パターンを再利用するために主要な場所に保存します (上三角部分の反復子パターンの保存 (再利用のため)を参照)。

上三角部分の反復子パターンの保存 (再利用のため)

  1. パターン フォルダー作成のガイドラインの説明に従って、フロー チャート パターンの保存用フォルダーを作成します。

  2. カスタム パターンが含まれているチャートを開きます。

  3. チャートで、保存するパターンをもつフロー チャートを選択します。

  4. エディターで [チャート][パターンの保存] を選択し、以下のいずれかのアクションを実行します。

    場合パターン ウィザードの表示アクション
    パターン フォルダーをまだ指定していない場合パターン フォルダーの作成または選択を求めるメッセージ作成したフォルダーをクリックします。フロー チャート パターンを取得しやすいように保存する方法 を参照してください。
    パターン フォルダーを既に指定している場合指定のフォルダーへのパターンの保存を求めるメッセージパターンの名前を指定し、[保存] をクリックします。

    パターン ウィザードにより、指定された名前のモデル ファイルとして、パターンが自動的に保存されます。

グラフィカル関数への上三角部分の反復子パターンの追加

  1. 新しいチャートを開きます。

  2. オブジェクト パレットからチャートにグラフィカル関数をドラッグします。

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

    function y = ut_iterator(u, numrow, numcol)

    この関数は以下の 3 つの入力をとります。

    入力説明
    u2 次元行列
    numrow行列の行数
    numcol行列の列数
  4. 関数を右クリックし、[グループとサブチャート][サブチャート] を選択します。

    関数は、次のグラフィックスようになります。

  5. サブチャート化された関数をダブルクリックして開き、[チャート][パターンを関数に追加][カスタム] を選択します。

    [カスタム パターンの選択] ダイアログ ボックスが開き、パターン フォルダーに保存されているすべてのパターンの一覧が表示されます。

  6. 上三角部分の反復子パターンをクリックし、[OK] をクリックします。

    カスタム パターンがグラフィカル関数に追加されます。

この関数をチャートから呼び出す前に、データ名、データ型、およびデータ サイズを必要に応じて変更し、適切なアクションに置き換えておいてください。