Внутренний переход

Top  Previous  Next

Внутренний переход — это такой переход, срабатывание которого не приводит к выходу из текущего состояния.

Наличие внутренних переходов в состоянии показывается изображением стрелки на состоянии.

 

                         05-innerTrans

 

Внешний переход, у которого исходное и конечное состояние одно и то же, не эквивалентен внутреннему переходу, поскольку при срабатывании внешнего перехода

выполняются выходные действия в состоянии, входные действия в состоянии и повторная инициализация локальной деятельности в состоянии.

 

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

 

Во-первых, в отличие от внешних переходов, несколько внутренних переходов могут быть одновременно готовыми к срабатыванию,

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

порядке.

 

Во-вторых, внутренний переход имеет приоритет перед внешним переходом, исходящим из того же состояния:

если одновременно готовы к срабатыванию внутренний переход в текущем состоянии и внешний переход, исходящий из этого состояния,

то внутренний переход сработает, а внешний будет сброшен.

 

Безусловный внутренний переход сработает один раз при входе в состояние.

 

Внутренний переход, ожидающий события времени, сработает один раз через указанный промежуток времени после входа в состояние,

если данное состояние будет оставаться текущим.

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

Если в качестве события времени внутреннего перехода указать функцию System.periodic (tau), то этот переход будет срабатывать с периодом tau

с момента входа в состояние до тех пор, пока данное состояние будет оставаться текущим.

 

Внутренний переход, ожидающий сигнала, будет срабатывать всякий раз при появлении этого сигнала до тех пор, пока данное

состояние будет оставаться текущим.

 

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

с false на true до тех пор, пока данное состояние будет оставаться текущим.

 

ВнутрВнешнПер

                         Рис.1

 

На рис. 1 показана карта поведения, в которой в состоянии S1 имеются внутренний и исходящий внешний переходы с одним и тем же событием изменения «x ≥ 0».

В начальный момент x=0.

Поскольку внутренний переход имеет приоритет перед одновременно возбужденным внешним, то в момент h = {t = 0, i = 0}, когда

x = 0, сначала сработает внутренний переход и значение n nувеличится на 1.

Значение дискретной составляющей гибридного времени тоже увеличится на 1. В этот момент по-прежнему x = 0.

Однако событие изменения внутреннего перехода уже не может возникнуть, а событие изменения внешнего перехода остается активным,

поэтому внешний переход в состояние S2 сработает в этот момент.

 

СчетчикПолВолн

                                 Рис.2

 

На рис.2 показан результат прогона визуальной модели, в которой компонент "счетчик" считает число положительных полуволн синусоиды, подаваемой на его вход "x".

Внутренний переход в состоянии S1 срабатывает в начальный момент и затем всякий раз когда значение переменной "x" меняется с отрицатеьного значения на положительное.