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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Выберите блок Sum. Окно Results Inspector отображает цели целочисленного переполнения блока Sum.

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

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

Рассмотрите аналитический отчет

Чтобы просмотреть отчет HTML, в Review Results, нажимают HTML Report. Раздел Design Error Detection Objectives перечисляет цели каждый элементы модели и их описание.

Шаг 4: зафиксируйте ошибки проектирования

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

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

Смотрите также

|

Похожие темы