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