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