Когда вы задаете ограничения входного диапазона на Simulink® и элементы Stateflow®, Simulink Design Verifier™ рассматривает эти ограничения во время анализа.
После того, как вы зададите вывод минимальные и максимальные значения на блоках Inport (Simulink), анализ Simulink Design Verifier использует минимальные и максимальные значения в качестве ограничений.
Следующая модель в качестве примера ограничивает сигналы в двух блоках Inport:
Блок Input1: Минимум: 1, Максимум: 5
Блок Input2: Минимум:-1, Максимум: 1
Когда вы используете Simulink Design Verifier, чтобы анализировать эту модель, анализ приводит к этим результатам:
Вывод от Input1 никогда не меньше чем 0, поэтому первым входом к блоку Logical Operator никогда не является false
. Цель, что первый вход к Логическому оператору равняется false
, невыполнима.
Блок Logical Operator не может достигнуть 100% измененное условие/Decision Coverage (MCDC) покрытие, потому что условие, где первым входом является false
, никогда не происходит.
Отчет детального анализа показывает значения, которые вы используете в качестве ограничений для Input1 и Input2.
Simulink.Signal
Используя Model Explorer, в рабочем пространстве модели, можно задать минимальные и максимальные значения (Simulink) на объектах Simulink.Signal
, сопоставленных с входными сигналами.
Следующая модель в качестве примера использует объекты Simulink.Signal
, сопоставленные с входными сигналами a
и b
, чтобы ограничить значения сигналов:
a
сигнала: минимум: 1, максимум: 5
b
сигнала: минимум:-1, максимум: 1
Когда вы анализируете эту модель, результаты эквивалентны, если вы задали минимальные и максимальные значения на входных портах.
Если вы задаете области значений на блоках Inport и на сигналах, анализ рассматривает самую маленькую область значений для значений. Например, если вы задаете область значений 4..12
на входном порте и область значений 1..8
на сигнале от входного порта, анализ считает область значений 4..8
.
Используя Model Explorer, можно задать области значений на объектах данных, которые непосредственно соединяются с входными портами корневого уровня (Simulink) для диаграммы Stateflow.
В следующей модели в качестве примера диаграмма Stateflow под названием График имеет объект данных, x
, область значений которого вы задали как 0 <x
<10. В этом графике x
должен быть больше, чем 15 инициировать переход от low
до high
.
Значение диапазонов x
от 0 до 10, поэтому условие перехода [x > 15]
никогда не является true
. Переход от low
до high
никогда не происходит. Поскольку состояние high
никогда не вводится, условие перехода, [x < 15]
никогда не тестируется, и переход от high
до low
никогда не происходит. График всегда находится в состоянии low
.
Когда вы анализируете эту модель, эти цели доказаны невыполнимыми:
Состояние high
никогда не вводится.
Условием перехода [x > 15]
является всегда false
, никогда true
.
[x < 15]
условия никогда не тестируется, таким образом, это никогда не true
или false
.
Аналитический отчет указывает на значения, которые вы используете в качестве ограничений для x
: [0, 10].
Программное обеспечение Simulink Design Verifier считает заданным, вводит минимальные и максимальные значения как ограничения только в верхнем уровне модели. Можно задать минимальные и максимальные значения на Входных портах (Simulink) на подсистемах, но когда вы анализируете модель верхнего уровня, программное обеспечение игнорирует те значения.
Когда вы выполняете анализ подсистемы, программное обеспечение рассматривает заданные минимальные и максимальные значения на входных портах подсистемы.
Например, рассмотрите следующую модель и ее подсистему.
В Подсистеме заданных минимальных и максимальных значениях для входного порта SSIn-10 и 10, соответственно. Нижние и верхние пределы для блока Saturation-15 и 15, соответственно.
Если вы щелкаете правой кнопкой по Subsystem по модели верхнего уровня и выбираете Design Verifier> Generate Tests for Subsystem, анализ рассматривает заданные минимальные и максимальные значения как ограничения на порт SSIn.
Анализ идентифицирует две невыполнимых цели:
введите> нижний предел F: вход всегда больше, чем нижний предел на блоке (-15) Saturation.
введите> = верхний предел T: вход никогда не больше, чем или равен верхнему пределу блока (15) Saturation.
Если вы анализируете модель, которая содержит Подсистему, анализ не считает значения заданными на входном порте SSIn в подсистеме. Анализ рассматривает только входные порты корневого уровня на соответствующем уровне иерархии для анализа.
data store является репозиторием, к которому можно записать данные и от которого можно считать данные, не имея необходимость соединять сигнал ввода или вывода непосредственно с хранилищем данных. Вы создаете хранилище данных при помощи Блока памяти Хранилища данных или объекта Simulink.Signal
. Можно задать минимальные и максимальные значения (Simulink) для любого хранилища данных.
Во время анализа подсистемы Simulink Design Verifier создает входной порт, чтобы подражать контексту выполнения для хранилища глобальных данных. Для получения дополнительной информации смотрите Подсистемы Извлечения для Анализа. Если хранилище данных задало минимальные и максимальные значения, те значения присвоены как минимальные и максимальные значения на новом входном порте. Анализ Simulink Design Verifier считает вход минимальными и максимальными значениями как аналитические ограничения уровня подсистемы.
В следующей модели в качестве примера хранилище данных A
имеет минимальное значение 0 и максимальное значение 10.
Атомарная подсистема читает значения из хранилища данных и проверок, чтобы видеть, является ли вход меньше, чем 0
. Выходные параметры блока Compare To Zero 1, если вход - меньше чем 0, и выходные параметры 0, если вход больше, чем или равен 0. Проверки блока Цели тестирования, чтобы видеть, равняется ли вывод когда-нибудь 1.
В модели верхнего уровня, если вы щелкаете правой кнопкой по Subsystem и выбираете Design Verifier> Generate Tests for Subsystem, анализ считает ограничения для хранилища данных A
, чтобы быть [0, 10].
Анализ не удовлетворяет цель, заданную в блоке Test Objective. Вход всегда больше, чем или равен 0, поэтому вывод от блока Compare To Zero всегда 0.
Когда вы задаете шину, можно задать минимальные и максимальные значения для элементов в шине (Simulink). Simulink Design Verifier рассматривает эти минимальные и максимальные значения при анализе подсистем и моделей, которые используют шину в качестве входного сигнала.
Рассмотрите подсистему, которая вводит шину трех полей, каждого с заданным минимумом и максимумом. Просмотреть эту подсистему, в командной строке, введите:
open_system(fullfile(docroot,'toolbox','sldv','examples', 'sldvBusMinMaxExample'))
Соедините шиной элемент | Соедините шиной минимум элемента | Соедините шиной максимум элемента |
---|---|---|
vehicleSpeed | 0 | 125 |
дроссель | 0 | 100 |
engineSpeed | 0 | 7600 |
Подсистема имеет цели тестирования, которые подтверждают, что каждый элемент не превышает константу. Сигнал vehicleSpeed
ограничивается максимальным значением ниже, чем цель тестирования.
Установите текущую папку на перезаписываемую папку. В режиме верхнего уровня щелкните правой кнопкой по Subsystem и выберите Design Verifier> Generate Tests for Subsystem. Цель Условия для тестирования vehicleSpeed > 135
не выполнима из-за максимальной спецификации на элементе vehicleSpeed
.