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