Алгоритмы пересечения нулем

Simulink® программное обеспечение включает два алгоритма обнаружения пересечения нулем: Nonadaptive и Adaptive.

Чтобы выбрать алгоритм, либо используйте опцию Algorithm на панели Решателя диалогового окна Параметра конфигурации, либо используйте ZeroCrossAlgorithm команда. Команда может быть либо установлена на 'Nonadaptive' или 'Adaptive'.

Неадаптивный алгоритм предусмотрен для обратной совместимости со старыми версиями Simulink и является по умолчанию. Он заключает событие пересечения нулем в квадраты и использует все меньшие временные шаги, чтобы определить, когда произошло пересечение нуля. Несмотря на то, что алгоритм Nonadaptive подходит для многих типов симуляций, он может привести к очень длительным временам симуляции, когда присутствует высокая степень 'трепетания' (колебания высокой частоты вокруг точки пересечения нулем).

Адаптивный алгоритм динамически включает и выключает скобки, и является хорошим выбором, когда:

  • Система содержит большое количество болтовни.

  • Необходимо задать защитную полосу (допуск), вокруг которой обнаруживается пересечение нуля.

Адаптивный алгоритм отключает скобки с пересечением нулем (останавливает итерацию), если одно из следующих удовлетворено:

  • Превышена ошибка пересечения нуля. Это определяется значением, заданным в опции Signal threshold на панели Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). Это также может быть задано с помощью ZCThreshold команда. Значение по умолчанию является Auto, но для допуска можно ввести любое действительное число, больше нуля.

  • Система превысила количество последовательных пересечений нуля, заданное в опции Number of consecutive zero crossings на панели Решатель (Solver) диалогового окна Параметры конфигурации (Configuration Parameters). Кроме того, это может быть задано с помощью MaxConsecutiveZCs команда.

Порог сигнала для адаптивного обнаружения пересечения нулем

Адаптивный алгоритм автоматически устанавливает допуск для обнаружения пересечения нулем. Кроме того, можно задать допуск путем ввода реального числа, большего или равного нулю, на панели Параметров конфигурации Решателя, Signal threshold тяните вниз. Эта опция становится активной, только когда алгоритм пересечения нулем установлен в Adaptive.

Этот рисунок показывает, как порог сигнала устанавливает область окна вокруг точки пересечения нулем. Сигналы, попадающие в это окно, рассматриваются как находящиеся на нуль.

Событие пересечения нулем заключено в квадратные скобки временными шагами Tn-1 и Tn. Решатель итерационно сокращает временные шаги до тех пор, пока переменная состояния не будет находиться в полосе, заданной порогом сигнала, или до тех пор, пока количество последовательных пересечений нуля не будет равно или не превысит значение на панели Параметров конфигурации Solver Number of consecutive zero crossings тяните вниз.

Из рисунка видно, что увеличение порога сигнала увеличивает расстояние между временными шагами, которые будут выполнены. Это часто приводит к более быстрым временам симуляции, но может снизить точность.