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

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

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

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

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

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

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

    • Блоки подсистемы

    • Блоки MATLAB® System

    • Блоки MATLABFunction

    • Графики Stateflow®

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

    Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

  4. Нажмите Apply.

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

  1. Щелкните правой кнопкой по узлу Прерывания и выберите задачу Add.

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

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

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

  4. Нажмите Apply.

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

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

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

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

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

    Задачи и Сопоставляющий панель появляются. Если вы добавляете Блок модели к своей модели, новый блок появляется в таблице с избранной записью задачи под нею.

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

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

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

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

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

  4. Нажмите Apply.

Примечание

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

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

  • Можно сопоставить только Блоки модели с аппаратными узлами. Кроме того, если вы сопоставляете Блок модели с аппаратным узлом, и Блок модели содержит несколько периодических частот дискретизации, очистите Позволить задачи выполниться одновременно на целевом флажке в панели Решателя диалогового окна Configuration Parameters.

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

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

Больше о

Была ли эта тема полезной?