exponenta event banner

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

Создание входных портов для Level-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. См. пояснение к свойству DatataseID в Simulink.BlockData страница ссылки на объект данных для списка допустимых идентификаторов типов данных.

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

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

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

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

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

Для создания выходных портов для Level-2 S-функций MATLAB 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-функциональные блоки, количество портов которых зависит от какого-либо параметра, и хотите поместить их в библиотеку Simulink, необходимо указать, что маска изменяет внешний вид блока. Для этого выполните команду

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

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

См. также

| | |

Связанные темы