exponenta event banner

Моделирование для однозадачного выполнения

Однозадачный режим

Код модели можно выполнить строго однозадачным способом. Хотя этот режим менее эффективен с точки зрения скорости выполнения, в определенных ситуациях он может упростить модель.

В режиме однозадачности базовая частота дискретизации должна определять интервал времени, который является достаточно длинным для выполнения всех блоков в пределах этого интервала.

На следующем рисунке показана неэффективность выполнения одной задачи.

Для выполнения однозадачной системы требуется базовая частота выборки, достаточная для выполнения одного шага всей модели.

Создание программы для однозадачного выполнения

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

  • Если модель содержит один образец времени

  • Если модель содержит время непрерывной и дискретной выборки и фиксированный размер шага равен времени дискретной выборки

Однозадачное выполнение

В этом примере рассматривается выполнение простой многоскоростной модели как в режиме реального времени, так и в режиме моделирования с использованием решателя с фиксированным шагом. Он учитывает работу в однозадачном и многозадачном режимах, что определяется настройкой параметра конфигурации модели Рассматривать каждую дискретную скорость как отдельную задачу.

Пример модели показан на следующем рисунке. Обсуждение относится к шести блокам модели от A до F, обозначенным на блок-схеме.

Порядок выполнения блоков (указанных в верхнем правом углу каждого блока) был принудительно введен в показанный порядок путем назначения более высоких приоритетов блокам F, E и D. Показанный порядок является одним из возможных действительных порядков выполнения для этой модели. Дополнительные сведения см. в разделе Фазы моделирования в динамических системах.

Порядок выполнения определяется зависимостями данных между блоками. В системе реального времени порядок выполнения определяет порядок выполнения блоков в пределах заданного временного интервала или задачи. В этом обсуждении порядок выполнения модели рассматривается как заданный, поскольку речь идет о назначении вычислений блоков задачам и планировании выполнения задач.

Примечание

Обсуждение и временные диаграммы в этом разделе основаны на предположении, что блоки Rate Transition используются в режиме по умолчанию (защищенном), при этом выбраны параметры блока Обеспечение целостности данных при передаче данных и Обеспечение детерминированной передачи данных (максимальная задержка).

В этом примере рассматривается выполнение вышеописанной модели, когда параметр конфигурации модели «Рассматривать каждую дискретную скорость как отдельную задачу» очищается, что указывает на режим однозадачности.

В однозадачной системе, если выбран параметр конфигурации модели Сокращение блока (Block reduction), блоки быстрого-медленного перехода скорости оптимизируются вне модели. Отображается вариант по умолчанию (параметр Block reduction selected), поэтому блок B не отображается на диаграммах синхронизации в этом разделе. Дополнительные сведения см. в разделе Сокращение блоков.

В следующей таблице показано, для каждого блока модели, порядок выполнения, время выборки и имеет ли блок вывод или обновление вычислений. Блок А не имеет дискретных состояний и, соответственно, не имеет вычислений обновления.

Порядок выполнения и время выборки (однозадачность)

Блоки
(в исполнительном заказе)

Время выборки
(в секундах)

Продукция

Обновление

E

0.1

Y

Y

F

0.1

Y

Y

D

1

Y

Y

A

0.1

Y

N

C

1

Y

Y

Однозадачное выполнение в реальном времени

На следующем рисунке показано планирование вычислений при развертывании сгенерированного кода в системе реального времени. Генерируемая программа показана работающей в режиме реального времени под управлением прерываний от таймера 10 Гц.

В момент времени 0,0, 1,0 и каждую секунду после этого и медленный, и быстрый блоки выполняют свои выходные вычисления; затем следуют вычисления обновления для блоков, которые имеют состояния. В пределах заданного временного интервала выходные и обновленные вычисления упорядочиваются в порядке выполнения блока.

Быстрые блоки выполняются на каждом делении, с интервалом 0,1 секунды. Выходные вычисления сопровождаются вычислениями обновления.

Система тратит некоторую часть каждого временного интервала (с пометкой «ожидание») на холостой ход. В течение интервалов, когда выполняются только быстрые блоки, большая часть интервала расходуется на холостой ход. Это иллюстрирует присущую неэффективность режима однозадачности.

Смоделированное однозадачное выполнение

На следующем рисунке показано выполнение модели во время цикла моделирования Simulink ® .

Поскольку время моделируется, размещение засечек представляет итерации цикла моделирования. Блоки выполняются точно в том же порядке, что и на предыдущем рисунке, но без ограничения часов реального времени. Поэтому между моделируемыми периодами выборки нет времени простоя.

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