Инкрементальный энкодер
Что такое Энкодер.
Энкодер или датчик угла поворота – это электромеханическое устройство, предназначенное для преобразования углового положения вала или оси в электрические сигналы (рис 11.1). Существует два основных типа энкодеров - инкрементные и абсолютные.
Рис 11.1
Абсолютный энкодер
Диск абсолютного энкодера разбивается на некоторое количество секторов (чаще всего, но не всегда, это количество является степенью двойки). Сектора разбиваются на концентрические дорожки, каждая из которых представляет один бит кодированного номера сектора (рис. 11.2).
Рис. 11.2. Диск абсолютного энкодера. |
В данном примере абсолютный энкодер имеет 32 сектора. Соответственно, для их кодирования нужно log2(32) = 5 дорожек. Номера секторов обычно задаются кодом Грея. На каждую дорожку диска необходим отдельный датчик.
Код Грея
Обычное представление последовательности двоичных чисел не используется при построении абсолютных энкодеров из-за существенного недостатка.
Представим себе абсолютный энкодер, к примеру, 8-разрядный (угловой или линейный - не имеет значения). Он отслеживает перемещение по нарастанию координаты. Изменение его состояний приведено в таблице 11.1.
Таблица 11.1: | |
X | Binary |
... | ... |
На середине шкалы, при переходе от значения 127 к 128, на выходе энкодера меняются одновременно все разряды. В идеальном случае все разряды меняются одновременно. В реальности же двух совершенно одинаковых датчиков не бывает, все они хоть немного отличаются друг от друга чувствительностью, быстродействием и т.д.; к этому добавляется неидеальность юстировки при расположении восьми датчиков в линейку. Это приведет к тому, что в процессе перехода от значения 127 (01111111) к 128 (10000000) мы ожидаем увидеть любое 8-разрядное двоичное число.
На рис 11.3 представлен пример такого изменения выхода при переключении состояния из 7Fh в 10h. Вместо перехода 7Fh → 10h можно наблюдать выходную последовательность: 7Fh → 7Bh → 75h → 71h → F1h → D1h → 90h →10h. Этот эффект может иметь крайне негативные последствия.
Рис 11.3
Предположим, что энкодер стоит в системе управления точным приводом. Контроллер, реализующий управление посредством петли обратной связи, сравнивает координату с датчика с желаемым положением инструмента и управляет сервомотором, перемещающим инструмент. Привод получает команду позиционирования в точку 128. Он успешно доезжает до 127 и на минимальной скорости, чтобы не проскочить по инерции, преодолевает последнюю ступеньку до 128.
В этот момент энкодер выдает какое-то случайное значение координаты; контроллер принимает его за истинную координату, вычисляет смещение относительно желаемой позиции и подает соответствующую команду сервомотору для сокращения этого смещения. Это "фантомное" смещение случайно и может быть любым в диапазоне от 0 до половины длины всей линейки (с учетом того, что мы уже находимся в середине; возьмем среднее значение в четверть линейки как наиболее вероятное).
Итак, не доехав до желаемого положения каких-то полшага, сервомотор делает мощный рывок и пытается утащить каретку куда-то в сторону на четверть линейки. По пути датчик получает правильные значения, вычисленное смещение резко уменьшается, и дальнейшее поведение привода полностью зависит от его динамики: тяжелая и медленная каретка просто не успеет разогнаться, легкая же и быстрая может начать осциллировать вокруг точки назначения.
Всех этих неприятностей можно легко избежать, если использовать для представления координаты код Грея. Основная его особенность состоит в том, что при увеличении или уменьшении величины на единицу код Грея для этой величины изменяется лишь в одном разряде. Как соотносится код Грея и двоичный код, показано в таблице 11.2.
Таблица 11.2: | ||
N | Двоичный код | Код Грея |
Какую бы строку в таблице мы ни выбрали, при переходе на одну строчку вверх или вниз в коде Грея меняется лишь один разряд; следовательно, даже при наличии переходных процессов в датчике разница между двумя отсчетами не превысит одной единицы, что является вполне допустимым в промежуточной зоне.
Инкрементальный энкодер
Как следует из самого названия, инкрементальный энкодер определяет не абсолютное положение диска в пределах полного оборота, а относительное смещение от предыдущего положения. Для этого достаточно диска с единственной дорожкой (рис. 11.4).
Рис 11.4 |
Часто добавляют вторую дорожку с единственным делением на полный оборот. Эта дорожка позволяет выставить диск в начальное положение, относительно которого впоследствии будут производиться отсчеты. Она также может оказаться полезной в процессе диагностики энкодера, позволяя проконтролировать количество импульсов, выдаваемое датчиком за один оборот диска.
Подсчитывая количество импульсов от датчика, можно определить угол поворота диска относительно предыдущего положения; однако невозможно определить направление вращения диска. Для определения направления используется второй датчик, смещенный относительно первого на четверть шага (половину ширины штриха или промежутка между ними). По разности фаз сигналов датчиков определяется направление вращения диска.
Сравнение абсолютного и инкрементального энкодеров
Обе разновидности углового энкодера имеют свои достоинства и недостатки.
Абсолютный энкодер можно опрашивать в любой момент, когда потребуется узнать положение диска, а не обрабатывать перемещение на каждый шаг. Это упрощает работу с ним (в частности, делает тривиальным определение направления вращения диска), а также снижает требования к контроллеру, обрабатывающему данные о координатах (если контроллер потеряет несколько импульсов от датчиков, информация о текущем положении диска все равно будет доступна).
К недостаткам абсолютного энкодера в первую очередь следует отнести сложность изготовления, связанную с наличием большого числа датчиков (по одному на каждую дорожку диска, то есть на каждый разряд кода угловой координаты диска). Также в случае высокой точности энкодера (и, как следствие, большого количества разрядов данных) для подключения энкодера к контроллеру потребуется большое число линий связи и такое же число битов ввода (в случае параллельной передачи данных) либо затраты на дополнительное оборудование сериализации (в случае последовательной передачи).
В случае инкрементального энкодера достоинства и недостатки меняются местами по сравнению с абсолютным. Достоинствами являются: простота (всего два датчика вне зависимости от разрешения), относительная легкость при кустарном изготовлении, малое количество линий связи с контроллером. Недостатки: высокие требования к быстродействию контроллера (в случае потери импульсов от датчиков в данных о координате будет накапливаться ошибка), более высокая сложность обработки данных (из-за необходимости определения направления вращения диска).
Простейшая процедура обработки сигналов инкрементального энкодера.
Прежде чем приступить к рассмотрению процедур обработки сигналов декодера, выясним, что представляют собой эти сигналы.
Как уже говорилось ранее, декодер имеет два датчика: A и B. Датчики сдвинуты друг относительно друга на половину ширины штриха (или четверть шага диска), поэтому сигналы получаются сдвинуты по фазе на p/2. Примем для определенности, что сигнал B отстает от сигнала A при повороте диска против часовой стрелки:
Из рис. 11.5 видно, что при движении диска против часовой стрелки (состояния 0-1-2-3-4...) в момент перехода сигнала A из состояния 0 в 1 (передний фронт) сигнал B всегда находится в состоянии 0 (см. состояния 0, 4, 8). Если же диск движется по часовой стрелке (7-6-5-4-3...), сигнал B всегда находится в состоянии 1 (состояния 6, 2).
Рис. 11.5. Форма сигналов датчиков A и B |
Отсюда вытекает простейшая процедура обработки сигналов декодера: по переднему фронту сигнала A проверить состояние сигнала B; если он равен 0, увеличить счетчик координаты на единицу, в противном случае уменьшить его на единицу.
Этот алгоритм вполне пригоден для применения в некритичных устройствах, когда погрешность определения координаты не приводит к фатальным последствиям: не так давно вытесненные оптическими роликовые мыши/трекболы, валкодеры магнитол и т. п. Однако он не годится для применений, в которых точность определения координаты является решающим фактором.
Причина несовершенства такой, казалось бы, простой и надежной процедуры кроется в том, что он требует сигналов идеальной формы. В реальных условиях датчики могут иметь «дребезг» при смене состояния сигнала (особенно это относится к датчикам с механическими контактами). В результате дребезга приращение координаты будет произведено несколько раз вместо одного, и значение координаты будет испорчено.
Но, даже если бы удалось избавиться от дребезга полностью, останется другая проблема. Предположим, что диск находится в положении между точками 3 и 4 на рис. 3 (назовем такую точку 3.5). При перемещении в точку 4.5 в точке 4 сигнал A переходит из 0 в 1, и согласно нашей процедуре координата диска увеличивается на единицу (поскольку сигнал B равен нулю на переднем фронте импульса A). Затем диск возвращается из 4.5 обратно в 3.5, но, поскольку при обратном движении диска в точке 4 сигнал A переходит из 1 в 0, наша процедура игнорирует это событие.
Итак, имеем: диск переместился на небольшой угол и вернулся в исходное положение, а координата увеличилась на единицу. Можно повторять такое перемещение произвольное число раз, и координата каждый раз будет увеличиваться. В итоге координата диска, измеренная посредством простейшей процедуры, не будет иметь ничего общего с истинным положением диска.
Проблема является достаточно актуальной, поскольку вероятность остановки диска на границе между светлой и темной зонами достаточно велика, а вибрации при работе промышленного оборудования в сочетании с возможным люфтом привода вполне могут привести к колебаниям диска, достаточным для смены состояния датчика. Это делает простейшую процедуру обработки сигналов по переднему фронту сигнала A непригодной для ответственных применений, где требуется максимальная точность измерения координаты диска.
Стоит отметить, что любой инкрементный энкодер имеет 2 типа состояний: устойчивое и не устойчивое. Устойчивые состояния энкодера расположены через один период сигнала А. Не устойчивые состояния – это все остальные. Из неустойчивых состояний энкодер легко переходит в устойчивое. Т.о. за точку отсчёта можно принимать только утойчивые состояния.
Дата добавления: 2017-01-16; просмотров: 6915;