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

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

Чтобы создать и сконфигурировать входные порты, метод 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(n).DatatypeID. Смотрите объяснение свойства DatatypeID на странице с описанием объекта данных Simulink.BlockData для списка допустимых идентификаторов типа данных.

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

  • Числовой тип входного порта, если порт принимает сигналы с комплексным знаком, с помощью block.InputPort(n).Complexity.

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

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

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

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

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

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

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

Смотрите также

| | |

Похожие темы