Simulink® определяет порядок выполнения для компонентов модели (подсистемы и модели, на которые ссылаются).
Модели экспорта функций включают блоки Function-Call Subsystem, вызов функции блоки Model, блоки Simulink Function на корневом уровне и блоки S-Function, вызванные корнем вызова функции блоки Inport.
Корневой вызов функции блоки Inport сортируется со следующими правилами:
Сначала сравните приоритеты блока. Блок с самым высоким приоритетом (маленькое значение) сортируется перед другими.
Если приоритеты блока являются тем же самым, сравнивают их шаги расчета. Блок с более быстрым уровнем (меньшее значение шага расчета) сортируется перед другим.
Если шаги расчета являются тем же самым, сравнивают числа входного порта. Блок с меньшим номером порта сортируется перед другим.
Корневые блоки Simulink Function сортируются после корневого вызова функции блоки Inport.
Сошлитесь на модель экспорта функций в тестовой обвязке и соедините порты с блоками Function Generator.
Если вы устанавливаете флажок для параметра конфигурации Enable strict scheduling checks for referenced models, и время компиляции и проверки на этапе выполнения гарантируют, что инициаторы вызовут вызовы функции на основе предопределенного порядка планирования. Инициаторы сортируются на основе их приоритетов шага расчета. В данном примере порядок планирования и приоритеты шага расчета не соответствуют. Модель mHarness_ExpFcnMdl отображает ошибку.
Сошлитесь на модель экспорта функций в тестовой обвязке и соедините порты с блоками Function Generator.
Если вы снимаете флажок для параметра конфигурации, 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 в тестовой обвязке, которая ссылается на основанную на уровне модель или модель 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