Model Loop
子コンポーネントでの指定どおりに Simulink モデルおよびシステムをループ処理
説明
このコンポーネントは、子コンポーネントでの指定どおりに Simulink® モデルおよびシステムをループ処理します。たとえば、[システム ループ] という子をもつ [モデル ループ] を使用して、指定されたシステムのサブシステムについてレポートできます。
これらのコンポーネントを [モデル ループ] の子にすることを検討してください (ただし、[モデル ループ] を、指定されたコンポーネントの直接の親にする必要はありません)。
ブロックに基づく条件付きの処理を行うには、関数 RptgenSL.getReportedBlock を使用できます。詳細については、コンテキスト関数のループ処理を参照してください。
含めるモデル
リストにモデルを追加するには [新しいモデルをリストに追加] をクリックします。次の表に、リスト内でモデルを上下に移動させたり、モデルの追加や削除を行うためのボタンを示します。
ボタン | 動作 |
|---|---|
| リスト内でモデルを上方向に移動させます。 |
| リスト内でモデルを下方向に移動させます。 |
| リストからモデルを削除します。 |
| リストに新しいモデルを追加します。 |
モデル オプション
アクティブ: 指定されたモデルをループに含めます。既定ではこのオプションは選択されています。このオプションをオフにすると、モデルがループから除外されます。
このオプションで、レポートから 1 つ以上のモデルを一時的に除外することができます。
モデル名: モデル名を指定します。
現在のブロック線図開いているすべてのモデル開いているすべてのライブラリ現在のディレクトリ内のブロック線図ブロック線図のカスタム: このオプションを選択すると、モデルのルート システムで開始されるよう、[システムの起動] フィールドが$topに自動的に設定されます。%<VariableName>: 詳細については、MATLAB® Report Generator™ ドキュメンテーションのテキストコンポーネント リファレンス ページの[%<VariableName> 表記法]を参照してください。
モデルを移動: 移動するシステムを指定します。
モデル内のすべてのシステム選択したシステムのみ選択したシステムと先祖選択したシステムと子
マスク内を表示: マスクの処理方法を指定します。
関数的なマスクのみマスクなしすべてのマスクグラフィカルなマスクのみ
詳細については、ブロック マスクの作成を参照してください。
ライブラリ リンクに従う: 含めるライブラリ リンクを指定します。
ライブラリ リンクに従わない: ライブラリ リンクがブロックとして扱われます。ライブラリ リンクを含める: ライブラリ リンクがサブシステムとして扱われます。固有のライブラリ リンクを含める: あるシステム内に同じライブラリ リンクのコピーが複数ある場合、そのうち 1 つがサブシステムとして扱われ、その他はブロックとして扱われます。
詳細については、リンク付きブロックを参照してください。
モデル参照: Model ブロックにより参照されるモデルについてレポートするかどうかを指定します。参照モデルについてレポートする場合、モデルの階層構造の深さ、およびバリアント モデルについてレポートするかどうかを制御できます。
Model ブロックに従わない:参照モデルに含まれるブロックについてレポートしません。すべての Model ブロックに従う:モデルの階層構造のすべての部分で参照されるすべてのモデルに含まれるブロックについてレポートします。現在のモデル内で定義された Model ブロックに従う:現在選択されているモデルが参照するモデル内のブロックについてレポートします。<モデル参照の深さのカスタム>: モデルの階層構造での指定したレベルが参照するモデル内のブロックについてレポートします。
すべてのバリアントを含める: すべてのバリアント モデルについてレポートします。このオプションを有効にするには、参照先モデル内のブロックについてレポートするように [モデル参照] オプションを設定します。
サブシステム参照: Subsystem Reference ブロックにより参照されるサブシステム ファイルについてレポートするには、このオプションを選択します。
システムの起動: ループを開始するシステムを指定します。使用できるオプションは、[モデルを移動] オプションで設定した値によって異なります。[モデルを移動] に
[モデル内のすべてのシステム]以外のオプションを設定すると、[システムの起動] オプションが有効になります。[モデル名] オプションでモデル名を入力しない場合、
[ルート モデル]または[現在]を選択してループを開始する場所を指定します。[モデル名] オプションでモデル名を指定する場合は、[システムの起動] オプションに表示されたエディット ボックスに、以下を入力できます。
1 つ以上のサブシステムの絶対パス
$top(モデルのルート システムでループを開始)$current(現在選択されているシステムでループを開始)
節のオプション
ループ内のオブジェクトごとに節を作成: 生成されたレポートで、ループ内のオブジェクトごとに節を挿入します。
節タイトルにオブジェクト タイプを表示: 生成されたレポートの節タイトルに、オブジェクト タイプを自動挿入します。[ループ内のオブジェクトごとに節を作成] を選択した場合にのみ、使用できます。
ループ内のオブジェクトごとにリンク アンカーを作成: ループ内の各オブジェクトについてリンク ターゲットを作成し、レポートの他の部分からリンクできるようにします。
例
この例では、サンプル モデル sldemo_auto_climate_elec 内で指定されたシステムとそのサブシステムをループ処理する方法を説明します。
sldemo_auto_climate_elecモデルを開くには、MATLAB コマンド プロンプトに次のコマンドを入力します。openExample("sldemo_auto_climate_elec")モデルを確認してそのサブシステムをよく理解しておきます。
レポート エクスプローラーを開きます。
[ファイル] 、 [新規作成] をクリックしてレポート設定ファイルを作成します。
[ファイル] 、 [名前を付けて保存] をクリックしてレポート設定ファイルを保存します。
sldemo_auto_reportという名前にします。レポート設定ファイルに
章/節コンポーネントを追加して、モデルのサブシステムに関する情報を含めます。中央のライブラリ ペインで [章/節] をダブルクリックしてレポート設定ファイルに追加します。
[タイトル] で
[カスタム]を選択します。タイトル フィールドにDescription of subsystemsと入力します。モデル ループを章/節コンポーネントの子として追加します。これはsldemo_auto_climate_elecモデル内のClimateControlSystemシステムとそのサブシステムをループ処理します。中央のライブラリ ペインで [モデル ループ] をダブルクリックしてレポート設定ファイルに追加します。既定では、レポート エクスプローラーによりこのコンポーネントが
章/節コンポーネントの子として追加されます。[モデル ループ] プロパティ ペインの [モデル名] 選択リストから
[<ブロック線図のカスタム>]を選択します。[モデル名] フィールドで
[<ブロック線図のカスタム>]というテキストを削除して、sldemo_auto_climate_elec.slxというテキストを入力します。レポート設定ファイル内でいずれかのコンポーネントをクリックし、このモデルを [含めるモデル] リストに追加します。[モデルを移動] 選択リストで
[選択したシステムと子]を選択します。[マスク内を表示] 選択リストで
[すべてのマスク]を選択します。[モデル参照] 選択リストで、
[Model ブロックに従わない]を選択します。[システムの起動] フィールドに
sldemo_auto_climate_elec/ClimateControlSystemと入力します。[モデルを移動] で[選択したシステムと子]を選択したので、モデル ループは、sldemo_auto_climate_elec/ClimateControlSystemとそのサブシステムに対してループ処理を行います。[セクションのオプション] の [ループ内のオブジェクトごとに節を作成] チェック ボックスをオンにします。このオプションを選択すると、生成されるレポートでは、コンポーネントによってループ処理されるモデルごとに個別の節が作成されます。
[モデル ループ] プロパティ ペインは、次のように表示されます。

