主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

Parsimを使用した並列シミュレ,ションのカバレッジの記録

この例では,SimulationInputオブジェクトおよびparsimコマンドを使用して,異なるテストケースに対応する仿真金宝app软件®の複数の並列シミュレーションのカバレッジを記録する方法について説明します。システム上に并行计算工具箱がescンストルされている場合,parsimコマンドはシミュレ,ションを並列実行します。そうでない場合,シミュレ,ションは逐次実行されます。

モデルの概要

slvnvdemo_powerwindow_parsimモデルには,パワ,ウィンドウコントロ,ラ,および低次のプラントモデルが含まれます。コンポ,ネントslvnvdemo_powerwindow_parsim power_window_control_system /控制は,Stateflow®チャ,トでコントロ,ラ,を実装するモデルslvnvdemo_powerwindow_controllerを参照する模型ブロックです。

mdl =“slvnvdemo_powerwindow_parsim”;isModelOpen = bdIsLoaded(mdl);open_system (mdl);

複数のシミュレ,ションのデ,タ設定

信号编辑器ブロックでNumberOfScenariosパラメ,タ,を使用して,テストケ,スの数を特定します。テストケ,スの数によって実行する反復回数が決まります。

sigEditBlk = [mdl .' /输入'];numCases = str2double(get_param(sigEditBlk),“NumberOfScenarios”));

金宝app仿真软件。SimulationInputオブジェクトの配列を作成し,実行するシミュレ,ションのセットを定義します。各SimulationInputオブジェクトは 1 つのシミュレーションに対応し、配列思敏に格納されます。各シミュレーションで、以下のパラメーターを設定します。

  • ActiveScenario。信号编辑器ブロックのどのシナリオを実行するかを示します。

  • CovEnable。カバレッジ解析をオンにします。

  • CovSaveSingleToWokspaceVar。カバレッジの結果をワ,クスペ,ス変数に保存します。

  • CovSaveName。変数の名前を指定します。

simIn(idx) = Simulink.SimulationI金宝appnput(mdl);simIn(idx) = setBlockParameter(simIn(idx), sigEditBlk,“ActiveScenario”, idx);simIn(idx) = setModelParameter(simIn(idx),“CovEnable”“上”);simIn(idx) = setModelParameter(simIn(idx),“CovSaveSingleToWorkspaceVar”“上”);simIn(idx) = setModelParameter(simIn(idx),“CovSaveName”“covdata”);结束

Parsimを使用したシミュレ,ションの並列実行

関数parsimを使用して,シミュレ,ションを並列実行します。最初の引数としてSimulationInputオブジェクトの配列思敏を関数parsimに渡します。ShowProgressオプションをに設定し,matlabコマンドウィンドウにシミュレ,ションの進行状況を表示します。parsimコマンドからの出力はsimOutであり,金宝app仿真软件。SimulationOutputオブジェクトの配列です。

simOut = parsim(simIn,“ShowProgress”“上”);
[07-5-2021 18:38:48]检查并行池的可用性…使用“本地”配置文件启动并行池(parpool)…连接到并行池(数量:4).[07-5-2021 18:39:30]在并行工人上启动Simulink…金宝app[07-5-2021 18:40:22]在并行工作者上配置模拟缓存文件夹…[07-5-2021 18:40:23]加载模型在并行工人…[07-5-2021 18:41:09]运行模拟…[07-5-2021 18:42:03]完成2次模拟运行中的1次[07-5-2021 18:42:03]清理并行工人…

金宝app仿真软件。SimulationInputオブジェクトには,ログ記録されたカバレッジの結果がcv.cvdatagroup对象として格納されます。これらのカバレッジの結果は,事前にCovSaveNameパラメ,タ,によって指定されたとおり,covdataという名前のフィ,ルドに格納されます。parsimを使用して複数のシミュレーションを実行した場合,後続のシミュレーションを継続して実行できるようにエラーがキャプチャされます。エラ,はすべてSimulationOutputオブジェクトのErrorMessageプロパティに記録されます。

covdataはカバレッジの結果が記載されたファ@ @ルを参照します。カバレッジ関数によってcovdataが使用されるときに,参照ファ。

simOut (1) .covdata
…cvdata文件:/tmp/Bdoc21a_1669600_200351/tp32c0bc17/ex16619798/slcov_output/slvnvdemo_powerwindow_parsim/slvnvdemo_powerwindow_parsim_cvdata_1.使用实例cvt日期:07-5-2021 18:42:02

累積カバレッジの計算

simOutの各要素からカバレッジデ,タを取得し,結果を累積します。

coveragdata = simOut(1).covdata;i = 2: numCases coverageData = coverageData + simOut(i).covdata;结束

カバレッジの強調表示を使用して,モデル上で累積されたカバレッジの結果を参照します。

cvmodelview (coverageData);open_system (“slvnvdemo_powerwindow_parsim / power_window_control_system”);

累積カバレッジレポ,トを生成します。

cvhtml (“cummulative_cov_report.html”, coverageData);