Main Content

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

Simulink Design Verifier データ ファイルの管理

データ ファイルの生成

Simulink® Design Verifier™ は解析の完了時にデータ ファイルを生成します。データ ファイルは、sldvData という名前の構造体が含まれる MAT ファイルです。この構造体には、このソフトウェアが解析時に収集および生成するすべてのデータが格納されます。同じデータはハーネス モデルにはグラフィカルに、さらにレポートにも表示されますが、独自の解析の実行やカスタム レポートの生成にこのデータ ファイルを使用できます。

sldvData 構造体のコンテンツ

Simulink Design Verifier はその解析を完了すると、sldvData という名前の構造体を含む MAT ファイルを生成します。sldvData 構造体のコンテンツは、以下の手順により確認します。

  1. sldvdemo_flipflop モデルのテスト ケースを生成します。

    sldvdemo_flipflop;
    sldvrun('sldvdemo_flipflop');
  2. 次のコマンドを入力して MATLAB® プロンプトでデータ ファイルを読み込みます。

    load('sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat')

    MATLAB ソフトウェアにより sldvData 構造体がそのワークスペースに読み込まれます。この構造体には、sldvdemo_flipflop モデルの Simulink Design Verifier の解析結果が含まれています。

  3. MATLAB コマンド ラインで「sldvData」と入力して、構造体を構成するフィールド名を表示します。

    sldvData = 
    
           ModelInformation: [1x1 struct]
        AnalysisInformation: [1x1 struct]
               ModelObjects: [1x2 struct]
                Constraints: []
                 Objectives: [1x12 struct]
                  TestCases: [1x4 struct]
                    Version: '2.1'

sldvData のモデル情報フィールド

以下の節では、sldvData 構造体のフィールドについて説明します。

ModelInformation フィールド

sldvData 構造体の ModelInformation フィールドには、解析したモデルに関する情報が含まれます。次の表では、ModelInformation フィールドの各サブフィールドについて説明します。

サブフィールド名説明
Name

モデル名。

Version

モデル番号。

Author

ユーザー名。

TimeStamp

モデルの最終更新日時。

SubsystemPath

解析されたサブシステムがある場合、その絶対パス名。

ExtractedModel

SubsystemPath でサブシステムが指定されている場合、その解析用に抽出されたモデルがあれば、その名前。

ReplacementModel

ブロック置換を含むモデルがある場合、その名前。

HarnessOwnerModel

解析している Simulink Test™ のテスト ハーネスの所有者モデルがある場合、その名前。

AnalysisInformation フィールド

sldvData 構造体の AnalysisInformation フィールドには、個々の解析オプションと関連情報の設定がリストされます。次の表では、AnalysisInformation フィールドの各サブフィールドについて説明します。

サブフィールド名説明
Status

Simulink Design Verifier 解析の完了ステータス。

AnalysisTime

解析の長さを秒単位で示す double。

Options

解析時に使用される Simulink Design Verifier オプション オブジェクトのディープ コピー。

InputPortInfo

最上位システムの各 Inport ブロックに関する情報を示す構造体の cell 配列。

OutputPortInfo

最上位システムの各 Outport ブロックに関する情報を示す構造体の cell 配列。

SampleTimes

内部使用専用。

Parameters

内部使用専用。

AbstractedBlocks

内部使用専用。

Approximations

解析時に実行される近似を記述する構造体。近似の詳細は、近似を参照してください。

ReplacementInfo

内部使用専用。

PreProcessingTime

モデル表現を作成または再利用する時間 (秒単位) を指定する double。

ModelRepresentationInfo

解析に使用するモデル表現の日付と時刻。

ModelObjects フィールド

sldvData 構造体の ModelObjects フィールドには、モデルの項目とそれに関連付けられたオブジェクティブがリストされます。次の表では、ModelObjects フィールドの各サブフィールドについて説明します。

サブフィールド名説明
descr

Stateflow® チャートのオブジェクトなど、モデル オブジェクトの絶対パス。

typeDesc

モデル オブジェクトのブロック タイプ。

slPath

Simulink モデル オブジェクトの絶対パス。

sfObjType

Stateflow オブジェクトのタイプ。例: ステートは S、遷移は T

sfObjNum

Stateflow オブジェクトの一意の識別子を表す整数。

sid

内部使用専用。

designSid

内部使用専用。

replacementSid

内部使用専用。

objectives

モデル オブジェクトに関連付けられたオブジェクティブのインデックスを表す整数ベクトル。

Constraints フィールド

sldvData 構造体の Constraints フィールドには、モデルの入力端子に指定された最小値および最大値がある場合、それに関する情報がリストされます。次の表では、Constraints フィールドのサブフィールドについて説明します。

サブフィールド名説明
DesignMinMax

値が指定されている各入力端子の名前、最小値および最大値を含む構造体の cell 配列。

Objectives フィールド

sldvData 構造体の Objectives フィールドには、タイプ、ステータス、説明など、それぞれのオブジェクティブに関する情報がリストされます。次の表では、Objectives フィールドの各サブフィールドについて説明します。

サブフィールド名説明
type

オブジェクティブのタイプ。

status

オブジェクティブのステータス。

descr

オブジェクティブの説明。

label

オブジェクティブのラベル。

outcomeValue

オブジェクティブの結果を示す整数。

coveragePointIdx

オブジェクティブが関連付けられているカバレッジ ポイントのインデックスを表す整数。

linkInfo

内部使用専用。

range

内部使用専用。

detectability

オブジェクティブの検出可能性ステータス。

