setup

Задайте количество входов, выходов, состояний, параметров и других характеристик S-функции MATLAB

Необходимый

Да

Язык

MATLAB

Синтаксис

setup(s)

Аргументы

s

Образец Simulink.MSFcnRunTimeBlock класс, представляющий Блок Level-2 MATLAB S-function.

Описание

Это первые методы коллбэка S-функции, которые Simulink® вызовы двигателя.

Level-2 S-функции MATLAB setup метод выполняет почти те же задачи, что и S-функция MEX на C mdlInitializeSizes способ, с двумя существенными различиями. The setup метод не инициализирует информацию о дискретном состоянии, но он определяет шаги расчета блока, устраняя необходимость в mdlInitializeSampleTimes способ. Используйте следующие свойства и методы объекта во время выполнения s для конфигурирования S-функции:

  • Задайте количество параметров, которые поддерживает эта S-функция, используя s.NumDialogPrms.

    Использование s.DialogPrmsTunable для установки настраиваемости каждого диалогового параметра. Когда параметр был задан как не настраиваемый, механизм Simulink выдает ошибку во время симуляции (или когда во режиме external mode при использовании продукта Simulink Coder™), если предпринята попытка изменить параметр.

  • Задайте количество непрерывных состояний, которые имеют эта функция, используя s.NumContStates. Задайте информацию о дискретном состоянии в PostPropagationSetup метод с использованием вектора DWork.

  • Сконфигурируйте входные порты блока, включая:

    • Укажите количество входа портов, которые есть у этой S-функции, используя s.NumInputPorts.

    • Задайте размерности ith входной порт, с использованием s.InportPort (i). Размерности.

    • Если используются основанное на портах шаги расчета, задайте шаг расчета ith входной порт, с использованием s.InportPort (i). SampleTime.

    • Для каждого входного порта задайте, имеет ли он прямое сквозное соединение, используя s.InputPort (i). DirectFeedthrough.

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

    Посмотрите Simulink.BlockData и его родительские и дочерние классы для списка всех свойств и методов, связанных с Level-2 входным портом S-функции MATLAB.

  • Сконфигурируйте выходные порты блока, включая:

    • Задайте количество выхода портов, которые есть у блока, используя s.NumOutputPorts.

    • Задайте размерности ith выходной порт, с использованием s.OutputPort (i). Размерности.

    • Если используются основанное на портах шаги расчета, задайте шаг расчета ith выходной порт, с использованием s.OutputPort (i). SampleTime.

  • Установите основанные на блоках шаги расчета (т.е. частоты дискретизации), используя s.SampleTimes.

    Полное обсуждение шага расчета вопросов смотрите в Шаги расчета Specify S-Function.

    Для многоразовых S-функций предлагаемый подход к установке шагов расчета осуществляется с помощью основанного на порте метода шагов расчета. Когда вы создаете многократную S-функцию, вы должны позаботиться о том, чтобы убедиться, что, когда более медленные задачи вытесняются, ваша S-функция правильно управляет данными, чтобы избежать условий гонки. Когда заданы шаги расчета на основе портов, блок не может наследовать время расчета Inf в любом порте.

Смотрите Использование метода настройки для получения дополнительной информации и примеров использования setup способ.

Динамический размер Функций

Можно задать параметры NumContStates, NumDworkDiscStates, NumInputPorts, и NumOutputPorts фиксированному неотрицательному целому числу или сообщите движку Simulink об их динамическом размере:

  • DYNAMICALLY_SIZED - Устанавливает длины состояний, рабочих векторов и так далее на значения, унаследованные от ведущего блока. Он устанавливает ширины к фактическим входным ширинам, согласно правилам скалярного расширения, если вы не используете mdlSetWorkWidths для задания ширины.

  • 0 или положительное число -- Устанавливает длины (или ширины) заданные значения. Значение по умолчанию является 0.

Введенный в R2012b