В этом примере показано, как использовать блок функции C в подсистеме For Each. Пример передает векторный сигнал в подсистему For Each, которая повторяет выполнение блока C Function на каждом элементе входного сигнала и объединяет результаты. Блок C Function вызывает функцию пользовательского кода customSaturateFcn(), который реализует алгоритм насыщения и выводит отсеченную версию входного сигнала. Блок вызывающего абонента C с теми же настройками может также использоваться вместо блока функции C в подсистеме For Each.
Этот пример иллюстрирует следующие концепции:
Вызов функции C из блока Simulink ® в подсистеме For Each.
Настройка детерминированных функций в пользовательском коде.
Эта модель вызывает пользовательский код из подсистемы For Each. При запуске модели в области отображаются выходные данные.
open_system('slexCFunctionForEach');

Откройте диалоговое окно «Параметры конфигурации».
На панели Цель моделирования (Simulation Target) в группе Импорт пользовательского кода (Import Custom Code) задайте значение функций Determinitic равным All. Этот параметр указывает модели, что все пользовательские функции кода имеют детерминированное поведение, то есть одинаковые входные значения функции всегда дают одинаковые выходные данные. Если пользовательская функция кода определена как детерминированная, ее можно безопасно вызвать из блока C Function или C Caller в подсистеме For Each. Если не все пользовательские функции кода являются детерминированными, определенные функции могут быть настроены как детерминированные с помощью опции By function. Если подсистема For Each содержит блок C Function или C Caller, вызывающий пользовательскую функцию кода, которая не определена как детерминированная, Simulink выдает ошибку.

configset.highlightParameter(bdroot,'DefaultCustomCodeDeterministicFunctions'); set_param(bdroot,'DefaultCustomCodeDeterministicFunctions','All');
Моделирование модели и просмотр результатов.
sim(bdroot);
open_system('slexCFunctionForEach/Scope');

Вызывающий абонент C | Функция C | Детерминированные функции | Для каждой подсистемы | Указать по функции