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

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

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

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

Тест

Контроллер должен включить понижающую передачу между каждым из его передаточных отношений в ответ на сползавшее приложение дросселя. Тестовые воздействия содержат скорость транспортного средства, постоянную при сползании дросселя. Блок 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 оператор выходные параметры.