Логически выполняемый блок подсистемы запускается один или несколько раз на шаге текущего времени, когда включено блоком управления. Блок управления реализует управляющую логику, подобную выраженному оператором языка программирования (e. g., если затем, переключатель, в то время как, для).
Селекторные подсистемы являются одним типом логически выполняемой подсистемы, которые выполняются однажды во время временного шага в ответ на сигнал действия от блока управления, расположенного внешний к подсистеме. Simulink® поддерживает две селекторных структуры подсистемы, если еще и случай переключателя.
Блок If Action Subsystem является блоком Subsystem, предварительно сконфигурированным как отправная точка для создания подсистемы, выполнение которой включено Если блок.
Внешнее, Если блок управляет выполнением. Если блок оценивает логическое выражение и затем, в зависимости от результата оценки, выводит сигнал действия к Если блок Action Subsystem.
Рассмотрите следующую модель.
В этой модели, входных параметрах к, Если блок обеспечивает значения операнда для логических выражений, представленных как выходные порты. Каждый выходной порт присоединен Если блок Action Subsystem. Выражения в, Если блок оценен верхняя часть вниз начиная с выражения if
. Когда выражение оценивает к истине, ее соответствие, Если Подсистема Действия выполняется, и остающиеся выражения не оценены.
Если еще структура в модели может быть представлена со следующим псевдо кодом.
IF u1 > 0 THEN Subsystem 1 ELSEIF u2 > 0 Subsystem 2 ELSE Subsystem 3 END IF
Чтобы создать модель в качестве примера, используйте следующую процедуру.
Поместите Если блок в Редакторе Simulink. Дважды кликните блок, чтобы открыть блочное диалоговое окно параметров.
В Количестве входного поля введите 2
.
Два входных порта добавляются к блоку. Входные порты для сигналов, содержащих значения операнда, не необходимые количество операндов. Входной сигнал может быть вектором. Например, вы могли задать Пятый элемент вектора u в выражении как u(5) > 0
.
В, Если текстовое поле выражения, введите u1 > 0
.
Выходной порт добавляется к блоку с маркировать if(u1 > 0)
. Этим портом является единственный необходимый вывод для Если блок.
В текстовом поле выражений Elseif введите u2 > 0
.
Можно ввести несколько elseif выражений с запятой, разделяющей выражения. Каждое выражение добавляет выходной порт к Если блок с меткой формы elseif(expression)
.
Еще проверьте Показ флажок условия.
Выходной порт добавляется к блоку с маркировать else
.
Добавьте три, Если Подсистема Действия блокируется.
Эти блоки являются блоками Подсистемы с Блокировкой порта Действия. Когда вы помещаете Блокировку порта Действия в подсистеме, входной порт под названием Действие добавляется к блоку.
Соедините каждый выходной порт от Если блок к порту действия Если блок Action Subsystem.
Когда вы устанавливаете связь, значок для, Если блок Action Subsystem переименован к типу выражения, которое присоединило к нему.
В каждом, Если блок Action Subsystem, введите блоки Simulink, которые будут выполняться для условия, которое он обрабатывает.
Соедините выходные параметры от того, Если Подсистема Действия блокируется к блоку Merge.
Запустите моделирование.
Сигнальные линии действия между, Если блок и, Если блоки Подсистемы Действия изменяются от тела до пунктирной линии.
Все блоки в, Если блок Action Subsystem, управляемый, Если блок должен запуститься на том же уровне как ведущий блок.
Блок Switch Case Action Subsystem является блоком Subsystem, предварительно сконфигурированным как отправная точка для создания подсистемы, выполнение которой включено блоком Switch Case.
Внешний блок Switch Case управляет выполнением. Блок Switch Case оценивает индекс случая и затем, в зависимости от выбранного случая, выводит сигнал действия к блоку Switch Case Action Subsystem.
Рассмотрите следующую модель со структурой переключателя.
В этой модели входной параметр к блоку Switch Case обеспечивает индексное значение для выбора случая, представленного как выходные порты. Каждый выходной порт присоединен Если блок Action Subsystem. Когда случай выбран, его соответствие, Если Подсистема Действия выполняется.
Структура переключателя в модели может быть представлена со следующим псевдо кодом.
CASE u1 u1 = 1: subsystem_1 break u1 = 2 or 3: subsystem_2_3 break u1 = OTHER VALUES: subsystem_default break END CASE
Чтобы создать модель в качестве примера, используйте следующую процедуру.
Поместите блок Switch Case в Редактор Simulink. Дважды кликните блок, чтобы открыть блочное диалоговое окно параметров.
В поле условий Случая введите {1, [2,3]}
.
Заданы два случая. Первый случай, когда входным значением является 1
и второй случай, когда входным значением является 2
или 3
. Случаи могут быть единственными или многозначными и появиться как выходные порты на блоке Switch Case. Входные значения нецелого числа являются усеченными к целым числам.
Установите флажок случая значения по умолчанию Show.
Выходной порт маркировал default:
, добавляется к блоку. Этот порт отправляет сигнал действия, если никакие другие случаи не выбраны.
Добавьте три блока Подсистемы Действия Случая Переключателя.
Эти блоки являются блоками Подсистемы с Блокировкой порта Действия. Когда вы помещаете Блокировку порта Действия в подсистеме, входной порт под названием Действие добавляется к блоку.
Соедините каждый выходной порт от блока Switch Case до порта действия блока Switch Case Action Subsystem.
Когда вы устанавливаете связь, значок для блока Switch Case Action Subsystem переименован к типу выражения, присоединенного к ней.
В каждом блоке Switch Case Action Subsystem введите блоки Simulink, которые будут выполняться для случая, который он обрабатывает.
Запустите моделирование.
Сигнальные линии действия между блоком Switch Case и блоками Подсистемы Действия Случая Переключателя изменяются от тела до пунктирной линии.
После того, как подсистема для особого случая выполняется, подразумеваемый пропуск отключает выполнение блока Switch Case. Блоки Случая Переключателя Simulink не показывают падение - через поведение операторов C switch
.