[ファイル] 、 [保存] をクリックしてレポートを保存します。
システム ループをモデル ループコンポーネントの子として追加します。中央のライブラリ ペインで [システム ループ] をダブルクリックしてレポート設定ファイルに追加します。既定では、モデル エクスプローラーによってこのコンポーネントが
モデル ループコンポーネントの子として追加されます。[システム ループ] のプロパティ ペインで、[ループ オプション] の [ループ内のオブジェクトごとに節を作成] チェック ボックスをオンにします。このオプションを選択すると、生成されるレポートでは、コンポーネントによってループ処理されるサブシステムごとに節が作成されます。その他のフィールドについてはすべて既定の値を受け入れます。
システムのスナップショットコンポーネントをシステム ループコンポーネントの子として追加します。この手順によって、生成されるレポート内にClimateControlSystemのすべてのサブシステムのスナップショットが作成されます。中央のライブラリ ペインで [システムのスナップショット] をダブルクリックします。既定では、モデル エクスプローラーによってこのコンポーネントがシステム ループコンポーネントの子として追加されます。レポートを保存します。
レポート設定ファイルの階層は以下のようになります。

[ファイル] 、 [レポート] をクリックしてレポートを実行します。
レポートは、次のメッセージ リストに示されるように、
sldemo_auto_climate_elecモデルのシステムClimateControlSystemとそのすべてのサブシステムをループ処理します。
以下は生成されたレポートからの抜粋です。

この例では、モデル ループの [アクティブ] チェック ボックスを使用してループからモデルを一時的に除外する方法を説明します。この例では、前述の「指定したシステムおよびそのサブシステムについてのレポートの生成」の例で作成したレポート設定ファイル、sldemo_auto_report.rpt と Simulink の f14 モデルを使用します。
f14モデルを開くには、MATLAB コマンド プロンプトに次のコマンドを入力します。openExample("f14")モデルを確認してそのサブシステムをよく理解しておきます。
レポート エクスプローラーで [ファイル] 、 [開く] をクリックし、
sldemo_auto_report.rptをダブルクリックして開きます。左側のアウトライン ペインで
Model Loop Section 1 - sldemo_auto_climate_elecをクリックします。[モデル ループ] のプロパティ ペインで、
ボタンをクリックして [含めるモデル] リストにモデルを 1 つ追加します。[モデル ループ] プロパティ ペインの [モデル名] 選択リストから
[<ブロック線図のカスタム>]を選択します。[モデル名] フィールドで、
[<ブロック線図のカスタム>]というテキストを削除して「f14.slx」と入力します。[マスク内を表示] 選択リストで
[すべてのマスク]を選択します。レポート設定ファイルを保存します。
レポートを生成します。
レポート生成プロセスは、
f14モデルとsldemo_auto_climate_elecモデル内の指定されたシステムをループ処理します。以下は生成されたレポートからの抜粋です。

[含めるモデル] リストで
f14をクリックして選択します。[アクティブ] チェック ボックスをオフにして、生成されるレポートから
f14モデルの情報を除外します。レポートを再実行します。
レポートに、前の例「指定したシステムおよびそのサブシステムについてのレポートの生成」の終わりに示されているように、
sldemo_auto_climate_elecモデルのみの情報が含まれるようになります。f14モデルを再度アクティブにするには、モデル ループの [含めるモデル] リストでf14モデルを選択してから、[アクティブ] チェック ボックスをオンにします。
レポートに挿入されるもの
あり。[ループ内のオブジェクトごとに節を作成] をオンにした場合は節が挿入され、[ループ内のオブジェクトごとにリンク アンカーを作成] をオンにした場合はリンク ターゲットが挿入されます。
クラス
rptgen_sl.csl_mdl_loop



