Задайте размер вектора режима блока
int_T ssSetNumModes(SimStruct *S, int_T nModes)
S
SimStruct, представляющий Блок s-function.
nModes
Размер вектора режима для блока представлен S
. Допустимыми значениями является 0
, положительное целое число или DYNAMICALLY_SIZED
.
Количество режимов задано nModes
, или -1
если DYNAMICALLY_SIZED
.
Устанавливает размер вектора режима блока к nModes
. Элементы вектора режима инициализируются к NULL
пока значения не присвоены с помощью ssSetModeVectorValue
или через указатель получил fromssGetModeVector
.
Если nModes
DYNAMICALLY_SIZED
, можно задать истину (положительное целое число) ширина в mdlSetWorkWidths
; в противном случае используемая ширина является шириной сигнала, проходящего через блок. Используйте этот макрос в mdlInitializeSizes
задавать количество int_T
элементы в векторе режима. Механизм Simulink® выделяет вектор режима и инициализирует его элементы к 0. Если значение по умолчанию 0 не является соответствующим, можно установить элементы массива к другим начальным значениям в mdlInitializeConditions
. Используйте ssGetModeVector
получить доступ к вектору режима.
Вектор режима, объединенный с обнаружением пересечения нулем, позволяет вам создавать блоки, которые имеют отличные рабочие режимы, в зависимости от текущих значений сигналов ввода или вывода. Например, рассмотрите блок, который выводит абсолютное значение его входа. Такой блок действует в двух отличных режимах, в зависимости от того, положителен ли его вход или отрицателен. Если вход положителен, блок выводит неизменный вход. Если вход отрицателен, блок выводит отрицание входа. Можно использовать обнаружение пересечения нулем, чтобы обнаружить, когда вход изменяет знак, и обновите одноэлементный вектор режима соответственно (например, путем установки его элемента на 0 для отрицательного входа и 1 для положительного входа). Можно затем использовать вектор режима в mdlOutputs
определить режим, в котором в настоящее время действует блок.
C, C++
Смотрите S-функцию sfun_zc.c
используемый в sfcndemo_sfun_zc
и S-функция sfun_zc_sat.c
используемый в sfcndemo_sfun_zc_sat
.