mdlZeroCrossings

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_ZERO_CROSSINGS
void mdlZeroCrossings(SimStruct *S)

Аргументы

S

SimStruct, представляющий блок S-Function.

Описание

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

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

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

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

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

Пример

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

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