Обеспечьте соединение для разделения линии вызова функции
Simulink / Ports & Subsystems
Блок Function-Call Split позволяет линии вызова функции переходить и соединяться с несколькими подсистемами вызова функций или моделями вызова функции.
Модель подсистемы вызова функций или вызова функции, соединенная с выходным портом блока Function-Call Split, который отмечен точкой, выполняется перед подсистемами или моделями, соединенными с другими выходными портами. Если зависимости по данным между подсистемами или моделями не поддерживают заданный порядок выполнения, блок Function-Call Split возвращает ошибку. Чтобы устранить эту ошибку, считайте выбор параметра Latch input for feedback signals of function-call subsystem outputs на одном или нескольких блоках Inport подсистем вызова функций или моделей вовлеченным в цикл зависимости по данным. Выбор этой опции задерживает соответствующий вызов функции, таким образом, устраняя цикл зависимости по данным.
Если вы выбираете пункт меню Display > Blocks > Sorted Execution Order модели, то порядок выполнения подсистем вызова функций, соединенных с ветвями данного сигнала вызова функции, появляется на блоках. Каждая подсистема имеет порядок выполнения формы s:[B#]
, где #
номер, который лежит в диапазоне от 0 до меньше, чем общее количество подсистем или моделей, соединенных с ветвями данного сигнала. Подсистемы выполняются в порядке возрастания на основе этого номера.
Сигнал поддержек блока Function-Call Split Маркирует Propagation.
Следующая модель показывает, как применить параметр Latch input for feedback signals of function-call subsystem outputs, чтобы работать вокруг ошибки зависимости по данным, вызванной блоком Function-Call Split. Путем включения этого параметра в f1
блок Inport подсистемы, блок Function-Call Split игнорирует зависимость по данным сигнала b. Блок повреждает цикл зависимостей по данным между подсистемами f1
и g1
. Модель достигает поведения сопоставимого вызова f1, чтобы выполниться прежде g1. Для данного шага выполнения, подсистема f1
использует g1
выведите вычисленный на предыдущем шаге выполнения.
Блок Function-Call Split имеет эти ограничения:
Все подсистемы вызова функций и модели, соединенные с данным сигналом вызова функции, должны находиться на том же невиртуальном слое иерархии модели.
Вы не можете соединить перешедшие подсистемы вызова функций или модели и их дочерние элементы непосредственно назад инициатору вызова функции.
Подсистемы вызова функций и модели, соединенные с ветвями сигнала вызова функции, не могут иметь нескольких (мультиплексированных) инициаторов.
Блок Function-Call Split не может иметь своего входа от сигнала с несколькими элементами вызова функции.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Function-Call Subsystem | Function-Call Generator | Function-Call Feedback Latch