duration
ОператорСледующее особое внимание в качестве примера по логике механизма автомобиля, когда это переключает с первой передачи на четвертый механизм.
При моделировании переключений передач этой системы важно управлять колебанием, которые происходят. Модель sf_car
параллель использования утверждает debouncer логику, которая управляет, какое состояние механизма активно. Для получения дополнительной информации о том, как debouncers работают в Stateflow®, смотрите, Уменьшают Переходные Сигналы при помощи Логики Debouncing.
Можно упростить debouncer логику при помощи duration
оператор. Вы видите это упрощение в модели sf_car_using_duration
. duration
оператор оценивает выражение условия и выводит отрезок времени, что выражением был true
. Когда тот отрезок времени пересекает известный порог времени, изменения состояния к более высокому или более низкому механизму.
Путем удаления параллельной логики состояния и использования duration
оператор, можно управлять колебаниями с более простой логикой Stateflow. duration
оператор поддерживается только в диаграммах Stateflow в модели Simulink®.
Откройте модель sf_car
. В то время как shift_logic
подсвечен, во вкладке State Chart, нажмите Look Under Mask.
Диаграмма Stateflow shift_logic
средства управления, которые приспосабливают автомобиль, находятся в, учитывая скорость автомобиля и сколько дросселя применяется. Within shift_logic
существует два параллельных состояния: gear_state
and selection_state
. gear_state
содержит четыре исключительных состояния для каждого механизма. selection_state
определяет, включает ли автомобиль понижающую передачу, upshifting, или остается в его текущем механизме.
В этой диаграмме Stateflow, для автомобиля, чтобы переместиться с первой передачи на второй механизм, событие UP
должен быть отправлен от selection_state
к gear_state
. Событие отправляется, когда скорость пересекает порог и остается выше, чем порог в течение отрезка времени, определенного TWAIT
. Когда событие UP
отправляется, gear_state
переходы от first
к second
.
duration
ОператорОткройте модель sf_car_using_duration
. В то время как Gear_Logic
подсвечен, во вкладке State Chart, нажмите Look Under Mask.
В Gear_Logic
существует четыре исключительных состояния для каждого механизма. Локальные переменные up
и down
охраняйте переходы между каждым состоянием.
В этой диаграмме Stateflow, для автомобиля, чтобы переместиться с первой передачи на второй механизм, условие up
должен быть true
. Условие up
задан как верный, если отрезок времени, которого скорость больше или равна порогу, больше отрезка времени, который задан TWAIT
. Условие down
задан как верный, если отрезок времени, что скорость меньше чем или равна порогу, больше отрезка времени, который задан TWAIT
. Оператор duration
отслеживает отрезок времени, что скорость была выше или ниже порога. Когда up
условие соблюдают, активные изменения состояния от first
к second
.
Заменяя параллельное состояние debouncer логика с duration
оператор, можно создать более простую диаграмму Stateflow, чтобы смоделировать перемену механизма.