Для создания и конфигурирования портов ввода, setup метод должен сначала указать количество входных портов S-функции, используя объект времени выполнения NumInputPorts собственность. Далее, если все входные порты наследуют свои функциональные свойства (тип данных, размеры, сложность и режим выборки) из своих входных сигналов, включите следующую строку в setup способ:
block.SetPreCompInpPortInfoToDynamic;
Затем для каждого входного порта setup метод может указывать
Размеры входного порта с использованием block.InputPort(.n).Dimensions
Чтобы отдельно указать динамический размер входного порта, назначьте значение -1 к размерам. В этом случае можно реализовать SetInputPortDimensions способ установки размеров при распространении сигнала.
Имеет ли входной порт прямой канал, используя block.InputPort(.n).DirectFeedthrough
Порт имеет прямой канал, если вход используется в Outputs функции для вычисления выходов или следующего совпадения времени выборки. Флаг прямого канала для каждого входного порта может быть установлен на 1=yes или 0=no. Установка флага прямого прохода в 0 сообщает модулю Simulink ®, чтоu не используется для вычисления выходных данных или следующего совпадения времени выборки. Нарушение этого приводит к непредсказуемым результатам.
Тип данных входного порта с использованием block.InputPort(. См. пояснение к свойству DatataseID в n).DatatypeIDSimulink.BlockData страница ссылки на объект данных для списка допустимых идентификаторов типов данных.
Если требуется, чтобы тип данных порта зависел от типа данных порта, к которому он подключен, укажите тип данных как -1. В этом случае можно реализовать SetInputPortDataType способ установки типа данных во время распространения сигнала.
Числовой тип входного порта, если порт принимает сигналы со сложными значениями, с использованием block.InputPort(.n).Complexity
Если требуется, чтобы числовой тип порта зависел от числового типа порта, к которому он подключен, укажите числовой тип как 'Inherited'. В этом случае можно реализовать SetInputPortComplexSignal способ установки числового типа во время распространения сигнала.
Для примера конфигурирования функции Level-2 MATLAB ® S с несколькими портами ввода и вывода откройте модель.sldemo_msfcn_lms и осмотреть S-функцию adapt_lms.m.
Для создания выходных портов для Level-2 S-функций MATLAB setup метод должен сначала указать количество выходных портов S-функции, используя объект времени выполнения NumOutputPorts собственность. Далее, если все выходные порты наследуют свои функциональные свойства (тип данных, размеры, сложность и режим выборки), включите следующую строку в setup способ:
block.SetPreCompOutPortInfoToDynamic;
Сконфигурируйте порты вывода точно так же, как и порты ввода. Список свойств, которые можно указать для каждого выходного порта, заменяя его, см. в разделе Создание входных портов для Level-2 MATLAB S-Functions. OutputPort для InputPort в каждом вызове объекта времени выполнения.
Скалярное расширение входов относится концептуально к процессу расширения скалярных входных сигналов до тех же размеров, что и широкие входные сигналы, подключенные к другим входным портам S-функции. Это делается путем установки каждого элемента расширенного сигнала на значение скалярного входа.
S-функция C MEX mdlInitializeSizes способ обеспечивает скалярное расширение входов путем установки SS_OPTION_ALLOW_INPUT_SCALAR_EXPANSION опция, использование ssSetOptions.
Если вы разрабатываете маскированные мультипортовые S-функциональные блоки, количество портов которых зависит от какого-либо параметра, и хотите поместить их в библиотеку Simulink, необходимо указать, что маска изменяет внешний вид блока. Для этого выполните команду
set_param(blockname,'MaskSelfModifiable','on')
в командной строке MATLAB перед сохранением библиотеки, где blockname - полный путь к блоку. Если не указать, что маска изменяет внешний вид блока, экземпляр блока в модели возвращается к количеству портов в библиотеке при загрузке модели или обновлении связи с библиотекой.
Level-2 S-функция MATLAB | Функция MATLAB | S-функция | Построитель S-функций