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