Simulink Design Verifier データ ファイルの管理
Simulink® Design Verifier™ は解析の完了後にデータ ファイルを生成します。このデータ ファイルは、sldvData
構造体が含まれる MAT ファイルです。この構造体には、このソフトウェアが解析時に収集および生成するすべてのデータが格納されます。同じデータはハーネス モデルにはグラフィカルに、さらにレポートにも表示されますが、詳細なカスタム解析やカスタム レポートの生成にこのデータ ファイルを使用できます。
sldvData
構造体の生成
sldvData
構造体の内容を確認するには、以下の手順を実行します。
sldvdemo_flipflop
モデルのテスト ケースを生成します。openExample('sldv/FlipFlopTestGenerationExample', ... 'supportingFile', 'sldvdemo_flipflop'); sldvrun('sldvdemo_flipflop');
sldvdemo_flipflop
モデルのsldvData
構造体を MATLAB® ワークスペースに読み込みます。load('sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat')
構造体内のフィールドの名前を表示します。
sldvData = ModelInformation: [1x1 struct] AnalysisInformation: [1x1 struct] ModelObjects: [1x2 struct] Constraints: [] Objectives: [1x12 struct] TestCases: [1x4 struct] Version: '2.1'
sldvData
のモデル情報フィールド
以下の節では、sldvData
構造体のフィールドについて説明します。
モデル情報
ModelInformation
フィールドには、Simulink Design Verifier で解析したモデルに関する情報が含まれます。次の表では、ModelInformation
フィールドのサブフィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
Name | モデル名。 |
Version | モデル番号。 |
Author | ユーザー名。 |
TimeStamp | 最後に更新された日時。 |
SubsystemPath | 解析されたサブシステムがある場合、その絶対パス名。 |
ExtractedModel |
|
ReplacementModel | ブロック置換が含まれているモデルの名前。 |
HarnessOwnerModel | 解析された Simulink Test™ ハーネス モデルの所有者の名前。 |
解析情報
AnalysisInformation
フィールドには、解析オプションと関連情報がリストされます。表では、AnalysisInformation
フィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
Status | 解析のステータス。 |
AnalysisTime | 解析の所要時間 (秒) |
Options | 解析時に使用される Simulink Design Verifier オプション オブジェクトのディープ コピー。 |
InputPortInfo | システムの最上位レベル内のすべての Inport ブロックに関する情報が含まれた構造体の cell 配列。 |
OutputPortInfo | システムの最上位レベル内のすべての Outport ブロックに関する情報が含まれた構造体の cell 配列。 |
SampleTimes | 内部使用専用。 |
Parameters | 内部使用専用。 |
AbstractedBlocks | 内部使用専用。 |
Approximations | 解析時に実行された近似について説明する構造体。詳細については、Role of Approximations During Model Analysisを参照してください。 |
ReplacementInfo | 内部使用専用。 |
PreProcessingTime | モデル表現を作成または再利用する時間 (秒単位)。 |
ModelRepresentationInfo | 解析に使用するモデル表現の日付と時刻。 |
モデル オブジェクト
ModelObjects
フィールドには、モデルの項目とそれに関連付けられたオブジェクティブがリストされます。表では、ModelObjects
フィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
descr | Stateflow® チャートのオブジェクトなど、モデル オブジェクトの絶対パス。 |
typeDesc | モデル オブジェクトのタイプ。ステート オブジェクトの場合は S、遷移オブジェクトの場合は T として返されます。 |
slPath | Simulink モデル オブジェクトの絶対パス。 |
sfObjType | Stateflow オブジェクトのタイプ。例: ステートは |
sfObjNum | Stateflow オブジェクトの一意の識別子を表す整数。 |
sid | 内部使用専用。 |
designSid | 内部使用専用。 |
replacementSid | 内部使用専用。 |
objectives | モデル オブジェクトに関連したオブジェクティブのインデックスを表す整数のベクトル。 |
制約
Constraints
フィールドには、モデルの入力端子に指定された最小値および最大値がある場合、それに関する情報がリストされます。表では、Constraints
フィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
DesignMinMax | 各入力端子の名前、最小値および最大値を含む構造体の cell 配列。 |
オブジェクティブ
Objectives
フィールドには、タイプ、ステータス、説明など、それぞれのオブジェクティブに関する情報がリストされます。表では、Objectives
フィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
type | オブジェクティブのタイプ。 |
status | オブジェクティブのステータス。 |
descr | オブジェクティブに関連した説明。 |
label | オブジェクティブのラベル。 |
outcomeValue | オブジェクティブの結果を表す整数。 |
coveragePointIdx | オブジェクティブに関連したカバレッジ ポイントのインデックスを表す整数。 |
linkInfo | 内部使用専用。 |
range | 内部使用専用。 |
detectability | オブジェクティブの検出可能性ステータス。 このフィールドは、解析モードを |
detectionSites | 検出可能オブジェクティブの、検出サイトの Simulink 識別子 (SID) の配列。 このフィールドは、解析モードを |
modelObjectIdx | オブジェクティブに関連したモデル オブジェクトのインデックスを表す整数。 |
analysistime | オブジェクティブの解析時間。 |
testCaseIdx | オブジェクティブで解決されたテスト ケースまたは反例のインデックスを表す整数。 |
テスト ケースまたは反例
このフィールド名はチェックのタイプによって異なります。
[モード] パラメーターを
[設計エラー検出]
に設定すると、CounterExamples
フィールドに整数オーバーフローまたはゼロ除算エラーとなる各テスト ケースに関する情報が示されます。[モード] パラメーターを
[テスト生成]
に設定すると、TestCases
フィールドにその信号値やテスト オブジェクティブなど、各テスト ケースに関する情報がリストされます。[モード] パラメーターを
[プロパティ証明]
に設定すると、CounterExamples
フィールドに反例とそれによって反証される証明オブジェクティブの情報が個々にリストされます。
表では TestCases
フィールドおよび CounterExamples
フィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
timeValues | テスト ケースまたは反例の信号に関連付けられた時間の値のベクトル。 |
dataValues | テスト ケースまたは反例の信号に関連付けられたデータの値のベクトル。 |
paramValues | 以下のフィールドが含まれている、テスト ケースまたは反例に関連したパラメーターの詳細を表す構造体:
|
stepValues | テスト ケースまたは反例の信号を構成するタイム ステップ数を示すベクトル。 |
objectives | テスト ケースまたは反例で扱われるオブジェクティブを示す構造体。この構造体には以下のフィールドがあります。
|
dataNoEffect | 信号のデータ値がオブジェクティブに影響するかどうかを示す logical ベクトルの cell 配列。ベクトルは信号のデータ値がオブジェクティブに影響しないことを |
expectedOutput | テスト ケースの信号を使用したモデルのシミュレーションから得られた出力値を示すベクトルの cell 配列。それぞれのセルは、最上位システムの個々の Outport ブロックに関連付けられた出力値を表します。[期待される出力値を含める] が選択されている場合、このサブフィールドにデータが格納されます。 |
Version フィールド
Version
フィールドは、解析で使用された Simulink Design Verifier バージョンのリストを示します。
デッド ロジック フィールド
デッド ロジックの部分チェックを実行オプションを使用してモデルのデッド ロジックを解析すると、sldvData
構造体の DeadLogic
フィールドに、デッド ロジックとなった各オブジェクティブについての情報がリストされます。
次の表では、DeadLogic
フィールドの各サブフィールドについて説明します。
サブフィールド名 | 説明 |
---|---|
label | デッド ロジックとなったオブジェクティブの説明。 |
descr | Stateflow チャートのオブジェクトなど、モデル オブジェクトの絶対パス。 |
modelObjIdx | オブジェクティブに関連したモデル オブジェクトのインデックスを表す整数。 |
coverageType | カバレッジ オブジェクティブのタイプ。 |
coverageIdx | オブジェクティブに関連付けられているカバレッジ ポイントのインデックスを表す整数。 |
ObjectiveIdx | モデル オブジェクトに関連付けられているオブジェクティブのインデックスを表す整数。 |
データ ファイルを使用したモデルのシミュレーション
関数 sldvruntest
を使用して、Simulink Design Verifier データ ファイル内のテスト ケースまたは反例を使用してモデルをシミュレートできます。データ ファイルのテスト ケースを使用して sldvdemo_flipflop
モデルをシミュレートするには、以下の手順を実行します。
sldvdemo_flipflop
モデルをシミュレートし、テスト ケースを生成します。openExample('sldv/FlipFlopTestGenerationExample', ... 'supportingFile', 'sldvdemo_flipflop'); sldvrun('sldvdemo_flipflop');
モデルを解析した後に Simulink Design Verifier が生成するデータ ファイルの位置を保存します。
sldvDataFile = 'sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat'
関数
sldvruntest
を使用して、データ ファイルの 2 番目のテスト ケースでsldvdemo_flipflop
モデルをシミュレートします。[ outdata ] = sldvruntest('sldvdemo_flipflop', sldvDataFile, 2)
sldvruntest
の出力は、
オブジェクトの配列です。Simulink.SimulationOutput
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
を参照してください。