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

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

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

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

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

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

  • Пользовательская функциональность, которую вы хотите смоделировать, не включает непрерывные или дискретные динамические состояния. Чтобы смоделировать динамические состояния, используйте S-функции. Смотрите Создают и Конфигурируют 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. Можно также принять решение задать размер и тип вводов и выводов явным образом в Портах и Менеджере данных или в Model Explorer. Смотрите Порты и Менеджер данных и 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, Поддерживавшие для Генерации кода C/C++.

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

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

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

Блок 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, экспортируемый графический Stateflow и функции MATLAB.

Смотрите также

|

Похожие темы