Simulink Design Verifier

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

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

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

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

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

AnalysisTime

Double, который задает длительность анализа в секундах.

Options

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

InputPortInfo

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

OutputPortInfo

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

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

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

Поле ограничений

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

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

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

Поле «Цели»

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

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

Тип цели.

status

Статус цели.

descr

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

label

Метка цели.

outcomeValue

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

coveragePointIdx

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

linkInfo

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

range

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

detectability

Статус обнаруживаемости цели.

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

detectionSites

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

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

modelObjectIdx

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

analysistime

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

testCaseIdx

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

Поле TestCases/Поле CounterExamples

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

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

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

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

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

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

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

dataValues

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

paramValues

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

name - имя параметра.

value - Число, которое задает значение параметра.

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

stepValues

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

objectives

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

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

atTime - Значение времени, в котором или контрольный пример достигает цели или контрпример фальсифицирует цель.

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

dataNoEffect

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

expectedOutput

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

Поле версии

В 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 функция для симуляции 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.