Я хотел бы отследить угловое положение довольно медленного вращающегося рычага с электроприводом (прямой привод; см. Рисунок ниже), но требовать угловой точности менее 0,05 ° и аналогичного разрешения.
Как отметил @gbulmer в комментариях, это эквивалентно позиционированию кончика рычага по окружности с точностью (2 × π × 10 см) / (360˚ / 0,05) = 0,08 мм.
Есть ли в настоящее время реализуемый датчик или электронный метод, который может достичь такого уровня точности при вращательном зондировании, не тратя целое состояние?
Это то, что я пробовал до сих пор, от самого простого до запутанного:
Цифровой компас / магнитометр: я начал с этого; но, очевидно, далеко не в спектакле, который я ищу.
Поворотное кодирование: кодирование на основе потенциометра / датчика Холла: невозможно получить достаточное разрешение, имеется значительная погрешность линейности.
Машинное зрение. Попытка размещения оптического маркера на кончике рычага (поскольку кончик отслеживает самую длинную дугу) и использование камеры (OpenCV) для отслеживания положения маркера: не удалось так хорошо разрешить очень маленькие повороты, учитывая интервалы вращения руки площадь 10х10 см.
Магнитный датчик: В настоящее время я изучаю использование AS5048, магнитного поворотного датчика от AMS, расположенного так, чтобы центр датчика находился в положении вала двигателя. Что-то вроде этого:
Ответы:
То, что вы делаете, возможно, но я не понимаю, как вы собираетесь делать это дешево.
0,05 градуса (3 минуты дуги) означают разрешение 7200 отсчетов / оборот или эквивалент 13 бит (8192). Хуже того, поскольку вы пытаетесь сделать контур положения, вам потребуется хотя бы один дополнительный бит разрешения или 14-битная система. Проблема заключается в том, что ваш контур положения не может обнаружить ошибку менее одного бита, поэтому, если рука начинает дрейфовать, датчик угла не обнаружит ее до тех пор, пока выходной сигнал не станет одним битом. Цикл позиционирования отводит рычаг назад и останавливает его, когда ошибка падает до нуля. Но это позволит руке поворачиваться в другую сторону, пока она не получит счет в противоположном направлении и т. Д. Так, например, если вы хотите, чтобы рука поддерживала счетчик датчиков равным 100, система вполне может произвести 100, 101, 100 99, 100 и т. Д.
Я полагаю, что оптический кодировщик - ваш лучший выбор, но 14-битный (16 384 ppr) кодер не будет дешевым. Другой возможностью является распознаватель или синхро, с RDC или SDC (преобразователь / цифровой преобразователь или синхронно / цифровой преобразователь) в качестве второй возможности, но это будет стоить еще дороже. Синхронизаторы / преобразователи имеют 2 недостатка. Во-первых, их обычно заменяют оптические энкодеры, поэтому на рынке вы найдете в основном лишние единицы. Во-вторых, точность обычно не адекватна. Резольверы размера 23 обычно рассчитаны на 5-10 минут дуги, поэтому вам понадобится высокоточный блок и удачи в его поиске.
Inductosyns даст вам исключительное разрешение и точность, но будет стоить даже дороже, чем оптический датчик. По сути, вам нужен высокоскоростной RDC для чтения вывода.
Ваша забота о точности оптического датчика основана на бумаге конкретного производителя, но это, по сути, пугающая вещь. Возможности для ошибки одинаковы для каждого производителя, и связанный производитель не так уж и лучше, чем другие производители. Как правило, для точных датчиков точность совпадает с разрешением.
Хотя возможно получить оптические кодеры с параллельными выходами, вам, вероятно, лучше использовать инкрементальный датчик и использовать собственный счетчик вверх / вниз. Если вы пойдете по этому пути, вы будете использовать сигнал «home» для сброса счетчика положения при каждом включении системы.
источник
Я думаю, что предложение ОП - совсем не плохая идея. Он хочет использовать готовое кольцо: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , оно имеет 128 полюсов = 64 пары полюсов. Разрешение составляет 16 бит = 65536, максимум 305 об / мин.
Если вы разберете оптический датчик высокого разрешения, вы обнаружите, что практически невозможно настроить детектор без специальных инструментов, ведь использование этого нового метода делает это очень простым.
Вам понадобится токарный станок, чтобы правильно подогнать кольцо, а затем поместить датчик на близкое расстояние, не требуется никакого специального выравнивания. Сам датчик поставляется в версиях комплекта, уже припаянных к плате коммутатора. Вам потребуется дополнительный эталонный датчик - щель с фотоприемником, после чего вы можете ссылаться на энкодер в пределах одной пары полюсов с помощью комбинации выходного индекса + датчика экстренной ссылки.
источник
Поскольку это вопрос мозгового штурма, а WhatRoughBeast уже упомянул все, что я хотел бы рассмотреть, почему бы не добавить гармонические диски в список? Теоретически (я не проверял эмпирические оценки или первые расчеты), он позволяет легко получить передаточное число 20: 1 без какой-либо обратной реакции (обычно 100: 1), что снижает количество необходимых шагов до 720 / об. , Может быть стоит посмотреть. Гармонические приводы недешевы, но они обычно намного дешевле, чем датчики высокого разрешения, особенно для такого передаточного числа.
источник
Если вам нужно разрешение на выходном валу, соответствующее 13-битному, вам нужно больше дополнительных бит, по крайней мере, 1-битный для управления с обратной связью является обязательным. Следующая проблема заключается в том, что производители рекламируют разрешение, но не рекламируют точность . Вы должны постоянно спрашивать о точности. Если ошибка повторяется, вы можете исправить ее с помощью программного исправления.
Еще одна проблема, если вам нужно решение для наружных работ. Если да, то магнитный энкодер является опцией. Но магнитный датчик может иметь значительную повторяющуюся периодическую ошибку, которую необходимо устранить в процессе калибровки с использованием другого оптического расширенного датчика. Но вам нужен джиг, сделанный еще на большую точность.
Синусоидальная / оптическая или магнитная интерполяция увеличивает разрешение, но также добавляет некоторую случайную ошибку.
Вы должны уметь изготавливать с желаемой точностью, особенно концентричностью. Также необходимо учитывать пропускную способность, так как при увеличении разрешения более быстрое движение может превышать допустимую пропускную способность (например, частота квадратурного выхода). В противоположность этому, ультра-медленное управление движением - это еще одна дисциплина, в которой можно найти интересные неопубликованные вопросы.
Если вам нужно вращение рычага управления (а не только положение гусеницы), тогда необходимо разрешение прямого привода и крутящего момента. Двойной контур помогает в управлении, но требует двигателя (датчик в случае коробки передач или подсчета шагов в случае шагового двигателя) и определения положения вала.
Инкрементальный или абсолютный энкодер также является фундаментальным решением.
Общий совет: если вы хотите закончить проект, используйте профессиональные компоненты, которые стоят дорого (например, оптические энкодеры Renishaw ATOM). Если вы играете для удовольствия, а время не имеет значения, тогда вы можете заново изобретать проблемы (тупики), обнаруживать неугодные проблемы и т. Д. Дважды проверьте, можете ли вы изготовить аппарат с необходимой точностью.
источник
Кажется, идеально подходит для цифрового штангенциркуля, обычно используемого для измерения точных расстояний, см:
Как работает электронный штангенциркуль?
Они похожи на емкостные энкодеры (которые вы уже видели в http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).
Электронная часть линейного цифрового штангенциркуля, вероятно, может быть повторно использована, поэтому вам нужно всего лишь сделать четверть диска с правильным рисунком.
PS: Точность даже позволит вам работать с готовой линейной.
источник
Вот моя новая идея, еще одна история о шаговом двигателе :-)
Нажмите на анимированное изображение, чтобы увидеть полное изображение без резкости. Здесь вы используете шаговый двигатель в качестве путевой линейки. На кончике основной руки есть магнит. Красные линии показывают ожидаемое направление магнитного потока. Предполагая, что шаговый двигатель похож на тот, что в Википедии. Он имеет 3,6 градуса одного полного шага. Для предположительно линейной части поля вам нужно 3,6 / 0,05 = 72 комбинации из 7 битов. Это означает, что 10-разрядный АЦП обычного микроконтроллера будет очень хорошо выполнять работу для большего нелинейного диапазона. После того как вы сделали механизм, проанализируйте шаблон приближения и выберите наиболее линейную часть, с помощью некоторого программного обеспечения сопоставьте его с линией и выберите границы линейки для этой конкретной установки.
Шаговые двигатели не идеальны. Согласно википедии у них может быть до 5% различий между зубами. Чтобы измерить ошибку, вы можете расширить первичные границы линейки второстепенными границами, которые просто должны следовать шаблону градиента предыдущего анализа соседней границы.
Кроме того, вам лучше использовать шаговый двигатель с микрошагом, чтобы избежать ускорений +/-, которые могут повлиять на шкалы настройки, я думаю, по крайней мере, вы должны сделать половину шага.
источник
Имея дело с механикой, начните с механики сначала.
Вращая большую (R2) шестерню на угол, маленькая шестеренка (R1) вращается на угол R2 / R1 раз больше.
Поэтому, если вы имеете дело с очень экстремальной точностью угла на заданном радиусе (R), вы можете иметь дело с n-кратной точностью угла в n-кратном радиусе (то есть R / n).
В вашем случае вы можете установить большую шестерню на оси рычага и прикрепить к ней меньшую шестерню, а затем соединить более грубый датчик с малой.
Многие другие методы зацепления известны и полезны, начиная с вики .
источник
Вы должны сделать второй механизм на краю руки, чтобы разделить шаги центра с помощью линейного механизма, как в оптической системе драйвера CD-ROM. Таким образом, может быть проще и достаточно реализовать всю систему в виде разомкнутого контура, также используя шаговый двигатель в центре и приводить его в действие посредством микрошагования, чтобы избежать очень высоких величин ускорения.
источник
Физические ограничения в пространстве вокруг движущейся руки могут исключить это решение, но здесь вы - еще один дешевый подход к машинному зрению. Точность можно отрегулировать, изменив увеличение объектива.
источник
Я не знаю, что вы считаете удачей, но вы можете рассмотреть http://www.inductosyn.com/
источник
Другой очень интересный вариант, если ваша рука регулярно переходит в исходное положение (отдых), это использование оптической (игровой) мыши или, более конкретно, ее сенсорной системы.
Установите датчик на кончик руки и обеспечьте хороший (мелкозернистый, неотражающий) фон для скольжения. Считать данные через стандартный интерфейс USB-мыши.
Вам понадобится простой датчик для калибровки исходного положения. Вы должны экспериментировать, чтобы увидеть, работает ли это достаточно хорошо. Он должен работать в основном независимо от пыли и прост в обслуживании.
источник
Возможно, вы можете рассмотреть возможность использования линейного оптического кодировщика на конце своего поворотного рычага и использовать гибкую кодовую полосу, подобную этой , которая имеет до 2000 строк на дюйм. Если вы хотите пойти очень дешево, вы можете использовать линейный кодер, как этот , но он развивает до 150 строк на дюйм, поэтому разрешение составляет 40 микрон (поскольку это квадратурный энкодер). Если вы не чувствительны к джиттеру в системе привода, вы можете использовать это прямо вверх. В противном случае вы могли бы вытянуть руку под свое приложение и вывести кодовую область дальше. Вы даже можете распечатать собственную кодовую строку, если у вас есть принтер с разрешением 1000 или более точек на дюйм.
Удачи!
источник