メインコンテンツ

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

Advisor.Application クラス

R2026a

名前空間: Advisor

モデル参照階層およびバリアント全体でモデル アドバイザーを実行する

説明

Advisor.Application のインスタンスを使用して以下を行います。

  • 親モデルおよびその参照モデルのチェックを実行する。

  • 引数 AnalyzeVariants を true として指定して、アクティブなバリアントのチェックを実行する。

  • モデル アドバイザー解析で特定のモデル コンポーネントを選択または削除する。"モデル コンポーネント" とは、ルート モデルが参照するモデルと setAnalysisRoot で指定されたモデルです。

パブリック メソッドを使用して以下を行います。

  • Advisor.Application オブジェクトを使用してモデル アドバイザーを実行する。

  • Advisor.Application オブジェクトを削除する。

  • モデル アドバイザーで実行するモデル コンポーネントを指定する。

  • モデル アドバイザーで実行するチェックを指定する。

  • モデル アドバイザーから結果を取得する。

メモ

モデル アドバイザー チェックの実行時、モデルでモデル参照もバリアントも使用していない場合は、ModelAdvisor.run 関数を使用することをお勧めします。この関数はモデルおよびサブシステムでモデル アドバイザー チェックを実行でき、チェックを複数のシステムで並列実行する機能があります。また、ヘッドレス Linux® マシンから Advisor.Application を使用して特定のモデル アドバイザー チェックを実行するとエラーになることがあります。これを防ぐには、ModelAdvisor.run 関数を使用します。

作成

Advisor.Application オブジェクトを作成するには、Advisor.Manager.createApplication を使用します。

プロパティ

すべて展開する

解析対象となるモデル参照階層のルート モデルの名前。Advisor.Application.setAnalysisRoot メソッドによって指定されます。このプロパティは読み取り専用です。

属性:

GetAccess
public
SetAccess
private

データ型: char

Advisor.Application オブジェクトの一意の識別子。文字ベクトルとして指定されます。このプロパティは読み取り専用です。

属性:

GetAccess
public
SetAccess
private

データ型: char

一時作業フォルダーで解析を実行するかどうか。Advisor.Manager.createApplication メソッドで指定されます。このプロパティは読み取り専用です。

属性:

GetAccess
public
SetAccess
private

データ型: logical

バリアント マネージャーを使用して作成したバリアント構成で、モデル内のアクティブなバリアント ブロックの解析を実行します。詳細については、およびを参照してください。レポートを生成すると、モデル アドバイザーはバリアント構成ごとに個別のレポートを生成します。このプロパティは読み取りと書き込みが可能です。

属性:

GetAccess
public
SetAccess
public

データ型: logical

メソッド

すべて展開する

例

すべて折りたたむ

この例では、モデル sldemo_mdlref_basic およびその参照モデル sldemo_mdlref_counter でチェック [ルート モデルの Inport ブロックの仕様をチェック] を実行する方法について説明します。

モデル例 sldemo_mdlref_basic を開きます。MATLAB® コマンド ウィンドウで次を入力します。

openExample("sldemo_mdlref_basic")

モデル sldemo_mdlref_basic は 3 つの Model ブロック CounterA、CounterB、および CounterC を含む親モデルです。これらのブロックは同じモデル sldemo_mdlref_counter を参照しています。このモデルは別個のモデルであり、sldemo_mdlref_basic のサブシステムではありません。

sldemo_mdlref_basic 内のモデル参照階層全体でモデル アドバイザー チェックを実行するために使用できる Advisor.Application オブジェクトを作成します。

app = Advisor.Manager.createApplication();

解析するモデルまたはサブシステムを指定します。この例では、モデル sldemo_mdlref_basic をモデル アドバイザー解析のルートとして指定します。

setAnalysisRoot(app,Root = "sldemo_mdlref_basic");

Advisor.Application オブジェクトの解析ルートとしてモデルを指定すると、モデル アドバイザーはそのモデルおよびすべての参照モデルを解析します。詳細については、setAnalysisRoot を参照してください。

チェック [ルート モデルの Inport ブロックの仕様をチェック] のみを実行するとします。

既定では、Advisor.Application オブジェクトは、現在のモデル アドバイザー構成で各チェック インスタンスを実行するように設定されており、すべてのチェック インスタンスが選択されています。チェック インスタンスをクリアして、すべてのチェック インスタンスをモデル アドバイザー解析から削除します。

deselectCheckInstances(app);

チェック インスタンス ID を確認して使用することで、モデル アドバイザーでチェック [ルート モデルの Inport ブロックの仕様をチェック] のみを実行するように指定します。

checkID = "mathworks.design.RootInportSpec";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

これで、モデル アドバイザー解析用にチェック [ルート モデルの Inport ブロックの仕様をチェック] が選択されました。

