Разделите свою модель Используя явное разделение

Когда у вас есть модель, которая сконфигурирована для параллельного выполнения, можно добавить задачи, создать разделы и сопоставить отдельные задачи с разделами с помощью явного разделения. Это позволяет вам выполнить различные части своей модели к различным частям вашей архитектуры. Для получения дополнительной информации смотрите Неявное и Явное Разделение Моделей.

Необходимые условия для явного разделения

Чтобы использовать явное разделение, необходимо соответствовать следующим необходимым условиям:

  1. Настройте свою модель для параллельного выполнения. Для получения дополнительной информации смотрите, Конфигурируют Вашу Модель для Параллельного выполнения.

  2. Преобразуйте все блоки на корневом уровне вашей модели в один из следующих типов блоков.

    • Модели, на которые ссылаются с помощью блоков Model

    • Блоки Subsystem

    • MATLAB® Системные блоки

    • Блоки MATLAB function

    • Stateflow® графики

    Для получения дополнительной информации смотрите Неявное и Явное Разделение Моделей.

    Примечание

    При использовании моделей, на которые ссылаются реплицируйте параметры конфигурации модели топ-модели к моделям, на которые ссылаются. Рассмотрите использование одной ссылки настройки, чтобы использовать для всех ваших моделей, на которые ссылаются. Для получения дополнительной информации смотрите Наборы конфигурации модели.

  3. Выберите целевую архитектуру, на которой можно развернуть вашу модель. Для получения дополнительной информации смотрите, Задают Целевую архитектуру.

Добавьте периодические триггеры и задачи

Добавьте периодические задачи для компонентов в вашей модели, которую вы хотите выполнить периодически. Чтобы добавить апериодические задачи, выполнение которых является базирующимся триггером, смотрите, Добавляют Апериодические Триггеры и Задачи.

Если вы хотите исследовать эффекты увеличения параллелизма на вашем выполнении модели, можно создать дополнительные периодические задачи в модели.

  1. В диалоговом окне Concurrent Execution щелкните правой кнопкой по узлу Periodic и выберите Add task.

    Узел задачи появляется в иерархии Выполнения Настройки.

  2. Выберите узел задачи и введите имя и период для задачи, затем нажмите Apply.

    Узел задачи переименован в имя, которое вы вводите.

  3. Опционально, задайте цвет для задачи. Цвет иллюстрирует отображение блока к задаче. Если вы не присваиваете цвет, Simulink® выбирает цвет по умолчанию. Если вы включаете цвета шага расчета для своей модели, программное обеспечение соблюдает установку.

  4. Нажмите Apply по мере необходимости.

Чтобы создать больше периодических триггеров, кликните по символу Add periodic trigger. Можно также создать несколько периодических триггеров с их собственными триггерными источниками.

Примечание

Периодические триггеры позволяют вам представлять несколько периодических источников прерывания, таких как несколько таймеров. Периодичность триггера является или базовой ставкой задач, которые триггер планирует, или период триггера. Передачами данных между триггерами может только быть Ensure Data Integrity Only типы. С блоками, сопоставленными с периодическими триггерами, можно только сгенерировать код для ert.tlc и grt.tlc системные конечные файлы.

Чтобы удалить задачи и триггеры, щелкните правой кнопкой по ним по панели и выберите Delete.

Когда периодические задачи и триггерные настройки завершены, конфигурируют апериодическое (прерывание) задачи по мере необходимости. Если вы не нуждаетесь в апериодических задачах, продолжаете Сопоставлять Блоки с Задачами, Триггерами и Узлами.

Добавьте апериодические триггеры и задачи

Добавьте апериодические задачи для компонентов в вашей модели, выполнение которой основано на прерывании. Чтобы добавить периодические задачи, выполнение которых является периодическим, смотрите, Добавляют Периодические Триггеры и Задачи.

  1. Чтобы создать апериодический триггер, в диалоговом окне Concurrent Execution, щелкают правой кнопкой по узлу Concurrent Execution и кликают по символу Add aperiodic trigger.

    Узел под названием Interrupt N появляется в иерархии дерева настройки, где N целое число.

  2. Выберите Interrupt.

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

  3. Задайте имя триггера и сконфигурируйте апериодический триггерный источник. В зависимости от вашей цели развертывания выберите Posix Signal (Linux/VxWorks 6.x) или Event (Windows). Для POSIX® сигналы, задайте номер сигнала, чтобы использовать для поставки апериодического события. Для Windows® события, задайте имя события.

  4. Нажмите Apply.

Программные сервисы апериодические триггеры как можно скорее. Если вы хотите обработать триггерный ответ с помощью задачи:

  1. Щелкните правой кнопкой по узлу Interrupt и выберите Add task.

    Новый узел задачи появляется под узлом Interrupt.

  2. Задайте имя нового узла задачи.

  3. Опционально, задайте цвет для задачи. Цвет иллюстрирует отображение блока к задаче. Если вы не присваиваете цвет, Simulink выбирает цвет по умолчанию.

  4. Нажмите Apply.

Чтобы удалить задачи и триггеры, щелкните правой кнопкой по ним по панели и выберите Delete.

Если вы создали свои задачи и триггеры, сопоставьте свои компоненты выполнения с этими задачами. Для получения дополнительной информации смотрите Блоки Карты к Задачам, Триггерам и Узлам.

Сопоставьте блоки с задачами, триггерами и узлами

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

  1. В диалоговом окне Concurrent Execution кликните по узлу Tasks and Mapping.

    Панель Tasks and Mapping появляется. Если вы добавляете блок Model в свою модель, новый блок появляется в таблице с записью select task под нею.

  2. Если вы хотите добавить, что задача с блоком, в столбце Name, щелкает правой кнопкой по задаче под блоком и выбирает Add new entry.

  3. Чтобы присвоить задачу для записи, кликните по полю в столбце Name и выберите запись из списка. Например:

    Символ отображения блока к задаче появляется вверху слева угол блока Model. Например:

    Если вы присваиваете блок Model нескольким задачам, несколько символов задачи отображены в верхнем левом углу.

    Чтобы отобразить диалоговое окно Concurrent Execution от блока, кликните по символу отображения блока к задаче.

  4. Нажмите Apply.

Примечание

  • Системные задачи позволяют вам выполнять отображение инкрементно. Это означает, что, если существует только один периодический триггер, Simulink присваивает любые блоки Model, блоки подсистемы или блоки MATLAB System, которые вы явным образом не сопоставили с задачей, триггером или аппаратным узлом к задаче, созданной системой. Simulink создает самое большее одну системную задачу для каждого уровня в модели. Если существует несколько периодических созданных триггеров, явным образом сопоставляют разделы блока Model, подсистемы или блоки MATLAB System к задаче, триггеру или аппаратному узлу.

  • Сопоставьте разделы блока Model, которые содержат непрерывные блоки к тому же периодическому триггеру.

  • Можно сопоставить только блоки Model с аппаратными узлами. Кроме того, если вы сопоставляете блок Model с аппаратным узлом, и блок Model содержит несколько периодических шагов расчета, снимите флажок Allow tasks to execute concurrently on target в панели Solver диалогового окна Configuration Parameters.

Когда отображение будет завершено, симулируйте модель снова.

Связанные примеры

Больше о