настройка

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

Необходимый

Да

Язык

MATLAB

Синтаксис

setup(s)

Аргументы

s

Экземпляр класса Simulink.MSFcnRunTimeBlock, представляющего Уровень 2 Блок s-function MATLAB.

Описание

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

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

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

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

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

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

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

    • Задайте размерности входного порта th i, с помощью s.InputPort(i).Dimensions Размерности.

    • При использовании основанных на порте частот дискретизации задайте частоту дискретизации входного порта th i, с помощью s.InputPort(i).SampleTime 'SampleTime' .

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

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

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

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

    • Задайте количество выходных портов, которые блок имеет, с помощью s.NumOutputPorts.

    • Задайте размерности выходного порта th i, с помощью s.OutputPort(i).Dimensions Размерности.

    • При использовании основанных на порте частот дискретизации задайте частоту дискретизации выходного порта th i, с помощью s.OutputPort(i).SampleTime 'SampleTime' .

  • Установите основанные на блоке частоты дискретизации (i. e., частоты дискретизации), с помощью s.SampleTimes.

    Смотрите Задают Частоты дискретизации S-функции для полного обсуждения проблем частоты дискретизации.

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

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

Динамически измеренные блочные функции

Можно установить параметры NumContStates, NumDiscStates, NumInputs, NumOutputs, NumRWork, NumIWork, NumPWork, NumModes и NumNonsampledZCs к фиксированному неотрицательному целому числу или сказать механизму Simulink измерять их динамически:

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

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

Представленный в R2012b

Была ли эта тема полезной?