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

Simulink® определяет отсортированный порядок для компонентов модели (подсистемы и модели, на которые ссылаются).

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

Модели экспорта функций включают блоки Подсистемы вызова функций, блоки Model вызова функции, Функциональные блоки Simulink на корневом уровне и Блоки s-function, вызванные корнем вызова функции блоки Inport.

Корневой вызов функции блоки Inport сортируется со следующими правилами:

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

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

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

Корневые Функциональные блоки Simulink сортируются после корневого вызова функции блоки Inport.

Тестовая обвязка для моделей экспорта функций со строгим планированием

Сошлитесь на модель экспорта функций в порты test harness и connect к блокам Функционального преобразователя.

Если вы выбираете Configuration Parameter Enable strict scheduling checks for referenced models, и время компиляции и проверки на этапе выполнения гарантируют, что инициаторы вызовут вызовы функции на основе предопределенного порядка планирования. Инициаторы сортируются на основе их приоритетов шага расчета. В данном примере порядок планирования и приоритеты шага расчета не соответствуют. Модель mHarness_ExpFcnMdl отображает ошибку.

Тестовая обвязка для моделей экспорта функций без строгого планирования

Сошлитесь на модель экспорта функций в порты test harness и connect к блокам Функционального преобразователя.

Если вы очищаете Параметр конфигурации, Enable struct scheduling checks for a referenced model и модель тестовой обвязки находятся в режиме взятия сигнала. Инициаторы вызова функции сортируются на основе их приоритетов шага расчета. В данном примере отсортированным порядком является FcnCallGen0p1> FcnCallGen0p2> FcnCallGen0p3> FcnCallGen0p1.

Ошибка зависимости по данным, вызванная правилами сортировки данных

Рассмотрите модель, где вывод от одного инициатора вызова функции является входом другому.

Инициатор вызова функции FcnCallGen0p3 должен быть отсортирован перед FcnCallGen0p4. Однако, потому что FcnCallGen0p4 является также источником для FcnCallGen0p3, зависимость по данным происходит, и Simulink отображает ошибку.

Тестовая обвязка для моделей с инициализирует, сброс, и отключает функциональные блоки

Если блок Model ссылается на модель, которая имеет инициализирование, сброс или оконечные порты, у инициаторов вызова функции, соединенных с этими портами, есть более высокий приоритет, чем другие входные порты вызова функции. Например, модели экспорта функций, основанные на уровне модели и модели JMAAB-B могут иметь другие входные порты вызова функции. Инициаторы вызова функции видов Simulink в выполнять приказе:

  • Инициализируйте, сбросьте, и затем отключите порты.

  • Если существует больше чем один порт сброса, инициаторы к тем портам сброса не сортируются. Например, если модель имеет, каждый инициализирует порт, управляемый блоком A, два порта сброса, управляемые блоками B и C и один оконечный порт, управляемый блоком D, то виды Simulink в порядке A, B или C, и затем D. B и C сортируются, используя общие правила сортировки.

Инициаторы для блока Model в тестовой обвязке

Добавьте порты события вызова функции в блок Model в тестовой обвязке, которая ссылается на основанную на уровне модель или модель JMAAB-B путем выбора параметра блока Model Schedule rates.

В одной модели управления задачами все дискретные уровни находятся в той же задаче. В многозадачной модели дискретные уровни с тем же значением выполняются в той же задаче. Инициаторы тестовой обвязки видов Simulink в той же задаче в следующем порядке:

  • Инициализируйте, сбросьте, и затем отключите порты.

  • Входные порты вызова функции, сопоставленные с асинхронным вызовом функции, базируются блоки Inport, если адаптированная модель является моделью JMAAB-B. Среди тех "асинхронных" входных портов вызова функции используйте приоритеты задач, заданные блоком Asynchronous Task Specification, соединенным с корневым блоком Inport вызова функции в модели, на которую ссылаются, чтобы сравнить порты. В следовать случаях не сравнивайте порты:

    • Для двух "асинхронных" входных портов вызова функции с теми же приоритетами задач.

    • Для "асинхронных" входных портов вызова функции с пустым (незаданным) приоритетом задач

  • Периодические порты ввода событий вызова функции сопоставлены с дискретными уровнями. Используйте правила пропорционального числу обращений планирования (RMS), чтобы выдержать сравнение.

В одной модели управления задачами все инициаторы находятся в той же задаче:

  • InitGen> ResetGen1 или ResetGen2> TermGen> A10aGen или A10bGen или A[]Gen> D1Gen> D2Gen

  • A10aGen или A10bGen> A20Gen

  • Мог подкачать относительное упорядоченное расположение (ResetGen1, ResetGen2) или (A10aGen, A10bGen), или (A[]Gen, A20Gen), и т.д.

В многозадачной модели инициаторы того же цвета находятся в той же задаче.

  • InitGen> D1Gen> D2Gen

  • A10aGen или A10bGen> A20Gen