Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink Report Generator レポートの対話的な作成

この例では、レポート エクスプローラーを使用してレポート設定ファイルを設計し、以下を行うレポートを生成する方法を説明します。

  • slrgex_vdp モデルという名前の、ファン デル ポールの方程式の Simulink® モデルを開く。

  • Mu ブロックの [Gain] パラメーターを 5 つの異なる値に設定する。

  • [Gain] パラメーターが設定されるごとに、モデルをシミュレートする。

  • 結果を収集する。指定の範囲内に収まる結果が、生成されたレポート内の表に表示される。

この例のレポートを作成して実行するために、MATLAB® または Simulink ソフトウェアの知識は必要ありません。しかし、これらの製品の知識は、実行される MATLAB コードとモデルのシミュレーションを理解するのに役立ちます。

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

openExample('rptgenext/SimulinkReportGeneratorFilesExample');

このレポートを生成するには、次の主要タスクを実行します。

この例には、異なる種類のレポート作成と生成のタスクに関する別個の節があります。各節は、それ以前の節に基づいています。しかし、前の節を実行せずに後の節のレポート設定コンポーネントを確認する場合は、MATLAB で simulink-dynamic.rpt 設定ファイルを開くことで完成したレポート設定ファイルを表示できます。

setedit simulink-dynamic.rpt

このレポートは、slrgex_vdp モデルに関するものです。

設定ファイルでのレポート オプションの指定

レポート設定ファイルを作成して構成するには、以下を行います。

  1. Simulink を起動します。

  2. Simulink ツールストリップからレポート エクスプローラーを開きます。[アプリ] タブの [シミュレーション グラフィックスとレポート] セクションで、[Report Generator] をクリックします。

  3. [ファイル][新規] を選択して、レポート設定ファイルを作成します。

  4. レポート設定ファイルを保存します。

    [プロパティ] ペインで、以下を行います。

    1. レポート設定ファイルの保存場所を指定します。現在の作業フォルダーに保存するには、[ディレクトリ] 選択リストから [現在の作業ディレクトリ] を選択します。

    2. レポート形式を指定します。[ファイル形式] 選択リストで、[Acrobat (PDF)] を選択します。

      ヒント

      レポートで、システムのスナップショットにハイパーリンクを含める場合は、[ダイレクト PDF (テンプレートを使用)] のファイル形式を使用します。

    3. レポートの説明を入力します。[レポートの説明] テキスト ボックスで、既存のコンテンツを次のテキストに置き換えます。

      ヒント

      このコードを HTML ドキュメントからコピーして、レポート エクスプローラーに貼り付けます。

      Simulink Dynamic Report
      
      This report opens up a model, sets a block parameter 
      several times, simulates the model, and collects the
      results. Results that fall within a specified range are 
      displayed in a table after the test is complete.
      
      The report is configured to test the slrgex_vdp model only.
      By selecting the Eval String component immediately 
      below the Report component, you can modify
      * model
      * block
      * parameter
      * tested values
  5. [ファイル][名前を付けて保存] をクリックして、レポート設定ファイルを simulink_tutorial.rpt として保存します。

    左側のアウトライン ペインに、新しいファイル名が表示されます。

レポートのコンテンツを作成するには、コンポーネントによるレポート コンテンツの追加を参照してください。

コンポーネントによるレポート コンテンツの追加

レポート コンポーネント

レポート "コンポーネント" は、レポートに含める情報を指定します。コンポーネントは、自己完結型のモジュール化された MATLAB オブジェクトで、レポート生成プロセスを制御し、テーブル、リスト、図などの要素をレポート設定ファイルに挿入します。コンポーネントを使用して、レポートの外観と出力をカスタマイズします。

詳細については、レポート コンポーネントを参照してください。

次の図は、この例で作成したレポートのサンプル ページと、この出力を生成するために使用するコンポーネントを示しています。

メモ

レポート設定ファイルに追加するレポート コンポーネントは非アクティブにしないでください。

MATLAB コードの追加

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

