Управляйте колебаниями при помощи оператора 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, чтобы смоделировать перемену механизма.

Смотрите также

Похожие темы