Вычисление положения квадратурного энкодера
Блоки управления двигателем/декодеры датчиков
Блок Quadrature Decoder вычисляет положение квадратурного энкодера. Блок использует текущее значение счетчика энкодера и значение счетчика энкодера на предыдущем импульсе индекса, чтобы вычислить угловое положение квадратурного энкодера (и ротора) в степенях, радианах или в относительных единицах.
Этот рисунок показывает квадратурный диск энкодера с двумя каналами (QEPA и QEPB) и импульсом индекса (QEPI):
В этом примере таймер, управляемый QEP, увеличивается на четыре для каждой щели:
Блок вычисляет угловое положение (в отсчетах) квадратурного энкодера как:
Когда энкодер вращается в направлении по часовой стрелке:
Если ,
Если и направление вращения вала не меняется,
Если и направление вращения вала противоположное,
Когда энкодер вращается в направлении против часовой стрелки:
Если ,
Если и направление вращения вала не меняется,
Если и направление вращения вала противоположное,
Когда вы очищаете параметр External index count, импульс Idx сбрасывается Cnt на нуль, поэтому:
где:
- угловое положение квадратурного энкодера в отсчетах.
- количество отсчётов в одном цикле вращения квадратурного энкодера.
Блок вычисляет выходные θm как:
(в степенях)
(в радианах)
(в относительных единицах)