Протестируйте точки включения понижающей передачи контроллера передачи

Этот пример демонстрирует, как протестировать передачу, переключают логический контроллер, использующий тестовые последовательности, и тестируют оценки.

Модель и контроллер

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

Тест

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

Откройте тестовую обвязку

Кликните по значку на подсистеме shift_controller и откройте тестовую обвязку controller_harness. shift_controller соединяется с блоком Test Sequence и блоком Test Assessment.

Тестовая последовательность

Дважды кликните блок Test Sequence, чтобы открыть тестовый редактор последовательности.

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

Протестируйте оценки на контроллер

Этот пример тестирует следующие условия:

  • Скорость никогда не должна быть отрицательной.

  • Механизм должен всегда быть положительным.

  • Дроссель должен быть между 0% и 100%.

  • Контроллер сдвига должен сохранить скорость автомобиля ниже заданных максимумов в каждом из первых трех механизмов.

Откройте блок Test Assessment. Операторы assert соответствуют первым трем условиям. Если контроллер нарушает одно из утверждений, сбоев симуляции.

assert(speed >= 0, 'speed must be >= 0');
assert(throttle >= 0, 'throttle must be >= 0 and <= 100');
assert(throttle <= 100, 'throttle must be >= 0 and <= 100');
assert(gear > 0,'gear must be > 0');

Последнее условие проверяется тремя отдельными операторами verify, соответствующими максимальной скорости в механизмах 1, 2, и 3:

  • Контроллер не должен позволять скорости автомобиля превысить 90 в механизме 3.

  • Контроллер не должен позволять скорости автомобиля превысить 50 в механизме 2.

  • Контроллер не должен позволять скорости автомобиля превысить 30 в механизме 1.

Операторы verify содержатся в Когда последовательность разложения. Активное, Когда шаг разложения определяется на условиях сигнала, заданных в столбце Шага с каждым условием, которому предшествует оператор when. Последний шаг Else покрывает любое неопределенное условие и не использует объявление when. Для получения дополнительной информации о Когда разложение, см. Тестовый Редактор Последовательности.

OverSpeed3 when gear==3
verify(speed <= 90,'Engine overspeed in gear 3')
OverSpeed2 when gear==2
verify(speed <= 50,'Engine overspeed in gear 2')
OverSpeed1 when gear==1
verify(speed <= 30,'Engine overspeed in gear 1')

Тестирование контроллера

Симуляция тестовой обвязки демонстрирует прогрессивный пандус дросселя на каждом тестовом шаге и соответствующих включениях понижающей передачи. Контроллер передает все оценки в блоке Test Assessment.

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

Нажмите кнопку Simulation Data Inspector в панели инструментов тестовой обвязки, чтобы просмотреть результаты. Можно сравнить сигнал speed с оператором verify выходные параметры.