Тестируйте точки понижающей передачи контроллера трансмиссии

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

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

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

Тест

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

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

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

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

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

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

Оценки тестов для контроллера

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

  • Значение скорости должно быть больше или равно 0.

  • Значение передачи должно быть больше 0.

  • Значение дросселя должно быть от 0 до 100.

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

Откройте блок Test Assessment. The 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 операторы, соответствующие максимальным скоростям передач 3, 2 и 1:

  • Скорость транспортного средства не должна превышать 90 оборотов на передаче 3.

  • Скорость транспортного средства не должна превышать 50 на передаче 2.

  • Скорость транспортного средства не должна превышать 30 на передаче 1.

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

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

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