最初に追加するコンポーネントは、[MATLAB 式の実行] コンポーネントで、これはワークスペース内の MATLAB コマンドを評価します。このコンポーネントのコードは、この例で使用する変数に初期値を割り当てます。

  1. 左側のアウトライン ペインで simulink_tutorial.rpt を選択します。

  2. 中央のライブラリ ペインで、[MATLAB] カテゴリの下にある [MATLAB 式の実行] を選択します。

  3. 右側のプロパティ ペインで、[現在のレポートにコンポーネントを追加します] の横にあるアイコンをクリックして、コンポーネントをレポートに挿入します。

    メモ

    コンポーネントをレポートに追加するまで、右側のプロパティ ペインでコンポーネント情報を編集することはできません。

    左側のアウトライン ペインで、[MATLAB 式の実行] コンポーネントが simulink_tutorial レポート設定ファイルの下に表示されます。Simulink Report Generator™ ソフトウェアでは、コンポーネント名が [実行] に省略されます。

    [実行] コンポーネント アイコンの左上隅にあるアイコンは、このコンポーネントが子コンポーネントをもつことができないことを示しています。既定では、[実行] コンポーネントの選択中に追加するコンポーネントは、このコンポーネントの兄弟になります。

    [MATLAB 式の実行] コンポーネントのオプションは、右側のプロパティ ペインに表示されます。

  4. このレポートに MATLAB コードまたは出力を含めないようにするため、[レポートに MATLAB 式を挿入][レポートにコマンド ウィンドウの出力を表示] チェック ボックスをオフにします。

  5. [ベース ワークスペースで実行する式] テキスト ボックスに MATLAB コードを追加して、次の値を指定します。

    • モデル名

    • ブロック名

    • ブロック パラメーター

    • パラメーター値

    • slrgex_vdp モデルの処理に必要なその他の初期値

    既存のテキストを次の MATLAB コードで置き換えます。

    %The name of the model
    %which will be changed
    expModel='slrgex_vdp';
    
    %The name of the block in the model
    %which will be changed
    expBlock='slrgex_vdp/Mu';
    
    %The name of the block parameter
    %which will be changed
    expParam='Gain';
    
    %The values which will be set
    %during experimentation.
    expValue=[-1 0 .5 1 2];
    
    %expValue can be either a vector
    %or a cell array
    
    testMin=2.1;
    testMax=3;
    
    %---- do not change code below line ---
    
    try
       open_system(expModel);
    end
    
    expOkValues=cell(0,2);

    メモ

    右側のプロパティ ペインでフィールドを変更すると、フィールドの背景の色 (既定値はクリーム色) が変更され、そのフィールドに適用されていない変更があることが示されます。別のコンポーネントに対して操作を実行するとすぐに、Simulink Report Generator ソフトウェアによって変更が適用され、背景色が再び白になります。

  6. [エラーが発生した場合は以下の式を実行] チェック ボックスをオンにします。

  7. チェック ボックスの下のフィールドで、既存のテキストを次のテキストに置き換えます。

    disp(['Error during eval: ', evalException.message])
    レポート エクスプローラー ウィンドウは以下のようになります。

    ヒント

    MATLAB 式で指定したコマンドを実行するには、[今すぐ実行] ボタンをクリックします。このボタンは、レポート エクスプローラーの右上隅にあります。これは、コマンドが正しいことを確認し、レポート生成で問題が発生しないようにするための簡単な方法です。

  8. [ファイル][保存] をクリックして、レポート設定ファイルを保存します。

エラー条件の処理の詳細については、MATLAB コードのエラー処理を参照してください。

タイトル ページの追加

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

[タイトル ページ] コンポーネントを使用して、レポートのカスタム タイトル ページを作成します。

  1. 左側のアウトライン ペインで [実行] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[形式] カテゴリの下の [タイトル ページ] をクリックします。

  3. [現在のレポートにコンポーネントを追加します] の横のアイコンをクリックします。

    アウトライン ペインに [タイトル ページ] コンポーネントが表示されます。

    メモ

    [タイトル ページ] コンポーネントを使用するには、レポートに [章] コンポーネントが必要です。[章] コンポーネントをまだ追加していないため、プロパティ ペインに、[タイトル ページ] コンポーネントを正しく表示するには章が必要であることを示すメッセージが表示されます。この例では後から、このレポートに [章] コンポーネントを追加するため、そのメッセージは無視できます。

  4. 右側のプロパティ ペインで、以下を行います。

    1. [タイトル] テキスト ボックスで、次のように入力します。

      Dynamic Simulink Report
    2. [サブタイトル] テキスト ボックスに次のように入力します。

      Using Simulink Report Generator to Document Changes
    3. [オプション] セクションで、選択リストから [作成者 (設定)] を選択します。

    4. テキスト ボックスに名前を入力します。

    5. [レポートの作成日を含める] チェック ボックスを選択します。

    6. 選択リストから既定の日付と時刻の形式を選択します。右側のプロパティ ペインは次のようになります。

  5. レポート設定ファイルを保存します。

