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

Добавьте структуру в свою модель один субкомпонент за один раз путем создания hierarchy вложенных состояний. Можно затем управлять несколькими уровнями сложности в 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 и проигрывателя компакт-дисков. В процессе моделирования вы управляете системой стерео путем нажатия кнопок в пользовательском интерфейсе Помощника Медиаплеера.

Стерео находится первоначально в дежурном режиме (OFF). Когда вы нажимаете одну из кнопок Radio Request, стерео включает соответствующий субкомпонент. Если вы выбираете проигрыватель компакт-дисков, можно нажать одну из кнопок CD Request, чтобы выбрать Play, Rewind, Fast-Forward или Stop. Можно вставить или извлечь диск в любой точке во время симуляции.

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

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

  1. Вы включаете стерео.

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

  3. Вы проигрывающий диск.

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

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

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

CDModeСубкомпонент проигрывателя компакт-дисков активен
AMModeСубкомпонент радио AM активен
FMModeСубкомпонент радио FM активен

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

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

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

NormalНормальный режим воспроизведения
RewindПротивоположный режим воспроизведения
FastForwardРежим воспроизведения ускоренной перемотки вперед

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

Arrangement of states in the Mode Manager chart.

Соединения истории в NormalOperation и ON состояния записывают рабочий режим (Резервное устройство или ON) и активный субкомпонент медиаплеера (проигрыватель компакт-дисков, радио 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.

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

Похожие темы