exponenta event banner

Модель конечных автоматов

Stateflow ® - графическая среда программирования, основанная на конечных автоматах. С помощью Stateflow можно протестировать и отладить проект, рассмотреть различные сценарии моделирования и создать код из конечного автомата.

Конечные конечные автоматы - представления динамических систем, переходящих из одного режима работы (состояния) в другой. Конечные автоматы:

  • Служить отправной точкой для сложного процесса разработки программного обеспечения.

  • Позволяет сосредоточиться на режимах работы и условиях, необходимых для перехода из одного режима в следующий.

  • Помогите проектировать модели, которые остаются четкими и краткими даже при повышении уровня сложности модели.

Конструкция систем управления в значительной степени зависит от конечных автоматов для управления сложной логикой. Области применения включают проектирование летательных аппаратов, автомобилей и систем управления робототехникой.

Пример диаграммы потока состояний

Диаграмма Stateflow объединяет состояния, переходы и данные для реализации конечного конечного автомата. Данная диаграмма Stateflow представляет упрощённую модель логики переключения передач в четырёхступенчатой системе автоматической трансмиссии автомобиля. Диаграмма представляет каждое положение передачи по состоянию, показанному в виде прямоугольника с меткой first, second, third, или fourth. Как и зубчатые колеса, которые они представляют, эти состояния являются исключительными, поэтому только одно состояние является активным одновременно.

Stateflow chart with states labeled first, second, third, and fourth. The chart transitions between the states when the speed is higher or lower than a specified amount.

Стрелка слева от диаграммы представляет переход по умолчанию и указывает первое состояние, которое должно стать активным. При выполнении диаграммы это состояние выделяется на холсте. Другие стрелки указывают на возможные переходы между состояниями. Для определения динамики конечного автомата каждый переход связывается с логическим условием или событием триггера. Например, эта диаграмма отслеживает скорость автомобиля и переключается на другую передачу, когда скорость пересекает фиксированный порог. Во время моделирования выделение на диаграмме изменяется по мере активизации различных состояний.

Chart animation showing states and transitions activating.

Эта диаграмма предлагает простую конструкцию, которая игнорирует важные факторы, такие как частота вращения двигателя и крутящий момент. Более полную и реалистичную модель можно построить, связав эту диаграмму Stateflow с другими компонентами в MATLAB ® или Simulink ®. Ниже приведены три возможных подхода.

Выполнение диаграммы как объекта MATLAB

В этом примере представлена модифицированная версия системы автоматической передачи, которая включает иерархию состояний, временную логику и входные события.

  • Иерархия: Диаграмма состоит из суперсостояния gear_logic которая окружает четырехступенчатую автоматическую коробку передач в предыдущем примере. Это сверхгосударство управляет скоростью и ускорением автомобиля. Во время выполнения, gear_logic всегда активен.

  • Временная логика: В состоянии gear_logic, действие on every(0.25,sec) определяет скорость автомобиля. Оператор every создает таймер MATLAB, который выполняет диаграмму и обновляет данные диаграммы speed каждые 0,25 секунды.

  • Входные События: входные события SpeedUp, Cruise, и SlowDown сбросить значение данных диаграммы delta. Эти данные определяют, ускоряет или поддерживает автомобиль свою скорость на каждом этапе выполнения.

Эту диаграмму можно выполнить как объект в MATLAB непосредственно в окне команд или с помощью сценария. Также можно запрограммировать приложение MATLAB, которое управляет состоянием диаграммы через графический интерфейс пользователя. Например, этот интерфейс пользователя отправляет входное событие на диаграмму при нажатии кнопки. В диаграмме функция MATLAB widgets управляет значениями датчиков и ламп на интерфейсе.

Чтобы запустить пример, на панели инструментов App Designer нажмите кнопку Выполнить. Пример продолжает выполняться до тех пор, пока не будет закрыто окно интерфейса пользователя.

Кроме того, в редакторе потока состояний на вкладке Диаграмма состояния (State Chart) щелкните Выполнить (Run). Для управления скоростью автомобиля используйте кнопки SpeedUp, SlowDown и Cruise на панели Symbols. Чтобы остановить пример, нажмите кнопку «Остановить».

Дополнительные сведения о выполнении диаграмм Stateflow в качестве объектов MATLAB см. в разделе Выполнение в MATLAB.

Моделирование диаграммы как блока симулятора с локальными событиями

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

