connective junction представляет момент принятия решения в пути к переходу. Можно объединить переходы и соединительные соединения, чтобы создать пути от общего источника до нескольких мест назначения или от многочисленных источников до общего места назначения. Для получения дополнительной информации о семантике переходящих путей смотрите, Представляют Разнообразные пути при помощи Коннектив-Джанкшнс.
Когда вы добавляете переход к графику, Редактор Stateflow® предоставляет графические сигналы, которые позволяют вам добавлять соединение или состояние. Чтобы поместить соединение в конце перехода, кликните по круговому сигналу соединения.
В качестве альтернативы добавить изолированное соединение в график:
Откройте редактора Stateflow.
От палитры объектов кликните по значку Junction и переместите указатель на холст графика. Появляется соединительное соединение.
Чтобы поместить соединительное соединение, кликните по местоположению на холсте.
Изменить размер одного или нескольких соединительных соединений:
Выберите соединительные соединения.
Щелкните правой кнопкой по одному из выбранных соединений и выберите Junction Size.
Из выпадающего списка выберите размер соединения.
Чтобы изменить другие свойства соединительного соединения, щелкните правой кнопкой по соединительному соединению и выберите Properties. Диалоговое окно Connective Junction отображается эти свойства:
Parent — Родительское состояние соединительного соединения. Чтобы принести родительский элемент к переднему плану, кликните по гипертекстовой ссылке. Это свойство доступно только для чтения.
Описание Текстовое описание соединения. Можно ввести краткое описание и комментарии.
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, Executive_suite
подсостояния становится активным.
Если room_type
2, Family_suite
подсостояния становится активным.
Если room_type
3, Single_room
подсостояния становится активным.
Если ни одно из этих условий не верно, путь к переходу по умолчанию не допустим и Front_desk
остается активным.
Для получения дополнительной информации об этом графике, смотрите, Как Объекты Stateflow Взаимодействуют Во время Выполнения.
If-then-else
Шаблон с безусловным переходомВ этом примере, переходе от Start
состояния имеет три соединительных соединения. Первые две ветви пути охраняет условие. Последняя ветвь пути является безусловной.
График использует временную логику, чтобы определить когда вход u
равняется 1:
Если u
равняется 1 перед временем, Fast
состояния становится активным.
Если u
равняется 1 между и, Good
состояния становится активным.
Если u
равняется 1 после, 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; }