Simulink モデルを開く

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

MATLAB コードの追加で作成した [MATLAB 式の実行] コンポーネントにある次のステートメントは、slrgex_vdp モデルを開くことを試行します。

try
   open_system(expModel);
end

ヒント

左側のアウトライン ペインで [実行] コンポーネントを選択して、このコードを再度確認します。

slrgex_vdp モデルが正常に開かれたかどうかを確認するには、[論理 If] コンポーネントを使用して open_system コマンドの結果をテストします。

  1. 左側のアウトライン ペインで、[タイトル ページ] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリの下の [論理 If] を選択します。このコンポーネントは、指定された条件が true か false かを確認します。この場合はモデルが正常に開かれたどうかです。

  3. 右側のプロパティ ペインで、[現在のレポートにコンポーネントを追加します] の横にあるアイコンをクリックします。[論理 If] コンポーネントは、アウトライン ペインでは [if] として表示されます。

    これらのコンポーネントは、レポートの子コンポーネントであり、互いに兄弟です。コンポーネントは、親、子、および兄弟の関係をもつことができます。

    このコンポーネントは子コンポーネントをもつことができます。論理 Then および論理 Else コンポーネントの追加では、[if] コンポーネントに 2 つの子コンポーネントを追加する方法について説明しています。

  4. 右側のプロパティ ペインの [テスト式] テキスト ボックスで、既定のテキスト true を次のテキストに置き換えます。

    strcmp(bdroot(gcs),expModel)
    関数 strcmp は、開いている Simulink モデルの名前と expModel の値 ('slrgex_vdp' に設定されています) を比較します。このテストにより、slrgex_vdp モデルが正常に開かれたかどうかを確認します。strcmp は、2 つの文字列が一致する場合は 1 (true)、そうでない場合は 0 (false) を返します。

  5. レポート設定ファイルを保存します。

    アウトライン ペインの [if] コンポーネントの名前が、追加した式を含むように変更されます。

論理 Then および論理 Else コンポーネントの追加

メモ

この節は、これまでのタスクに基づいています。

完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

if strcmp(bdroot(gcs), expModel) コンポーネントには 2 つの考えられる結果があります。これらのケースを処理するために、レポート設定ファイルに 2 つの子コンポーネントを追加します。

  1. 左側のアウトライン ペインで [if] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリの下の [論理 Then] をダブルクリックします。

  3. 左側のアウトライン ペインで、[if] コンポーネントを再度選択します。

  4. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリの下の [論理 Else] をダブルクリックします。

    両方の要素は、アウトライン ペインの表示のとおり、[if] コンポーネントに子コンポーネントとして追加されます。

  5. [then] コンポーネントの下にある [else] コンポーネントを移動するには、[else] コンポーネントを選択し、ツール バーの矢印を 1 回クリックします。左側のアウトライン ペインは次のようになります。

  6. レポート設定ファイルを保存します。

モデルを開けない場合はエラー

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

if strcmp(bdroot(gcs), expModel) コンポーネントが失敗した場合 (slrgex_vdp モデルを開くことができない場合)、[else] コンポーネントが実行されます。章/節コンポーネントを使用して、レポートにエラー メッセージを表示します。

  1. 左側のアウトライン ペインで [else] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[形式] カテゴリの下にある [章/節] をダブルクリックして、[else] コンポーネントの子として追加します。このコンポーネントは、slrgex_vdp モデルを開くときにエラーが発生した場合にエラー メッセージを表示します。

    メモ

    コンポーネントをレポートに追加すると、選択したコンポーネントが子コンポーネントをもつことができない場合を除いて、既定で子コンポーネントとして追加されます。

  3. 右側のプロパティ ペインで、[タイトル] 選択リストから [カスタム] を選択し、テキスト ボックスに次のテキストを入力します。

    Load Model Failed.

    レポート ファイルを保存します。

    アウトライン ペインが次のように表示されます。

  4. 左側のアウトライン ペインで、[章] コンポーネントを選択します。

  5. 中央のライブラリ ペインで、[形式][段落] をダブルクリックします。

  6. 右側のプロパティ ペインで、[段落のテキスト] テキスト ボックスに次のテキストを入力して、次のエラー メッセージを表示します。

    Error: Model %<expModel> could not be opened.
    %<expModel> は、次の例のように、ワークスペース変数 expModel の値がテキストに挿入されることを示します。
    Error: Model slrgex_vdp could not be opened.

  7. 左側のアウトライン ペインで、[章] を選択します。

  8. レポート設定ファイルを保存します。

    アウトライン ペインが次のように表示されます。

