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