メインコンテンツ

generateReport

クラス: Advisor.Application
名前空間: Advisor

モデル アドバイザー解析のレポートの生成

説明

Application オブジェクト解析のモデル アドバイザー レポートを生成します。

generateReport(app) は、Application オブジェクトによって指定された各コンポーネントのモデル アドバイザー レポートを生成します。既定では、モデル アドバイザーは、概要レポート report.html および各モデル コンポーネントのレポートを現在の作業ディレクトリ内のフォルダーに生成します。フォルダー名は解析ルートの名前です。

generateReport(___,Name,Value) は、1 つ以上のペアの引数 Name,Value を使用してレポートの生成場所を指定します。たとえば、生成されたモデル アドバイザー レポートが含まれるフォルダーの名前と場所を指定できます。

入力引数

すべて展開する

モデル アドバイザーのアプリケーション オブジェクト。Advisor.Application オブジェクトとして指定します。メソッド Advisor.Manager.createApplication を使用して Advisor.Application オブジェクトを作成します。

名前と値の引数

すべて展開する

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

生成されたレポートのフォルダーのパス。文字ベクトルまたは string 配列として指定します。

既定では、モデル アドバイザーのレポートは、現在の作業ディレクトリ内のフォルダーに生成されます。

例: report = generateReport(app,'Location','my_work')

生成されたレポートのフォルダーの名前。文字ベクトルまたは string 配列として指定します。

既定では、フォルダー名は解析ルートの名前です。

例: report = generateReport(app,'Name','my_reports')

すべて展開する

この例では、解析ルート名のレポートを現在のフォルダーに生成する方法を説明します。

モデルを開きます。この例では、モデル sldemo_mdlref_basic を開きます。

openExample('sldemo_mdlref_basic');

Advisor.Application オブジェクトを作成します。

app = Advisor.Manager.createApplication();

モデル アドバイザー解析のルートとしてモデル sldemo_mdlref_basic を指定します。

RootModel='sldemo_mdlref_basic';
setAnalysisRoot(app,'Root',RootModel);

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

run(app);

このコードは選択した各チェックを実行します。特定のチェックのみを実行する方法については、Advisor.Application を参照してください。

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

report = generateReport(app);

モデル アドバイザーは、概要レポート report.html および各モデル コンポーネントのレポートを生成します。レポートは、現在の作業ディレクトリ内のフォルダー sldemo_mdlref_basic に生成されます。

概要レポートを Web ブラウザーで開きます。

web(report);

この例では、特定の名前と場所のフォルダーでレポートを生成する方法を説明します。

モデルを開きます。この例では、モデル sldemo_mdlref_basic を開きます。

openExample('sldemo_mdlref_basic');

Advisor.Application オブジェクトを作成します。

app = Advisor.Manager.createApplication();

モデル アドバイザー解析のルートとしてモデル sldemo_mdlref_basic を指定します。

RootModel='sldemo_mdlref_basic';
setAnalysisRoot(app,'Root',RootModel);

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

run(app);

my_work という名前の新しいフォルダーを現在の作業ディレクトリに作成します。

mkdir my_work

フォルダー my_work 内の my_reports という名前のフォルダーにモデル アドバイザーのレポートを生成します。

report = generateReport(app,...
'Location','my_work',...
'Name','my_reports');

モデル アドバイザーは、概要レポート report.html および各モデル コンポーネントのレポートを生成します。

Current Folder with "my_work" folder, "my_reports" subfolder, and the generated reports

概要レポートを Web ブラウザーで開きます。

web(report);

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

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

openExample("sldemo_mdlref_basic")

モデル sldemo_mdlref_basic は 3 つの Model ブロック CounterACounterB、および 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 ブロックの仕様をチェック] がモデル アドバイザー ツリーの複数のフォルダーに存在しているためです。この例では、instanceIDgetCheckInstanceIDs から返された最初のチェック インスタンス ID として指定されていますが、getCheckInstanceIDs から返された任意のチェック インスタンス ID を選択できます。

メモ

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

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

run(app);

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

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

res = getResults(app);

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

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

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

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

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

openExample("slexVariantManagement")

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

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

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

app = Advisor.Manager.createApplication();

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

メモ

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

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

run(app);

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

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

res = getResults(app);

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

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

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

バージョン履歴

R2015b で導入