レポートの本文の作成

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

レポートの本文を作成するには、レポート コンポーネントを動的に実行するようにコンポーネントとコードを設定する必要があります。この例では、以下のタスクを実行します。

各アクションには、[then] コンポーネントの下に個別のコンポーネントが必要です。このレポートの [then] コンポーネントの詳細については、論理 Then および論理 Else コンポーネントの追加を参照してください。

モデル ループ コンポーネントによるプロセス

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

このレポートは、slrgex_vdp モデルの Mu ブロックの [ゲイン] パラメーターを数回変更します。このタスクには、[モデル ループ] コンポーネントが必要です。

  1. 左側のアウトライン ペインで [then] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[Simulink] カテゴリまで下にスクロールし、[モデル ループ] をダブルクリックします。これが then コンポーネントの子として追加されます。

    右側のプロパティ ペインは次のようになります。

  3. 右側のプロパティ ペインで、以下を行います。

    1. slrgex_vdp モデルを処理するには、[アクティブ] チェック ボックスをオンにします。

    2. [モデルを移動] 選択リストで、[選択したシステムのみ] を選択して、slrgex_vdp モデルのみを移動します。

    3. [システムの起動] 選択リストから [モデルのルート] を選択します。

    4. 左側のプロパティ ペインの下部にある [ループ内のオブジェクトごとに節を作成] チェック ボックスをオンにして、モデルごとに章または節を作成します。このチェック ボックスをオンにすると、左側のアウトライン ペインのコンポーネント名が [モデル ループ 章] に変わります。

    5. タイトル名にオブジェクト タイプ (この例ではモデル) を含めるには、[節タイトルにオブジェクト タイプを表示] チェック ボックスをオンにします。

    6. [ループ内のオブジェクトごとにリンク アンカーを作成] チェック ボックスをオフにします。

  4. レポート設定ファイルを保存します。

各モデルへの段落の追加

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

[モデル ループ 章] で、[段落] コンポーネントを使用して説明を追加します。

  1. 左側のアウトライン ペインで、[モデル ループ 章] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[形式] カテゴリまで上にスクロールし、[段落] をダブルクリックします。[段落] コンポーネントは、[モデル ループ 章] コンポーネントの子として追加されます。

  3. 右側のプロパティ ペインで、[段落のテキスト] テキスト ボックスに次のテキストを入力します。

    This report demonstrates Simulink Report Generator's ability
    to experiment with Simulink systems and auto-document
    the results. In this report, you load the model %<expModel>
    and simulate it %<length> times. This report modifies the
    %<expBlock> block's "%<expParam>" value, setting it to the 
    values %<expValue>. Each iteration of the test includes 
    a set of scope snapsnots in the report.
    このレポートが生成されると、先頭にパーセント記号 (%) が付けられ、山かっこ (<>) で囲まれた変数名が、MATLAB ワークスペース内のそれらの変数の値と置き換えられます。

  4. レポート設定ファイルを保存します。

モデルのスナップショットの挿入

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

[モデル ループ 章] コンポーネントの内部で、[システムのスナップショット] コンポーネントを使用して現在のモデルのスナップショットを含めます。

  1. 左側のアウトライン ペインで、[モデル ループ 章] コンポーネントを選択します。

  2. 中央のライブラリ ペインで [Simulink] カテゴリまで下にスクロールして、[システムのスナップショット] コンポーネントをダブルクリックします。

    このコンポーネントは、現在のモデルのイメージをレポートに挿入します。右側のプロパティ ペインは次のようになります。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [スケーリング] 選択リストから [ズーム] を選択します。

    2. [%] の値として 70 を入力します。

  4. 左側のアウトライン ペインで、[システムのスナップショット] コンポーネントを選択します。

  5. ツール バーの矢印をクリックして、[段落] コンポーネントの下に移動します。

  6. レポート設定ファイルを保存します。

モデルを処理するためのループの追加

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

