Разделы являются компонентами модели, которые выполняются независимо как атомарные задачи. В многозадачных моделях разделы создаются из компонентов модели. Периодические разбиения планируются как функция от шагов расчета в модели. В моделях export-function входные входы корневого вызова функции заданы как разделы. С ними связано расписание этих разделов, в котором указывается, какой порядок выполняются разделы.
С помощью разделов можно разделить части модели, которыми можно явным образом управлять. Можно думать о периодических разбиениях как о компонентах, которые запускаются с определенными скоростями в модели. Апериодические разделы являются компонентами, которые запускаются в заданное время попадания или заданные события. Расписание этих разделов имеет влияние на симуляции и генерации кода.
Редактор расписаний позволяет вам разбить модель на разделы и взаимодействовать с этими разделами. Редактор спецификаций показывает разделы, соединения между ними и порядок разделов.
Существует три типа разделов:
Типы разделов | Изображение | Описание |
---|---|---|
Неявный |
| Автоматически созданный Simulink®. Блоки, выполняемые с базовой скоростью, появляются как неявный раздел. |
Периодический |
| Пользовательские разделы из атомарных подсистем и/или блоков Model. Периодические разделы также могут быть определены экспортами функций. Эти разделы выполняются на основе их шага расчета, и, следовательно, их выполнение является периодическим. |
Апериодический |
| Апериодические разделы являются разделами, которые не имеют ограничений и могут быть выполнены в любое время. Задайте hit times в Property Inspector редактора спецификаций, при котором необходимо запустить апериодический раздел. Можно также использовать события в редакторе расписаний для планирования выполнения апериодических разделов. |
Блоки, работающие с базовой скоростью в модели, показаны как неявный раздел в редакторе расписаний. Базовая ставка является самой быстрой дискретной скоростью в модели. D1 обозначает базовую скорость. D1 аннотация также появляется в легенде по времени. D1 раздел или неявный раздел всегда остается первым дискретным разбиением в порядке.
Разделы по умолчанию, которые уже присутствуют в модели, также являются неявными разделами.
Цвета разделов соответствуют их скорости.
Разбиение разрешено только на многозадачных, шаговых и переменных моделях решателя. Чтобы выбрать режим выполнения многозадачности, В выборе решателя на панели Solver выберите Type, которая будет Fixed-step
или Variable-step
. Установите флажок Обработать каждую дискретную скорость как отдельную задачу на панели Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). Для получения дополнительной информации о режиме выполнения многозадачности смотрите Основанное на времени Планирование и Генерация кода (Embedded Coder).
В качестве наилучшей практики включите Автоматический переход скорости указателя для настройки передачи данных на панели Solver. Когда вы проверяете Автоматический указатель переход скорости для передачи данных, Simulink вставляет блоки Rate Transition между блоками, когда обнаруживаются переходы скорости. 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 панели в редакторе спецификаций.
Откройте модель.
sldemo_fuelsys
Откройте Редактор расписаний.
Откройте Редактор расписаний из меню View Simulink. Чтобы просмотреть разделы по умолчанию, нажмите кнопку Update Diagram в редакторе расписаний. Два неявных раздела, созданные автоматически Simulink, отображаются в редакторе расписаний.
Создайте разделы.
Откройте панель Manage Partitions. На панели разверните fuel_rate_control
подсистема. Выберите airflow_calc
подсистема и нажмите кнопку. Чтобы изменить имя раздела по умолчанию и шаг расчета, щелкните имя по умолчанию и шаг расчета.
Чтобы создать раздел для fuel_calc
подсистема, выберите fuel_calc
подсистема и нажмите кнопку.
Панель Manage Partitions задает имена разделов по умолчанию и шаги расчета.
Обновите схему, чтобы увидеть вновь созданные разделы.
Можно разбить только атомарную подсистему. Атомарная подсистема обрабатывается Simulink как модуль при определении порядка выполнения блочных методов. Чтобы создать разделы из блока атомарной подсистемы, перейдите в диалоговое окно Параметры Блоков. Выберите Periodic partition
из раскрывающегося списка Schedule as. Дайте разделу имя и дискретный шаг расчета и нажмите OK. Это создает явный раздел для этого блока. Чтобы увидеть этот раздел в редакторе расписаний, обновите схему. Разбиение появляется в графике и в Order с соединениями, основанными на сигналах в модели.
Чтобы создать разделы из блока Model, в Model events simulation выберите Schedule rates и Schedule Editor
из раскрывающегося списка Schedule rates with. Когда вы включаете секционирование из ссылочной модели, разделы создаются из всех блоков Model, имеющихся в ссылочной модели. Эти разделы ограничены именем блока модели. Чтобы увидеть этот раздел в редакторе расписаний, обновите схему. Разделы появляются в графике и в Order столбце с соединениями, основанными на проекте вашей модели.
В моделях export-function разделы создаются из вызовов функций, присутствующих в модели. Чтобы создать разделы из вызовов функций в моделях export-function, ссылайтесь на модель export-function в верхней модели. Планируйте блок Model с помощью Редактора расписаний через параметры блоков. Затем из вызовов функций создаются разделы, порядок которых определяется редактором расписаний.
Создайте модель экспорта функций.
Добавьте блок Model, который ссылается на модель экспорта функций.
Установите параметр, чтобы разбить модель экспорта функций.
Ссылка на модель export-function из блока Model позволяет вам разбивать вызовы функций, не меняя саму модель. Чтобы создать модель для этого примера, см. Раздел «Создание модели экспорта функций». Функции Simulink в модели export-functions не могут быть запланированы и не отображаться как разделы в редакторе расписаний.
Добавьте блок модели к новой модели Simulink. В Model name поле введите export_function_model
. Чтобы включить использование редактора расписаний, сконфигурируйте модель как многозадачную. Откройте Параметры конфигурации модели. В Solver selection на панели Solver установите значение Type Fixed-step
. Проверьте параметры Treat each discrete rate as a separate task и Automatically handle rate transition for data transfer. Нажмите OK. Модель включена для разбиения.
Примечание
Не преобразуйте подсистему в модель, потому что она автоматически создает блоки Inport.
Добавьте Outport блоки к output_100ms и output_10ms портам для сохранения данных моделирования в MATLAB®. В данном примере в export_function_model
установите значение шага расчета для обоих вызовов функции равным -1.
Добавьте блок Sine Wave, чтобы обеспечить вход данных. Установите Amplitude значение 2
и Sample time к 0.01
.
Чтобы разбить вызовы функций модели экспорта функций, в Параметры блоков блока модели выберите Schedule Editor
опция из раскрывающегося меню Schedule Rates with.
Откройте Редактор расписаний и обновите схему, чтобы увидеть вызовы функций как разделы.