mdlZeroCrossings

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_ZERO_CROSSINGS
void mdlZeroCrossings(SimStruct *S)

Аргументы

S

SimStruct, представляющий Блок s-function.

Описание

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

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

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

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

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

Пример

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

Смотрите также

mdlInitializeSizes, ssGetNonsampledZCs

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