[For ループ] コンポーネントを使用して、モデルを %length 回処理するループを作成します。

  1. 左側のアウトライン ペインで、[システムのスナップショット] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリの [For ループ] をダブルクリックします。[For ループ] コンポーネントは、[システムのスナップショット] コンポーネントの兄弟として追加されます。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [終了] テキスト ボックスで、既存のテキストを次のテキストに置き換えます。

      length(expValue)
      expValue は、[実行] コンポーネントでコマンド expValue=[-1 0 0.5 1 2]; によって割り当てられた [ゲイン] パラメーター値の配列です。この例では、式 length(expValue)5 と評価されます。

    2. [変数名] テキスト ボックスで、既存のテキストを変数 for loop の名前に置き換えます。以下のテキストを入力します。

      expIteration
      左側のアウトライン ペインの [For] コンポーネントの名前が、ループ変数と終了値を反映して変更されます。

  4. レポート設定ファイルを保存します。

MATLAB 式からのブロック パラメーター値

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

反復ごとに、配列 expValue から値を取得して、[ゲイン] パラメーターの値として使用します。このタスクには、[MATLAB 式の実行] コンポーネントが必要です。

  1. 左側のアウトライン ペインで [for] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[MATLAB] カテゴリの下にある [MATLAB 式の実行] をダブルクリックします。アウトライン ペインでは、コンポーネント名が [実行] に短縮されます。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [レポートに MATLAB 式を挿入] および [レポートにコマンド ウィンドウの出力を表示] チェック ボックスをオフにします。

    2. [ベース ワークスペースで実行する式] テキスト ボックスに次のテキストを入力します。

      %Evaluate this string in the base workspace
      
      if iscell(expValue)
         Iteration_Value=expValue{expIteration};
      else
        Iteration_Value=...
           num2str(expValue(expIteration));
      end
      変数 Iteration_Value は、指定された配列要素を表します。

    3. [エラーが発生した場合は以下の式を実行] チェック ボックスをオフにします。

  4. レポート設定ファイルを保存します。

反復ごとに節を作成

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

章/節コンポーネントを使用して、データを含むループの反復ごとに個別の節を作成します。

  1. 左側のアウトライン ペインで、[for] コンポーネントの下にある [実行] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[形式] カテゴリの下にある [章/節] をダブルクリックして、兄弟として追加します。このコンポーネントは、[章] コンポーネント ([モデル ループ 章] コンポーネント) の内部にあるため、[第 1 節] として自動的に追加されます。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [タイトル] 選択リストで、[カスタム] を選択します。

    2. テキスト ボックスに次のタイトルを入力します。

      Processing the slrgex_vdp model

    これは、節タイトルが最初の子コンポーネントから取得されることを示します。その他のプロパティは変更しないでください。

  4. レポート設定ファイルを保存します。

ブロック値の挿入

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

各シミュレーションに使用する Gain 値を挿入します。

  1. 左側のアウトライン ペインで、[第 1 節] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[MATLAB] カテゴリの下の [変数の挿入] をダブルクリックします。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [変数名] ボックスに Iteration_Value と入力します。

    2. [表示] 選択リストで、[段落] を選択します。

    右側のプロパティ ペインは次のようになります。

  4. レポート設定ファイルを保存します。

パラメーター値の設定

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

反復ごとに、Gain パラメーターを配列 expValue から抽出した値に設定します。

  1. 左側のアウトライン ペインで、[変数] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[MATLAB] カテゴリの下にある [MATLAB 式の実行] をダブルクリックします。このコンポーネントは、[変数] コンポーネントの兄弟として追加されます。

  3. 右側のプロパティ ペインで、[レポートに MATLAB 式を挿入] および [レポートにコマンド ウィンドウの出力を表示] チェック ボックスをオフにします。

  4. [ベース ワークスペースで実行する式] テキスト ボックスで、既存のテキストを次のテキストに置き換えます。

    set_param(expBlock,expParam,Iteration_Value);
    okSetValue=(1);
    set_param コマンドは、slrgex_vdp モデルの Mu ブロックの [ゲイン] パラメーターの値を Iteration_Value の値に設定します。

  5. [エラーが発生した場合は以下の式を実行] をオンにしていることを確認します。テキスト ボックスに次のテキストを入力します。

    okSetValue=logical(0);
    set_param コマンドが動作する場合、okSetValue1 に設定されます。エラーが発生した場合、okSetValue0 に設定されます。その後、次のコンポーネントがエラーを報告し、処理を停止します。

  6. レポート設定ファイルを保存します。

    左側のアウトライン ペインは次のようになります。

