Функциональный блок MATLAB® позволяет вам использовать язык MATLAB, чтобы задать пользовательскую функциональность. Эти блоки являются хорошей отправной точкой для создания пользовательского блока если:
У вас есть существующая функция MATLAB, которая моделирует пользовательскую функциональность.
Вы находите легче смоделировать пользовательскую функциональность с помощью функции MATLAB, чем использование блок-схемы Simulink®.
Пользовательская функциональность не включает непрерывные или дискретные динамические состояния.
Можно создать пользовательский блок из функции MATLAB с помощью одного из следующих типов блоков MATLAB function.
Блок Fcn позволяет вам использовать выражение MATLAB, чтобы задать единственный входной параметр, блок (SISO) единственного вывода.
Интерпретированный блок MATLAB function позволяет вам использовать функцию MATLAB, чтобы задать блок SISO.
Блок MATLAB function позволяет вам задавать пользовательский блок с несколькими вводами и выводами, которые можно развернуть на встраиваемом процессоре.
Каждый из этих блоков имеет преимущества в конкретных приложениях моделирования. Например, можно сгенерировать код от моделей, содержащих блоки MATLAB function, тогда как вы не можете сгенерировать код для моделей, содержащих блок Fcn.
Блок MATLAB System позволяет вам использовать Системные объекты, записанные с языком MATLAB, чтобы задать пользовательскую функциональность. Эти блоки являются хорошей отправной точкой для создания пользовательского блока если:
У вас есть существующая Система object™ что модели пользовательская функциональность.
Вы находите легче смоделировать пользовательскую функциональность с помощью языка MATLAB, чем использование Диаграммы Simulink.
Пользовательская функциональность включает дискретные динамические состояния.
Блоки подсистемы позволяют вам создавать схему Simulink, чтобы задать пользовательскую функциональность. Эти блоки служат хорошей отправной точкой для создания пользовательского блока если:
Вы сделали, чтобы существующий Simulink схематически изобразил это модели пользовательская функциональность.
Вы находите легче смоделировать пользовательскую функциональность с помощью графического представления вместо того, чтобы использовать рукописный код.
Пользовательская функциональность является функцией непрерывных или дискретных системных состояний.
Можно смоделировать пользовательскую функциональность с помощью существующих блоков Simulink.
Если у вас есть Подсистема Simulink, которая моделирует необходимое поведение, можно преобразовать его в пользовательский блок:
Маскирование блока, чтобы скрыть блочное содержимое и обеспечить пользовательское блочное диалоговое окно.
Размещение блока в библиотеке, чтобы запретить модификации и допускать легкое обновление копий блока.
Для получения дополнительной информации смотрите Библиотеки и Создайте Блочные Маски.
Блок C Caller позволяет вам интегрировать код С в блоки Simulink. Эти блоки служат хорошей отправной точкой для создания пользовательского блока если:
У вас есть существующий код С, это моделирует пользовательскую функциональность.
Ваши функции C не читают или пишут глобальную переменную/статические переменные.
Вы хотите, чтобы блоки легко интегрировались с другими функциями Simulink, такими как Simulink Coverage™, Simulink Test™ и Simulink Coder™.
Вы не моделируете динамические системы.
Блоки s-function позволяют вам писать MATLAB, C, или Код С++, чтобы задать пользовательскую функциональность. Эти блоки служат хорошей отправной точкой для создания пользовательского блока если:
У вас есть существующий MATLAB, C, или Код С++, это моделирует пользовательскую функциональность.
Вы используете непрерывные или дискретные динамические состояния или другое поведение системы, которое требует доступа к API S-функции.
Вы не можете смоделировать пользовательскую функциональность с помощью существующих блоков Simulink.
Можно создать пользовательский блок из S-функции с помощью одного из следующих типов Блоков s-function.
Уровень 2 Блок s-function MATLAB позволяет вам писать свою 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 или Код С++. (См. Реализацию 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-функции.
Можно настроить любой блок путем добавления маски к нему. Маска является пользовательским интерфейсом к блоку. Можно настроить блок с помощью маски во многих отношениях, такой как:
Измените блочный внешний вид.
Скройте некоторых или все параметры от пользователя блока.
Настройте блочные параметры.
Чтобы узнать больше о блоках маскированных, смотрите, Создают Блочные Маски.
@fcn | Интерпретированная функция MATLAB | Уровень 2 S-функция MATLAB | Функция MATLAB | Matlab.system | S-функция | Разработчик S-функции | Функция Simulink | Подсистема