Чтобы обнаружить скрытые ошибки проектирования в вашей модели рано в процессе проверки, используйте анализ поиска ошибок проектирования. Этот пример показывает, как выполнить анализ поиска ошибок проектирования, рассмотреть результаты анализа, и затем зафиксировать идентифицированные ошибки проектирования.
Рассмотрите контроллер, который имеет три входных параметров датчика: SensorA
, SensorB
, и SensorC
. Алгоритм регулятора действует согласно уравнению:
Алгоритм моделируется как:
Выполнять анализ поиска ошибок проектирования:
Откройте модель sldvexControllerIntegerOverflow.
На вкладке Design Verifier, в разделе Mode, выбирают Design Error Detection.
Нажмите Error Detection Settings. В диалоговом окне Configuration Parameters, на Design Verifier> панель Design Error Detection, выбирают проверки, которые вы хотите выполнить.
Чтобы выполнить анализ поиска ошибок проектирования, на вкладке Design Verifier, нажимают Detect Design Errors. Программное обеспечение анализирует модель для ошибок проектирования и отображает результаты в окне Results Summary. Результаты показывают, что три из шести целей были сфальсифицированы.
Можно рассмотреть результаты анализа путем выделения результатов на модели и рассмотрения аналитического отчета.
На вкладке Design Verifier, в разделе Review Results, нажимают Highlight in Model.
Элементы модели, подсвеченные в красном, являются целями, которые привели к ошибкам. Можно реплицировать ошибку путем симуляции теста.
Выберите блок Sum. Окно Results Inspector отображает цели целочисленного переполнения блока Sum.
Чтобы отладить ошибку целочисленного переполнения, нажмите View test case. Модель тестовой обвязки и открытый блок Signal Builder.
Когда входное значение SensorA
96
и SensorB
160
, блок Sum вывел переполнение. Тип данных аккумулятора блока Sum установлен в неправильное целочисленное значение uint8
, это приводит к ошибкам переполнения и ошибкам деления на нуль на нисходящем блоке Divide.
Чтобы просмотреть отчет HTML, в Review Results, нажимают HTML Report. Раздел Design Error Detection Objectives перечисляет цели каждый элементы модели и их описание.
В учебной модели анализ поиска ошибок проектирования нашел целочисленное переполнение и ошибки деления на нуль в модели. Ошибки были вызваны из-за несоответствия в целочисленном типе данных.
Чтобы зафиксировать ошибки, измените тип данных Аккумулятора в uint16
обрабатывать область значений возможных значений сигналов. Выберите блок Sum и установите Accumulator data type на uint16. Когда вы повторно выполняете анализ поиска ошибок проектирования, окно Results Summary сообщает о том 6/6
цели допустимы. Когда вы симулируете тест для Sum, замечаете, что тест разрешает ошибку.
Панель верификатора проекта: поиск ошибок проектирования | Главы состояния целей