メソッド getCheckInstanceIDs は複数のチェック インスタンス ID を返します。これは、チェック [ルート モデルの Inport ブロックの仕様をチェック] がモデル アドバイザー ツリーの複数のフォルダーに存在しているためです。この例では、instanceID は getCheckInstanceIDs から返された最初のチェック インスタンス ID として指定されていますが、getCheckInstanceIDs から返された任意のチェック インスタンス ID を選択できます。

メモ

あるいは、個別のチェックを選択するのではなくモデル アドバイザー構成ファイルを読み込む場合は、メソッド loadConfiguration を使用します。

モデル アドバイザー解析を実行します。

run(app);

モデル アドバイザーは、sldemo_mdlref_basic と sldemo_mdlref_counter の両方でチェック [ルート モデルの Inport ブロックの仕様をチェック] を実行します。

モデル アドバイザー解析からの結果を取得します。

res = getResults(app);

モデル アドバイザー レポートを生成して表示します。

report = generateReport(app);
web(report);

モデル アドバイザー レポートは、sldemo_mdlref_basic および sldemo_mdlref_counter の結果の概要、およびモデルごとの個別のレポートへのハイパーリンクを提供します。

この例では、モデル slexVariantManagement のさまざまなバリアント選択でチェック [接続されていないライン、入力端子、出力端子を特定] を実行する方法を示します。

モデル例 slexVariantManagement を開きます。MATLAB コマンド ウィンドウで次を入力します。

openExample("slexVariantManagement")

モデル slexVariantManagement には、Controller や Plant など、複数の Variant Subsystem ブロックが含まれています。Variant Subsystem ブロック内には、該当するコンポーネントのさまざまな実装があります。

slexVariantManagement には、モデルに関連付けられているバリアント構成データ オブジェクト vcd に保存されている複数のバリアント構成があります。Advisor.Application オブジェクトでは、バリアント マネージャーを使用して作成したバリアント構成で、モデル内のアクティブおよび非アクティブなバリアント ブロックのモデル アドバイザー解析のみを実行できます。詳細については、およびを参照してください。

モデル アドバイザー チェックを実行するために使用できる Advisor.Application オブジェクトを作成します。

app = Advisor.Manager.createApplication();

AnalyzeVariants を true として指定し、Advisor.Application オブジェクトで slexVariantManagement のバリアント選択ごとにモデル アドバイザーを実行できるようにします。

app.AnalyzeVariants = true;

解析するモデルを指定します。この例では、モデル slexVariantManagement をモデル アドバイザー解析のルートとして指定します。

setAnalysisRoot(app,Root = "slexVariantManagement");

チェック [接続されていないライン、入力端子、出力端子を特定] のみを実行するとします。

既定では、Advisor.Application オブジェクトは、現在のモデル アドバイザー構成で各チェック インスタンスを実行するように設定されており、すべてのチェック インスタンスが選択されています。チェック インスタンスをクリアして、すべてのチェック インスタンスをモデル アドバイザー解析から削除します。

deselectCheckInstances(app);

チェック インスタンス ID を確認して使用することで、モデル アドバイザーでチェック [接続されていないライン、入力端子、出力端子を特定] を実行するように指定します。

checkID = "mathworks.design.UnconnectedLinesPorts";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

これで、モデル アドバイザー解析用にチェック [接続されていないライン、入力端子、出力端子を特定] が選択されました。

メソッド getCheckInstanceIDs は複数のチェック インスタンス ID を返します。これは、チェック [接続されていないライン、入力端子、出力端子を特定] がモデル アドバイザー ツリーの複数のフォルダーに存在しているためです。この例では、instanceID は getCheckInstanceIDs から返された最初のチェック インスタンス ID として指定されていますが、getCheckInstanceIDs から返された任意のチェック インスタンス ID を選択できます。

メモ

あるいは、個別のチェックを選択するのではなくモデル アドバイザー構成ファイルを読み込む場合は、メソッド loadConfiguration を使用します。

モデル アドバイザー解析を実行します。

run(app);

モデル アドバイザーは、モデルおよび参照モデルで両方のアクティブなバリアントのチェックを実行します。

モデル アドバイザー解析からの結果を取得します。

res = getResults(app);

モデル アドバイザー レポートを生成して表示します。

report = generateReport(app);
web(report);

モデル アドバイザー レポートは、slexVariantManagement の結果の概要、およびバリアントごとの個別のレポートへのハイパーリンクを提供します。

制限

  • 参照モデルは、期限が切れている場合にのみコンパイルされます。以下の場合は、参照モデルに対してコンパイル時チェックは実行されません。

    • モデル参照が階層内で使用されている。

    • [シミュレーション モード] が accelerator に設定されている。

    • [UpdateModelReferenceTargets] が IfOutOfDate に設定されている。

  • Advisor.Application は複数のシステムで並行実行できません。モデルでモデル参照もバリアントも使用していない場合、代わりに関数 ModelAdvisor.run を使用します。ModelAdvisor.run はモデルおよびサブシステムでモデル アドバイザー チェックを実行でき、複数のシステムで並列実行するオプションがあります。

バージョン履歴

R2015b で導入