Файлы данных Simulink Design Verifier

Генерация файла данных

Simulink® Design Verifier™ генерирует файл данных, когда он завершает свой анализ. Файлом данных является MAT-файл, который содержит структуру под названием sldvData. Эта структура хранит все данные, которые программное обеспечение собирает и производит во время анализа. Несмотря на то, что программное обеспечение отображает те же данные графически в модели тестовой обвязки и отчете, можно использовать файл данных, чтобы провести собственный анализ или сгенерировать пользовательский отчет.

По умолчанию параметр Save test data to file включен.

Содержимое структуры sldvData

Когда Simulink Design Verifier завершает свой анализ, он производит MAT-файл, который содержит структуру под названием sldvData. Исследовать содержимое структуры sldvData:

  1. Сгенерируйте тесты для модели sldvdemo_flipflop:

    sldvdemo_flipflop;
    sldvrun('sldvdemo_flipflop');
  2. Чтобы загрузить файл данных, в подсказке MATLAB®, вводят следующую команду:

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

    Программное обеспечение MATLAB загружает структуру sldvData в свою рабочую область. Эта структура содержит результаты анализа Simulink Design Verifier модели sldvdemo_flipflop.

  3. Введите sldvData в командной строке MATLAB, чтобы отобразить имена полей, которые составляют структуру:

    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, настройках cписков полей AnalysisInformation конкретных аналитических опций и сопутствующей информации. Следующая таблица описывает каждое подполе поля AnalysisInformation.

Имя подполяОписание
Status

Состояние завершения анализа Simulink Design Verifier.

AnalysisTime

Дважды это задает продолжительность анализа в секундах.

Options

Глубокая копия объекта опций Simulink Design Verifier используется во время анализа.

InputPortInfo

Массив ячеек структур, который указывает информацию о каждом блоке Inport в системе верхнего уровня.

OutputPortInfo

Массив ячеек структур, который указывает информацию о каждом блоке Outport в системе верхнего уровня.

SampleTimes

Для внутреннего пользования только.

Parameters

Для внутреннего пользования только.

AbstractedBlocks

Для внутреннего пользования только.

Approximations

Структура, которая описывает приближения, выполняемые во время анализа. Для получения дополнительной информации о приближениях, смотрите Приближения.

ReplacementInfo

Для внутреннего пользования только.

PreProcessingTime

Дважды это задает время в секундах, чтобы создать или снова использовать представление модели.

ModelRepresentationInfo

Дата и время представления модели, которое используется для анализа.

Поле ModelObjects

В структуре sldvData, cписки полей ModelObjects образцовые элементы и их связанные цели. Следующая таблица описывает каждое подполе поля ModelObjects.

Имя подполяОписание
descr

Полный путь к объекту модели, включая объекты в графике Stateflow®.

typeDesc

Тип блока объекта модели.

slPath

Полный путь к объекту модели Simulink.

sfObjType

Тип объекта Stateflow. Пример: S для состояния и T для перехода.

sfObjNum

Целое число, которое представляет уникальный идентификатор объекта Stateflow.

sid

Для внутреннего пользования только.

designSid

Для внутреннего пользования только.

replacementSid

Для внутреннего пользования только.

objectives

Вектор целых чисел, который представляет индексы целей, сопоставленных с объектом модели.

Ограничительное поле

В структуре sldvData, информации о cписках полей Constraints о заданных минимальных и максимальных значениях (если таковые имеются) на входных портах в вашей модели. Следующая таблица описывает подполе поля Constraints.

Имя подполяОписание
DesignMinMax

Массив ячеек структур, которые включают имя и минимальные и максимальные значения для каждого входного порта, для которого заданы значения.

Поле целей

В структуре sldvData, информации о cписках полей Objectives о каждой цели, такой как ее тип, состояние и описание. Следующая таблица описывает каждое подполе поля Objectives.

Имя подполяОписание
type

Тип цели.

status

Состояние цели.

descr

Описание цели.

label

Метка цели.

outcomeValue

Целое число, которое задает результат цели.

coveragePointIdx

Целое число, которое представляет индекс точки покрытия, с которой сопоставлена цель.

linkInfo

Для внутреннего пользования только.

range

Для внутреннего пользования только.

detectability

Состояние обнаружительной способности цели.

Это поле появляется в файле данных, когда аналитический Режим установлен в Test Generation, и цели Покрытия модели установлен в Enhanced MCDC.

detectionSites

Массив Идентификатора Simulink (SID) сайтов обнаружения для обнаруживаемой цели. Цель обнаруживаема на любом из сайтов обнаружения.

Это поле появляется в файле данных, когда аналитический Режим установлен в Test Generation, и цели Покрытия модели установлен в Enhanced MCDC.

modelObjectIdx

Целое число, которое представляет индекс объекта модели, с которым сопоставлена цель.

analysistime

Целое число, которое представляет аналитическое время для объекта.

testCaseIdx

Целое число, которое представляет индекс теста или контрпримера, который обращается к цели.

Поле TestCases / Поле CounterExamples

В структуре sldvData это поле может иметь два имени, в зависимости от типа проверки:

  • Если вы устанавливаете параметр Режима на Design error detection, информацию о cписках полей CounterExamples о каждом тесте, который приводит к ошибке деления на нуль или целочисленному переполнению.

  • Если вы устанавливаете параметр Режима на Test generation, информацию о cписках полей TestCases о каждом тесте, таком как его значения сигналов и цели тестирования, это достигает.

  • Если вы устанавливаете параметр Режима на Property proving, информацию о cписках полей CounterExamples о каждом контрпримере и цели доказательства, это фальсифицирует.

Следующая таблица описывает каждое подполе поля TestCases / CounterExamples.

Имя подполяОписание
timeValues

Вектор, который задает временные стоимости, сопоставленные с сигналами в тесте или контрпримере.

dataValues

Массив ячеек, который задает значения данных, сопоставленные с сигналами в тесте или контрпримере.

paramValues

Структура, которая задает значения параметров, сопоставленные с тестом или контрпримером. Его поля включают:

имя Имя параметра.

значение Номер, который задает значение параметра.

noEffect — Логическое значение, которое задает, влияет ли значение параметра на цель.

stepValues

Вектор, который задает количество временных шагов, которые включают сигналы в тесте или контрпримере.

objectives

Структура, которая задает цели, к которым обращаются тест или контрпример. Его поля включают:

objectiveIdx — Целое число, которое представляет индекс цели, которой тест достигает или контрпример, фальсифицирует.

atTime — Временная стоимость, в которой или тест достигает цели или контрпримера, фальсифицирует цель.

atStep — Временной шаг, на котором или тест достигает цели или контрпримера, фальсифицирует цель.

dataNoEffect

Массив ячеек логических векторов, который задает, влияют ли значения данных сигнала на цель. Вектор использует 1, чтобы указать, что значение данных сигнала не влияет на цель; в противном случае это использует 0.

expectedOutput

Массив ячеек векторов, который задает выходные значения, которые следуют из симуляции модели с помощью сигналов теста. Каждая ячейка представляет выходные значения, сопоставленные с различным блоком Outport в системе верхнего уровня. Это подполе заполняется, если вы выбираете ожидаемые выходные значения Include.

Поле версии

В структуре sldvData поле Version задает версию Simulink Design Verifier, который анализировал модель.

Поле DeadLogic

Если вы анализируете свою модель для мертвой логики, в структуре sldvData, информации о cписках полей 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, чтобы моделировать модель sldvdemo_flipflop с помощью теста 2 в файле данных:

    [ 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.