Обнаружение ошибок проектирования в моделях контроллеров

Чтобы обнаружить скрытые ошибки проектирования в вашей модели в начале процесса верификации, используйте анализ поиска ошибок проектирования. Это руководство показов, как выполнить поиск ошибок проектирования анализ, просмотреть результаты анализа, а затем исправить идентифицированные ошибки проектирования.

Допустим, контроллер, который имеет три входа датчика: SensorA, SensorB, и SensorC. Работа алгоритма регулятора осуществляется согласно уравнению:

Алгоритм моделируется как:

Для выполнения поиска ошибок проектирования анализа:

Шаг 1: Подготовьте модель для Поиска ошибок проектирования

  1. Откройте модель sldvexControllerIntegerOverflow.

  2. На вкладке Design Verifier, в разделе Mode, выберите Design Error Detection.

  3. Нажмите Error Detection Settings. В диалоговом окне Параметры конфигурации на панели Design Verifier > Design Error Detection выберите проверки, которые необходимо выполнить.

Шаг 2: Выполните Поиск ошибок проектирования анализ

Чтобы выполнить поиск ошибок проектирования анализ, на вкладке Design Verifier нажмите Detect Design Errors. Программа анализирует модель на ошибки проектирования и отображает результаты в окне Сводка результатов (Results Summary). Результаты показывают, что три из шести целей были сфальсифицированы.

Шаг 3: Обзор результатов анализа

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

Подсветите результаты анализа на модели

На вкладке Design Verifier, в разделе Review Results, нажмите Highlight in Model.

Элементы модели, выделенные красным цветом, являются целями, которые привели к ошибкам. Можно реплицировать ошибку, симулируя тест.

  1. Выберите Sum блок. В окне Результатов Inspector отображаются целочисленное переполнение цели блока Sum.

  2. Чтобы отлажить целочисленное переполнение ошибку, нажмите View test case. Модель тестовой обвязки и Signal Builder блок открываются.

    Когда входное значение SensorA является 96 и SensorB является 160Выходные выходы блока Sum переполнены. Тип данных аккумулятора блока Sum устанавливается на неправильное целое значение uint8это приводит к ошибкам переполнения и делению на нули ошибок на нисходящем блоке Divide.

Анализ отчета

Чтобы просмотреть HTML, в Review Results, нажмите HTML Report. В разделе Поиск Ошибок Проектирования Targets перечислены цели каждых элементов модели и их описание.

Шаг 4: Исправьте ошибки проектирования

В модели руководства анализ поиска ошибок проектирования обнаружил целочисленное переполнение и деление на нули ошибок в модели. Ошибки были вызваны несоответствием целочисленного типа данных.

Чтобы исправить ошибки, измените тип данных Accumulator на uint16 для обработки области значений возможных значений сигналов. Выберите блок Sum и установите Accumulator data type значение uint16. Когда вы перезапускаете анализ поиска ошибок проектирования, окно Сводных данных результатов сообщает, что 6/6 цели действительны. Когда вы симулируете тест для Sum, замечайте, что тест устраняет ошибку.

См. также

|

Похожие темы