Обеспечьте соединение для разделения линии вызова функции
Simulink/Порты и подсистемы
Блок 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 поддерживает распространение метки сигнала.
Следующая модель показывает, как применить параметр 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 не может иметь свой вход от сигнала с несколькими элементами вызова функции.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|