このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
複数のシステムをチェックする関数の作成
関数 ModelAdvisor.run
を使用して、1 つ以上のモデルまたはサブシステムに対してプログラムによってチェックを実行できます。この例では、複数のサブシステムに対してモデル アドバイザー チェックを実行し、失敗および警告の数を返す関数の作成方法を示しています。
また、複数のモデルまたはサブシステムを並行してチェックするように関数を変更する方法についても説明しています。Parallel Computing Toolbox™ のライセンスがある場合は、この関数を並列モードで実行して処理時間を短縮できます。
チェックを実行し、結果を返す関数の作成
1.MATLAB® ウィンドウで、[新規]、[関数] を選択します。
2.ファイルを run_configuration.m
として保存します。
3.関数内で、untitled
を右クリックして [関数名をファイル名に置き換えてください。] を選択します。関数名が run_configuration
に更新されます。
function [outputArg1,outputArg2] = run_configuration(inputArg1,inputArg2) %UNTITLED Summary of this function goes here % Detailed explanation goes here outputArg1 = inputArg1; outputArg2 = inputArg2; end
4.関数の本文を削除します。
function [outputArg1,outputArg2] = run_configuration(inputArg1,inputArg2) end
5.出力引数を [fail
,warn
] で置き換え、入力引数を SysList
で置き換えます。
function [fail,warn] = run_configuration(SysList) end
6.関数内で、モデル アドバイザー構成ファイルを指定します。
fileName = 'myCheckConfiguration.json';
7.SysList
入力は、チェックを実行するモデル アドバイザーのシステム リストです。SysList
に対して関数 ModelAdvisor.run
を呼び出します。
SysResultObjArray = ModelAdvisor.run(SysList,'Configuration',fileName);
8.失敗または警告を返すチェックの数を特定し、それらを出力引数 fail
と warn
にそれぞれ出力します。
fail = 0; warn = 0; for i=1:length(SysResultObjArray) fail = fail + SysResultObjArray{i}.numFail; warn = warn + SysResultObjArray{i}.numWarn; end
関数 run_configuration
の内容は次のとおりです。
function [fail, warn] = run_configuration(SysList) %RUN_CONFIGURATION Check systems with Model Advisor % Check systems given as input and return number of failures and warnings. fileName = 'myCheckConfiguration.json'; % Run the Model Advisor. SysResultObjArray = ModelAdvisor.run(SysList,'Configuration', fileName); fail = 0; warn = 0; for i=1:length(SysResultObjArray) fail = fail + SysResultObjArray{i}.numFail; warn = warn + SysResultObjArray{i}.numWarn; end end
関数のテスト
1.関数 run_configuration
を保存します。
2.この例のチェックのカスタム構成に必要な sl_customization
ファイルを作成します。カスタム構成ファイルの詳細については、モデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。
copyfile customizationFile.m sl_customization.m f
3.モデル アドバイザー チェックを実行するサブシステムを systems
という変数に保存します。
systems = {'sldemo_auto_climatecontrol/Heater Control',... 'sldemo_auto_climatecontrol/AC Control',... 'sldemo_auto_climatecontrol/Interior Dynamics'};
4.systems
に対して関数 run_configuration
を実行します。
[fail,warn] = run_configuration(systems);
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 3 Systems with information: 0 of 3 Systems with warnings: 3 of 3 Systems with failures: 0 of 3 Systems with justifications: 0 of 3 To view the summary report, use the 'ModelAdvisor.summaryReport(SystemResultObjArray)' command. SystemResultObjArray is the result of the ModelAdvisor.run command.
4.概要レポートまたは関数 disp
を使用して結果を確認します。
各システムのモデル アドバイザー レポートを表示するには、概要レポートのリンクをクリックします。これにより、モデル アドバイザー コマンド ライン概要レポートが開きます。
関数
run_configuration
によって返される失敗および警告の数を確認するには、変数fail
とwarn
を参照します。
disp(['Number of checks that return failures: ', num2str(fail)]);
Number of checks that return failures: 0
disp(['Number of checks that return warnings: ', num2str(warn)]);
Number of checks that return warnings: 5
複数のシステムの並行チェック
複数のシステムを並行してチェックすると、モデル アドバイザーに必要な処理時間が短縮されます。Parallel Computing Toolbox™ のライセンスがある場合は、マルチコア ホスト マシンで複数のシステムを並行してチェックできます。
複数のシステムを並行してチェックするには、'ParallelMode
' を 'On
' に設定して関数 ModelAdvisor.run
を呼び出します。
SysResultObjArray = ModelAdvisor.run(SysList,'Configuration',fileName,'ParallelMode','On');
Parallel Computing Toolbox は 32 ビットの Windows® マシンをサポートしません。
それぞれの並列処理は、一度に 1 つのモデルのチェックを処理します。モデル アドバイザーが並列モードで実行される場合、ベース ワークスペース内のモデル データをサポートしません。モデル データは、モデル ワークスペースまたはデータ ディクショナリで定義しなければなりません。
参考
ModelAdvisor.run
| ModelAdvisor.setDefaultConfiguration