Укажите количество входов, выходов, состояний, параметров и других характеристик S-функции MATLAB
Да
MATLAB
setup(s)
s Экземпляр Simulink.MSFcnRunTimeBlock класс, представляющий Уровень 2 MATLAB S-Function block.
Это первые S-функциональные методы обратного вызова, которые вызывает модуль Simulink ® .
S-функция Level-2 MATLAB setup метод выполняет почти те же задачи, что и S-функция C MEX способ, с двумя существенными различиями. mdlInitializeSizessetup метод не инициализирует информацию о дискретном состоянии, но задает время выборки блока, устраняя необходимость в mdlInitializeSampleTimes способ. Использовать следующие свойства и методы объекта времени выполнения s для конфигурирования S-функции:
Укажите количество параметров, поддерживаемых этой S-функцией, используя s.NumDialogPrms.
Использовать s.DialogPrmsTunable для установки настраиваемости каждого параметра диалогового окна. Если параметр был указан как не настраиваемый, модуль Simulink выдает ошибку во время моделирования (или во внешнем режиме при использовании продукта Simulink Coder™), если предпринимается попытка изменить параметр.
Укажите количество непрерывных состояний, которые имеет эта функция, используя s.NumContStates. Укажите информацию о дискретном состоянии в PostPropagationSetup с использованием вектора DWork.
Сконфигурируйте входные порты блока, включая:
Укажите количество входных портов, которые имеет эта S-функция, используя s.NumInputPorts.
Укажите размеры ith входной порт, использование s.InputPort(.i).Dimensions
При использовании времени выборки на основе порта укажите время выборки ith входной порт, использование s.InputPort(.i).SampleTime
Для каждого входного порта укажите, имеет ли он прямой канал, используя s.InputPort(.i).DirectFeedthrough
Порт имеет прямой канал, если вход используется в Outputs метод вычисления времени вывода или следующей выборки для S-функции с переменным временем выборки. Флаг прямого канала для каждого входного порта может быть установлен на 1=yes или 0=no. Он должен быть установлен в 1, если вход, u, используется в Outputs способ. Установка флага прямого прохождения в 0 указывает на то, что u не используется в этом методе S-функции. Нарушение этого приводит к непредсказуемым результатам.
Посмотрите Simulink.BlockData и его родитель и детские классы для списка всех свойств и методов связались с входным портом Уровня 2 MATLAB S-function.
Сконфигурируйте выходные порты блока, включая:
Укажите количество выходных портов, которые имеет блок, используя s.NumOutputPorts.
Укажите размеры ith выходной порт, использование s.OutputPort(.i).Dimensions
При использовании времени выборки на основе порта укажите время выборки ith выходной порт, использование 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