Создайте разделы

Разделение модели

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

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

Редактор Расписания позволяет вам разделить модель и взаимодействовать с теми разделами. Редактор Расписания показывает разделы, связи между ними и порядок разделов.

Существует три типа разделов:

Типы разделовИзображениеОписание
Неявный

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

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

Апериодические разделы являются разделами, которые не имеют никаких ограничений и могут быть сделаны выполниться в любое время. Задайте hit times в Property Inspector Редактора Расписания, в котором вы хотите запустить апериодический раздел.

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

Разделы по умолчанию, которые уже присутствуют в модели, являются также неявными разделами.

Цвета раздела совпадают со своим уровнем.

Создайте разделы из основанной на уровне модели

Разделение включено только на многозадачности, моделях решателя фиксированного шага. Чтобы выбрать многозадачный режим выполнения, В выборе Решателя на панели Solver, выбирают Type, чтобы быть Fixed-step. Выберите Treat каждый дискретный уровень как отдельный флажок задачи на панели Решателя диалогового окна Configuration Parameters. Для получения дополнительной информации о многозадачном режиме выполнения смотрите Основанное на времени Планирование и Генерацию кода (Embedded Coder).

Как лучшая практика, включите Автоматически переход уровня указателя для установки передачи данных в панели Solver. Когда вы проверяете Автоматически переход уровня указателя на передачу данных, Simulink вставляет блоки Перехода Уровня между блоками, когда переходы уровня обнаруживаются. Simulink обрабатывает переходы уровня для асинхронных и периодических задач. Simulink добавляет скрытые блоки, сконфигурированные, чтобы гарантировать целостность данных и детерминизм для передач данных. Когда вы проверяете Обработку каждый дискретный уровень как отдельная задача, Simulink выбирает многозадачное выполнение для моделей, действующих на различных уровнях. Это также указывает, что группы блоков с тем же приоритетом выполнения обрабатываются через каждый этап симуляции (например, вычисляя выход и обновляя состояния) на основе приоритета задач.

Чтобы видеть разделы по умолчанию в Редакторе Расписания, откройте Редактор Расписания. На вкладке Modeling нажмите Schedule Editor. Обновите схему путем нажатия на значок на панели инструментов. Разделы по умолчанию в модели называются неявными разделами. Можно также создать разделы в модели через атомарную подсистему или блок модели.

Создайте разделы Используя, управляют разделами

В Редакторе Расписания используйте панель Manage Partitions, чтобы создать разделы. Изменения, внесенные в Manage Partitions, применяются к модели, чтобы создать разделы после обновления схемы. Manage Partitions показывает иерархию модели с блоками Subsystem и блоками Model, которые могут быть явным образом разделены.

Чтобы создать разделы из блоков Subsystem, выберите подсистемы и щелкните. Чтобы создать разделы из блоков Model, выберите блоки Model и нажатие кнопки. Введите имена раздела в столбец Partition Name и шаги расчета в столбце Sample Time. Повторите шаги для всех подсистем и блоков Model в модели, которую вы хотите разделить. Обновите схему, чтобы видеть созданные разделы в Редакторе Расписания. Разделы появляются в графике со своими выведенными зависимостями по данным и порядком.

Примечание

Создание разделов с помощью панели Manage Partitions вносит изменения в параметры блока модели или подсистему.

Следующий пример показывает, как сконфигурировать модель для разделения и создать разделы при помощи панели Manage Partitions в Редакторе Расписания.

  1. Откройте модель.

    sldemo_fuelsys
  2. Откройте редактор расписания.

    Откройте Редактор Расписания в меню Simulink View. Чтобы видеть разделы по умолчанию, нажмите Update Diagram в Редакторе Расписания. Два неявных раздела, автоматически созданные Simulink, замечены в Редакторе Расписания.

  3. Создайте разделы.

    Откройте панель Manage Partitions. В панели расширьте fuel_rate_control подсистема. Выберите airflow_calc подсистема и нажатие кнопки. Чтобы изменить имя раздела по умолчанию и шаг расчета, кликните по имени по умолчанию и шагу расчета.

    Создать раздел для fuel_calc подсистема, выберите fuel_calc подсистема и нажатие кнопки.

    Панель Manage Partitions дает вам имена раздела по умолчанию и шаги расчета.

    Обновите схему, чтобы видеть недавно созданные разделы.

Создайте разделы из блоков атомарной подсистемы

Можно разделить только атомарную подсистему. Атомарная подсистема обработана Simulink как модуль при определении порядка выполнения методов блока. Чтобы создать разделы из блока атомарной подсистемы, продайтесь на аукционе диалоговое окно Parameters. Выберите Periodic partition от выпадающего Schedule as. Дайте разделу имя и дискретный шаг расчета и нажмите ОК. Это создает явный раздел для этого блока. Чтобы видеть этот раздел в Редакторе Расписания, обновите схему. Раздел появляется в графике и в Order со связями на основе сигналов в модели.

Создайте разделы из блоков Model

Чтобы создать разделы из блока Model, в Model events simulation, выбирают Schedule rates и Schedule Editor от выпадающего Schedule rates with. Когда вы позволяете делить из модели, на которую ссылаются, разделы создаются из всех блоков Model, существующих в модели, на которую ссылаются. Эти разделы ограничены по объему именем блока модели. Чтобы видеть этот раздел в Редакторе Расписания, обновите схему. Разделы появляются в графике и в столбце Order со связями на основе проекта вашей модели.

Разделы экспорта функций

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

  1. Создайте модель экспорта функций.

  2. Добавьте блок Model, который ссылается на модель экспорта функций.

  3. Установите параметр, чтобы разделить модель экспорта функций.

Ссылка на модель экспорта функций от блока Model позволяет вам делить вызовы функции, не изменяя саму модель. Чтобы создать модель для этого примера, смотрите, Создают Модель Экспорта функций. Функции Simulink в модели экспортов функций не могут быть запланированы и не появляются как разделы в Редакторе Расписания.

  1. Добавьте блок модели в новую модель Simulink. В поле Model name введите export_function_model. Чтобы включить использование Редактора Расписания, сконфигурируйте модель, чтобы быть многозадачностью. Откройте Параметры конфигурации Модели. В Solver selection на панели Solver, набор Type к Fixed-step. Проверяйте параметры Automatically handle rate transition for data transfer и Treat each discrete rate as a separate task. Нажмите OK. Модель включена для разделения.

    Примечание

    Не преобразуйте подсистему, чтобы создать модель, потому что это автоматически создает блоки Inport.

  2. Добавьте блоки Outport в порты output_100ms и output_10ms для сохранения данных моделирования к MATLAB®. В данном примере в export_function_model, установите шаг расчета обоих вызовы функции к-1.

  3. Добавьте блок Sine Wave, чтобы обеспечить ввод данных. Установите Amplitude на 2 и Sample time к 0.01.

  4. Чтобы разделить вызовы функции модели экспорта функций, в Параметрах блоков блока модели, выбирают Schedule Editor опция от Schedule Rates with выпадающее меню.

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

Смотрите также

Похожие темы