Создайте входные и выходные порты

Создание входных портов для Level-2 S-функций MATLAB

Чтобы создать и сконфигурировать входные порты, setup метод должен сначала задать количество входных портов S-функции, используя объект времени выполнения NumInputPorts свойство. Затем, если все входные порты наследуют свои функциональные свойства (тип данных, размерности, сложность и режим дискретизации) от их входных сигналов, включите следующую линию в setup метод:

block.SetPreCompInpPortInfoToDynamic;

Затем для каждого входного порта setup метод может задать

  • Размерности входного порта, используя блок. Inport (n). Размерности.

    Чтобы индивидуально указать, что размерности входного порта динамически определяются, присвойте значение -1 к размерностям. В этом случае можно реализовать SetInputPortDimensions способ установки размерностей при распространении сигнала.

  • Имеет ли порт входа прямые сквозные соединения, использование блока. Inport (n). DirectFeedthrough.

    Порт имеет прямое сквозное соединение, если вход используется в Outputs функции для вычисления выходов или следующего шага расчета. Флаг прямой передачи для каждого входного порта может быть установлен на любое 1=yes или 0=no. Установка флага прямой передачи на 0 сообщает Simulink® двигатель, который u не используется для вычисления выходов или следующего шага расчета. Нарушение этого приводит к непредсказуемым результатам.

  • Тип данных входного порта, используя блок. Inport (n). DatatypeID. См. объяснение свойства DatatypeID в Simulink.BlockData страница с описанием объекта данных для списка допустимых идентификаторов типов данных.

    Если необходимо, чтобы тип данных порта зависел от типа данных порта, к которому он подключен, укажите тип данных следующим -1. В этом случае можно реализовать SetInputPortDataType метод для установки типа данных во время распространения сигнала.

  • Числовой тип входного порта, если порт принимает комплексные сигналы, используя блок. Inport (n). Сложность.

    Если необходимо, чтобы числовой тип порта зависел от числового типа порта, к которому он подключен, задайте числовой тип следующим 'Inherited'. В этом случае можно реализовать SetInputPortComplexSignal метод для установки числового типа во время распространения сигнала.

Для примера, который конфигурирует Level-2 MATLAB® S-функция с несколькими входными и выходными портами, откройте модель sldemo_msfcn_lms и осмотрите S-функцию adapt_lms.m.

Создание выходных портов для Level-2 S-функций MATLAB

Чтобы создать выходные порты для 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-функции

Если вы разрабатываете маскированные мультипортовые блоки s-function, количество портов которых изменяется на основе некоторого параметра и хотите поместить их в библиотеку Simulink, необходимо указать, что маска изменяет внешний вид блока. Для этого выполните команду

  set_param(blockname,'MaskSelfModifiable','on')

в командной строке MATLAB перед сохранением библиотеки, где blockname - полный путь к блоку. Отказ, что маска изменяет внешний вид блока, означает, что экземпляр блока в модели возвращается к количеству портов в библиотеке каждый раз, когда вы загружаете модель или обновляете библиотечную ссылку.

См. также

| | |

Похожие темы