論理 If コンポーネントを使用した値のチェック

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

[論理 If] コンポーネントを使用して okSetValue の値をチェックします。値が 0 の場合、[ゲイン] パラメーターを設定できないため、シミュレーションを続行できません。

  1. 左側のアウトライン ペインで、set_param コマンドの [実行] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリの下の [論理 If] をダブルクリックします。コンポーネントが、[実行] の兄弟として追加されます。

  3. 右側のプロパティ ペインの [テスト式] テキスト ボックスで、trueokSetValue に置き換えます。

okSetValue1 (true) または 0 (false) であるため、これらの条件を処理する 2 つのコンポーネント ([論理 Then] および [論理 Else]) を挿入します。

  1. 左側のアウトライン ペインで、[if (okSetValue)] コンポーネントを選択します。

  2. 正しい順序で [論理 Then][論理 Else] を挿入するには、以下を行います。

    1. 中央のライブラリ ペインで [論理 Else] コンポーネントをダブルクリックします。

    2. [if (okSetValue)] コンポーネントを再度選択します。

    3. [論理 Then] コンポーネントをダブルクリックします。左側のアウトライン ペインは次のようになります。

  3. 右側のアウトライン ペインで、[else] コンポーネントを選択します。

  4. 中央のライブラリ ペインで [段落] をダブルクリックします。

    okSetValue0 の場合、[ゲイン] パラメーター値が設定されておらず、レポートにエラーが表示されます。

  5. 右側のプロパティ ペインで、以下を行います。

    1. [タイトル オプション] 選択リストから [カスタム タイトル] を選択します。

    2. 選択リストの横にあるテキスト ボックスに Error と入力します。

    3. [段落のテキスト] テキスト ボックスに次のテキストを入力します。

      Could not set %<expBlock> "%<expParam>" to value 
      %<Iteration_Value>.

  6. レポートを保存します。

モデルのシミュレーション コンポーネントを使用したモデルのシミュレーション

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

