Чтобы создать и сконфигурировать входные порты, метод 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 не используется, чтобы вычислить выходные параметры или следующий хит частоты дискретизации. Нарушение этого приводит к непредсказуемым результатам.
Тип данных входного порта, с помощью . Смотрите объяснение свойства DatatypeID на странице с описанием объекта данных block.InputPort(n).DatatypeIDSimulink.BlockData для списка допустимых идентификаторов типа данных.
Если вы хотите, чтобы тип данных порта зависел от типа данных порта, с которым это соединяется, задайте тип данных как -1. В этом случае можно реализовать метод SetInputPortDataType, чтобы установить тип данных во время распространения сигнала.
Числовой тип входного порта, если порт принимает сигналы с комплексным знаком, с помощью .block.InputPort(n).Complexity
Если вы хотите, чтобы числовой тип порта зависел от числового типа порта, с которым это соединяется, задайте числовой тип как 'Inherited'. В этом случае можно реализовать метод SetInputPortComplexSignal, чтобы установить числовой тип во время распространения сигнала.
Для примера, который конфигурирует S-функцию Level 2 MATLAB® с несколькими портами ввода и вывода, откройте образцовый sldemo_msfcn_lms и осмотрите S-функцию adapt_lms.m m.
Чтобы создать выходные порты для Уровня 2 S-функции MATLAB, метод setup должен сначала задать количество выходных портов S-функции, с помощью свойства NumOutputPorts объекта периода выполнения. Затем, если все выходные порты наследовали свои функциональные свойства (тип данных, размерности, сложность, и режим выборки), включают следующую строку в метод setup:
block.SetPreCompOutPortInfoToDynamic;
Сконфигурируйте выходные порты точно, как вы конфигурируете входные порты. Смотрите Входные порты Создания для Уровня 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 является полным путем к блоку. Отказ указать, что маска изменяет внешний вид средних по блокам, что экземпляр блока в модели возвращается к количеству портов в библиотеке каждый раз, когда вы загружаете модель или обновляете ссылку библиотеки.
Уровень 2 S-функция MATLAB | Функция MATLAB | S-функция | Разработчик S-функции