Управление колебаниями при помощи duration Оператор

Следующий пример фокусируется на логике передачи автомобиля, когда он переключается с первой на четвертую передачу.

При моделировании переключений передач этой системы важно управлять происходящими колебаниями. Модель sf_car использует параллельную логику отладчика состояний, которая управляет тем, какое состояние передачи активно. Для получения дополнительной информации о том, как работают отладчики в Stateflow®, см. «Уменьшение переходных сигналов при помощи логики отладки».

Можно упростить логику debouncer при помощи duration оператор. Вы можете увидеть это упрощение в модели sf_car_using_duration. The duration оператор оценивает выражение условия и выводит время, в течение которого выражение было true. Когда этот промежуток времени пересекает известный временной порог, состояние переходит к более высокой или нижней передаче.

Путем удаления логики параллельного состояния и использования duration оператор, можно управлять колебаниями с помощью более простой логики Stateflow. The duration оператор поддерживается только в диаграммах Stateflow в Simulink® модель.

Управляйте колебаниями с параллельной логикой состояний

Откройте модель sf_car. Пока shift_logic подсвечивается, на вкладке State Chart, нажмите Look Under Mask.

Диаграмма Stateflow shift_logic управляет передачей автомобиля, учитывая скорость автомобиля и то, сколько дросселя применяется. Внутри shift_logic Существует два параллельных состояния: gear_state и selection_state. gear_state содержит четыре эксклюзивных состояния для каждой передачи. selection_state определяет, является ли автомобиль понижающим, повышающим или остающимся на своей текущей передаче.

На этой диаграмме 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 определяется как true, если интервал времени, в течение которого скорость больше или равна порогу, больше, чем интервал времени, заданный как TWAIT. Условие down определяется как true, если интервал времени, в течение которого скорость меньше или равна порогу, больше, чем интервал времени, заданный как TWAIT. Оператор duration отслеживает период времени, в течение которого скорость была выше или ниже порога. Когда up условие выполнено, активное состояние переходит от first на second.

Путем замены логики параллельного состояния debouncer на duration оператор, можно создать более простую диаграмму Stateflow, чтобы смоделировать перемену передач.

См. также

Похожие темы