Блоки MATLAB Function позволяют вам задать пользовательскую функциональность в моделях Simulink® при помощи языка MATLAB®. Они - самый легкий способ принести код MATLAB в Simulink. блоки MATLAB Function поддерживают генерацию кода C/C++ от Simulink Coder™ и Embedded Coder®.
Используйте эти блоки в частности когда:
У вас есть существующая функция MATLAB, что модели пользовательская функциональность, или для вас было бы легко создать такую функцию.
Ваша модель требует пользовательской функциональности, которая не является или не может быть получена в Simulink графический язык.
Вы находите легче смоделировать пользовательскую функциональность при помощи функции MATLAB, чем при помощи Диаграммы Simulink.
Пользовательская функциональность, которую вы хотите смоделировать, не включает непрерывные или дискретные динамические состояния. Чтобы смоделировать динамические состояния, используйте S-функции. Смотрите Создают и Конфигурируют S-функции MATLAB.
Когда вы симулируете модель, которая содержит блок MATLAB Function, программное обеспечение генерирует двоичный код или C/C++ исполняемый файл MATLAB (MEX) код от блока и интегрирует этот код с моделью. Блок MATLAB Function использует ту же инфраструктуру в качестве MATLAB Coder, который вы используете, чтобы сгенерировать код C/C++ из кода MATLAB за пределами Simulink.
Поскольку блок MATLAB Function использует технологию генерации кода, он совместно использует много вместе с MATLAB Coder. Ограничения генерации кода C/C++ для MATLAB Coder также применяются к блокам MATLAB Function. Однако блок MATLAB Function является автономным в Simulink и не требует MATLAB Coder. Чтобы сгенерировать автономный код C/C++ из модели, которая содержит блоки MATLAB Function, используйте Simulink Coder.
Следующее описывает то, в чем можно использовать MATLAB Function в модели. Чтобы видеть, как использовать блок MATLAB Function в примере, смотрите, Создают Пользовательскую Функциональность Используя блок MATLAB function.
Блоки MATLAB Function обеспечивают интуитивный интерфейс между кодом MATLAB и моделью Simulink. Переменные ввода и вывода блока наследовали свои свойства от сигналов ввода и вывода Simulink.
По умолчанию и размер и тип сигналов ввода и вывода с блоком MATLAB Function наследованы от соответствующих Сигналов Simulink. Можно также принять решение задать размер и тип вводов и выводов явным образом в Портах и Менеджере данных или в Model Explorer. Смотрите Порты и Менеджер данных и Model Explorer.
Блоки MATLAB Function поддерживаются для генерации кода C/C++ с Simulink Coder и Embedded Coder. При помощи генерации кода на модели Simulink, которая содержит блок MATLAB Function, можно развернуть функциональность MATLAB вне среды MATLAB.
Для получения дополнительной информации о генерации кода C/C++ из модели Simulink смотрите Simulink Coder.
В блоке MATLAB Function можно только использовать подмножество функций языка MATLAB и языка, которые поддерживаются для генерации кода C/C++. Для списка функций, поддерживаемых для генерации кода, смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++. Для поддерживавших функций языка смотрите Функции языка MATLAB, Поддерживавшие для Генерации кода C/C++.
Для симуляции можно вызвать внешние функции от блока MATLAB Function. Внешние функции являются функциями, которые не поддерживаются для генерации кода C/C++, но которые могут быть отправлены среде MATLAB для выполнения в течение времени выполнения. Внешние функции выполняются в рабочей области во время симуляции модели.
Для генерации кода Simulink Coder пытается скомпилировать все функции в блоке MATLAB Function, если вы явным образом не объявляете их как значение внешних параметров. Внешние вызовы функции игнорируются из сгенерированного автономного кода, такого как автономные файлы исходного кода C/C++ или исполняемые файлы. Смотрите Разрешение Вызовов функции для Генерации кода и Объявления функций MATLAB как Внешние Функции.
От блоков MATLAB Function можно вызвать функции, определяемые в блоке Simulink Function. Можно вызвать функции Stateflow®, когда вы устанавливаете флажки Export Chart Level Functions (Make Global) и Allow exported functions to be called by Simulink в диалоговом окне свойств диаграммы. Чтобы узнать больше, как вызвать функции, определяемые в Simulink Function и блоках Stateflow, смотрите функции Simulink: Функциональный блок Simulink, экспортируемый графический Stateflow и функции MATLAB.
MATLAB Function | coder.extrinsic