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

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

Предпосылки для явного разделения

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

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

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

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

    • Блоки Subsystem

    • Блоки MATLAB® System

    • Блоки 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, которые вы явным образом не сопоставили с задачей, триггером или аппаратным узлом к задаче, созданной системой. Simulink создает самое большее одну системную задачу для каждого уровня в модели. Если существует несколько периодических созданных триггеров, явным образом сопоставляют разделы блока Model, подсистемы или Системные блоки MATLAB к задаче, триггеру или аппаратному узлу.

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

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

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

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

Больше о