exponenta event banner

mdlZeroCrossings

Обновление вектора пересечения нулей

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_ZERO_CROSSINGS
void mdlZeroCrossings(SimStruct *S)

Аргументы

S

SimStruct представляет S-функциональный блок.

Описание

S-функция должна предоставлять этот необязательный метод, только если она выполняет обнаружение пересечения нуля. Реализация обнаружения пересечения нуля обычно требует использования рабочих векторов пересечения нуля и режима, чтобы определить, когда происходит пересечение нуля и как выходные сигналы S-функции должны реагировать на это событие. mdlZeroCrossings метод должен обновить вектор пересечения нулей S-функции, используя ssGetNonsampledZCs.

Вы можете использовать дополнительный mdlZeroCrossings когда ваша S-функция зарегистрировала CONTINUOUS_SAMPLE_TIME и имеет неотбранные нулевые переходы (ssGetNumNonsampledZCs(S) > 0). mdlZeroCrossings используется для обеспечения двигателя Simulink ® сигналами, которые должны отслеживаться для нулевых переходов. Обычно это

  • Непрерывные сигналы, поступающие в S-функцию

  • Внутренние генерируемые сигналы, которые пересекают ноль, когда разрыв обычно возникает в mdlOutputs

Таким образом, сигналы пересечения нуля используются для обнаружения разрывов и завершения текущего временного шага в точке пересечения нуля. Для обеспечения двигателя сигналами пересечения нуля, mdlZeroCrossings обновляет ssGetNonsampleZCs(S) вектор.

Пример

Пример см. в разделе sfun_zc_sat.c. Подробное описание этого примера можно найти в разделе Пересечения нулей.

Представлен до R2006a