exponenta event banner

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

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

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

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

Либо добавьте изолированное соединение к диаграмме:

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

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

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

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

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

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

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

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

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

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

  • Описание - Текстовое описание соединения. Можно ввести краткое описание и комментарии.

  • Ссылка на документ - ссылка на онлайн-документацию для соединения. Можно ввести URL-адрес веб-сайта или команду MATLAB ®, которая отображает документацию в соответствующем интерактивном формате, например HTML-файл или текст в окне команд MATLAB. Если щелкнуть гиперссылку Документ (Document), Stateflow выполнит оценку ссылки и отобразит документацию.

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

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

  • if-then-else схемы принятия решений

  • for шаблоны контуров

  • while шаблоны контуров

Чтобы сократить время создания этих шаблонов, используйте мастер шаблонов. Дополнительные сведения см. в разделе Создание блок-схем с помощью мастера шаблонов.

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

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

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

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

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

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

  • Если ни одно из этих условий не соответствует действительности, путь перехода по умолчанию является недопустимым и 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 цикл, который вычисляет наибольший общий делитель входных данных.

Цикл на этой блок-схеме эквивалентен этому фрагменту кода C:

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

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