Переходы

transition является линией с наконечником стрелки, который соединяет один графический объект с другим. В большинстве случаев переход представляет проход системы от одного режима (состояние) другому. Переход обычно соединяет источник и целевой объект. Объект source состоит в том, где переход начинается, и объект destination состоит в том, где переход заканчивается. Следующий график показывает переход от исходного состояния, B, к целевому состоянию, A.

Соединения делят переход на сегменты перехода. В этом случае полный переход состоит из сегментов, взятых от источника до целевого состояния. Каждый сегмент оценен в процессе определения валидности полного перехода.

Следующий пример имеет два сегментированных перехода: один от On состояния утверждать Off, и другой от On состояния к себе:

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

Иерархия перехода

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

Следующая таблица разрешает происхождение каждого перехода в предыдущем примере. / символ представляет график. Каждый уровень в иерархии состояний разделяется периодом (.Символ.

Метка перехода

Родительский элемент перехода

Источник перехода

Место назначения перехода

switch_off

/

/Power_on.Low.Heat

/Power_off

switch_high

/Power_on

/Power_on.Low.Heat

/Power_on.High

switch_cold

/Power_on.Low

/Power_on.Low.Heat

/Power_on.Low.Cold

Метки перехода

transition label может состоять из события или сообщения, условия, действия условия и действия перехода. Каждая часть метки является дополнительной. ? символ является меткой перехода по умолчанию. Метки перехода имеют этот полный формат:

event_or_message[condition]{condition_action}/transition_action

Этот пример иллюстрирует части метки перехода.

ПереходТриггер событияУсловиеДействие условияДействие перехода
Состояние, чтобы утвердить Cevent1temp > 50func1()'none'
Состояние, чтобы утвердить Bevent2'none''none'data1 = 5

Событие или триггеры сообщения

В синтаксисе метки перехода событие или триггеры сообщения появляются первыми как имя события или сообщения. У них нет специального символа различения, чтобы разделить их от других действий в метке перехода. В примере в Переходах оба перехода от состояния A имеют триггеры события. Переход от состояния, чтобы утвердить B имеет триггер события event2 и переход от состояния, чтобы утвердить C имеет триггер события event1.

Триггеры события задают событие, которое заставляет переход быть взятым, обеспеченным условие, если задано, верно. Определение события является дополнительным. Обменивайтесь сообщениями триггеры задают переход, который будет взят, если сообщение присутствует в очереди сообщений. Отсутствие события или сообщения указывает, что переход взят после вхождения любого события. Несколько событий или сообщений заданы с помощью логического оператора OR (|).

Условия

В синтаксисе метки перехода условиями являются Булевы выражения, заключенные в квадратные скобки ([]). В примере в Переходах переход от состояния, чтобы утвердить C имеет условие temp > 50.

Условием является Булево выражение, чтобы указать, что переход происходит, учитывая, что заданное выражение верно. Следуйте этим инструкциям для определения и использования условий:

  • Выражением условия должно быть Булево выражение, которое оценивает к true (1) или false (0).

  • Выражение условия может состоять из любого следующего:

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

    Например, [test_function(x, y) < 0] допустимое выражение условия.

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

  • Булевы выражения могут быть сгруппированы с помощью & для выражений с отношениями AND и | для выражений с отношениями OR.

  • Операторы присваивания не являются допустимыми выражениями условия.

  • Унарные инкрементные и декрементные действия не являются допустимыми выражениями условия.

Действия условия

В синтаксисе метки перехода действия условия следуют за условием перехода и заключены в фигурные скобки ({}). В примере в Переходах переход от состояния, чтобы утвердить C имеет действие условия func1(), вызов функции.

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

Действия перехода

В синтаксисе метки перехода действиям перехода предшествуют с наклонной чертой вправо (/) и заключены в фигурные скобки ({}). В примере в Переходах переход от состояния, чтобы утвердить B имеет действие перехода data1 = 5. В графиках C действия перехода не требуются, чтобы быть заключенными в фигурные скобки. В графиках, которые используют MATLAB в качестве языка действия, синтаксис автоматический откорректированный, если фигурные скобки отсутствуют в действии перехода. Смотрите Автоматическую Коррекцию При использовании MATLAB как Язык Действия.

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

Действия перехода поддерживаются только в графиках Stateflow® в моделях Simulink®.

Допустимые переходы

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

Метка перехода

Допустимо если...

Событие только

То событие имеет место

Событие и условие

То событие имеет место, и условие верно

Сообщение только

То сообщение происходит

Сообщение и условие

То сообщение происходит, и условие верно

Условие только

Любое событие имеет место, и условие верно

Действие только

Любое событие имеет место

Не заданный

Любое событие имеет место

Связи перехода

Переходы к и от исключительного (OR) состояния

Этот пример показывает простые переходы к и от исключительного (OR) состояния.

Следующий переход...Допустимо когда...
B к AB состояния активно и событие E1 происходит.
A1 к A2A1 состояния активно и событие E2 происходит.

Смотрите Переход Между Исключительными состояниями для получения дополнительной информации о семантике этого обозначения.

Переходы к и от Соединений

Следующий график показывает переходы к и от соединительных соединений.

График использует временную логику, чтобы определить когда вход u равняется 1.

Если вход равняется 1...Переход происходит от...
Прежде t = 2Start к Fast
Между t = 2 и t = 5Start к Good
После t = 5Start к Slow

Для получения дополнительной информации о временной логике, смотрите Управление выполнением диаграммы при помощи Временной Логики. Для получения дополнительной информации о семантике этого обозначения смотрите Переход от Общего источника до Множественных адресов.

Переходы к и от исключительного (OR) сверхсостояния

Этот пример показывает переходы к и от исключительного (OR) сверхсостояние и использование перехода по умолчанию.

График имеет два состояния на высшем уровне в иерархии, Power_off и Power_on. По умолчанию, Power_off активно. Событие Switch переключается система между Power_off и Power_on состояния. Power_on имеет три подсостояния: Firstвторой, и Third. По умолчанию, когда Power_on становится активным, First также становится активным. Когда Shift равняется 1, системные переходы от First к Secondвторой к Third, Third к First, для каждого вхождения события Switch, и затем повторения шаблона.

Для получения дополнительной информации о семантике этого обозначения смотрите Управление выполнением диаграммы при помощи Переходов По умолчанию.

Переходы к и от Подсостояний

Следующий пример показывает переходы к и от исключительного (OR) подсостояния.

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

Похожие темы