enabled subsystem является условно выполняемой подсистемой, которая запускается однажды на каждом главном временном шаге, в то время как управляющий сигнал имеет положительное значение. Если перекрестный нуль сигнала во время незначительного временного шага, подсистема не включена или отключена до следующего главного временного шага.
Управляющий сигнал может быть или скаляром или вектором.
Если скалярное значение больше нуля, подсистема выполняется.
Если кто-либо из векторных значений элемента больше нуля, подсистема выполняется.
Создать активированную подсистему:
Добавьте блок Enabled Subsystem в свою модель.
Скопируйте блок от библиотеки Simulink® Ports & Subsystems до вашей модели.
Кликните по диаграмме модели, начните вводить enabled
, и затем выберите Enabled Subsystem.
Установите начальные и отключенные значения для блоков Outport. Смотрите Условные Выходные значения Начальной буквы Подсистемы и Условные Выходные значения Подсистемы, Когда Отключено.
Задайте, как состояния подсистемы обработаны, когда подсистема включена.
Откройте блок подсистемы, и затем откройте диалоговое окно параметра для блокировки порта Enable. От States when enabling выпадающий список выберите:
held
— Состояния обеспечивают свои новые значения.
reset
— Если подсистема отключена по крайней мере для одного временного шага, состояния возвращаются к своим начальным условиям.
В упрощенном режиме инициализации (значение по умолчанию) прошедшее время подсистемы всегда сбрасывается во время первого выполнения после становления активированным. Этот сброс происходит независимо от того, сконфигурирована ли подсистема, чтобы сбросить, будучи включенным. См. обнаружение инициализации Underspecified.
Для вложенных подсистем, блоки Enable которых имеют различные установки параметров, настройки для дочерней подсистемы заменяют настройки, наследованные от родительской подсистемы.
Выведите управляющий сигнал от блока Enable.
В диалоговом окне параметра для Блока Enable установите флажок Show output port.
Выбор этого параметра позволяет вам передавать управляющий сигнал в активированную подсистему. Можно использовать этот сигнал с алгоритмом, который зависит от значения управляющего сигнала.
Дискретные блоки в активированной подсистеме выполняются только, когда подсистема выполняется, и только когда их шаги расчета синхронизируются с шагом расчета симуляции.
Рассмотрите ex_enabled_subsys_1 модель, которая содержит четыре дискретных блока и управляющий сигнал. Дискретные блоки:
Блок A, с шагом расчета 0,25 секунд
Блок B, с шагом расчета 0,5 секунд
Сигнал E является разрешать управляющим сигналом, сгенерированным Pulse Generator с шагом расчета 0,125. Его выход изменяет значение с 0 до 1 в 0,375 секунды и возвращается к 0 в 0,875 секунды.
Дискретные блоки в активированной подсистеме:
Блок C, в активированной подсистеме, с шагом расчета 0,125 секунд
Блок D, также в активированной подсистеме, с шагом расчета 0,25 секунд
Дискретные блоки выполняются в показанных шагах расчета.
Блоки A и B выполняются независимо от разрешать управляющего сигнала, потому что они не часть активированной подсистемы. Когда разрешать управляющий сигнал становится положительным, блоки C и D выполняются на уровне их присвоенных частот дискретизации, пока разрешать управляющий сигнал не становится нулевым снова. Блок C не выполняется в 0,875 секунды, когда разрешать управляющий сигнал превращается в нуль.
Enabled подсистемы могут содержать блоки Goto. Однако только выходные порты для блоков с состоянием могут соединиться с блоками Goto. Смотрите Locked
подсистема в модели sldemo_clutch
, для примера использования Goto блокируется в активированной подсистеме.
Можно использовать условные подсистемы с блоками Merge, чтобы создать наборы подсистем, которые альтернативно выполняются, в зависимости от текущего состояния модели.
Рассмотрите модель, которая использует два блока Enabled Subsystem и блок Merge, чтобы смоделировать двухполупериодный выпрямитель (устройство, которое преобразует переменный ток в пульсирующий постоянный ток). Чтобы открыть модель, смотрите ex_alternately_executing_model
.
Откройте pos
подсистема. Подсистема включена, когда форма волны AC положительна и передает форму волны, неизменную ее выходу.
Откройте neg
подсистема. Подсистема включена, когда форма волны отрицательна и инвертирует форму волны.
Блок Merge передает выход в настоящее время активированной подсистемы наряду с исходной формой волны с блоком Scope.
Выполнение симуляции и затем открывает блок Scope.