Задайте количество входных параметров, выходных параметров, состояний, параметров и других характеристик S-функции MATLAB
Да
MATLAB
setup(s)
s
Экземпляр Simulink.MSFcnRunTimeBlock
класс, представляющий блок Level-2 MATLAB S-function.
Это - первые методы коллбэка 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
.
Задайте размерности i
th
входной порт, с помощью s. InputPort (
.i
Размерности
При использовании основанных на порте шагов расчета задайте шаг расчета i
th
входной порт, с помощью s. InputPort (
.i
'SampleTime'
Для каждого входного порта задайте, имеет ли он прямое сквозное соединение, с помощью s. InputPort (
.i
). DirectFeedthrough
Порт имеет прямое сквозное соединение, если вход используется в Outputs
метод, чтобы вычислить выход или следующий шаг расчета, для S-функции с переменным шагом расчета. Прямой проходной флаг для каждого входного порта может быть установлен в любой 1=yes
или 0=no
. Это должно быть установлено в 1 если вход, u
, используется в Outputs
метод. Установка прямого проходного флага к 0 говорит механизм что u
не используется в этом методе S-функции. Нарушение этого приводит к непредсказуемым результатам.
Смотрите Simulink.BlockData
и его родительские и дочерние классы для списка всех свойств и методов сопоставили с Уровнем 2 порт S-входного-параметра-функции MATLAB.
Сконфигурируйте выходные порты блока, включая:
Задайте количество выходных портов, которые блок имеет, с помощью s.NumOutputPorts
.
Задайте размерности i
th
выходной порт, с помощью s. OutputPort (
.i
Размерности
При использовании основанных на порте шагов расчета задайте шаг расчета i
th
выходной порт, с помощью s. OutputPort (
.i
'SampleTime'
Установите основанные на блоке шаги расчета (т.е. частоты дискретизации), с помощью s.SampleTimes
.
Смотрите Задают Шаги расчета S-функции для полного обсуждения проблем шага расчета.
Для многоскоростных S-функций предложенный подход к установке шагов расчета с помощью основанного на порте метода шагов расчета. Когда вы создаете многоскоростную S-функцию, необходимо заботиться, чтобы проверить, что, когда более медленные задачи вытесняются, S-функция правильно управляет данными, чтобы избежать условий состязания. Когда основанные на порте шаги расчета заданы, блок не может наследовать шаг расчета Inf
в любом порте.
Смотрите Используя Метод настройки для получения дополнительной информации и примеров с помощью setup
метод.
Можно установить параметры NumContStates
, NumDworkDiscStates
, NumInputPorts
, и NumOutputPorts
к фиксированному неотрицательному целому числу или говорят механизму Simulink измерять их динамически:
DYNAMICALLY_SIZED
- Длины наборов состояний, работайте векторы, и так далее к значениям, наследованным от ведущего блока. Это устанавливает ширины на фактические входные ширины, согласно скалярным правилам расширения, если вы не используете mdlSetWorkWidths
установить ширины.
0 или положительное число - длины Наборов (или ширины) к заданным значениям.
Значением по умолчанию является 0
.
Simulink.BlockData
, Simulink.MSFcnRunTimeBlock
, mdlInitializeSizes
, mdlInitializeSampleTimes