Main Content

ModelAdvisor.run

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

    説明

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

    メモ

    チェックリストを ModelAdvisor.Run() に渡す際、同じチェックは想定されておらず、重複するチェック ID は許容されません。同じチェックを異なる入力パラメーターで実行する場合は、次のいずれかの手順を使用して実現できます。

    • 両方のチェック ID で別々に ModelAdvisor.run() を呼び出します。

      run(model_list, {check1}, {inputParam1})
      run(model_list,{check1}, {inputParam2})

    • 入力パラメーターが異なる同じチェックが別々のタスクとして指定された構成を使用します。

      run(model_list, configuration, 'path/name.json')

    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 を使用してチェックの入力パラメーターを指定できます。

    たとえば、次のコードは以下のモデル アドバイザー チェックを実行します。

    • 入力パラメーター 'Follow links''off' に設定し、'jc_0281_a' サブチェックを無効にして、'mathworks.jmaab.jc_0281'

    • 入力パラメーター 'Follow links''off' に設定し、入力パラメーター 'Look under masks''all' に設定して、'mathworks.jmaab.db_0032'

    Results = ModelAdvisor.run('vdp',...
    {{'mathworks.jmaab.jc_0281','InputParam',{'Follow links','off','jc_0281_a',0}},...
    {'mathworks.jmaab.db_0032','InputParam',{'Follow links','off','Look under masks','all'}}})

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

    すべて折りたたむ

    チェック ID のリストを作成し、指定したサブシステムに対して ModelAdvisor.run を使用してチェックを実行します。

    チェックCheck model diagnostic parametersおよびCheck for unconnected objectsのチェック 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 を開きます。

    open_system('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 の検索を参照してください。

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

    モデル例 sldemo_auto_climatecontrol を開きます。

    openExample('sldemo_auto_climatecontrol')

    スクリプト例 prepare_cust_chk_code.m を現在のフォルダーにコピーし、スクリプトを実行します。スクリプトにより、この例のファイルが現在のフォルダーにコピーされます。

    copyfile(fullfile(matlabroot,'examples','slcheck','main',...
        'prepare_cust_chk_code.m'),'prepare_cust_chk_code.m','f');
    
    run('prepare_cust_chk_code.m');

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

    Advisor.Manager.refresh_customizations()
    

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

    fileName = 'demoConfiguration.json';
    

    サブシステム 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);

    モデル アドバイザーのチェックとサブチェックの詳細については、モデル アドバイザーのチェックのドキュメンテーションで製品固有のチェックのドキュメンテーションへのリンクを使用してください。チェック ID の検索方法の詳細については、モデル アドバイザー チェック ID の検索を参照してください。

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

    モデル vdp を開きます。

    open_system('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' を使用して、モデル アドバイザー レポートを現在のフォルダー pwd に Microsoft® 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'}

    モデル アドバイザー チェックの一意の識別子。文字ベクトルまたは文字ベクトルの cell 配列として指定します。

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

    例: 'mathworks.jmaab.jc_0281'

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

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

    チェック 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 を引用符で囲みます。

    例: 'ExtensiveAnalysis','Off'

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

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

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

    • システムの結果の概要

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

    例: 'Details'

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

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

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

    例: 'Off'

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

    例: 'On'

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

    例: 'On'

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

    例: 'On'

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

    例: 'Off'

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

    メモ

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

    例: 'word'

    生成されるレポートのフォルダー。文字ベクトルとして指定します。既定では、'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 プロパティがあります。

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

    ヒント

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

    代替方法

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

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

    拡張機能