Main Content

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

ModelAdvisor.run

モデル アドバイザーを使用したシステムに対するチェックの実行

    説明

    ModelAdvisor.run(Systems,CheckIDList) は、Systems で指定されたモデルまたはサブシステムに対して、CheckIDList で指定されたチェック ID のリストをモデル アドバイザーで実行します。

    ModelAdvisor.run(Systems,'Configuration',FileName) は、モデル アドバイザー構成ファイル FileName で指定されたチェック リストをモデル アドバイザーで実行します。

    ModelAdvisor.run(Systems,{{CheckID,'InputParam',{paramName,paramValue}}}) は、入力パラメーター名 paramName と入力パラメーター値 paramValue で指定された入力パラメーター設定を使用して、CheckID で指定されたチェック ID をモデル アドバイザーで実行します。

    ModelAdvisor.run(Systems,{{CheckID1,'InputParam',{paramName1,paramValue1,...,paramNameN,paramValueN}},...,{CheckIDN,'InputParam',{paramName1,paramValue1,...,paramNameN,paramValueN}}}) は、'InputParam' を使用して指定された入力パラメーター設定を使用して、1 つ以上のチェック ID をモデル アドバイザーで実行します。

    チェック ID は CheckID1CheckIDN で指定します。それぞれのチェック ID について、'InputParam' でパラメーター名 paramName1paramNameN とパラメーター値 paramValue1paramValueN を使用してチェックの入力パラメーターを指定できます。

    たとえば、チェック [トリガー信号名をチェック] の入力パラメーターを指定するには、{'mathworks.jmaab.db_0032','InputParam',{'Follow links','off','Look under masks','all'}} を使用します。

    Results = ModelAdvisor.run(___,Name,Value) は、1 つ以上の Name,Value のペア引数を使用してモデル アドバイザー解析のプロパティを指定し、Results で結果を返します。Results はモデル アドバイザーの実行プロパティを表示するのに使用します。このオプションは前述のいずれかの構文と一緒に使用します。

    すべて折りたたむ

    チェックCheck model diagnostic parametersおよび未接続のオブジェクトをチェックのチェック ID のリストを作成します。

    checkIDs = {'mathworks.maab.jc_0021',...
    'mathworks.iec61508.UnconnectedObjects'};
    

    モデル例 sldemo_auto_climatecontrol を開きます。

    openExample('sldemo_auto_climatecontrol')

    サブシステム sldemo_auto_climatecontrol/Heater Control および sldemo_auto_climatecontrol/AC Control のリストを作成します。

    systems = {'sldemo_auto_climatecontrol/Heater Control',...
        'sldemo_auto_climatecontrol/AC Control'};
    

    モデル アドバイザーを使用して、サブシステムに対してチェックを実行します。

    results = ModelAdvisor.run(systems,checkIDs);

    モデル アドバイザー チェックの詳細については、モデル アドバイザーのチェックのドキュメンテーションを参照してください。チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

    入力パラメーター値を指定するチェックのリストを作成し、モデル アドバイザーを使用してチェックを実行します。

    以下を入力してモデル vdp を開きます。

    openExample('vdp')

    チェックCheck signal line connectionsおよびCheck trigger signal namesで使用する入力パラメーターのリストを作成します。

    チェックの入力パラメーターを調べるには、モデルに対するモデル アドバイザー オブジェクトを作成し、getInputParametersを使用します。チェックCheck signal line connectionsのチェック ID は 'mathworks.jmaab.db_0032'、チェックCheck trigger signal namesのチェック ID は 'mathworks.jmaab.jc_0281' です。

    ma = Simulink.ModelAdvisor.getModelAdvisor('vdp');
    
    db_0032_parameters = getInputParameters(ma, 'mathworks.jmaab.db_0032');
    jc_0281_parameters = getInputParameters(ma, 'mathworks.jmaab.jc_0281');

    チェック 'mathworks.jmaab.db_0032' には、db_0032_parameters{6} に入力パラメーター [リンクに従う]InputParameter プロパティがあります。入力パラメーター名を変数 followLinks に保存します。

    followLinks = db_0032_parameters{6}.Name;

    'mathworks.jmaab.db_0032' について、入力パラメーター [リンクに従う]'off' に設定します。[リンクに従う]'off' の場合、モデル アドバイザーはライブラリにリンクされたブロックの内容を解析しません。

    check1 = {'mathworks.jmaab.db_0032',...
    'InputParam',{followLinks,'off'}};

    チェック 'mathworks.jmaab.jc_0281' には、jc_0281_parameters{1} に入力パラメーター [jc_0281_a]InputParameter プロパティ、jc_0281_parameters{2} に入力パラメーター [jc_0281_b]InputParameter プロパティがあります。[jc_0281_a][jc_0281_b] には 'mathworks.jmaab.jc_0281' のサブチェックが含まれています。入力パラメーター名を変数 subCheckA および subCheckB に保存します。

    subCheckA = jc_0281_parameters{1}.Name;
    subCheckB = jc_0281_parameters{2}.Name;

    サブチェック 'jc_0281_a2' を選択し、'jc_0281_b' のサブチェックを無効にします。入力パラメーター値 2'jc_0281_a' の 2 番目のサブチェックを選択します。入力パラメーター値 0'jc_0281_b' のサブチェックを無効にします。'mathworks.jmaab.jc_0281' とそのサブチェックの詳細については、Check trigger signal namesを参照してください。

    check2 = {'mathworks.jmaab.jc_0281',...
    'InputParam',{subCheckA, 2, subCheckB, 0}};

    チェックのリストを作成します。

    listOfChecks = {check1, check2};

    モデル アドバイザーを使用して、指定したチェックをシステム vdp に対して実行します。

    results = ModelAdvisor.run('vdp', listOfChecks)

    モデル アドバイザー チェックおよびサブチェックの詳細については、モデル アドバイザーのチェックのドキュメンテーションを参照してください。チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

    モデル アドバイザーを使用して、モデル アドバイザー構成ファイルで指定したチェック リストを実行します。

    モデル アドバイザー チェックの情報キャッシュをリフレッシュして、この例のファイルを含めます。

    Advisor.Manager.refresh_customizations()

    構成ファイル例 demoConfiguration.json を使用して、モデル アドバイザー解析に含めるチェックを指定します。ファイル名 demoConfiguration.json を変数 fileName に保存します。

    fileName = 'demoConfiguration.json';

    +MyEditTimeChecks という名前のフォルダーを作成し、そのフォルダーにクラス定義ファイルを保存します。

    copyfile PortColor.m* +MyEditTimeChecks

    サブシステム sldemo_auto_climatecontrol/Heater Control および sldemo_auto_climatecontrol/AC Control のリストを作成します。

    systems = {'sldemo_auto_climatecontrol/Heater Control',...
        'sldemo_auto_climatecontrol/AC Control'};

    モデル アドバイザーを使用して、構成ファイル demoConfiguration.json で指定したチェックを systems で指定したサブシステムに対して実行します。

    results = ModelAdvisor.run(systems,'Configuration',fileName);
             Running Model Advisor... 
    Updating Model Advisor cache...
    Model Advisor cache updated. For new customizations, to update the cache, use the Advisor.Manager.refresh_customizations method.... 
    
             Systems passed: 0 of 2
    
             Systems with information: 0 of 2
    
             Systems with warnings: 2 of 2
    
             Systems with failures: 0 of 2
    
             Systems with justifications: 0 of 2
             To view the summary report, use the 'ModelAdvisor.summaryReport(SystemResultObjArray)' command. SystemResultObjArray is the result of the ModelAdvisor.run command.
    

    モデル アドバイザーを使用してチェックを実行し、レポートを生成します。

    以下を入力してモデル vdp を開きます。

    openExample('vdp')

    チェック ID のリストを作成します。チェックCheck signal line connectionsのチェック ID は 'mathworks.jmaab.db_0032'、チェックCheck trigger signal namesのチェック ID は 'mathworks.jmaab.jc_0281' です。

    checkIDs = {'mathworks.jmaab.db_0032','mathworks.jmaab.jc_0281'}

    モデル アドバイザーを使用して、モデルに対してチェックを実行します。名前と値の引数 'ReportFormat''ReportPath'、および 'ReportName' を使用して、現在のフォルダーpwdMicrosoft® Word ドキュメントとして生成します。

    ModelAdvisor.run('vdp', checkIDs,...
    'ReportFormat', 'docx', 'ReportPath', pwd, 'ReportName', 'myReport')

    モデル アドバイザー チェックおよびサブチェックの詳細については、モデル アドバイザーのチェックのドキュメンテーションを参照してください。チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

    入力引数

    すべて折りたたむ

    モデルまたはサブシステムのリスト。モデル名またはサブシステム名の cell 配列として指定します。

    例: {'vdp', 'sldemo_2counters'}

    例: {'sldemo_auto_climatecontrol/Heater Control', 'sldemo_auto_climatecontrol/AC Control'}

    モデル アドバイザー チェックのチェック ID のリスト。文字ベクトルまたは文字ベクトルの cell 配列として指定します。

    チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

    CheckIDList に重複するチェック ID を含めてはいけません。同じチェックを複数回、異なる入力パラメーターで実行する必要がある場合は、次のいずれかの方法を使用します。

    • それぞれの異なる入力パラメーターについて、ModelAdvisor.run を個別に呼び出す。

      たとえば、チェック 'mathworks.jmaab.jc_0281' を 2 回実行し、1 回はサブチェック 'jc_0281_a' を無効にし、もう 1 回はサブチェック 'jc_0281_a2' を選択した状態で実行するには、以下のようにします。

      myCheck = 'mathworks.jmaab.jc_0281';
      inputParam1 = {'jc_0281_a',0}; % disable 'jc_0281_a' subchecks
      inputParam2 = {'jc_0281_a',2}; % select subcheck 'jc_0281_a2'
      
      ModelAdvisor.run(modelName,{{myCheck,'InputParam',inputParam1}})
      ModelAdvisor.run(modelName,{{myCheck,'InputParam',inputParam2}})
      

    • それぞれの異なる入力パラメーターについて、個別のチェック インスタンスを使用するモデル アドバイザー構成を作成して実行する。モデル アドバイザー構成エディターで、実行するそれぞれの異なる入力パラメーターについて新しいフォルダーを作成し、それぞれのフォルダーにチェックをコピーし、それぞれのフォルダーで異なる入力パラメーターを指定するようにチェックを変更します。ModelAdvisor.run(Systems,'Configuration',FileName) 構文を使用して構成を実行します。

    例: 'mathworks.jmaab.jc_0281'

    例: {'mathworks.maab.jc_0021', 'mathworks.misra.BlockNames'}

    モデル アドバイザー チェックのチェック ID。文字ベクトルとして指定します。

    チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

    例: 'mathworks.jmaab.jc_0281'

    モデル アドバイザー チェックの入力パラメーターの名前。文字ベクトルとして指定します。

    モデル アドバイザー チェックの入力パラメーターの名前は、Simulink.ModelAdvisor オブジェクトに対して getInputParameters を使用することで確認できます。入力パラメーターの名前 NameModelAdvisor.InputParameter オブジェクトのプロパティです。詳細については、モデル アドバイザーを使用したサブチェックの実行を参照してください。

    チェックの入力パラメーターをモデル アドバイザー構成エディターで確認することもできます。入力パラメーターの値はカスタムのモデル アドバイザー構成ファイルに保存できます。詳細については、モデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。

    モデル アドバイザーのチェック、サブチェック、入力パラメーターの詳細については、モデル アドバイザーのチェックのドキュメンテーションで製品固有のチェックのドキュメンテーションへのリンクを使用してください。

    例: 'Follow links'

    例: 'jc_0281_a'

    モデル アドバイザー チェックの入力パラメーターの値。文字ベクトルまたは整数として指定します。

    モデル アドバイザー チェックの入力パラメーターの値は、Simulink.ModelAdvisor オブジェクトに対して getInputParameters を使用することで確認できます。現在の入力パラメーターの値 ValueModelAdvisor.InputParameter オブジェクトのプロパティです。詳細については、モデル アドバイザーを使用したサブチェックの実行を参照してください。

    チェックの入力パラメーターをモデル アドバイザー構成エディターで確認することもできます。入力パラメーターの値はカスタムのモデル アドバイザー構成ファイルに保存できます。詳細については、モデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。

    モデル アドバイザーのチェック、サブチェック、入力パラメーターの詳細については、モデル アドバイザーのチェックのドキュメンテーションで製品固有のチェックのドキュメンテーションへのリンクを使用してください。

    例: 'off'

    例: 4

    モデル アドバイザー構成ファイルの名前。文字ベクトルとして指定します。設定ファイルの作成の詳細については、モデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。

    例: 'demoConfiguration.json'

    名前と値の引数

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

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

    例: results = ModelAdvisor.run(systems,'Configuration',fileName,'ExtensiveAnalysis','Off');

    モデル アドバイザーの結果の表示設定。'Summary''Details'、または 'None' として指定します。DisplayResults'Summary' に設定すると、システムの結果の概要がコマンド ウィンドウに表示されます。DisplayResults'Details' に設定すると、以下が表示されます。

    • 実行中に、モデル アドバイザーがチェックしているシステム

    • 各システムについて、各チェックのパスおよび失敗の結果

    • システムの結果の概要

    DisplayResults'None' に設定すると、コマンド ウィンドウに情報が表示されません。

    例: 'Details'

    モデル アドバイザーの広範な解析の設定。'On' または 'Off' として指定します。'ExtensiveAnalysis''On' に設定すると、モデル アドバイザー構成の各チェックを実行します。これには広範な解析をトリガーするチェックも含まれます。'ExtensiveAnalysis''Off' に設定すると、広範な解析をトリガーしないチェックのみを実行します。

    モデルの広範な解析をトリガーするチェックは、Simulink® Design Verifier™ での解析など、追加の解析手法を使用します。広範な解析をトリガーするチェックには、モデル アドバイザーでチェック名の前に Extensive Analysis アイコンが付けられます。

    名前と値の引数 'ExtensiveAnalysis' を使用するには、引数 'Configuration' によりチェック構成ファイル名を指定する必要があります。

    例: 'Off'

    モデル アドバイザーの強制削除の設定。'Off' または 'On' として指定します。Force'On' に設定すると、既存の modeladvisor/system フォルダーを削除します。Force'Off' に設定すると、既存の modeladvisor/system フォルダーを削除する前に、プロンプトが表示されます。

    例: 'On'

    正当化ファイルの完全なファイル名またはパス。string スカラーまたは文字ベクトルとして指定します。正当化ファイルは JSON 形式です。

    正当化ファイルの作成方法の詳細については、Justify Model Advisor Violations from Check Analysisを参照してください。

    例: 'vdp_justifications.json'

    データ型: char | string

    モデル アドバイザーの並列実行の設定。'Off' または 'On' として指定します。ParallelMode'On' に設定すると、Parallel Computing Toolbox™ ライセンスとマルチコア マシンを使用している場合に、モデル アドバイザーを並列モードで実行します。Parallel Computing Toolbox は 32 ビットの Windows® マシンをサポートしません。それぞれの並列処理は、一度に 1 つのモデルのチェックを処理します。並列モードで、モデル ワークスペースまたはデータ ディクショナリからモデル データを読み込みます。並列モードでは、モデル アドバイザーはベース ワークスペース内のモデル データをサポートしません。例については、複数のシステムをチェックする関数の作成を参照してください。

    メモ

    モデル アドバイザーの並列実行は Simulink Online ではサポートされていません。

    例: 'On'

    レポートの対象外指定の表示設定。'On' または 'Off' として指定します。ShowExclusions'On' に設定すると、モデル アドバイザー チェックの対象外指定をレポートにリストします。ShowExclusions'Off' に設定すると、モデル アドバイザー チェックの対象外指定をレポートにリストしません。

    例: 'Off'

    モデル アドバイザーの一時作業フォルダーの設定。'Off' または 'On' として指定します。TempDir'On' に設定すると、並列プールを使用して実行するときの同時実行の問題を回避するために、一時作業フォルダーからモデル アドバイザーを実行します。詳細については、データの同時実行の問題の解決を参照してください。TempDir'Off' に設定すると、現在の作業フォルダーでモデル アドバイザーを実行します。

    例: 'On'

    生成されるレポートの形式。HTML 形式、PDF 形式、または Microsoft Word ドキュメント形式として指定します。

    メモ

    サポートされていない形式を選択すると、モデル アドバイザーがエラーを表示します。Microsoft Word のライセンスがある Windows オペレーティング システムの場合、サポートされる形式は 'html''pdf'、および 'docx' です。UNIX® のようなオペレーティング システムの場合、サポートされる形式は 'html' のみです。

    例: 'docx'

    生成されたレポートのフォルダーのパス。文字ベクトルとして指定します。既定では、'ReportPath' は現在の作業ディレクトリの 'slprj/modeladvisor/modelName' フォルダーです。

    例: 'C:\MyProject\MyReports'

    モデル アドバイザー レポートのファイル名 (拡張子なし)。文字ベクトルとして指定します。レポート ファイルには、アンダースコアとモデル名 '_modelName' を付加した名前が付けられます。たとえば、モデル vdp に対して ReportName 'MyReport' と指定してモデル アドバイザーを実行すると、モデル アドバイザー レポートのファイル名は 'MyReport_vdp' になります。

    例: 'MyReport'

    出力引数

    すべて折りたたむ

    モデル アドバイザー チェックの結果。ModelAdvisor.SystemResult オブジェクトの cell 配列として指定されます。関数は入力引数 Systems で指定されたモデルまたはサブシステムごとに 1 つのオブジェクトを返します。

    ModelAdvisor.SystemResult オブジェクトには、ModelAdvisor.run で実行された各チェックの ModelAdvisor.CheckResult オブジェクト (チェックごとに 1 つ) の配列を含む CheckResultObjs プロパティがあります。

    モデル アドバイザーを再実行せずに結果を確認するには、結果を保存しておきます。詳細については、オブジェクトの保存と読み込みのプロセスを参照してください。

    制限

    • ModelAdvisor.run は、複数のモデルの階層構造にまたがっては実行されません。親モデルおよびその参照モデルでモデル アドバイザーを実行するには、代わりに Advisor.Application を使用します。

    • ModelAdvisor.run は、アクティブなバリアントでのみモデル アドバイザーを実行します。アクティブなバリアントと非アクティブなバリアントの両方でモデル アドバイザーを実行するには、引数 AnalyzeVariantstrue として指定して Advisor.Application を使用します。

    ヒント

    • MATLAB® コマンド ラインからモデル アドバイザーを実行する場合、ModelAdvisor.run コマンドの LogVerbosity オプションを使用して、エラー、警告、デバッグの詳細などの情報をログに記録できます。

      ModelAdvisor.run('vdp',checkIDlist,'LogVerbosity','None')

      ログの詳細レベルを指定するには、以下に示すように LogVerbosity オプションを設定できます。

      LogVerbosity の値情報のログ記録のレベル

      None

      情報なし (既定値)。

      Concise

      エラーや警告など、中程度の情報量。

      Verbose

      完全な情報。

      また、LogFile オプションを含めて、ログの詳細をテキスト ファイルに保存することもできます。

      ModelAdvisor.run('vdp',checkIDlist,'LogVerbosity','Concise','LogFile','Log.txt')
    • Parallel Computing Toolbox ライセンスとマルチコア マシンを使用している場合は、複数のシステムに対してモデル アドバイザーを並列実行できます。'ParallelMode''On' に設定した ModelAdvisor.run を使用することで、並列モードでモデル アドバイザーを実行できます。既定では、'ParallelMode''Off' に設定されています。'ParallelMode''On' に設定した ModelAdvisor.run を使用する場合、MATLAB は自動的に並列プールを作成します。

    代替方法

    • モデル アドバイザーのユーザー インターフェイスを使用して各システムを実行します。ユーザー インターフェイスでは、一度に実行できるシステムは 1 つだけです。

    • Simulink.ModelAdvisor オブジェクトを使用してスクリプトまたは関数を作成し、各システムを一度に 1 つずつ実行します。

    拡張機能