Создайте иерархию для управления сложностью системы

Добавьте структуру к модели по одному подкомпоненту за раз путем создания hierarchy вложенных состояний. Затем можно управлять несколькими уровнями сложности в Stateflow® график. Для получения дополнительной информации см. Model Finite State Machines.

Иерархия состояний

Чтобы создать иерархию состояний, поместите одно или несколько состояний в контуры другого состояния. Внутренние состояния являются дочерними состояниями (или подсостояниями) внешнего состояния. Внешнее состояние является родительским элементом (или суперштатом) внутренних состояний.

Stateflow chart with a hierarchy of states. The outer state is called Parent. It contains two inner states called Child1 and Child2.

Содержимое родительского состояния ведет себя как меньший график. Когда родительское состояние становится активным, одно из его дочерних состояний также становится активным. Когда родительское состояние становится неактивным, все его дочерние состояния становятся неактивными.

Пример иерархии

Этот пример моделирует стереосистему, состоящую из AM-радио, FM-радио и CD-проигрывателя. Во время симуляции вы управляете стереосистемой, нажимая кнопки на пользовательском интерфейсе Media Player Helper.

Стерео первоначально находится в режиме ожидания (OFF). Когда вы выбираете одну из кнопок Radio Request, стерео включает соответствующий подкомпонент. Если вы выбираете проигрыватель компакт-дисков, можно нажать одну из кнопок Запроса компакт-дисков, чтобы выбрать «Воспроизведение», «Перемотка», «Быстрое продвижение» или «Стоп». Вставить или извлечь диск можно в любой точке во время симуляции.

Реализуйте поведение при помощи иерархии состояний

Изначально полная реализация этой стереосистемы выглядит довольно сложной. Однако, ориентируясь на один уровень активности за раз, можно пошагово проектировать общую разработку системы. Например, эти условия необходимы проигрывателю компакт-дисков для перехода в режим Fast-Forward Play:

  1. Включите стерео.

  2. Включите проигрыватель компакт-дисков.

  3. Ты играешь диск.

  4. Вы нажимаете кнопку FF в пользовательском интерфейсе.

Можно создать иерархическую модель, которая рассматривает каждое из этих условий по одному. Например, самый внешний уровень может определять переходы между включением и выключением стерео. Средние уровни определяют переход между различными стерео подкомпонентами, и между режимами остановки и воспроизведения CD-проигрывателя. Самый нижний уровень определяет ответ на кнопки CD Request, когда вы удовлетворяете всем остальным условиям для игры диска.

Чтобы реализовать поведение стереосистемы, sf_mediaplayer использует иерархию вложенных состояний, перечисленных в Model Explorer под Mode Manager график. Чтобы открыть Model Explorer, на вкладке Modeling, выберите Model Explorer.

Hierarchy of nested states, as listed by the Model Explorer.

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

Уровень иерархииГосударствоОписание
Верхний уровень (Mode Manager график)EjectРежим выброса диска (прерывает все другие стереофункции)
NormalOperationНормальный режим работы для стереосистемы

Активность стереосистемы (дочерние состояния NormalOperation)

StandbyСтереосистема находится в режиме ожидания (OFF)
ONСтереосистема активна (включена)

Стерео-подкомпоненты (дочерние состояния On)

CDModeПодкомпонент CD-проигрывателя активен
AMModeАктивен подкомпонент AM radio
FMModeАктивен подкомпонент FM-радио

Активность проигрывателя компакт-дисков (дочерние состояния CDMode)

StopПроигрыватель CD остановлен
PlayПроигрыватель CD воспроизводит диск

Режимы воспроизведения дисков (дочерние состояния Play)

NormalРежим нормального воспроизведения
RewindРежим обратного воспроизведения
FastForwardБыстрый режим воспроизведения вперед

Этот рисунок показывает полное размещение состояний на графике.

Arrangement of states in the Mode Manager chart.

Исторические соединения внутри NormalOperation и ON состояния записи рабочего режима (Standby или ON) и активного подкомпонента медиаплеера (CD-проигрыватель, AM-радио или FM-радио) перед извлечением диска или выключением системы.

Исследуйте пример

Пример sf_mediaplayer содержит две другие диаграммы Stateflow:

  • App Interface управляет интерфейсом с UI и передает входы в Mode Manager и CD Player чарты.

  • CD Player получает выход от App Interface и Mode Manager графики и имитация механического поведения CD-проигрывателя.

Simulink model that simulates a media player. The model contains the chart Media Player Mode Manager and two additional charts, User Request and CD Player Behavior Model.

Во время симуляции можно исследовать, как каждый график реагирует на взаимодействия с приложением Media Player Helper. Чтобы быстро переключаться между графиками, используйте вкладки в верхней части редактора Stateflow.

Похожие примеры

Подробнее о