Отладка непройденных тестов с использованием SLICER модели

В этом примере показано, как отлажить базовый уровень Simulink Test и отказы верификации с помощью Model Slicer. Предопределенный тест предусмотрен для использования со sltestDemo_fuelsys модель.

Базовая линия получена из более раннего состояния модели. После захвата базовой линии в модель вводится ошибка проектирования, которая приводит к непройдению теста базовой линии. Затем Model Slicer используется, чтобы отлажить отказ и локализовать ошибку проектирования.

Шаг 1: Настройка программных продуктов

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

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

open_system('sltestDemo_fuelsys');

2. Щелкните ПРИЛОЖЕНИЯ > Верификация модели, валидация и Test > Simulink Test, чтобы открыть панель инструментов Simulink Test.

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

4. Чтобы открыть существующий тестовый файл, на панели инструментов Test Manager нажмите Open и выберите slTestBaselineFailureEx.

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

6. Нажмите Запуск.

7. Новые результаты тестирования появляются в верхней части панели Результаты и Программные продукты. Щелкните правой кнопкой мыши результат и выберите Развернуть все ниже, чтобы отобразить результат критериев опорной структуры и операторы проверки.

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

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

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

1. Сравнение fuel сигналы между моделью и базовой линией, разверните раздел Baseline Criteria Result и выберите переключатель рядом со fuel сигнал. Аналогично, чтобы отлажить сигнал верификации, разверните раздел Verify Options и выберите неудачный сигнал верификации. Другой способ выбрать неисправный сигнал - это выпадающий список Signal to Debug на панели инструментов.

В области графика сравните выход модели с данными базовой линии.

2. Щелкните Отладкой в разделе СЕРВИС (TOOLS) панели инструментов. Обратите внимание, что опция Debug активируется только при построении неисправной базовой линии или сигнала проверки.

Вкладка DEBUG заменяет все существующие вкладки панели инструментов. Несколько опции диспетчера тестов скрыты или отключены, чтобы создать окружение отладки.

3. Чтобы настроить Slicer модели, нажмите Debug Using Slicer.

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

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

  2. Запуск модуля Model Slicer на экспериментальную модель.

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

  4. Пауза симуляции во время начала модели, чтобы продолжить отладку.

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

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

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

Можно также использовать Run/Continue/Stop, чтобы запустить новую симуляцию, или завершить или остановить текущую симуляцию.

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

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

  • Симуляция останавливается при T = 4,81.

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

  • Различие между базовым и Выход составляет 0,007.

Из подсветки Model 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 равно 0,007, что является небольшим значением. Это может быть так fb_correction не вычисляется правильно.

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

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

6. Включите Отображение Control Dependencies из раздела Времени симуляции Window в диалоговом окне Model Slicer Dialog, закрепленном на модели.

Заметьте, что:

  • 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 > Закрыть отладку.

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

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

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

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

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

  • Если вы используете Test Manager, чтобы задать режим симуляции один, кроме режима normal mode, такого как SIL или PIL, вы не можете использовать Slicer модели для отладки.

  • Если режим симуляции установлен в строении модели, Model Slicer изменяет режим модели, и все модели-ссылки запускаются в режиме normal mode, и затем можно использовать Slicer модели для отладки.

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

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

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

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