В этом примере показано, как тестировать логический контроллер сдвига передачи с использованием тестовых последовательностей и тестовых оценок.
В этом примере используется TransmissionDownshiftTestSequence модель, представляющая собой упрощенную систему привода, выполненную в конфигурации контроллер-установка. Задача состоит в том, чтобы проверить поведение контроллера передачи в режиме пониженной передачи.
Контроллер должен переключаться на более низкую передачу между передаточными числами в ответ на увеличение использования дроссельной заслонки. На тестовых входах скорость транспортного средства поддерживается постоянной, а дроссель - нарастающим. Блок оценки тестирования включает оценку производительности контроллера на основе требований.

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

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

В этом примере проверяются следующие условия:
Значение скорости должно быть больше или равно 0.
Передаточное число должно быть больше 0.
Значение дросселя должно быть в диапазоне от 0 до 100.
Регулятор переключения должен поддерживать скорость транспортного средства ниже указанных максимумов на каждой из первых трех передач.
Откройте блок оценки тестирования. 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 оператор. Последний шаг 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')

Имитация тестового жгута демонстрирует поступательный клин дроссельной заслонки на каждом этапе испытания и соответствующие понижающие передачи. Контроллер передает все оценки в блоке оценки тестирования.
Для просмотра результатов нажмите кнопку «Инспектор данных моделирования» на панели инструментов тестового кабеля. Вы можете сравнить speed сигнал на verify вывод операторов.
