Simulink Function

Функция, определяемая с блоками Simulink

  • Библиотека:
  • Simulink / Пользовательские Функции

    SimEvents

  • Simulink Function block

Описание

Блок Simulink Function является блоком Subsystem, предварительно сконфигурированным как начальная точка для того, чтобы графически задать функцию с блоками Simulink®. Блок обеспечивает текстовый интерфейс, чтобы функционировать вызывающие стороны. Можно вызвать блок Simulink Function из блока Function Caller, блока MATLAB Function или Stateflow® Chart (Stateflow).

Для описания параметров блоков смотрите страницу с описанием блока Subsystem в документации Simulink.

Можно визуализировать Вызовы функции Simulink в Sequence Viewer. Средство просмотра показывает, когда вызовы были выполнены с аргументом и возвращаемыми значениями. Смотрите ссылку блока Sequence Viewer (Stateflow).

Можно выбрать блок Simulink Function или Function Caller, чтобы подсветить блоки, связанные с ним.

Функциональный интерфейс

Функциональный интерфейс появляется на поверхности блока Simulink Function. Редактирование текста блока добавляет и удаляет блоки Argument Inport и блоки Argument Outport из функционального определения. Редактирование также устанавливает параметр Function name в блоке Trigger в блоке Simulink Function.

Например, ввод y = myfunction(u) на поверхности блока Simulink Function добавляет один блок Argument Inport (u) и один блок Argument Outport (y) в подсистеме.

При вызывании функции с помощью блока Function Caller параметр Function prototype в блоке Function Caller должен совпадать точно с функциональным интерфейсом, который вы задаете на блоке Simulink Function. Это соответствие включает имя функции и имена аргументов ввода и вывода. Например, блок Simulink Function и блок Function Caller оба используют имена аргумента u и y.

При вызывании функции от перехода Stateflow или метки состояния, можно использовать различные имена аргумента. Например, блок Simulink Function использует x и y аргументы, в то время как переход Stateflow использует x2 и y2 аргументы, чтобы вызвать функцию.

Подсистемы вызова функций по сравнению с функциональными блоками Simulink

В общем случае блок Function-Call Subsystem предоставляет лучшей трассируемости сигнала прямые связи сигнала, чем блок Simulink Function. В то время как блок Simulink Function избавляет от необходимости маршрутизацию сигнальных линий ввода и вывода через иерархию модели.

АтрибутБлок Function-Call SubsystemФункциональный блок Simulink
Метод выполняющейся/вызывающей функцииИнициированное использование сигнальной линииВызванный ссылкой с помощью имени функции
Формальные входные параметры (блоки Argument Inport) и выходные аргументы (блоки Argument Outport)НетДа
Локальные входные параметры (блок Inport) и выходные параметры (блок Outport)ДаДа

Порты

Входной параметр

развернуть все

Размещение блока Inport в блоке подсистемы добавляет внешний входной порт в блок Simulink Function. Метка порта совпадает с именем блока Inport.

Используйте блоки Inport, чтобы получить сигналы от окружения.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

Блок Argument Inport в блоке подсистемы обеспечивает входной порт, соответствующий входному параметру. Порт не отображен на блоке подсистемы.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

Вывод

развернуть все

Размещение блока Outport в блоке подсистемы добавляет выходной порт из блока. Метка порта на блоке подсистемы является именем блока Outport.

Используйте блоки Outport , чтобы отправить сигналы в окружение.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

Блок Argument Outport в блоке подсистемы обеспечивает выходной порт, соответствующий помещенному аргументу. Порт не отображен на блоке подсистемы.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | struct

Примеры модели

Характеристики блока

Типы данных

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | half[a] | integer[a] | single[a] | string[a]

Прямое сквозное соединение

no

Многомерные сигналы

limited[a]

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

[a]  Фактическая поддержка типа данных или возможности зависит от реализации блока.

Расширенные возможности

Введенный в R2014b