Обеспечьте соединение для разделения строки вызова функции
Simulink / Ports & Subsystems
Блок Function-Call Split позволяет строке вызова функции переходить и соединяться с несколькими подсистемами вызова функций или моделями вызова функции.
Подсистема вызова функций или модель вызова функции, соединенная с выходным портом блока Function-Call Split, который отмечен точкой, выполняются перед подсистемами или моделями, соединенными с другими выходными портами. Если зависимости по данным между подсистемами или моделями не поддерживают заданный порядок выполнения, блок Function-Call Split возвращает ошибку. Чтобы устранить эту ошибку, считайте выбор параметра Latch input for feedback signals of function-call subsystem outputs на одном или нескольких блоках Inport моделей подсистем вызова функций вовлеченным в цикл зависимости по данным. Выбор этой опции задерживает соответствующий вызов функции, таким образом, устраняя цикл зависимости по данным.
Для модели, чтобы содержать блоки Разделения Вызова функции, необходимо установить следующую диагностику на error
: Model Configuration Parameters > Diagnostics > Connectivity > Invalid function-call connection.
Если вы выбираете образцовый пункт меню 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 не может иметь своего входа от сигнала с несколькими элементами вызова функции.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Фиксатор обратной связи вызова функции | Генератор вызова функции | Подсистема вызова функций