Функциональный блок 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, или Код С++, это моделирует пользовательскую функциональность.
Вы используете непрерывные или дискретные динамические состояния или другое поведение системы, которое требует доступа к API S-функции.
Вы не можете смоделировать пользовательскую функциональность с помощью существующих блоков Simulink.
Можно создать пользовательский блок из S-функции с помощью одного из следующих типов Блоков s-function.
Блок Level-2 MATLAB S-Function позволяет вам писать свою S-функцию с помощью языка MATLAB. (См. Уровень 2 Записи S-функции MATLAB). Можно отладить S-функцию MATLAB во время симуляции с помощью отладчика MATLAB.
Блок S-Function позволяет вам написать свою S-функцию в C или C++, или включить существующий код в вашу модель с помощью обертки MEX C. (См. Реализацию S-функции C/C++.)
Блок S-Function Builder помогает вам в создании S-функции MEX C или функции обертки включать устаревший код C or C++. (См. Реализацию S-функции C/C++.)
Legacy Code Tool преобразовывает существующий C или функции C++ в S-функции MEX C. (См., Интегрируют Функции C Используя Legacy Code Tool.)
Цель S-функции в продукте Simulink Coder автоматически генерирует S-функцию MEX C от графической подсистемы. Если вы хотите создать свой пользовательский блок в Подсистеме Simulink, но реализовывать окончательную версию блока в S-функции, можно использовать цель S-функции, чтобы преобразовать подсистему в S-функцию. Смотрите Ускоряют Симуляцию, Код Повторного использования, или Защищают Интеллектуальную собственность при помощи Цели S-функции (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