Переходы

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

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

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

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

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

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

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

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

Переходный родительский элемент

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

Пункт назначения перехода

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 может состоять из события или сообщения, условия, действия условия и переходного действия. Каждая часть метки является необязательной. The ? символ является меткой перехода по умолчанию. Метки перехода имеют такой общий формат:

event_or_message[condition]{condition_action}/transition_action

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

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

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

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

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

Условия

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

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

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

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

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

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

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

  • Логические выражения можно сгруппировать, используя & для выражений со связями И и | для выражений со связями OR.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Любое событие происходит

Не задан

Любое событие происходит

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

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

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

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

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

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

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

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

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

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

Переходы к эксклюзивным (ИЛИ) суперштатам и из них

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

График имеет два состояния на самом высоком уровне в иерархии, 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и затем шаблон повторяется.

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

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

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

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

Похожие темы