このフィールドは、解析モード[テスト生成] に設定され、モデル カバレッジ オブジェクティブ[Enhanced MCDC] に設定されているときに、データ ファイルに表示されます。

detectionSites

検出可能オブジェクティブの、検出サイトの Simulink 識別子 (SID) の配列。オブジェクティブは、いずれかの検出サイトで検出可能です。

このフィールドは、解析モード[テスト生成] に設定され、モデル カバレッジ オブジェクティブ[Enhanced MCDC] に設定されているときに、データ ファイルに表示されます。

modelObjectIdx

オブジェクティブが関連付けられているモデル オブジェクトのインデックスを表す整数。

analysistime

オブジェクトの解析時間を表す整数。

testCaseIdx

オブジェクティブを扱うテスト ケースまたは反例のインデックスを表す整数。

TestCases フィールド / CounterExamples フィールド

sldvData 構造体では、構造体では、このフィールドはチェックのタイプに応じて 2 つの名前をもつことができます。

  • [モード] パラメーターを [設計エラー検出] に設定すると、CounterExamples フィールドに整数オーバーフローまたはゼロ除算エラーとなる各テスト ケースに関する情報がリストされます。

  • [モード] パラメーターを [テスト生成] に設定すると、TestCases フィールドにその信号値や達成するテスト オブジェクティブなど、各テスト ケースに関する情報がリストされます。

  • [モード] パラメーターを [プロパティ証明] に設定すると、CounterExamples フィールドに反例とそれによって反証される証明オブジェクティブの情報が個々にリストされます。

次の表では、TestCases / CounterExamples フィールドの各サブフィールドについて説明します。

サブフィールド名説明
timeValues

テスト ケースまたは反例の信号に関連付けられた時間値を示すベクトル。

dataValues

テスト ケースまたは反例の信号に関連付けられたデータ値を示す cell 配列。

paramValues

テスト ケースまたは反例に関連付けられたパラメーター値を示す構造体。この構造体には以下のフィールドがあります。

name — パラメーター名。

value — パラメーターの値を示す数値。

noEffect — パラメーターの値がオブジェクティブに影響するかどうかを示す論理値。

stepValues

テスト ケースまたは反例の信号を構成するタイム ステップ数を示すベクトル。

objectives

テスト ケースまたは反例で扱われるオブジェクティブを示す構造体。この構造体には以下のフィールドがあります。

objectiveIdx — テスト ケースが達成するオブジェクティブまたは反例が反証するオブジェクティブのインデックスを表す整数。

atTime — テスト ケースがオブジェクティブを達成するとき、あるいは反例がオブジェクティブを反証するときの時間値。

atStep — テスト ケースがオブジェクティブを達成するとき、あるいは反例がオブジェクティブを反証するときのタイム ステップ。

dataNoEffect

信号のデータ値がオブジェクティブに影響するかどうかを示す logical ベクトルの cell 配列。ベクトルは信号のデータ値がオブジェクティブに影響しないことを 1 により示し、それ以外には 0 を使用します。

expectedOutput

テスト ケースの信号を使用したモデルのシミュレーションから得られた出力値を示すベクトルの cell 配列。それぞれのセルは、最上位システムの個々の Outport ブロックに関連付けられた出力値を表します。[期待される出力値を含める] が選択されている場合、このサブフィールドにデータが格納されます。

Version フィールド

sldvData 構造体の Version フィールドでは、モデルを解析した Simulink Design Verifier のバージョンを指定します。

DeadLogic フィールド

モデルのデッド ロジックを解析すると、sldvData 構造体の DeadLogic フィールドに、デッド ロジックとなった各オブジェクティブについての情報がリストされます。

次の表では、DeadLogic フィールドの各サブフィールドについて説明します。

サブフィールド名説明
label

デッド ロジックとなったオブジェクティブの説明。

descr

Stateflow チャートのオブジェクトなど、モデル オブジェクトの絶対パス。

modelObjIdx

オブジェクティブに関連付けられているモデル オブジェクトのインデックスを表す整数。

coverageType

カバレッジ オブジェクティブのタイプ。

coverageIdx

オブジェクティブに関連付けられているカバレッジ ポイントのインデックスを表す整数。

ObjectiveIdx

モデル オブジェクトに関連付けられているオブジェクティブのインデックスを表す整数。

データ ファイルを使用したモデルのシミュレーション

関数 sldvruntest は、Simulink Design Verifier データ ファイル内のテスト ケースまたは反例を使用してモデルをシミュレートします。

  1. sldvdemo_flipflop モデルをシミュレートし、テスト ケースを生成します。

  2. モデルを解析した後、生成されたデータ ファイルの位置を保存します。

    sldvDataFile = 'sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat'
  3. 関数 sldvruntest を使用して、データ ファイルのテスト ケース 2 で sldvdemo_flipflop モデルをシミュレートします。

    [ outdata ] = sldvruntest('sldvdemo_flipflop', sldvDataFile, 2)

    sldvruntest からの出力は、Simulink.SimulationOutput オブジェクトの配列です。

  4. Simulink.SimulationOutput オブジェクトのメソッドを使用して、最初のテスト ケースの出力データを調べます。

    tout_sldvruntest = outdata(1).find('tout_sldvruntest');
    xout_sldvruntest = outdata(1).find('xout_sldvruntest');
    yout_sldvruntest = outdata(1).find('yout_sldvruntest');
    logsout_sldvruntest = outdata(1).find('logsout_sldvruntest');

データ ファイルからの結果の読み込み

モデルの以前の解析結果をデータ ファイルから読み込むことができます。詳細は以前の結果の読み込みsldvloadresults を参照してください。