Реализация функций MATLAB с использованием блоков

MATLAB Function блоки позволяют вам задать пользовательские функциональности в Simulink® моделирует при помощи MATLAB® язык. Они - самый легкий способ привнести в Simulink код MATLAB. MATLAB Function блоки поддерживают генерацию кода C/C + + от Simulink Coder™ и Embedded Coder®.

Используйте эти блоки конкретно, когда:

  • У вас есть функция MATLAB, которая моделирует пользовательскую функциональность, или вам будет легко создать такую функцию.

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

  • Вы находите, что легче смоделировать пользовательские функциональности с помощью функции MATLAB, чем с помощью Диаграммы Simulink.

  • Пользовательская функциональность, которую вы хотите смоделировать, не включает непрерывные или дискретные динамические состояния. Чтобы смоделировать динамические состояния, используйте S-функции. См. «Создание и конфигурирование MATLAB».

Как MATLAB Function блоки Работы

Когда вы симулируете модель, которая содержит блок 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.

Simulink к MATLAB интерфейсу

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

По умолчанию и размер, и тип входа и выхода сигналов в блок MATLAB Function наследуются от соответствующих сигналов Simulink. Можно также выбрать, чтобы задать размер и тип входов и выходов явно в Ports and Data Manager или в Model Explorer. Смотрите Ports and Data Manager и Model Explorer.

Автономная генерация кода C/C + +

MATLAB Function блоки поддерживаются для генерации кода C/C + + с Simulink Coder и Embedded Coder. Используя генерацию кода на модели Simulink, которая содержит блок MATLAB Function, можно развернуть функциональность MATLAB вне окружения MATLAB.

Для получения дополнительной информации о генерации кода C/C + + из модели Simulink, см. Simulink Coder.

Язык MATLAB

В блоке MATLAB Function можно использовать только подмножество языка MATLAB и функции языка, поддерживаемые для генерации кода C/C + +. Список функций, поддерживаемых для генерации кода, см. в разделах Функции и Объекты, Поддерживаемые для Генерации кода C/C + +. Для поддерживаемых функций языка, см. Язык MATLAB Features Supported for C/C + + Генерация Кода.

Внешние функции

Для симуляции можно вызвать внешние функции из блока MATLAB Function. Внешние функции являются функциями, которые не поддерживаются для генерации кода C/C + +, но которые могут быть отправлены в окружение MATLAB для выполнения во время выполнения. Внешние функции выполняются в рабочей области во время симуляции модели.

Для генерации кода Simulink Coder пытается скомпилировать все функции в MATLAB Function блоке, если вы явным образом не объявляете их внешними. Внешние вызовы функций опускаются из сгенерированного автономного кода, такого как автономный исходный код C/C + + или исполняемые файлы. Смотрите Разрешение Вызовов Функций для Генерации Кода и Использование coder.extrinsic Конструкция.

Simulink Function блока и поддержки блоков Stateflow

Из MATLAB Function блоков можно вызвать функции, определенные в блоке Simulink Function. Можно вызвать Stateflow® функции при установке Export Chart Level Functions (Make Global) и Allow exported functions to be called by Simulink флажков в диалоговом окне Свойств графика». Чтобы узнать больше о том, как вызвать функции, определенные в блоках Simulink Function и Stateflow, смотрите функции Simulink: блок Simulink Function, экспортированные графические функции Stateflow и MATLAB.

См. также

| |

Похожие темы