Объекты диаграммы группы при помощи полей

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

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

Примечание

Чтобы добавить примечания в вашу диаграмму Stateflow, используйте аннотации вместо полей. Для получения дополнительной информации смотрите, Добавляют Описательные Комментарии в Графике.

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

Chart modeling a bang-bang controller.

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

Семантика полей Stateflow

Иерархия графических объектов в полях

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

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

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

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

Инструкции для Использования полей

Когда вы используете поле:

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

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

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

  • Вы можете субдиаграмма поле, чтобы скрыть его элементы. Смотрите Инкапсулируют Модальную Логику при помощи Субдиаграмм.

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

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

Чертите и редактируйте окно

Создайте поле

Вы создаете, окружает ваш график при помощи значка Поля в палитре объектов.

  1. В палитре объектов кликните по инструменту Box.

  2. На холсте графика кликните по местоположению для нового поля. Новое поле, кажется, с курсором на месте добавляет имя.

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

Удалите поле

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

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

Функции группы Используя поле

Этот график показывает поле под названием Status это группирует две функции MATLAB.

График выполняется в этом порядке:

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

  2. После записи, Cold состояния вызывает функциональный Status.msgCold.

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

    Примечание

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

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

  4. После записи, Warm состояния вызывает функциональный Status.msgWarm.

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

  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 оператор, смотрите Действие состояния Проверки при помощи в Операторе.

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

Похожие темы