Конечные автоматы модели

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

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

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

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

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

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

Пример диаграммы Stateflow

В диаграмме Stateflow вы комбинируете состояния, переходы и данные, чтобы реализовать конечный автомат. Эта диаграмма Stateflow представляет упрощенную модель логики, чтобы переключить скорости в системе автоматической коробки передач с четырьмя скоростями автомобиля. График представляет каждое положение механизма по состоянию, показавшему, когда прямоугольник пометил firstвторой, third, или fourth. Как механизмы они представляют, эти состояния исключительны, таким образом, только одно состояние активно за один раз.

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

Этот график предлагает простой проект, который игнорирует важные факторы, такие как скорость вращения двигателя и крутящий момент. Можно создать более всестороннюю и реалистическую модель путем соединения этой диаграммы 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 управляет значениями приборов и ламп в интерфейсе.

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

Симулируйте график как блок Simulink с локальными Событиями

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

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

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

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

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

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

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

Запускать симуляцию модели:

  1. Дважды кликните блок User Inputs. В диалоговом окне Signal Builder можно выбрать предопределенный профиль тормоза к дросселю, чтобы симулировать или создать пользовательский профиль. Профилем по умолчанию является Passing Maneuver.

  2. Нажмите Run. В редакторе Stateflow анимация графика подсвечивает активные состояния во время симуляции. Чтобы замедлить анимацию, во вкладке Debug, выбирают Slow от Скорости анимации выпадающий список.

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

Симулируйте график как блок Simulink с временными условиями

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

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

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

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

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

Запускать симуляцию модели:

  1. Дважды кликните блок User Inputs. В диалоговом окне Signal Builder можно выбрать предопределенный профиль тормоза к дросселю, чтобы симулировать или создать пользовательский профиль. Профилем по умолчанию является Passing Maneuver.

  2. Нажмите Run. В редакторе Stateflow анимация графика подсвечивает активные состояния во время симуляции. Чтобы замедлить анимацию, во вкладке Debug, выбирают Slow от Скорости анимации выпадающий список.

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

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

| | |

Похожие темы