exponenta event banner

Обнаружение ошибок конструкции в модели контроллера

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

Рассмотрим контроллер с тремя входами датчика: SensorA, SensorB, и SensorC. Алгоритм контроллера работает в соответствии с уравнением:

Алгоритм моделируется следующим образом:

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

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

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

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

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

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

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

Шаг 3: Просмотр результатов анализа

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

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

На вкладке Проверка конструкции (Design Verifier) в разделе Результаты проверки (Review Results) щелкните Выделить в модели (Highlight in Model).

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

  1. Выберите блок «Сумма». В окне Инспектор результатов (Results Inspector) отображаются целочисленные цели переполнения блока Сумма (Sum).

  2. Чтобы отладить ошибку переполнения целых чисел, щелкните Просмотр тестового случая. Модель электрического жгута и блок Построитель сигналов (Signal Builder) открываются.

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

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

Чтобы просмотреть HTML-отчет, в окне «Просмотр результатов» щелкните HTML-отчет. В разделе «Цели обнаружения ошибок конструкции» перечислены цели каждого элемента модели и их описание.

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

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

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

См. также

|

Связанные темы