Функциональные блоки MATLAB позволяют определять пользовательские функциональные возможности в моделях Simulink ® на языке MATLAB ®. Это самый простой способ ввести код MATLAB в Simulink. Функциональные блоки MATLAB поддерживают генерацию кода C/C + + от Simulink Coder™ и Embedded Coder ®.
Используйте эти блоки специально в следующих случаях:
Существует функция MATLAB, которая моделирует пользовательские функциональные возможности, иначе создать такую функцию будет несложно.
Для модели требуется пользовательская функциональность, которая не поддерживается или не может быть зафиксирована на графическом языке Simulink.
С помощью функции MATLAB проще моделировать пользовательские функциональные возможности, чем с помощью блок-схемы Simulink.
Пользовательские функции, которые требуется моделировать, не включают непрерывные или дискретные динамические состояния. Для моделирования динамических состояний используйте S-функции. См. раздел Создание и настройка S-функций MATLAB.
При моделировании модели, содержащей функциональный блок MATLAB, программное обеспечение генерирует двоичный код или исполняемый код C/C + + MATLAB (MEX) из блока и интегрирует этот код с моделью. Функциональный блок MATLAB использует ту же инфраструктуру, что и кодер MATLAB, который используется для генерации кода C/C + + из кода MATLAB вне Simulink.
Поскольку функциональный блок MATLAB основан на технологии генерации кода, он имеет много общего с кодером MATLAB. Ограничения генерации кода C/C + + для кодера MATLAB также применяются к функциональным блокам MATLAB. Однако функциональный блок MATLAB является автономным в Simulink и не требует кодера MATLAB. Чтобы создать автономный код C/C + + из модели, содержащей функциональные блоки MATLAB, используйте Simulink Coder.
Ниже описано, для чего в модели можно использовать функцию MATLAB. Сведения об использовании функционального блока MATLAB в примере см. в разделе Создание пользовательских функциональных возможностей с помощью функционального блока MATLAB.
Функциональные блоки MATLAB обеспечивают интуитивный интерфейс между кодом MATLAB и моделью Simulink. Входные и выходные переменные блока наследуют свои свойства от входных и выходных сигналов Simulink.
По умолчанию как размер, так и тип входных и выходных сигналов для функционального блока MATLAB наследуются из соответствующих сигналов Simulink. Можно также задать размер и тип входов и выходов явно в Диспетчере портов и данных (Ports and Data Manager) или в Обозревателе моделей (Model Explorer). См. «Диспетчер портов и данных» и «Обозреватель моделей».
Функциональные блоки MATLAB поддерживаются для генерации кода C/C + + с Simulink Coder и Embedded Coder. Создание кода в модели Simulink, содержащей функциональный блок MATLAB, позволяет развернуть функциональные возможности MATLAB вне среды MATLAB.
Дополнительные сведения о создании кода C/C + + из модели Simulink см. в разделе Кодер Simulink.
В блоке MATLAB Function можно использовать только подмножество языковых функций MATLAB, которые поддерживаются для генерации кода C/C + +. Список функций, поддерживаемых для генерации кода, см. в разделе Функции и объекты, поддерживаемые для генерации кода C/C + +. Для получения информации о поддерживаемых языковых функциях см. раздел Языковые функции MATLAB, поддерживаемые для генерации кода C/C + +.
Для моделирования можно вызвать внешние функции из функционального блока MATLAB. Внешние функции - это функции, которые не поддерживаются для генерации кода C/C + +, но которые могут быть отправлены в среду MATLAB для выполнения во время выполнения. Внешние функции выполняются в рабочей области во время моделирования модели.
При создании кода Simulink Coder пытается скомпилировать все функции в блоке MATLAB Function, если вы явно не объявите их как внешние. Внешние вызовы функций опущены из сгенерированного автономного кода, например, автономного исходного кода C/C + + или исполняемых файлов. См. раздел Разрешение вызовов функций для генерации кода и использования конструкции coder.extrinsic.
Из функциональных блоков MATLAB можно вызывать функции, определенные в функциональном блоке Simulink. Функции Stateflow ® можно вызвать при установке флажков Экспортировать функции на уровне диаграммы (Сделать глобальными) и Разрешить вызов экспортированных функций с помощью Simulink в диалоговом окне Свойства диаграммы. Дополнительные сведения о вызове функций, определенных в блоках Simulink Function и Stateflow, см. в разделе Функции Simulink: блок Simulink Function, экспортированные графические функции Stateflow и функции MATLAB.
coder.extrinsic | Сравнение функциональных возможностей пользовательских блоков | Функция MATLAB