duration
Следующее особое внимание в качестве примера по логике механизма автомобиля, когда это переключает с первой передачи на четвертый механизм.
При моделировании переключений передач этой системы важно управлять колебанием, которые происходят. Параллель использования модели sf_car
утверждает debouncer логику, которая управляет, какое состояние механизма активно. Для получения дополнительной информации о том, как debouncers работают в Stateflow®, смотрите, Уменьшают Переходные Сигналы при помощи Логики Debouncing.
Можно упростить debouncer логику при помощи оператора duration
. Вы видите это упрощение в модели sf_car_using_duration
. Оператор duration
оценивает выражение условия и выводит отрезок времени, что выражением был true
. Когда тот отрезок времени пересекает известный порог времени, изменения состояния к более высокому или более низкому механизму.
Путем удаления параллельной логики состояния и использования оператора duration
, можно управлять колебаниями с более простой логикой Stateflow. Оператор duration
поддерживается только в диаграммах Stateflow в модели Simulink®.
Откройте модель sf_car
. В то время как shift_logic
подсвечен, выберите Diagram> Mask> Look Under Mask.
Средства управления shift_logic
диаграммы Stateflow, которые приспосабливают автомобиль, находятся в, учитывая скорость автомобиля и сколько дросселя применяется. 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
подсвечен, выберите Diagram> Mask> Look Under Mask.
В Gear_Logic
существует четыре исключительных состояния для каждого механизма. Локальные переменные up
и down
охраняют переходы между каждым состоянием.
В этой диаграмме Stateflow, для автомобиля, чтобы переместиться с первой передачи на второй механизм, условие up
должен быть true
. up
условия задан как верный, если отрезок времени, что скорость больше, чем или равна порогу, больше, чем отрезок времени, который задан TWAIT
. down
условия задан как верный, если отрезок времени, что скорость меньше чем или равна порогу, больше, чем отрезок времени, который задан TWAIT
. duration
оператора отслеживает отрезок времени, что скорость была выше или ниже порога. Когда условие up
соблюдают, активные изменения состояния от first
до second
.
Заменяя параллельное состояние debouncer логика с оператором duration
, можно создать более простую диаграмму Stateflow, чтобы смоделировать перемену механизма.