Задайте количество входов, выходов, состояний, параметров и других характеристик S-функции MATLAB
Да
MATLAB
setup(s)
s
Образец Simulink.MSFcnRunTimeBlock
класс, представляющий Блок Level-2 MATLAB S-function.
Это первые методы коллбэка S-функции, которые Simulink® вызовы двигателя.
Level-2 S-функции MATLAB setup
метод выполняет почти те же задачи, что и S-функция MEX на C
способ, с двумя существенными различиями. The mdlInitializeSizes
setup
метод не инициализирует информацию о дискретном состоянии, но он определяет шаги расчета блока, устраняя необходимость в mdlInitializeSampleTimes
способ. Используйте следующие свойства и методы объекта во время выполнения s
для конфигурирования S-функции:
Задайте количество параметров, которые поддерживает эта S-функция, используя s.NumDialogPrms
.
Использование s.DialogPrmsTunable
для установки настраиваемости каждого диалогового параметра. Когда параметр был задан как не настраиваемый, механизм Simulink выдает ошибку во время симуляции (или когда во режиме external mode при использовании продукта Simulink Coder™), если предпринята попытка изменить параметр.
Задайте количество непрерывных состояний, которые имеют эта функция, используя s.NumContStates
. Задайте информацию о дискретном состоянии в PostPropagationSetup
метод с использованием вектора DWork.
Сконфигурируйте входные порты блока, включая:
Укажите количество входа портов, которые есть у этой S-функции, используя s.NumInputPorts
.
Задайте размерности i
th
входной порт, с использованием s.InportPort
.(i
). Размерности
Если используются основанное на портах шаги расчета, задайте шаг расчета i
th
входной порт, с использованием 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
.
Задайте размерности i
th
выходной порт, с использованием s.OutputPort
.(i
). Размерности
Если используются основанное на портах шаги расчета, задайте шаг расчета i
th
выходной порт, с использованием s.OutputPort
.(i
). SampleTime
Установите основанные на блоках шаги расчета (т.е. частоты дискретизации), используя s.SampleTimes
.
Полное обсуждение шага расчета вопросов смотрите в Шаги расчета Specify S-Function.
Для многоразовых S-функций предлагаемый подход к установке шагов расчета осуществляется с помощью основанного на порте метода шагов расчета. Когда вы создаете многократную S-функцию, вы должны позаботиться о том, чтобы убедиться, что, когда более медленные задачи вытесняются, ваша S-функция правильно управляет данными, чтобы избежать условий гонки. Когда заданы шаги расчета на основе портов, блок не может наследовать время расчета Inf
в любом порте.
Смотрите Использование метода настройки для получения дополнительной информации и примеров использования setup
способ.
Можно задать параметры NumContStates
, NumDworkDiscStates
, NumInputPorts
, и NumOutputPorts
фиксированному неотрицательному целому числу или сообщите движку Simulink об их динамическом размере:
DYNAMICALLY_SIZED
- Устанавливает длины состояний, рабочих векторов и так далее на значения, унаследованные от ведущего блока. Он устанавливает ширины к фактическим входным ширинам, согласно правилам скалярного расширения, если вы не используете mdlSetWorkWidths
для задания ширины.
0
или положительное число -- Устанавливает длины (или ширины) заданные значения. Значение по умолчанию является 0
.
Simulink.BlockData
, Simulink.MSFcnRunTimeBlock
, mdlInitializeSizes
, mdlInitializeSampleTimes