Обновите вектор пересечения нулем
Нет
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
. Подробное описание этого примера может быть найдено в Нулевых Пересечениях.