MATLAB® Функциональный блок позволяет вам использовать язык MATLAB для определения пользовательских функциональных возможностей. Эти блоки являются хорошей начальной точкой для создания пользовательского блока, если:
У вас есть функция MATLAB, которая моделирует пользовательскую функциональность.
Вы находите, что проще смоделировать пользовательскую функциональность с помощью функции MATLAB, чем с помощью Simulink® блок.
Пользовательская функциональность не включает непрерывные или дискретные динамические состояния.
Можно создать пользовательский блок из функции MATLAB с помощью одного из следующих типов блоков MATLAB function.
Блок Interpreted MATLAB Function позволяет вам использовать функцию MATLAB для определения блока SISO.
Блок MATLAB Function позволяет вам задать пользовательский блок с несколькими входами и выходами, которые можно развернуть на встраиваемом процессоре.
Каждый из этих блоков имеет преимущества в конкретных приложениях моделирования. Для примера можно сгенерировать код из моделей, содержащих блоки MATLAB Function.
Блок MATLAB System позволяет вам использовать Системные объекты, написанные на языке MATLAB, для определения пользовательских функций. Эти блоки являются хорошей начальной точкой для создания пользовательского блока, если:
У вас есть существующая системная object™, которая моделирует пользовательские функции.
Вам легче смоделировать пользовательские функциональности с помощью языка MATLAB, чем с помощью Диаграммы Simulink.
Пользовательская функциональность включает дискретные динамические состояния.
Блоки Subsystem позволяют вам создать схему Simulink, чтобы задать пользовательские функциональности. Эти блоки служат хорошей начальной точкой для создания пользовательского блока, если:
У вас есть существующая схема Simulink, которая моделирует пользовательские функциональности.
Вы находите, что легче смоделировать пользовательские функции с помощью графического представления, а не с помощью рукописного кода.
Пользовательская функциональность является функцией непрерывных или дискретных состояний системы.
Можно смоделировать пользовательские функции, используя существующие блоки Simulink.
Если у вас есть подсистема Simulink, которая моделирует необходимое поведение, можно преобразовать его в пользовательский блок путем:
Маскирование блока, чтобы скрыть содержимое блока и предоставить диалоговое окно пользовательского блока.
Размещение блока в библиотеке, чтобы запретить изменения и позволить легко обновлять копии блока.
Для получения дополнительной информации смотрите Пользовательские библиотеки и Создать маски блоков.
Блок C Caller позволяет вам интегрировать код С в блоки Simulink. Эти блоки служат хорошей начальной точкой для создания пользовательского блока, если:
У вас есть Коды С, которые модели пользовательские функции.
Ваши функции C не читают и не записывают глобальные/статические переменные.
Вы хотите, чтобы блоки легко интегрировались с другими функциями Simulink, такими как Simulink Coverage™, Simulink Test™ и Simulink Coder™.
Вы не моделируете динамические системы.
Блок C Function позволяет вам интегрировать код С в блоки Simulink. Эти блоки служат хорошей начальной точкой для создания пользовательского блока, если:
У вас есть Коды С, которые модели пользовательские функции.
Вы хотите вызвать несколько функций C из блока или вызвать функции C по условию.
Необходимо включить код С для предварительной обработки и постпроцессной обработки данных до и после вызова функций C.
Вы хотите задать другой код для симуляции и генерации кода.
Вы не моделируете динамические системы с непрерывными состояниями.
Блоки s-function позволяют вам записать MATLAB, C или Код С++ для определения пользовательских функций. Эти блоки служат хорошей начальной точкой для создания пользовательского блока, если:
У вас есть MATLAB, C или Код С++, которые модели пользовательские функции.
Вы используете непрерывные или дискретные динамические состояния или другое поведение системы, которое требует доступа к S-функции API.
Вы не можете смоделировать пользовательские функции, используя существующие блоки Simulink.
Можно создать пользовательский блок из S-функции с помощью одного из следующих типов Блоков s-function.
Блок Level-2 MATLAB S-Function позволяет вам записать S-функцию с помощью языка MATLAB. (См. Запись Level-2 MATLAB S-Functions). Отлаживать S-функцию MATLAB можно во время симуляции с помощью отладчика MATLAB.
Блок S-Function позволяет вам записать S-функцию на C или C++ или включить существующий код в модель с помощью обертки C MEX. (См. «Реализация функций C/C + + S».)
Блок S-Function Builder помогает вам в создании S-функции C MEX или функции-оболочки для включения устаревшего кода C or C++. (См. «Реализация функций C/C + + S».)
Legacy Code Tool преобразует существующие функции C или C++ в S-функции на C MEX. (См. «Интеграция функций C с помощью Legacy Code Tool».)
Цель S-функции в продукте Simulink Coder автоматически генерирует S-функцию C MEX из графической подсистемы. Если вы хотите построить свой пользовательский блок в подсистеме Simulink, но реализуете окончательную версию блока в S-функции, можно использовать цель S-функции, чтобы преобразовать подсистему в S-функцию. Смотрите Accelerate Simulation, Reuse Code или Protect Intellectual Property путем использования S-Function Target (Simulink Coder) в Руководстве пользователя Simulink Coder для получения подробной информации и ограничений на использование S-функции.
Можно настроить любой блок, добавив к нему маску. Маска является пользовательским интерфейсом к блоку. Вы можете настроить блок с помощью маски многими способами, такими как:
Измените внешний вид блока.
Скрыть некоторые или все параметры от пользователя блока.
Настройте параметры блоков.
Дополнительные сведения о маскированных блоках см. в разделе «Создание маск блоков».
C Caller | C Function | Interpreted MATLAB Function | Level-2 MATLAB S-Function | MATLAB Function | MATLAB System | S-Function | S-Function Builder | Simulink Function | Subsystem