Запланируйте несколько подсистем на одном шаге

Лестничный шаблон разработки планировщика логики позволяет вам задавать порядок, в котором несколько подсистем Simulink® выполняются в одном временном шаге. Модель sf_ladder_logic_scheduler иллюстрирует этот шаблон разработки.

Лестничный график Планировщика Логики содержит следующую логику:

Ключевые поведения лестничного планировщика логики

Ключевые поведения лестничного планировщика логики:

Вызов функции Выходные События инициировал несколько подсистем

В данном временном шаге график Stateflow® широковещательно передает ряд вызова функции выходные события, чтобы инициировать выполнение трех подсистем вызова функций — A1, A2, и A3 — в модели Simulink в порядке, определенном лестничным планировщиком логики. Вот последовательность действий во время каждого временного шага:

  1. Модель Simulink активирует Ребро диаграммы Stateflow, чтобы Функционировать в возрастающем ребре импульсного генератора с 1 миллисекундой.

  2. Ребро, чтобы Функционировать график широковещательно передает вызов функции выходное событие call, чтобы активировать Лестничный Планировщик Логики диаграммы Stateflow.

  3. Лестничный широковещательный вызов функции графика Планировщика Логики вывел события, чтобы инициировать подсистемы вызова функций A1, A2 и A3, на основе значений входных параметров u1 и u2 (см., что Блок-схема Определяет Порядок Выполнения).

Блок-схема определяет порядок выполнения

Лестничный график Планировщика Логики использует возможности составления блок-схем Stateflow реализовать логику, которая планирует выполнение подсистем вызова функций Simulink. График содержит блок-схему Stateflow, которая напоминает лестничную схему. Каждый, в котором звенят лестничная структура представляет правило или условие, которое определяет, выполнить ли одну из подсистем вызова функций Simulink. Логика потока оценивает каждое условие последовательно, которое имеет эффект планирования выполнения нескольких подсистем в том же временном шаге. График выполняет каждую подсистему при помощи действия send, чтобы широковещательно передать вызов функции выходное событие (см., что Направленная Локальная Широковещательная передача События Использовать отправляет).

Вот последовательность действий, которая происходит в Лестничном графике Планировщика Логики в каждом временном шаге:

  1. Присвойте вывод y входу u1.

  2. Если u1 положителен, отправьте вызову функции выходное событие A1 в модель Simulink.

    Подсистема, соединенная с A1, выполняется. Эта подсистема умножает свой вход на усиление 2 и пасует назад это значение к Лестничному графику Планировщика Логики Stateflow как вход u2. Управляйте возвращается к следующему условию в Лестничном Планировщике Логики.

  3. Если u2 положителен или нуль, отправьте вызову функции выходное событие A2 в модель Simulink.

    Подсистема, соединенная с A2, выполняется. Эта подсистема выводит свое неизменное входное значение. Управляйте возвращается к следующему условию в Лестничном Планировщике Логики.

  4. Если u1 и u2 положительны, отправьте вызову функции выходное событие A3 в модель Simulink.

    Подсистема, соединенная с A3, выполняется. Эта подсистема умножает свой вход на усиление 1.

  5. Лестничный график Планировщика Логики засыпает.

Запустите лестничный планировщик логики

  1. Откройте модель sf_ladder_logic_scheduler.

  2. Откройте блок Scope.

  3. Запустите симуляцию.

    Осциллограф показывает, как вывод y изменяется, в зависимости от которых подсистем Лестничный график Планировщика Логики вызывает во время каждого временного шага.

    Совет

    Если вы сохраняете график закрытым, симуляция запускается намного быстрее. Для других советов смотрите, Ускоряют Симуляцию.