exponenta event banner

Функциональные блоки Simulink в ссылочных моделях

В ссылочную модель можно поместить блоки функций Simulink и вызывающих абонентов функций (например, блоки вызывающих функций и диаграммы Stateflow ®), но это требует некоторых особых соображений:

  • Ссылочная модель должна следовать правилам модели export-function. См. раздел Обзор моделей Export-Function.

  • Иногда необходимо явно определить типы данных аргументов для блока вызывающей функции.

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

Функциональный блок Simulink в ссылочной модели

В этом примере родительская модель содержит блок вызова функции и ссылочную модель. Model_B, содержит функциональный блок Simulink. Model_B должны следовать правилам модели экспорта-функции.

Блок вызова функции может определять типы данных аргумента функции. В блоке Function Caller не требуется определять параметры Input argument specification и Output argument specification.

Но поскольку по умолчанию область действия блока Simulink Function определяется моделью, необходимо определить вызов имени функции с именем блока Model.

Сведения об открытии завершенной модели см. в разделе ex_referenced_model_with_simulink_function_block.

Model_B содержит блок Simulink Function, который определяет функцию для умножения ввода на 2. Поскольку эта модель содержит только блок Simulink Function, она удовлетворяет правилам модели export-function. См. раздел Обзор моделей Export-Function.

Для Model_B, задайте Параметры конфигурации (Configuration Parameters) для решателя в соответствии с правилами модели export-function:

  • Тип: Fixed-step.

  • Решатель: discrete (no continuous states).

Функциональный блок Simulink в ссылочной модели размещен в подсистеме

Как только функциональный блок Simulink будет определен как глобальный, установив видимость функции как global, нет ограничений на размещение этой ссылочной модели.

Например, можно разместить Model_B с функциональным блоком Simulink в блоке Subsystem.

Блок вызывающего абонента функции в ссылочной модели

В этом примере родительская модель содержит блок функции Simulink и ссылочную модель. Model_A, содержит блок вызывающего абонента функции. Если вы хотите использовать этот паттерн моделирования, параметр видимости функции для блока порта триггера в блоке функции Simulink должен быть установлен в global.

Для родительской модели задайте для типа решателя значение Variable-step или Fixed-step.

Сведения об открытии завершенной модели см. в разделе ex_referenced_model_with_function_caller_block.

Model_A содержит блок вызывающего абонента функции.

Поскольку блок вызывающего абонента функции не может найти функцию в Model_A, необходимо установить для параметра видимости Function для блока Trigger значение global и укажите параметры аргумента блока вызывающей функции:

  • Спецификация входных аргументов: Укажите, чтобы соответствовать типам данных входных аргументов блока Simulink Function, например: double(1.0).

    Укажите спецификацию аргумента для блока Simulink Function с параметром Data type в блоках Input Argument и Output Argument.

  • Спецификация выходного аргумента: Укажите, чтобы соответствовать типам данных выходного аргумента блока Simulink Function, например: double(1.0).

Блоки вызывающих абонентов функций и функций в отдельных ссылочных моделях

В этом примере родительская модель содержит две ссылочные модели. Model_A является ссылочной моделью с блоком вызывающей функции. Model_B является ссылочной моделью с функциональным блоком Simulink. Только Model_B с блоком Simulink Function должен следовать правилам export-function.

Для Model_A, укажите спецификацию аргумента для ссылочной модели в блоке вызывающего абонента функции в ссылочной модели. Для Model_Bукажите параметры ссылочной модели в функциональном блоке Simulink в ссылочной модели.

Сведения об открытии завершенной модели см. в разделе ex_referenced_model_with_simulink_function_and_function_caller.

Model_A содержит блок вызывающего абонента функции. Если для функции установлено значение globalопределите параметры Input и Output Argument Specification. Если для функции установлено значение scoped, укажите имя файла, а не имя блока модели, в которой функция должна быть разрешена как y = Model_B.FunctionName(u).

Model_B содержит блок Simulink Function, который определяет функцию для умножения ввода на 2. Поскольку эта модель содержит только блок Simulink Function, она удовлетворяет правилам модели export-function. См. раздел Обзор моделей Export-Function.

Вызывающий абонент функции и функции в одной модели

В этом примере родительская модель содержит одну ссылочную модель. Model_C, как с блоком вызова функции, так и с функциональным блоком Simulink.

  • Если существует только один экземпляр Model_C, а для параметра конфигурации Общее число экземпляров, разрешенных для модели верхнего уровня, установлено значение Oneродительская модель моделируется без ошибок. С тех пор Model_C не экспортирует функцию, она не должна следовать правилам export-function.

  • Если для параметра конфигурации Общее число экземпляров, разрешенных для модели верхнего уровня, задано значение Multiple, Model_C экспортирует функцию независимо от наличия одного экземпляра или нескольких экземпляров модели. В обоих случаях Simulink отображает ошибку. Модель должна следовать правилам export-function, но не потому, что блок вызывающей функции не разрешен на верхнем уровне модели export-function.

Model_C содержит как блок вызова функции, так и блок функции Simulink. Если вы хотите использовать этот образец моделирования, только один экземпляр Model_C допускается в родительской модели.

См. также

Блоки

Связанные темы