Следующие разделы описывают, как анализировать sldvdemo_cruise_control_fxp_fixed
модель для целочисленного переполнения и ошибок деления на нуль.
Открытый и модель проверки для целочисленного переполнения и ошибок деления на нуль:
Откройте sldvdemo_cruise_control_fxp_fixed
модель.
На вкладке Design Verifier, в разделе Prepare, в выпадающем меню для настроек режима, нажимают Settings.
В диалоговом окне Configuration Parameters выберите Design Verifier> Design Error Detection.
На панели Design Error Detection выберите:
Integer overflow
Division by zero
В диалоговом окне Configuration Parameters, на Diagnostics> панель Data Validity, устанавливает Signals> Wrap on overflow, Signals> Saturate on overflow и Parameters> Detect overflow к error
.
Нажмите OK, чтобы сохранить эти настройки и закрыть диалоговое окно Configuration Parameters.
В разделе Mode выберите Design Error Detection.
Нажмите Detect Design Errors.
Когда анализ завершен:
Программное обеспечение подсвечивает модель с результатами анализа.
Simulink® Диалоговое окно Design Verifier™ Results открывает и отображается сводные данные анализа.
Выведенные области значений могут помочь вам изучить источник ошибки путем идентификации возможных значений сигналов, как вы видите путем взятия следующих шагов:
В верхнем уровне sldvdemo_cruise_control_fxp_fixed
модель, нажмите Fixed-Point Controller subsystem.
Окно Simulink Design Verifier Results отображает выведенную область значений возможных значений сигналов для Выходных портов, как вычислено анализом:
Значения Выходного порта 1 (throt) лежат в диапазоне от –2.6101
к 2.6096
.
Значения Выходного порта 2 (целевых) диапазона от 0
к 255.9960
.
Кликните по блокам Выходного порта sldvdemo_cruise_control_fxp_fixed
модель, чтобы видеть тот же сигнал связала значения.
Откройте Подсистему контроллера Фиксированной точки.
Два объекта в этой подсистеме обрисованы в общих чертах в красном. Подсистема ПИ-контроллера обрисована в общих чертах в зеленом.
Кликните по блоку Sum, обрисованному в общих чертах в красном, который предоставляет ошибочный вход подсистеме ПИ-контроллера.
Этот блок Sum может произвести ошибку переполнения. Анализ нашел тест, который может привести к расчету, где выход блока Sum превышает область значений [–128.. 127.9960].
Чтобы более полно изучить эту ошибку, кликните по двум блокам, которые предоставляют входные параметры блоку Sum. В окне Simulink Design Verifier Results просмотрите их выведенные области значений:
Третий Выходной порт от блока Bus имеет область значений [0.. 256].
Выходной порт от блока Switch имеет область значений [0.. 256].
Вы видите, что операция суммы для этих диапазонов сигнала может вычислить значение, которое превышает область значений [–128.. 128] для Выходного порта блока Sum.
Анализ сообщает об ошибке переполнения относительно блока Sum. Анализ не распространяет эту ошибку и принимает, что блок Sum выход в допустимой области значений для любых последующих расчетов.
Кликните по подсистеме ПИ-контроллера, обрисованной в общих чертах в зеленом. Ни один из блоков в подсистеме ПИ-контроллера не может произвести ошибки деления на нуль или переполнение. Когда программное обеспечение анализирует подсистему ПИ-контроллера, оно игнорирует ошибку переполнения от блока Sum и принимает, что входные параметры к подсистеме допустимы.
Сохраните sldvdemo_cruise_control_fxp_fixed
открытая модель. В следующем разделе вы создаете модель тестовой обвязки, чтобы видеть тест, который генерирует ошибку переполнения блока Sum.
Чтобы видеть тесты, которые демонстрируют ошибки, сгенерируйте модель тестовой обвязки из окна Simulink Design Verifier Results:
В sldvdemo_cruise_control_fxp_fixed
модель, откройте Подсистему контроллера Фиксированной точки.
Кликните по блоку Sum, обрисованному в общих чертах в красном, который предоставляет ошибочный вход подсистеме ПИ-контроллера.
Окно Simulink Design Verifier Results отображает информацию, что ошибка переполнения произошла.
В окне Simulink Design Verifier Results нажмите View test case.
Программное обеспечение создает модель тестовой обвязки, содержащую тест со значениями сигналов, которые вызывают эту ошибку переполнения.
В модели тестовой обвязки диалоговое окно Signal Builder открывается с Тестом 2 отображенных.
Нажмите кнопку симуляции Start, чтобы симулировать модель с этим тестом.
Как ожидалось симуляция перестала работать из-за ошибки переполнения в блоке Sum в Подсистеме контроллера Фиксированной точки.
Для получения дополнительной информации смотрите Модели тестовой обвязки Simulink Design Verifier.
Чтобы просмотреть отчет HTML, содержащий подробную информацию об анализе, сообщают для sldvdemo_cruise_control_fxp_fixed
модель:
В окне Simulink Design Verifier Results, чтобы вновь отобразить сводные данные результатов, нажимают Back to summary.
Нажмите Generate detailed analysis report.
Программное обеспечение генерирует отчет детального анализа, который открывает в браузере.
Для sldvdemo_cruise_control_fxp_fixed
модель, глава Design Error Detection Objectives Status отчета обеспечивает подробные результаты в двух категориях:
Objectives Proven Valid — Объекты модели, которые не произвели ошибки
Objectives Falsified with Test Cases — Объекты модели, для которых тесты сгенерировали ошибки
Объекты модели, которые имеют решение или результаты условия, получают обнаружение мертвой логики. Для получения дополнительной информации о полном списке объектов модели, которые имеют решение или цели условия, смотрите Объекты модели, Которые Получают Покрытие (Simulink Coverage).
Для получения дополнительной информации см. Отчеты Simulink Design Verifier.