exponenta event banner

Переходы

Переход - это линия со стрелкой, которая связывает один графический объект с другим. В большинстве случаев переход представляет переход системы из одного режима (состояния) в другой. Переход обычно соединяет исходный и целевой объекты. Исходный объект - это место начала перехода, а целевой объект - место окончания перехода. На следующей диаграмме показан переход из исходного состояния. 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

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

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

event_or_message[condition]{condition_action}/transition_action

В этом примере показаны части метки перехода.

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

Триггеры событий или сообщений

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

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

Условия

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действительно, если...

Только событие

Это событие происходит

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

Это событие происходит, и условие истинно

Только сообщение

Это сообщение появляется

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

Это сообщение появляется, и условие истинно

Только условие

Любое событие происходит, и условие истинно

Только действие

Происходит любое событие

Не указано

Происходит любое событие

Переходные соединения

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

В этом примере показаны простые переходы в исключительные состояния (ИЛИ) и из них.

Следующий переход...Действительно, когда...
B кому AГосударство B активен, и событие E1 происходит.
A1 кому A2Государство A1 активен и событие E2 происходит.

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

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

На следующей диаграмме показаны переходы к соединительным соединениям и от них.

Диаграмма использует временную логику для определения времени ввода u равно 1.

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

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

Переходы в исключительные суперсостояния (ИЛИ) и из них

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

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

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

Переход к подстанциям и выход из них

В следующем примере показаны переходы в монопольные подсостояния (ИЛИ) и из них.

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

Связанные темы