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