Сгруппировать объекты графика при помощи полей

box является графическим объектом, который организует другие объекты, такие как функции и состояния на графике. Можно использовать прямоугольник, чтобы инкапсулировать состояния и функции в отдельное пространство имен. Коробки поддерживаются только в Stateflow® графики в Simulink® модели.

Для примера, в этом графике, коробка Heater группирует вместе связанные состояния Off и On.

Chart modeling a bang-bang controller.

Для получения дополнительной информации об этом примере см. Модель системы управления температурой релейного взрыва.

Семантика блоков Stateflow

Видимость графических объектов в прямоугольниках

Поля добавляют уровень иерархии к диаграммам Stateflow. Это свойство влияет на видимость функций и состояний внутри коробки для объектов, которые находятся вне коробки. Если вы ссылаетесь на функцию или состояние, помеченное коробкой, из расположения вне рамки, необходимо включить имя коробки в путь. См. раздел «Группирование функций с использованием ящика».

Порядок активации параллельных состояний

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

Примечание

Чтобы явно задать порядок активации на базис состояния по состояниям, выберите User-specified state/transition execution order в диалоговом окне свойств Графика. Эта опция выбирается по умолчанию при создании нового графика. Для получения дополнительной информации смотрите Явное упорядоченное расположение параллельных состояний.

Правила использования коробок

Когда вы используете поле, применяются следующие правила:

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

  • Можно перемещать или рисовать графические объекты внутри рамки, такие как функции и состояния.

  • Можно добавить данные в поле, чтобы все элементы в поле могли совместно использовать одни и те же данные.

  • Можно сгруппировать прямоугольник и его содержимое в один графический элемент. См. раздел «Состояния группы».

  • Можно подграфикировать прямоугольник, чтобы скрыть его элементы. См. Инкапсуляция модальной логики при помощи субдиаграмм.

  • Вы не можете задать операторы действия для прямоугольника, такого как entry, during, и exit действия.

  • Вы не можете задать переход в или из прямоугольника. Однако можно задать переход в или из состояния внутри коробки.

Рисуйте и редактируйте прямоугольник

Создайте коробку

Вы создаете рамки на графике с помощью прямоугольного инструмента, показанного ниже.

  1. Выберите инструмент Box.

  2. Переместите указатель мыши в область рисования.

  3. Щелкните в любом месте, чтобы создать окно.

    Появится новое поле с вопросительным знаком (?) имя в верхнем левом углу.

  4. Щелкните метку вопросительного знака.

  5. Введите имя поля и щелкните за его пределами.

Удаление ящика

Чтобы удалить поле, щелкните его и нажмите клавишу Delete.

Примеры использования коробок

Группируйте функции используя прямоугольник

На этом графике показан прямоугольник с именем Status который группирует вместе MATLAB® функций.

Выполнение графика происходит следующим образом:

  1. Состояние Cold сначала активируется.

  2. При входе состояние Cold вызывает функцию Status.msgCold.

    Эта функция отображает сообщение о том, что температура холодная.

    Примечание

    Поскольку функция MATLAB находится внутри коробки, путь вызова функции должен включать имя коробки Status. Если вы опускаете этот префикс, появляется сообщение об ошибке.

  3. Если значение входных данных temp превышает 80, переход в состояние Warm происходит.

  4. При входе состояние Warm вызывает функцию Status.msgWarm.

    Эта функция отображает сообщение о том, что температура теплая.

    Примечание

    Поскольку функция MATLAB находится внутри коробки, путь вызова функции должен включать имя коробки Status. Если вы опускаете этот префикс, появляется сообщение об ошибке.

  5. Если значение входных данных temp опускается ниже 60, переход в состояние Cold происходит.

  6. Шаги 2-5 повторяются до окончания симуляции.

Группировать состояния, использующие прямоугольник

На этом графике показан прямоугольник с именем Status который группирует вместе связанные состояния. График использует неявное упорядоченное расположение для параллельных состояний вместо явного режима по умолчанию. (Для получения дополнительной информации смотрите Неявное упорядоченное расположение параллельных состояний.)

Основными идеями этого графика являются:

  • Состояние Temp сначала просыпается, далее следует состояние Wind_Chill. Затем состояние Monitor просыпается.

    Примечание

    Этот неявный порядок активации происходит из-за Temp и Wind_Chill находиться в кубе. Если вы снимаете рамку, неявный порядок активации изменяется, как показано на: Temp, Monitor, Wind_Chill.

  • На основе входных данных tempпереходы между подсостояниями происходят в параллельных состояниях Status.Temp и Status.Wind_Chill.

  • Когда переход от Status.Temp.Cold на Status.Temp.Warm происходит, условие перехода in(Status.Temp.Warm) становится истинным.

  • Когда переход от Status.Temp.Warm на Status.Temp.Cold происходит, условие перехода in(Status.Temp.Cold) становится истинным.

    Примечание

    Потому что подсостояния Status.Temp.Cold и Status.Temp.Warm находится в поле, аргумент in оператор должен включать имя коробки Status. Если вы опускаете этот префикс, появляется сообщение об ошибке. Для получения информации о in , см. «Проверяйте активность состояния при помощи оператора in».