モデルを開いて、[ゲイン] パラメーターを設定したら、[モデルのシミュレーション] コンポーネントを使用して slrgex_vdp モデルをシミュレートします。

  1. 左側のアウトライン ペインで、[if (okSetValue)] コンポーネントの下にある [then] コンポーネントを選択します。

  2. ライブラリ ペインの [Simulink] カテゴリで、[モデルのシミュレーション] をダブルクリックします。左側のアウトライン ペインで、このコンポーネントの名前が [モデルをシミュレーション] に変更されます。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [モデルのワークスペース I/O 変数名を使用] チェック ボックスをオフにします。

    2. [時間] テキスト ボックスに、dynamicT と入力します。

    3. [状態] テキスト ボックスに、dynamicX と入力します。

    4. [出力] テキスト ボックスに、dynamicY と入力します。

    右側のプロパティ ペインは次のようになります。

  4. 左側のアウトライン ペインで、[モデルをシミュレーション] コンポーネントを選択します。

  5. 中央のライブラリ ペインで、以下を行います。

    1. [Simulink ブロック] カテゴリまで下にスクロールします。

    2. [スコープのスナップショット] をダブルクリックして、[Simulink モデル] コンポーネントの兄弟として追加します。

    このコンポーネントは、反復ごとにスコープを取得します。

  6. 右側のプロパティ ペインで、以下を行います。

    1. [用紙方向] 選択リストで、[縦] を選択します。

    2. [イメージ サイズ] に「[5 4]」と入力します。

    3. [スケーリング] 選択リストで、[ズーム] を選択します。

    4. [%] の値に 75 を入力します。

  7. レポート設定ファイルを保存します。

  8. 信号データが指定された範囲内にあるかどうかをテストするには、別の [論理 If] コンポーネントを追加します。

    1. 左側のアウトライン ペインで、[スコープのスナップショット] コンポーネントを選択します。

    2. 中央のライブラリ ペインで、[論理制御とフロー制御] カテゴリまで上にスクロールします。

    3. [論理 If] コンポーネントをダブルクリックします。

  9. 信号データをテストするには、右側のプロパティ ペインで [テスト式] テキスト ボックスの true を次のように置き換えます。

    max(dynamicX(:,2))>testMin & max(dynamicX(:,2))<testMax

  10. レポートを保存します。

    アウトライン ペインは次のようになります。

  11. この条件が true の場合、信号データは目的の範囲内に収まっています。レポート内の信号データに関する情報を出力するために [段落] コンポーネントを追加します。

    1. 左側のアウトライン ペインで、先ほど追加した [if] コンポーネントを選択します。

    2. 中央のライブラリ ペインで、[形式] カテゴリの下にある [段落] をダブルクリックして、[if] コンポーネントの子にします。

    3. 右側のプロパティ ペインで、以下を行います。

      1. [タイトル オプション] 選択リストから [カスタム タイトル] を選択します。

      2. テキスト ボックスに Success と入力します。

      3. [段落のテキスト] テキスト ボックスに次のテキストを入力します。

        The conditioned signal has a maximum value
        of %<max(dynamicX(:,2))>, which lies in the
        desired range of greater than %<testMin> and
        less than %<testMax>.

  12. 反復の終了時にテーブルに挿入する成功値を保存するには、[MATLAB 式の実行] コンポーネントを使用します。

    1. 左側のアウトライン ペインで [段落] コンポーネントを選択します。

    2. 中央のライブラリ ペインで、[MATLAB] カテゴリの下にある [MATLAB 式の実行] をダブルクリックします。

      意図しない結果の発生: 新しいコンポーネントが、[段落] コンポーネントの子になっています。

    3. 新しいコンポーネントを [段落] コンポーネントの "兄弟" にするには、左側のアウトライン ペインで [実行] コンポーネントを選択し、ツール バーの左矢印をクリックします。[実行] コンポーネントが、[段落] コンポーネントの兄弟になります。

  13. 右側のプロパティ ペインで、[実行] コンポーネントに対して、以下を行います。

    1. [レポートに MATLAB 式を挿入] および [レポートにコマンド ウィンドウの出力を表示] チェック ボックスをオフにします。

    2. [ベース ワークスペースで実行する式] テキスト ボックスで、目的の信号値を配列 expOkValues に保存するために、次のように入力します。

      expOkValues=[expOkValues;...
           {Iteration_Value,max(dynamicX(:,2))}];

    3. [エラーが発生した場合は以下の式を実行] をオンにしていることを確認します。テキスト ボックスに次のテキストを挿入します。

      disp(['Error during eval: ', evalException.message])

  14. レポート設定ファイルを保存します。

テスト後の解析の節の作成

メモ

この節は、これまでのタスクに基づいています。完成したレポート設定ファイルを表示するには、simulink-dynamic.rpt 設定ファイルを開きます。

setedit simulink-dynamic.rpt
このレポートは、slrgex_vdp モデルに関するものです。

