Объединение переходов и соединений для создания путей ветвления

connective junction представляет точку принятия решений в пути перехода. Можно объединить переходы и соединительные соединения, чтобы создать пути от общего источника к нескольким адресатам или от нескольких источников к общему месту назначения. Для получения дополнительной информации о семантике путей ветвления смотрите Представление нескольких путей при помощи соединительных соединений.

Добавление соединительного соединения

Когда вы добавляете переход к графику, Stateflow® Редактор предоставляет графические подсказки, которые позволяют добавить соединение или состояние. Чтобы разместить соединение в конце перехода, щелкните значок кругового соединения.

Кроме того, чтобы добавить изолированное соединение к графику:

  1. Откройте Редактор Stateflow.

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

  3. Чтобы разместить соединительное соединение, щелкните место на холсте.

Изменение свойств соединительного соединения

Для изменения размера одного или нескольких соединительных соединений:

  1. Выберите соединительные соединения.

  2. Щелкните правой кнопкой мыши одно из выбранных соединений и выберите Junction Size.

  3. В раскрывающемся списке выберите размер соединения.

Чтобы изменить другие свойства соединительного соединения, щелкните правой кнопкой мыши соединительное соединение и выберите Properties. Диалоговое окно Соединительный узел (Connective Joint) отображает следующие свойства:

  • Parent - Родительское состояние соединительного соединения. Чтобы перенести родительский элемент на передний план, щелкните гипертекстовую ссылку. Это свойство доступно только для чтения.

  • Description - Текстовое описание соединения. Вы можете ввести краткое описание и комментарии.

  • Document link - Ссылка на онлайн-документацию для соединения. Можно ввести адрес веб-URL или MATLAB® команда, которая отображения документацию в подходящем интерактивном формате, таком как HTML файла или текст в Командном Окне MATLAB. При нажатии гиперссылки Document link Stateflow оценивает ссылку и отображает документацию.

Примеры переходных путей с соединительными соединениями

Путем объединения переходов и соединительных соединений можно создать общие шаблоны переходов, такие как:

  • if-then-else шаблоны принятия решений

  • for шаблоны циклов

  • while шаблоны циклов

Чтобы сократить время создания этих шаблонов, используйте Pattern Wizard. Для получения дополнительной информации смотрите Создать Графики потока при помощи Pattern Wizard.

If-then-else Шаблон со всеми заданными условиями

В этом примере состояние Checked_in имеет путь перехода по умолчанию с тремя соединительными соединениями. Каждая ветвь пути охраняется условием.

Если состояние Front_desk активно, событие check_in инициирует выполнение перехода по умолчанию в Checked_in. Результат перехода по умолчанию зависит от значения room_type:

  • Если room_type равен 1, substate Executive_suite становится активным.

  • Если room_type Значение 2, substate Family_suite становится активным.

  • Если room_type 3, подсостояние Single_room становится активным.

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

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

If-then-else Шаблон с безусловным переходом

В этом примере переход от состояния Start имеет три соединительных соединения. Первые две ветви пути охраняются условием. Последняя ветвь пути безусловна.

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

  • Если u равен 1 перед временем, $t=2$состояние Fast становится активным.

  • Если u равен 1 между$t=2$ и, $t=5$состояние Good становится активным.

  • Если u равен 1 после, $t=5$состояние Slow становится активным.

Для получения дополнительной информации об этом графике смотрите Обнаружение истекшего времени.

For Шаблон цикла

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

Как значение счетчика i Увеличения от 1 до 10, график потока жидкости задает элементы массива output. Цикл в этом графике потока эквивалентен этому фрагменту кода MATLAB:

for i = 1:10
    output(i) = 2*i;
end

While Шаблон цикла

В этом примере поток, график объединяет переходы и соединительные соединения, чтобы создать while цикл, который вычисляет наибольший общий делитель входов.

Цикл в этом графике потока эквивалентен этому фрагменту Кода С:

while(q > 0) {
    r = fmod(p,q);
    p = q;
    q = r;
}

Похожие темы