exponenta event banner

Отладка сбоев теста с помощью среза модели

В этом примере показано, как отладить базовую линию Simulink Test и ошибки проверки с помощью модельного среза. Предварительно определенный базовый тестовый случай предоставляется для использования с sltestDemo_fuelsys модель.

Базовая линия фиксируется из более раннего состояния модели. После захвата опорной структуры в модель вводится конструктивная ошибка, которая приводит к провалу теста базовой линии. Затем для отладки сбоя и локализации конструкторской ошибки используется модуль «Модельный срез».

Шаг 1: Настройка артефактов

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

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

open_system('sltestDemo_fuelsys');

2. Щелкните APPS > Проверка модели, Проверка и тест > Simulink Test, чтобы открыть панель инструментов Simulink Test.

3. Щелкните Тесты > Диспетчер испытаний Simulink, чтобы открыть Диспетчер тестов.

4. Чтобы открыть существующий тестовый файл, на панели инструментов диспетчера тестов нажмите кнопку «Открыть» и выберите slTestBaselineFailureEx.

5. После загрузки тестового файла выберите New Test Case1 на панели Test Browser.

6. Щелкните Выполнить (Run).

7. Новые результаты теста появятся в верхней части панели «Результаты и артефакты». Щелкните результат правой кнопкой мыши и выберите Развернуть все под (Expand All Under), чтобы просмотреть результаты критериев опорной структуры и проверочные инструкции.

Обратите внимание, что отказали четыре сигнала: air_fuel_ratio, ego, fuel, и FeuelModeAssertion. В этом примере используется ошибка fuel сигнал для иллюстрации рабочего процесса отладки.

Шаг 2: Ввод сеанса отладки

В этом разделе описывается, как настроить срез модели для отладки сбойного fuel сигнал.

1. Чтобы сравнить fuel сигналы между моделью и базовой линией, разверните поле Результат критериев базовой линии (Baseline Criteria Result) и выберите переключатель рядом с кнопкой fuel сигнал. Аналогично, чтобы отладить сигнал проверки, разверните операторы проверки и выберите сигнал неудавшейся проверки. Другой способ выбора отказавшего сигнала - из выпадающего списка Signal to Debug на панели инструментов.

В области печати сравните выходные данные модели с данными базовой линии.

2. Щелкните Отладка (Debug) в разделе ИНСТРУМЕНТЫ (TOOLS) панели инструментов. Обратите внимание, что параметр «Отладка» включается только при выводе на печать несостоявшейся базовой линии или сигнала проверки.

Вкладка ОТЛАДКА заменяет все существующие вкладки панели инструментов. Несколько параметров диспетчера тестов скрыты или отключены для создания среды отладки.

3. Чтобы настроить срезатель модели, щелкните Отладка с помощью срезателя (Debug Using Slicer).

Debug Using Slicer подготавливает сеанс отладки:

  1. Повторный запуск тестового случая и создание новых результатов отладки. Это гарантирует, что сбой все еще существует в текущем состоянии тестовой модели.

  2. Запуск среза модели на тестовой модели.

  3. Автоматическая печать выбранного сигнала сбоя в результатах отладки и установка сигнала сбоя в качестве начальной точки времени.

  4. Приостановка моделирования во время запуска модели для продолжения отладки.

Шаг 3: Отладка с использованием модели Slicer

В этом разделе объясняется, как сосредоточиться на причине сбоя с помощью отладочных функций модельного среза.

1. Используйте кнопки Шаг назад/Шаг вперед для перемещения на один шаг назад или вперед во время моделирования. Левый курсор данных перемещается к текущему времени моделирования. Наблюдайте за изменениями в зависимостях данных, указывая измененную подсветку модели и метки значений портов для активных сигналов в каждой временной метке.

Можно также использовать команду Выполнить/Продолжить/Остановить (Run/Continue/Stop) для запуска нового моделирования или завершения или остановки текущего моделирования.

2. В Диспетчере испытаний нажмите кнопку Продолжить до отказа (Continue to Failure), чтобы продолжить моделирование модели до начала следующей точки отказа. Курсоры данных показывают границы области отказа.

Наблюдайте за этими изменениями в точке отказа:

  • Моделирование приостанавливается при T = 4,81.

  • Курсоры данных обновляются соответствующим образом.

  • Разница между базовой линией и Sim-выходом составляет 0,007.

Из выделения модели Slicer можно найти причину этого различия и увидеть, что sltestDemo_fuelsys/To Plant/fuel значение зависит от sltestDemo_fuelsys/To Plant.

3. Открытый sltestDemo_fuelsys/To Plant. Обратите внимание на отсутствие изменений в распространяемом значении.

4. Открытый sltestDemo_fuelsys/fuel_rate_control.

Обратите внимание, что fb_correction значение равно 0. Разница между базовой линией и Sim Output составляет 0,007, что является небольшим значением. Возможно, что fb_correction вычисляется неправильно.

5. Открытый sltestDemo_fuelsys/fuel_rate_control/airflow_calc, который вычисляет fb_correctionи наблюдать за зависимостями данных.

Обратите внимание, что константа 0 проходит через sltestDemo_fuelsys/fuel_rate_control/airflow_calc/hold integrator блок переключения. Определение причины, по которой порт управления вычисляется как false для блока переключения зависимости управления должны быть выделены в модели.

6. Включите режим «Зависимости управления отображением» в разделе «Окно времени моделирования» в диалоговом окне «Срез модели», закрепленном на модели.

Обратите внимание, что:

  • sltestDemo_fuelsys/fuel_rate_control/airflow_calc/fuel_mode значение LOW, но fb_correction по-прежнему равен нулю.

  • fuel_mode сравнивается с sltestDemo_fuelsys/fuel_rate_control/airflow_calc/Enumerated Constant, что приводит к значению false.

Значение перечисляемой константы равно sld_FuelModes.RICH. Это должна быть проверка по fuel_mode стоимость sld_FuelModes.LOW.

Шаг 4: Включение исправления

1. Закройте сеанс отладки, нажав SESSION > Close Debug.

2. Откройте модель и обновите sltestDemo_fuelsys/fuel_rate_control/airflow_calc/Enumerated Constant значение для sld_FuelModes.LOW.

3. Сохраните модель.

4. Запустите тестовый случай и просмотрите результаты.

Теперь обратите внимание, что результаты теста показывают, что тест прошел.

Возможности и ограничения

  • Если Диспетчер тестов (Test Manager) использует режим моделирования, отличный от обычного, например SIL или PIL, то для отладки нельзя использовать срезатель модели.

  • Если в конфигурации модели задан режим моделирования, то срезатель модели изменяет режим модели и всех ссылочных моделей для выполнения в обычном режиме, а затем можно использовать срез модели для отладки.

  • Для моделей, не поддерживающих режим быстрого перезапуска, раздел SIMULATION панели инструментов отключен. Используйте раздел ANALYSIS для отладки сбоя.

  • Раздел АНАЛИЗ (ANALYSIS) доступен только в том случае, если модель не моделируется, например при нажатии кнопки Продолжить (Continue) или Остановить (Stop) в разделе МОДЕЛИРОВАНИЕ (SIMULATION). Он выделяет временную область вместо временного шага. Чтобы определить временную область, переместите курсоры данных вручную или используйте Следующий сбой (Next Failure) или Предыдущий сбой (Previous Failure). Затем можно использовать команду Обновить выделение среза (Update Slicer Highlight), чтобы обновить подсветку модели для определенного временного интервала.

  • Результаты должны быть созданы на основе текущей версии.

  • Отладка тестов эквивалентности с использованием среза модели не поддерживается.