必要な値をすべて収集したので、この章の最後に表を作成してレポートに挿入し、テスト後の解析の節を作成します。

  1. 左側のアウトライン ペインで、[モデル ループ 章] コンポーネントを選択します。

  2. 中央のライブラリ ペインで、[形式] カテゴリの下の [章/節] をダブルクリックします。

    章の先頭に新しい節が表示されます。

    矢印を 3 回クリックすると、[第 1 節][モデル ループ 章] コンポーネントの最後に移動します。

  3. 右側のプロパティ ペインで、以下を行います。

    1. [タイトル] 選択リストで [カスタム] を選択します。

    2. テキスト ボックスに Post-Test Analysis と入力します。

  4. 左側のアウトライン ペインで、新しい [第 1 節] コンポーネントを選択します。

  5. 中央のライブラリ ペインで、[形式] カテゴリの下の [段落] をダブルクリックします。プロパティは変更しないでください。

  6. 目的の範囲内に信号値があるかどうかを確認するには、[論理 If] コンポーネントを使用して配列 expOkValues をチェックします。expOkValues が空の場合、目的の範囲に信号値はありません。このチェックの結果をレポートします。

    1. 左側のアウトライン ペインで、段落コンポーネントを選択し、[論理 If] 子コンポーネントを追加します。

    2. 右側のプロパティ ペインで、[テスト式] テキスト ボックスに評価する式を入力します。

      ~isempty(expOkValues)
      この式は、expOkValues が空の場合は 0 (false) に評価され、それ以外の場合は 1 (true) に評価されます。

    3. 左側のアウトライン ペインで、[if (~isempty(expOkValue))] コンポーネントを選択し、[論理 Else] コンポーネントを子として追加します。

    4. [if (~isempty(expOkValue))] コンポーネントを再度選択し、[論理 Then] コンポーネントを子として追加します。

      2 つのコンポーネントは左側のアウトライン ペインで兄弟になります。

  7. レポート設定ファイルを保存します。

  8. ここで、expOkValues が空の場合を処理するレポート コンポーネントを挿入します。つまり、指定された範囲内に信号値が含まれない場合です。

    1. 左側のアウトライン ペインで [else] コンポーネントを選択します。

    2. 中央のライブラリ ペインで、[テキスト] コンポーネントをダブルクリックして、[else] コンポーネントの子として追加します。

    3. 右側のプロパティ ペインで、[レポートに含めるテキスト] テキスト ボックスに次のように入力します。

      None of the selected iteration values had 
      a maximum signal value between %<testMin> and %<testMax>.

  9. 次に、expOkValues が空ではなく、許容される信号値の表を挿入する場合を処理します。

    1. 左側のアウトライン ペインで [then] コンポーネントを選択します。

    2. [テキスト] コンポーネントを [then] コンポーネントの子として追加します。

    3. 右側のプロパティ ペインで、[レポートに含めるテキスト] テキスト ボックスに次のテキストを入力します。

      %<size(expOkValues, 1)> values for %<expBlock> were 
      found that resulted in a maximum signal value greater
      than %<testMin> but less than %<testMax>. The following
      table shows those values and their resulting signal maximum.

    4. 左側のアウトライン ペインで、[if (~isempty(expOkValues))] コンポーネントの [then] コンポーネントの下にある [テキスト] コンポーネントを選択します。

  10. 表の書式設定時に使用する配列を作成するには、[MATLAB 式の実行] コンポーネントを使用します。

    1. 中央のライブラリ ペインで [MATLAB 式の実行] をダブルクリックします。

    2. 右側のプロパティ ペインで、以下を行います。

      1. [レポートに MATLAB 式を挿入] および [レポートにコマンド ウィンドウの出力を表示] チェック ボックスをオフにします。

      2. レポートの次のコンポーネントは、文字列 Mu ValueSignal Maximum を表のヘッダーの値として使用します。[ベース ワークスペースで実行する式] テキスト ボックスに次のテキストを入力して、cell 配列 expOkValues の前に文字列を追加します。

        expOkValues=[{'Mu Value','Signal Maximum'} expOkValues];

      3. [エラーが発生した場合は以下の式を実行] チェック ボックスをオンにしていることを確認します。テキスト ボックスに次のテキストを入力します。

        disp(['Error during eval: ', evalExpression.message])

  11. 左側のアウトライン ペインで [実行] コンポーネントを選択します。

  12. 中央のライブラリ ペインで、[形式] カテゴリの下の [配列ベースのテーブル] コンポーネントをダブルクリックすると、[テキスト] コンポーネントと [実行] コンポーネントの兄弟になります。

  13. 右側のプロパティ ペインで、以下を行います。

    1. [ワークスペース変数名] テキスト ボックスに expOkValues と入力します。Simulink Report Generator ソフトウェアは、expOkValues の内容を使用して表を構成します。

    2. [テーブルのタイトル] テキスト ボックスに Valid Iteration Values と入力します。

  14. レポート設定ファイルを保存します。

    左側のアウトライン ペインは次のようになります。

レポートの生成

レポートを生成するには、ツール バーの [レポート] アイコンをクリックします。次が行われます。

  1. [メッセージ リスト] ウィンドウが表示され、レポートの処理時に情報とエラー メッセージが表示されます。レポートの生成中に [メッセージ リスト] ウィンドウに表示する詳細レベルを指定します。オプションの範囲は、0 (最も詳細ではない) から 6 (最も詳細) までです。[メッセージ リスト] ウィンドウのタイトル バーの下にある選択リストをクリックして、オプションを選択します。

    Message level 3 (Important messages) は、この例で後から使用します。

  2. slrgex_vdp モデルが表示されます。シミュレーションのたびに表示できます。

  3. スコープ ウィンドウが表示されます。スコープ グラフは、パラメーター値が変わるたびに変更されます。

  4. レポートの各コンポーネントは、レポート エクスプローラー ウィンドウの左側のアウトライン ペインで、実行時に強調表示されます。

レポート生成が完了すると、レポートが開きます。