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
モデルを使用します。
レポート エクスプローラーで [ファイル] 、 [開く] をクリックし、
sldemo_auto_report.rpt
をダブルクリックして開きます。左側のアウトライン ペインで
Model Loop Section 1 - sldemo_auto_climate_elec
をクリックします。[モデル ループ] のプロパティ ペインで、
ボタンをクリックして [含めるモデル] リストにモデルを 1 つ追加します。
[モデル ループ] プロパティ ペインの [モデル名] 選択リストから
[<ブロック線図のカスタム>]
を選択します。[モデル名] フィールドで、
[<ブロック線図のカスタム>]
というテキストを削除して「slrgex_f14.slx
」と入力します。[マスク内を表示] 選択リストで
[すべてのマスク]
を選択します。[モデル ループ] のプロパティ ペインは以下のようになります。
レポート設定ファイルを保存します。
レポートを生成します。
レポート生成プロセスは、次のメッセージ ボックスに示されるように、
slrgex_f14
モデルとsldemo_auto_climate_elec
モデル内の指定されたシステムをループ処理します。以下は生成されたレポートからの抜粋です。
[含めるモデル] リストで
slrgex_f14
をクリックして選択します。[アクティブ] チェック ボックスをオフにして、生成されるレポートから
slrgex_f14
モデルの情報を除外します。レポートを再実行します。
レポートに、前の例「指定したシステムおよびそのサブシステムについてのレポートの生成」の終わりに示されているように、
sldemo_auto_climate_elec
モデルのみの情報が含まれるようになります。slrgex_f14
モデルを再度アクティブにするには、モデル ループの [含めるモデル] リストでslrgex_f14
モデルを選択してから、[アクティブ] チェック ボックスをオンにします。
レポートに挿入されるもの
あり。[ループ内のオブジェクトごとに節を作成] をオンにした場合は節が挿入され、[ループ内のオブジェクトごとにリンク アンカーを作成] をオンにした場合はリンク ターゲットが挿入されます。
クラス
rptgen_sl.csl_mdl_loop