ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

スクリプトでのカバレッジ コマンドの使用

次のスクリプトでは、一般的なモデル カバレッジ コマンドの使用例を示しています。

このスクリプトは、以下の処理を実行します。

  • シミュレーション前に読み込む 2 つのデータ ファイルを作成する。

  • 2 つの cvtest オブジェクト (testObj1testObj2) を作成し、既定のモデル パラメーターを使用してシミュレーションを実行する。各 cvtest オブジェクトは setupCmd プロパティを使用して、シミュレーション前にデータ ファイルを読み込みます。

  • 判定カバレッジ、条件カバレッジ、MCDC カバレッジを有効にする。

  • Adjustable Rate Limited サブシステムの判定カバレッジ結果を取得する。

  • cvhtml を使用して 2 つのテストのカバレッジ結果と累積カバレッジを表示する。

  • + 演算子で累積カバレッジを計算し、結果を保存する。

mdl = 'slvnvdemo_ratelim_harness';
mdl_subsys = 'slvnvdemo_ratelim_harness/Adjustable Rate Limiter';

open_system(mdl);
open_system(mdl_subsys);

t_gain = (0:0.02:2.0)'; u_gain = sin(2*pi*t_gain);
t_pos = [0;2]; u_pos = [1;1]; t_neg = [0;2]; u_neg = [-1;-1];
save('within_lim.mat','t_gain','u_gain','t_pos','u_pos', ...
    't_neg', 'u_neg');
t_gain = [0;2]; u_gain = [0;4]; t_pos = [0;1;1;2]; 
u_pos = [1;1;5;5]*0.02; t_neg = [0;2]; u_neg = [0;0];
save('rising_gain.mat','t_gain','u_gain','t_pos','u_pos', ...
    't_neg', 'u_neg');

testObj1               = cvtest(mdl_subsys);
testObj1.label         = 'Gain within slew limits';
testObj1.setupCmd      = 'load(''within_lim.mat'');';
testObj1.settings.mcdc = 1;
testObj1.settings.condition = 1;
testObj1.settings.decision = 1;

testObj2          = cvtest(mdl_subsys);
testObj2.label    = 'Rising gain that temporarily exceeds slew limit';
testObj2.setupCmd = 'load(''rising_gain.mat'');';
testObj2.settings.mcdc = 1;
testObj2.settings.condition = 1;
testObj2.settings.decision = 1;

[dataObj1,simOut1] = cvsim(testObj1);
decision_cov1 = decisioninfo(dataObj1,mdl_subsys);
percent_cov1 = 100 * decision_cov1(1) / decision_cov1(2)
cc_cov2 = complexityinfo(dataObj1, mdl_subsys);

[dataObj2,simOut2] = cvsim(testObj2,[0 2]);
decision_cov2 = decisioninfo(dataObj2,mdl_subsys);
percent_cov2 = 100 * decision_cov2(1) / decision_cov2(2)
cc_cov2 = complexityinfo(dataObj1, mdl_subsys);


cvhtml('ratelim_report',dataObj1,dataObj2);
cumulative = dataObj1+dataObj2;

cvsave('ratelim_testdata',cumulative);

close_system('slvnvdemo_ratelim_harness',0);
この情報は役に立ちましたか?