Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデル リファレンス構造の可視化

この例では、依存関係アナライザーを使用してモデルの依存関係を表示、確認、および解析する方法を示します。参照モデルを検索する方法と依存関係グラフを操作する方法を示します。

モデルを開く

open_system("sldemo_mdlref_depgraph");

参照モデルを検索

関数find_mdlrefsを使用してすべての sldemo_mdlref_depgraph 参照を検索します。

[refMdls, modelBlks] = find_mdlrefs('sldemo_mdlref_depgraph');

find_mdlrefs により、2 つの cell 配列 refMdls および modelBlks が返されます。refMdls には、sldemo_mdlref_depgraph によって直接的または間接的に参照されるすべてのモデルの名前が含まれています。既定の設定で、refMdls の最後の要素は入力モデルの名前です。modelBlks には、最上位モデルとすべての参照モデルのすべての Model ブロックへのブロック パスが含まれています。

モデル参照の依存関係グラフの表示

sldemo_mdlref_depgraph モデルの依存関係グラフを表示するには、次のいずれかの処理を実行してモデルの依存関係アナライザーを開きます。

  • 関数 depview を使用します。

  • [モデル化] タブの [設計] セクションで、[依存関係アナライザー] をクリックします。

依存関係グラフでは、ボックスが Simulink モデルを表します。矢印は依存関係を表します。たとえば、sldemo_mdlref_depgraph から sldemo_mdlref_house へのリンクは sldemo_mdlref_depgraph が sldemo_mdlref_house を参照していることを示しています。モデルがライブラリ、サブシステム、または保護モデルを参照する場合、依存関係グラフに階層構造で表示されます。

このビューでは、グラフ内のモデルごとに 1 つのボックスのみが存在し、ボックス間に最大 1 つの矢印が存在します。依存関係グラフでは、モデル間の参照が複数存在するかどうかわかりません。このビューでは、どのモデルがノーマル モードで参照され、どのモデルがアクセラレータ モードで参照されるのかわかりません。

依存関係グラフの操作

  • ボックスを選択するには、そのボックスをクリックします。

  • ボックスに関連付けられているモデルまたはライブラリを開くには、そのモデルまたはライブラリをダブルクリックします。

  • 依存関係グラフを移動するには、マウス ホイール ボタンをクリックして押したまま、マウスをドラッグします。

  • マウス ポインターの下にある領域を拡大、縮小するには、マウス ホイールを使用します。

  • 依存性グラフを中央に配置し、依存性グラフが使用可能なスペースにちょうどおさまる倍率に調整するには、Space キーを押します。

モデル インスタンスの依存関係グラフの表示

参照モデル インスタンスを依存関係グラフに表示するには、次のいずれかの操作を実行します。

  • depview('sldemo_mdlref_depgraph','ModelReferenceInstance',true) を使用する。

  • 依存関係アナライザーの [ビュー] セクションで、[モデル インスタンス] を選択する。

インスタンス ビューで、ボックスは Simulink モデルを表します。矢印は依存関係を表します。依存関係グラフは、モデル間に複数の参照がいつ存在するのかを示します。インスタンス ビューにライブラリが表示されることはありません。

このビューでは、2 つのボックスに sldemo_mdlref_F2C というラベルが付いています。それは、このモデルが 2 回、つまり sldemo_mdlref_outdoor_tempsldemo_mdlref_heater からそれぞれ 1 回参照されているためです。最上位モデルは青色で表示されます。赤色は、ノーマル モードの参照を示し、黄色はアクセラレータ モードの参照を示します。

sldemo_mdlref_heater はノーマル モードで sldemo_mdlref_F2C を参照し、アクセラレータ モードで sldemo_mdlref_thermostat を参照しています。

モデル インスタンス ビューの確認

sldemo_mdlref_outdoor_temp から sldemo_mdlref_F2C への参照は現在、アクセラレータ モードの参照になっています。この参照をノーマル モードでの参照に変更するとします。

  1. sldemo_mdlref_outdoor_temp から sldemo_mdlref_F2C へのリンクを作成する矢印を選択します。

  2. 右側の [プロパティ] ペインにある依存関係テーブルで、sldemo_mdlref_outdoor_temp/Fahrenheit to Celsius をクリックします。モデル sldemo_mdlref_outdoor_temp が開き、sldemo_mdlref_F2C ブロックが強調表示されます。

  3. sldemo_mdlref_F2C ブロックを選択します。

  4. [Model ブロック] タブで、[シミュレーション モード]Normal に変更します。

  5. この変更を確認するには、依存関係グラフに移動して [解析] をクリックします。

依存関係グラフには、sldemo_mdlref_outdoor_temp から sldemo_mdlref_F2C への参照がノーマル モード (オーバーライド済み) の参照として表示されるようになります。sldemo_mdlref_F2C がノーマル モードで動作するように設定されているのに、その親 sldemo_mdlref_outdoor_temp はアクセラレータ モードで動作するように設定されていることに注意してください。アクセラレータ モードで動作しているモデルからノーマル モードで参照することはできないため、sldemo_mdlref_F2C は、シミュレーション中はアクセラレータ モードで動作します。

このモデルがノーマル モードで動作するようにするには、その上位モデルをすべてノーマル モードで動作するように設定しなければなりません。このためには、以下のことを行います。

  1. sldemo_mdlref_depgraph から sldemo_mdlref_outdoor_temp へのリンクを作成する矢印を選択します。

  2. 右側の [プロパティ] ペインにある依存関係テーブルで、sldemo_mdlref/outdoor_temp をクリックします。モデル sldemo_mdlref_depgraph が開き、sldemo_mdlref_outdoor_temp ブロックが強調表示されます。

  3. sldemo_mdlref_outdoor_temp ブロックを選択します。

  4. [Model ブロック] タブで、[シミュレーション モード]Normal に変更します。(sldemo_mdlref_F2C にアクセラレータ モードの上位モデルがまだ存在する場合は、それらによる参照もノーマル モードに変更する必要があります)。

  5. この変更を確認するには、依存関係グラフに移動して [解析] をクリックします。

モデルを閉じる

close_system("sldemo_mdlref_depgraph");

参考

モデル参照の基礎

モデル依存関係の解析