exponenta event banner

Функция симулятора

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

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

    SimEvents

  • Simulink Function block

Описание

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

Описание параметров блока см. на странице Ссылки на блок подсистемы в документации Simulink.

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

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

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

Интерфейс функции отображается на лицевой стороне блока функции Simulink. При редактировании текста блока добавляются и удаляются блоки Argument Inport и Argument Outport из определения функции. Редактирование также устанавливает параметр Function name в блоке Trigger в блоке Simulink Function.

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

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

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

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

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

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

Порты

Вход

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

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

Блоки Inport используются для получения сигналов из локальной среды.

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

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

Типы данных: 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 в блоке подсистемы предоставляет выходной порт, соответствующий аргументу out put. Порт не отображается в блоке подсистемы.

Типы данных: 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