Когда у вас есть модель, которая сконфигурирована для параллельного выполнения, можно добавить задачи, создать разделы и сопоставить отдельные задачи с разделами с помощью явного разбиения. Это позволяет выполнять различные части модели в различных частях архитектуры. Для получения дополнительной информации см. «Неявное и явное разбиение моделей».
Чтобы использовать явное разбиение, вы должны соответствовать следующим необходимым условиям:
Настройте свою модель для параллельного выполнения. Для получения дополнительной информации смотрите Настройте модель для параллельного выполнения.
Преобразуйте все блоки на корневом уровне вашей модели в один из следующих типов блоков.
Модели, на которые ссылаются с использованием блоков Model
Блоки Subsystem
MATLAB® Системные блоки
Блоки MATLAB function
Stateflow® чарты
Для получения дополнительной информации см. «Неявное и явное разбиение моделей».
Примечание
При использовании моделей-ссылок реплицируйте параметры конфигурации модели- верхнюю часть в модели-ссылки. Рассмотрите использование одной ссылки на строение для использования во всех ссылочных моделях. Для получения дополнительной информации см. раздел Наборов конфигурации модели.
Выберите целевую архитектуру, на которой можно развернуть модель. Для получения дополнительной информации смотрите Задать целевую архитектуру.
Добавьте периодические задачи для компонентов вашей модели, которые вы хотите выполнять периодически. Чтобы добавить апериодические задачи, выполнение которых основано на триггерах, смотрите Add Aperiodic Triggers and Tasks.
Если вы хотите исследовать эффекты увеличения параллелизма на выполнении модели, можно создать дополнительные периодические задачи в модели.
В диалоговом окне «Параллельное выполнение» щелкните правой кнопкой мыши узел Periodic и выберите Add task.
Узел задачи появляется в иерархии выполнения строения.
Выберите узел задачи и введите имя и период для задачи, а затем нажмите Apply.
Узел задачи переименован в имя, которое вы вводите.
Вы можете задать цвет для задачи. Цвет иллюстрирует отображение блок-задача. Если вы не назначаете цвет, Simulink® выбирает цвет по умолчанию. Если вы включаете шаг расчета цвета для вашей модели, программное обеспечение чтит настройку.
При необходимости щелкните Apply.
Чтобы создать больше периодических триггеров, щелкните символ Add periodic trigger. Можно также создать несколько периодических триггеров с их собственными источниками триггеров.
Примечание
Периодические триггеры позволяют вам представлять несколько периодических источников прерывания, таких как несколько таймеров. Периодичность триггера является либо базовой частотой задач, которые инициируют планирование, либо периодом триггера. Передача данных между триггерами может быть только Ensure Data Integrity Only
типы. С блоками, сопоставленными с периодическими триггерами, можно только сгенерировать код для ert.tlc
и grt.tlc
системные целевые файлы.
Чтобы удалить задачи и триггеры, щелкните их правой кнопкой мыши на панели и выберите Delete.
Когда периодические задачи и строения триггера завершены, сконфигурируйте апериодические (прерывания) задачи по мере необходимости. Если вам не нужны апериодические задачи, продолжите Сопоставлять блоки с Задачами, Триггерами и Узлами.
Добавьте апериодические задачи для компонентов вашей модели, выполнение которых основано на прерывании. Для добавления периодических задач, выполнение которых является периодическим, смотрите Добавление периодических триггеров и задач.
Чтобы создать апериодический триггер, в диалоговом окне «Параллельное выполнение» щелкните правой кнопкой мыши узел Concurrent Execution и выберите символ Add aperiodic trigger.
Узел с именем Interrupt N
появляется в древовидной иерархии строения, где N
- целое число.
Выберите Interrupt.
Этот узел представляет апериодический триггер для вашей системы.
Укажите имя триггера и сконфигурируйте апериодический источник триггера. В зависимости от цели развертывания выберите Posix Signal (Linux/VxWorks 6.x)
или Event (Windows)
. Для POSIX® задайте номер сигнала, который будет использоваться для доставки апериодического события. Для Windows® задайте имя события.
Нажмите Apply.
Апериодические триггеры сервисов программного обеспечения срабатывают как можно скорее. Если вы хотите обработать ответ триггера с помощью задачи:
Щелкните правой кнопкой мыши узел Interrupt и выберите Add task.
Под узлом Interrupt появится новый узел задачи.
Укажите имя нового узла задачи.
Вы можете задать цвет для задачи. Цвет иллюстрирует отображение блок-задача. Если цвет не назначен, Simulink выбирает цвет по умолчанию.
Нажмите Apply.
Чтобы удалить задачи и триггеры, щелкните их правой кнопкой мыши на панели и выберите Delete.
После создания задач и триггеров сопоставьте компоненты выполнения с этими задачами. Для получения дополнительной информации см. раздел «Сопоставление блоков с задачами», «Триггеры» и «Узлы».
После создания задач и триггеров можно явно назначить разделы этим элементам выполнения.
В диалоговом окне Параллельное выполнение щелкните узел Tasks and Mapping.
Откроется панель Tasks and Mapping. Если вы добавляете блок Model к модели, новый блок появляется в таблице с select task записью под ним.
Если необходимо добавить задачу к блоку, в Name столбце щелкните правой кнопкой мыши задачу под блоком и выберите Add new entry.
Чтобы назначить задачу для записи, щелкните поле в столбце Name и выберите запись из списка. Для примера:
Символ отображения блок-задача появляется в левом верхнем углу блока Model. Для примера:
Если вы назначаете блок Model нескольким задачам, в левом верхнем углу отображается несколько символов задачи.
Чтобы отобразить диалоговое окно Параллельное выполнение из блока, щелкните символ отображения блок-задача.
Нажмите Apply.
Примечание
Системные задачи позволяют вам выполнять отображение пошагово. Это означает, что, если существует только один периодический триггер, Simulink присваивает любые Model блоки, блоки подсистемы или блоки MATLAB System, которые вы явным образом не сопоставили с задачей, триггером или аппаратным узлом задаче, созданной системой. Simulink создает самое большее одну системную задачу для каждой скорости в модели. Если создается несколько периодических триггеров, явно сопоставьте Model блочные разделы, подсистемы или блоки MATLAB System с задачей, триггером или аппаратным узлом.
Сопоставьте Model разделы блоков, которые содержат непрерывные блоки, с тем же периодическим триггером.
Можно сопоставить только блоки Model с аппаратными узлами. Кроме того, если вы сопоставили блок Model с узлом оборудование, а блок Model содержит несколько периодических шагов расчета, снимите флажок Allow tasks to execute concurrently on target в панели Solver диалогового окна Параметры конфигурации.
Когда отображение будет завершено, моделируйте модель снова.