Simulink® Design Verifier™ генерирует файл данных, когда завершает его анализ. Файл данных является MAT-файлом, который содержит структуру с именем sldvData
. Эта структура хранит все данные, которые собирает и производит программное обеспечение во время анализа. Хотя программное обеспечение графически отображает те же данные в модели тестовой обвязки и отчете, можно использовать файл данных для проведения собственного анализа или для генерации пользовательского отчета.
sldvData
СтруктураКогда Simulink Design Verifier завершает анализ, он создает MAT-файл, содержащий структуру с именем sldvData
. Чтобы исследовать содержимое sldvData
структура:
Сгенерируйте тесты для sldvdemo_flipflop
модель:
sldvdemo_flipflop; sldvrun('sldvdemo_flipflop');
Чтобы загрузить файл данных, в MATLAB® введите следующую команду:
load('sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat')
MATLAB загружает sldvData
структура в свою рабочую область. Эта структура содержит результаты анализа Simulink Design Verifier sldvdemo_flipflop
модель.
Введите sldvData
в командной строке MATLAB для отображения имен полей, образующих структуру:
sldvData = ModelInformation: [1x1 struct] AnalysisInformation: [1x1 struct] ModelObjects: [1x2 struct] Constraints: [] Objectives: [1x12 struct] TestCases: [1x4 struct] Version: '2.1'
sldvData
В следующих разделах описываются поля в sldvData
структура:
В sldvData
структура, ModelInformation
поле содержит информацию о модели, которую вы проанализировали. Следующая таблица описывает каждое подполе ModelInformation
поле.
Имя подполя | Описание |
---|---|
Name | Имя модели. |
Version | Номер модели. |
Author | Имя пользователя. |
TimeStamp | Последняя дата и время обновления модели. |
SubsystemPath | Полное имя пути анализируемой подсистемы (при наличии). |
ExtractedModel | Имя модели, извлеченной (если она имеется) для анализа подсистемы (если она имеется), заданное в |
ReplacementModel | Имя модели (если она есть), содержащей замены блоков. |
HarnessOwnerModel | Имя модели владельца тестовой обвязки Simulink Test™ (если таковой имеется), подлежащего анализу. |
В sldvData
структура, AnalysisInformation
В поле перечислены настройки конкретных опций анализа и сопутствующая информация. Следующая таблица описывает каждое подполе AnalysisInformation
поле.
Имя подполя | Описание |
---|---|
Status | Статус завершения анализа Simulink Design Verifier. |
AnalysisTime | Double, который задает длительность анализа в секундах. |
Options | Глубокая копия объекта опций Simulink Design Verifier, используемого во время анализа. |
InputPortInfo | Массив ячеек структур, который задает информацию о каждом блоке Inport в системе верхнего уровня. |
OutputPortInfo | Массив ячеек структур, который задает информацию о каждом блоке Outport в системе верхнего уровня. |
SampleTimes | Только для внутреннего использования. |
Parameters | Только для внутреннего использования. |
AbstractedBlocks | Только для внутреннего использования. |
Approximations | Структура, которая описывает приближения, выполненные во время анализа. Для получения дополнительной информации о приближениях см. «Аппроксимации». |
ReplacementInfo | Только для внутреннего использования. |
PreProcessingTime | Double, который задает время в секундах, чтобы создать или повторно использовать представление модели. |
ModelRepresentationInfo | Дата и время представления модели, которое используется для анализа. |
В sldvData
структура, ModelObjects
в поле перечислены элементы модели и связанные с ними цели. Следующая таблица описывает каждое подполе ModelObjects
поле.
Имя подполя | Описание |
---|---|
descr | Полный путь к объекту модели, включая объекты в Stateflow® график. |
typeDesc | Тип блока объекта модели. |
slPath | Полный путь к объекту модели Simulink. |
sfObjType | Тип объекта Stateflow. Пример: |
sfObjNum | Целое число, которое представляет уникальный идентификатор объекта Stateflow. |
sid | Только для внутреннего использования. |
designSid | Только для внутреннего использования. |
replacementSid | Только для внутреннего использования. |
objectives | Вектор целых чисел, который представляет индексы целей, связанных с объектом модели. |
В sldvData
структура, Constraints
поле содержит информацию об заданных минимальном и максимальном значениях (если таковые имеются) для входных портов в вашей модели. Следующая таблица описывает подполе Constraints
поле.
Имя подполя | Описание |
---|---|
DesignMinMax | Массив ячеек структур, которые включают имя и минимальное и максимальное значения для каждого входного порта, для которого заданы значения. |
В sldvData
структура, Objectives
В поле списки сведения о каждой цели, такие как ее тип, состояние и описание. Следующая таблица описывает каждое подполе Objectives
поле.
Имя подполя | Описание |
---|---|
type | Тип цели. |
status | Статус цели. |
descr | Описание цели. |
label | Метка цели. |
outcomeValue | Целое число, которое задает результат цели. |
coveragePointIdx | Целое число, которое представляет индекс точки покрытия, с которой связана цель. |
linkInfo | Только для внутреннего использования. |
range | Только для внутреннего использования. |
detectability | Статус обнаруживаемости цели. Это поле появляется в файле данных, когда для режима анализа задано значение |
detectionSites | Массив Simulink Identifier (SID) сайтов обнаружения для обнаруживаемой цели. Цель является обнаруживаемой в любом из мест обнаружения. Это поле появляется в файле данных, когда для режима анализа задано значение |
modelObjectIdx | Целое число, которое представляет индекс объекта модели, с которым связан объект. |
analysistime | Целое число, которое представляет время анализа для объекта. |
testCaseIdx | Целое число, которое представляет индекс теста или контрпримера, который адресован цели. |
В sldvData
структура, это поле может иметь два имени, в зависимости от типа проверки:
Если вы устанавливаете параметр Mode равным Design error detection
, а CounterExamples
поле содержит информацию о каждом тесте, который приводит к целочисленному переполнению или ошибке деления на нули.
Если вы устанавливаете параметр Mode равным Test generation
, а TestCases
поле приводит информацию о каждом тесте, таких как значения сигналов и цели тестирования, которые он достигает.
Если вы устанавливаете параметр Mode равным Property proving
, а CounterExamples
поле списков информацию о каждом контрпримере и цели доказательства, которые он фальсифицирует.
Следующая таблица описывает каждое подполе TestCases
/ CounterExamples
поле.
Имя подполя | Описание |
---|---|
timeValues | Вектор, который задает значения времени, сопоставленные с сигналами в тесте или контрпримере. |
dataValues | Массив ячеек, который задает значения данных, сопоставленных с сигналами в тесте или контрпримере. |
paramValues | Структура, которая задает значения параметров, сопоставленные с тестом или контрпримером. Его поля включают:
|
stepValues | Вектор, который задает количество временных шагов, которые состоят из сигналов в тесте или контрпримере. |
objectives | Структура, которая задает цели, которые адресует тесты или контрпример. Его поля включают:
|
dataNoEffect | Массив ячеек из логических векторов, который определяет, влияют ли значения данных сигнала на цель. Вектор использует |
expectedOutput | Массив ячеек из векторов, который задает значения выхода, которые являются результатом симуляции модели с помощью сигналов теста. Каждая камера представляет выходные значения, сопоставленные с другим блоком Outport в системе верхнего уровня. Это подполе заполняется, если вы выбираете Включить ожидаемые выходные значения. |
В sldvData
структура, Version
поле задает версию Simulink Design Verifier, которая анализировала модель.
Если вы анализируете свою модель на мертвую логику, в sldvData
структура, DeadLogic
поле содержит информацию о каждой мертвой логической цели.
Эта таблица описывает каждое подполе DeadLogic
поле.
Имя подполя | Описание |
---|---|
label | Описание мертвой логики цели. |
descr | Полный путь к объекту модели, включая объекты на диаграмме Stateflow. |
modelObjIdx | Целое число, которое представляет индекс объекта модели, который связан с целью. |
coverageType | Тип цели покрытия. |
coverageIdx | Целое число, которое представляет индекс точки покрытия, связанной с целью. |
ObjectiveIdx | Целое число, которое представляет индекс цели, которая связана с объектом модели. |
sldvruntest
функция симулирует модель с помощью тестов или контрпримеров, которые находятся в файле данных Simulink Design Verifier:
Симулируйте sldvdemo_flipflop
моделировать и генерировать тесты:
Сохраните местоположение файла данных, сгенерированного после анализа модели:
sldvDataFile = 'sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat'
Используйте sldvruntest
функция для симуляции sldvdemo_flipflop
моделируйте используя тест 2 в файле данных:
[ 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
.