Модуль помогает преобразовать нестабильный входной аналоговый сигнал в выходной стабильный цифровой сигнал, сравнивая вход с заданными пороговыми значениями.
В качестве параметров объекту-гистерезису определяют 2 порога: верхний и нижний, и 2 времени задержки: верхнее и нижнее. Время задержки называют лагом.
Гистерезис может генерировать 2 события:
"high"
— спустя верхний лаг после того, как входной сигнал стал стабильно выше верхнего порога;"low"
— спустя нижний лаг после того, как входной сигнал стал стабильно ниже нижнего порога.
Значения входного сигнала передают через метод push
.
Гистерезис используют там, где приводить в действие исполнительное устройство можно только после стабилизации входного сигнала. Например:
Представим гистерезис, у которого нулевой нижний лаг и ненулевой верхний.
Ключевые моменты таковы:
"low"
."high"
."low"
.
Создаёт новый объект Hysteresis
с параметрами, заданными в объекте opts
.
В opts
ожидаются поля:
low
— нижняя граница;high
— верхняя граница;lowLag
— нижний лаг в секундах;highLag
— верхний лаг в секундах.
Если lowLag
или highLag
не заданы, они принимаются равными нулю.
Значения low
и high
могут совпадать. В этом случае одно из значений можно опустить.
Класс, представляющий гистерезис. Используйте функцию create
, чтобы создать новый объект.
Добавляет новое значение val
входного сигнала.
Насколько часто программа должна вызывать метод — ваше решение. Если входной сигнал динамично меняется, важно вызывать push
достаточно часто, чтобы гистерезис попросту не пропустил ключевые моменты, когда сигнал пересекает пороговые значения.
Вызывать push
через равные промежутки времени не обязательно.
Событие возникает при переходе гистерезиса в стабильное верхнее состояние, спустя highLag
после пересечения входным сигналом порога high
.
Событие возникает при переходе гистерезиса в стабильное нижнее состояние, спустя lowLag
после пересечения входным сигналом порога low
.