Эта диаграмма объединяет иерархию состояний, параллелизм, данные активного состояния, локальные события и временную логику.

  • Иерархия: Состояние gear_state содержит измененную версию четырехступенчатой схемы автоматической коробки передач. Государство selection_state содержит подстанции, которые представляют режимы работы в установившемся состоянии, повышающей и понижающей передаче. Когда обстоятельства требуют переключения на более высокую или более низкую передачу, эти состояния становятся активными.

  • Параллельность: параллельные состояния gear_state и selection_state отображаются в виде прямоугольников с пунктирной границей. Эти состояния работают одновременно, даже когда подстанции внутри них включаются и выключаются.

  • Данные активного состояния: выходное значение gear отражает выбор зубчатых колес во время моделирования. Диаграмма генерирует это значение из активного подсостояния в gear_state.

  • Локальные события: вместо булевых условий эта диаграмма использует локальные события UP и DOWN для запуска переходов между зубчатыми колесами. Эти события происходят от send команды в selection_state когда скорость автомобиля выходит за пределы диапазона работы выбранной передачи. Функция Simulink calc_th определяет граничные значения для диапазона операций на основе выбранной передачи и частоты вращения двигателя.

  • Временная логика: для предотвращения быстрой смены передач, selection_state использует оператор временной логики after для задержки вещания UP и DOWN события. Государство транслирует одно из этих событий только в том случае, если требуется смена передач дольше некоторого заданного времени TWAIT.

Для выполнения моделирования модели:

  1. Дважды щелкните на блоке «Пользовательские вводы». В диалоговом окне «Редактор сигналов» выберите предопределенный профиль «тормоз-дроссель» из списка «Активный сценарий». Профиль по умолчанию: Passing Maneuver.

  2. Щелкните Выполнить (Run). В редакторе Stateflow анимация диаграммы подсвечивает активные состояния во время моделирования. Чтобы замедлить анимацию, на вкладке «Отладка» выберите Slow из выпадающего списка Скорость анимации (Animation Speed).

  3. В блоках Scope изучите результаты моделирования. В каждой области отображается график входных сигналов во время моделирования.

Моделирование диаграммы как блока симулятора с временными условиями

Этот пример предоставляет другую альтернативу для моделирования трансмиссионной системы в автомобиле. Диаграмма Stateflow отображается как блок в модели Simulink. Другие блоки в модели представляют связанные автомобильные компоненты. Диаграмма взаимодействует с другими блоками путем совместного использования данных через входные и выходные соединения. Чтобы открыть диаграмму, щелкните стрелку в левом нижнем углу Gear_logic блок.

Эта диаграмма объединяет иерархию состояний, данные активного состояния и временную логику.

  • Иерархия: Эта модель помещает четырехступенчатую схему автоматической коробки передач в супергосударство gear. Сверхгосударство контролирует скорость транспортного средства и двигателя и запускает переключение передач. Действия, перечисленные в левом верхнем углу передачи состояния, определяют рабочие пороги для выбранной передачи и значения булевых условий. up и down. Этикетка en,du указывает, что действия состояния выполняются, когда состояние сначала становится активным (en = entry) и на каждом последующем временном шаге, когда состояние активно (du = during).

  • Данные активного состояния: выходное значение gear отражает выбор зубчатых колес во время моделирования. Диаграмма генерирует это значение из активного подсостояния в gear.

  • Временная логика: Чтобы предотвратить быструю последовательность переключения передач, логические условия up и down использовать оператор временной логики duration для управления переходом между шестернями. Условия действительны, когда скорость автомобиля остается вне диапазона работы для выбранной передачи дольше, чем некоторое заданное время TWAIT (измеряется в секундах).

Для выполнения моделирования модели:

  1. Дважды щелкните на блоке «Пользовательские вводы». В диалоговом окне «Редактор сигналов» выберите предопределенный профиль «тормоз-дроссель» из списка «Активный сценарий». Профиль по умолчанию: Passing Maneuver.

  2. Щелкните Выполнить (Run). В редакторе Stateflow анимация диаграммы подсвечивает активные состояния во время моделирования. Чтобы замедлить анимацию, на вкладке «Отладка» выберите Slow из выпадающего списка Скорость анимации (Animation Speed).

  3. В блоке «Область» проверьте результаты моделирования. В области отображается график зубчатого колеса, выбранного во время моделирования.

См. также

| | |

Связанные темы