Modelブロックを含んだモデルのカバレッジを行うコマンドはありますか?
14 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Oct 2013
Answered: MathWorks Support Team
on 25 Oct 2013
Modelブロック(参照モデル)を含んだモデルのカバレッジを行う方法を教えてください。
Accepted Answer
MathWorks Support Team
on 25 Oct 2013
TOP階層のテスト仕様設定において、下記を追加することでModelブロック(参照モデル)を含んだモデルのカバレッジを行うことができます。
cvto.modelRefSettings.enable='all';% 全ての参照モデルに対するカバレッジを設定
下記がプログラム例です。TOP_ModelNameとSignalNameは、カバレッジを行うモデル名、ブロック名に合わせて使用してください。
% 参照/参照先モデルの読み込み
TOP_ModelName = 'TOP_Model_Name';% Top階層のモデル名
open_system(TOP_ModelName)
block_name = find_mdlrefs(TOP_ModelName);
for n=1:length(block_name)
% 非視覚的にモデルを読み込み
load_system(block_name{n})
end
% SignalBuilder名設定
SignalName = 'TOP_Model_Name/SignalBuilder_TestPattern';
[time,data,siglabelsl,grouplabel]=signalbuilder(SignalName);
% SignalBuilderの取得したグループラベルの各信号をcvsimコマンドによりシミュレーション
for n=1:length(grouplabel)
% Signal Builderのタブをアクティブに
signalbuilder(SignalName,'ActiveGroup',n);
%シグナル信号の最終時間取得
[time, data] = signalbuilder(SignalName, 'get', 1, n);
TimeEnd = num2str(time(end));
%上位モデルのコンフィギュレーションパラメータ変更
hAcs = getActiveConfigSet(TOP_ModelName);
hAcs.set_param('StopTime', TimeEnd);
% テスト仕様の設定
cvto=cvtest(TOP_ModelName)
cvto.settings.decision=1; % カバレッジ測定対象をdecisionに設定
cvto.settings.mcdc=1; % カバレッジ測定対象をMCDCに設定
cvto.settings.condition=1; % カバレッジ測定対象をConditionに設定
cvto.modelRefSettings.enable='all';% 全ての参照モデルに対するカバレッジを設定
cvdg = cvsim(cvto)
% モデルのカバレッジの合算
if ~exist('covData0','var')
covData0 = cvdg;
else
covData0 = covData0 + cvdg;
end
end
% 統合カバレッジをHTMLで出力
htmlname=sprintf('%s_report%s.html',TOP_ModelName,'All');
cvhtml(htmlname,covData0);
0 Comments
More Answers (0)
See Also
Categories
Find more on カバレッジ ワークフローの自動化 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!