Разделы являются компонентами модели, которые выполняются независимо как атомарные задачи. В многозадачных моделях разделы создаются из компонентов модели. Периодические разделы планируются как функция шагов расчета в модели. В моделях экспорта функций корневые входные параметры вызова функции заданы как разделы. Этим разделам сопоставили расписание с ним, который говорит то, что приказывает, чтобы разделы выполнились.
С разделами можно разделить части модели, которой можно явным образом управлять. Можно думать о периодических разделах как о компонентах, которые запускаются на определенных уровнях в модели. Апериодические разделы являются компонентами, которые запускаются в заданные времена хита. Расписание этих разделов оказывает влияние на симуляцию и генерацию кода.
Редактор Расписания позволяет вам разделить модель и взаимодействовать с теми разделами. Редактор Расписания показывает разделы, связи между ними и порядок выполнения разделов
Существует три типа разделов:
Типы разделов | Изображение | Описание |
---|---|---|
Неявный |
| Автоматически созданный Simulink®. Блоки, запускающиеся в базовой ставке, обнаруживаются как неявный раздел. |
Периодический |
| Пользовательские разделы от атомарных подсистем и/или блоков модели. Периодические разделы могут также быть заданы экспортами функций. Эти разделы выполняются на основе их шага расчета, и таким образом их выполнение является периодическим. |
Апериодический |
| Апериодические разделы являются разделами, которые не имеют никаких ограничений и могут быть сделаны выполниться в любое время. Задайте hit times в Property Inspector Редактора Расписания, в котором вы хотите запустить апериодический раздел. |
Блоки, запускающиеся в базовой ставке в модели, показываются неявным разделом в Редакторе Расписания. Базовая ставка является самым быстрым дискретным уровнем в модели. D1 обозначает базовую ставку. Аннотация D1 также появляется в Легенде Синхронизации. Раздел D1 или неявный раздел всегда остаются первый дискретный раздел в порядке выполнения.
Разделы по умолчанию, которые уже присутствуют в модели, являются также неявными разделами.
Цвета раздела совпадают со своим уровнем.
Разделение включено только на многозадачности, моделях решателя фиксированного шага. Чтобы выбрать многозадачный режим выполнения, В выборе Решателя на панели Решателя, выбирают Type, чтобы быть Fixed-step
. Выберите Treat каждый дискретный уровень как отдельный флажок задачи на панели Решателя диалогового окна Configuration Parameters. Для получения дополнительной информации о многозадачном режиме выполнения смотрите Основанное на времени Планирование и Генерацию кода (Embedded Coder).
Как лучшая практика, включите Автоматически переход уровня указателя для установки передачи данных в панели решателя. Когда вы проверяете Автоматически переход уровня указателя на передачу данных, Simulink вставляет блоки Перехода Уровня между блоками, когда переходы уровня обнаруживаются. Simulink обрабатывает переходы уровня для асинхронных и периодических задач. Simulink добавляет скрытые блоки, сконфигурированные, чтобы гарантировать целостность данных и детерминизм для передач данных. Когда вы проверяете Обработку каждый дискретный уровень как отдельная задача, Simulink выбирает многозадачное выполнение для моделей, действующих на различных уровнях. Это также указывает, что группы блоков с тем же приоритетом выполнения обрабатываются через каждый этап симуляции (например, вычисляя выход и обновляя состояния) на основе приоритета задач.
Чтобы видеть разделы по умолчанию в Редакторе Расписания, откройте Редактор Расписания. На вкладке Modeling нажмите Schedule Editor. Обновите схему путем нажатия на значок на панели инструментов. Разделы по умолчанию в модели называются неявными разделами. Можно также создать разделы в модели через атомарную подсистему или блок модели.
В Редакторе Расписания используйте панель Manage Partitions, чтобы создать разделы. Изменения, внесенные в Manage Partitions, применяются к модели, чтобы создать разделы после обновления схемы. Manage Partitions показывает иерархию модели с блоками подсистемы и блоками модели, которые могут быть явным образом разделены.
Чтобы создать разделы из блоков подсистемы, выберите подсистемы и щелкните. Чтобы создать разделы из блоков модели, выберите блоки модели и нажатие кнопки. Введите имена раздела в столбец Partition Name и шаги расчета в столбце Sample Time. Повторите шаги для всех подсистем и блоков модели в модели, которую вы хотите разделить. Обновите схему, чтобы видеть созданные разделы в Редакторе Расписания. Разделы появляются в графике со своими выведенными зависимостями по данным и порядком выполнения.
Создание разделов с помощью панели Manage Partitions вносит изменения в параметры блока модели или подсистему.
Следование примеру показывает, как сконфигурировать модель для разделения и создать разделы из использования панели Manage Partitions в Редакторе Расписания.
Откройте модель
sldemo_fuelsys
Откройте редактор расписания
Откройте Редактор Расписания в меню Simulink View. Чтобы видеть разделы по умолчанию, нажмите Update Diagram в Редакторе Расписания. Два неявных раздела, автоматически созданные Simulink, замечены в Редакторе Расписания.
Создайте разделы
Откройте панель Manage Partitions. В панели расширьте fuel_rate_control
подсистема. Выберите airflow_calc
подсистема и нажатие кнопки. Чтобы изменить имя раздела по умолчанию и шаг расчета, кликните по имени по умолчанию и шагу расчета.
Создать раздел для fuel_calc
подсистема, выберите fuel_calc
подсистема и нажатие кнопки.
Панель Manage Partitions дает вам имена раздела по умолчанию и шаги расчета.
Обновите схему, чтобы видеть недавно созданные разделы.
Можно разделить только атомарную подсистему. Атомарная подсистема обработана Simulink как модуль при определении порядка выполнения методов блока. Чтобы создать разделы из блока атомарной подсистемы, продайтесь на аукционе диалоговое окно Parameters. Выберите Periodic partition
от выпадающего Schedule as. Дайте разделу имя и дискретный шаг расчета и нажмите ОК. Это создает явный раздел для этого блока. Чтобы видеть этот раздел в Редакторе Расписания, обновите схему. Раздел появляется в графике и в Execution Order со связями на основе сигналов в модели.
Чтобы создать разделы из блока Model, в Model events simulation, выбирают Schedule rates и Schedule Editor
от выпадающего Schedule rates with. Когда вы позволяете делить из модели, на которую ссылаются, разделы создаются из всех блоков модели, существующих в модели, на которую ссылаются. Эти разделы ограничены по объему именем блока модели. Чтобы видеть этот раздел в Редакторе Расписания, обновите схему. Разделы появляются в графике и в Execution Order со связями на основе проекта вашей модели.
В моделях экспорта функций разделы создаются из вызовов функции, существующих в модели. Чтобы создать разделы из вызовов функции в моделях экспорта функций, сошлитесь на модель экспорта функций в топ-модели. Запланируйте блок Model с помощью Редактора Расписания через параметры блоков. Разделы затем создаются из вызовов функции, и их порядок выполнения определяется Редактором Расписания.
Создайте модель экспорта функций.
Добавьте блок Model, который ссылается на модель экспорта функций.
Установите параметр, чтобы использовать, делят модель экспорта функций.
Ссылка на модель экспорта функций от блока Model позволяет вам делить вызовы функции, не изменяя саму модель. Чтобы создать модель для этого примера, смотрите, Создают Модель Экспорта функций. Функции Simulink в модели экспортов функций не могут быть запланированы и не появляются как разделы в Редакторе Расписания.
Добавьте блок модели в новую модель 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. Модель включена для разделения.
Не преобразуйте подсистему, чтобы создать модель, потому что это автоматически создает импорт.
Добавьте блоки Outport в порты output_100ms и output_10ms для сохранения данных моделирования к MATLAB®. В данном примере в export_function_model
, установите шаг расчета обоих вызовы функции к-1.
Добавьте блок Sine Wave, чтобы обеспечить ввод данных. Установите Amplitude на 2
и Sample time к 0.01
.
Чтобы разделить вызовы функции модели экспорта функций, в Block Parameters блока модели, выбирают Schedule Editor
опция от Schedule Rates with выпадающее меню.
Откройте Редактор Расписания и обновите схему, чтобы рассмотреть вызовы функции как разделы.