exponenta event banner

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

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

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

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

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-плеера. Во время моделирования можно управлять стереосистемой, нажимая кнопки в пользовательском интерфейсе помощника медиаплеера.

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

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

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

  1. Ты включаешь стерео.

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

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

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

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

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

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

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

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

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

StandbyСтереосистема находится в режиме ожидания (выкл.)
ONАктивна стереосистема (ВКЛ.)

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

CDModeКомпонент проигрывателя компакт-дисков активен
AMModeКомпонент AM radio активен
FMModeПодкомпонент ЧМ-радиосвязи активен

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

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

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

NormalОбычный режим воспроизведения
RewindРежим обратного воспроизведения
FastForwardРежим воспроизведения Fast-Forward

На этом рисунке показана полная компоновка состояний на диаграмме.

Arrangement of states in the Mode Manager chart.

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

Изучение примера

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

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

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

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

Связанные примеры

Подробнее