Функция, определенная с помощью блоков Simulink
Simulink/Пользовательские функции
SimEvents
Функциональный блок 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 Function устраняет необходимость маршрутизации входных и выходных сигнальных линий через иерархию модели.
| Признак | Блок подсистемы Function-Call | Функциональный блок Simulink |
|---|---|---|
| Метод выполнения/вызова функции | Срабатывает с помощью сигнальной линии | Вызывается по ссылке с использованием имени функции |
| Формальные входные аргументы (блоки Argument Inport) и выходные аргументы (блоки Argument Outport) | Нет | Да |
| Локальные входы (блок ввода) и выходы (блок вывода) | Да | Да |
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
[a] Фактический тип данных или поддержка возможностей зависит от реализации блока. | |