Можно ли улучшить движение двигателя до любого произвольного разрешения?

Для проекта, над которым я работаю, мне нужно вращение двигателя с очень малыми приращениями — мое желаемое разрешение составляет около ~ 0,15 градуса на минимальный шаг вращения.

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


Допустим, у меня есть доступ к выходным данным энкодера, который может измерять вращение с требуемым разрешением (т. е. с шагом приращения до 0,15 градуса).

Тогда мой вопрос: возможно ли подключить такой энкодер (его данные образуют петлю обратной связи) через микроконтроллер к двигателю и получить любое произвольное желаемое разрешение, или существуют ограничения достижимой точности, основанные на моторной механике?


С точки зрения выбора двигателя для этого конкретного метода:

  • Степперы: я полагаю, что степперы не вариант, поскольку они предназначены для перемещения с шагом определенного размера, и даже с моим датчиком обратной связи я не могу дать указание степперу останавливаться между шагами.

  • Стандартные двигатели постоянного тока: могу ли я использовать данные своего энкодера, а затем выполнять ПИД-контур, чтобы каждый раз перемещать двигатель и зону в целевом угловом положении? Я предполагаю, что время установления может быть слишком длинным?

  • Сервоприводы: Могу ли я добавить свое собственное управление с обратной связью, используя мой энкодер, в дополнение к дешевому сервоприводу с низким разрешением или вместо него? Таким образом, заставить его двигаться / шагать к моей цели, улучшенное разрешение. Или существуют конструктивные ограничения того, насколько точно может двигаться данный сервопривод, которые я не могу преодолеть?

Если вам нужно меньше одного оборота, я думаю, вам нужен сервопривод. Когда дело доходит до разрешения, сервоприводы для хобби довольно тонкие. Этот парень, nikhiljgeorge.wordpress.com/2012/08/24/70 , говорит, что MX-28 может соответствовать вашим требованиям.
@GeorgeHerold: Да, этот сервопривод Dynamixel действительно лучше, чем мои характеристики, но при цене в 220 долларов его трудно продать; следовательно, я пытаюсь посмотреть, смогу ли я вместо этого решить проблему, динамически управляя существующим двигателем, учитывая, что у меня есть доступ к достаточно точному энкодеру.
Это что-то вроде возврата, но вы рассматривали синхронизатор или резольвер?
@Dave: Это помогло бы в части измерения (которую я уже обработал с помощью достаточно точного магнитного энкодера); Меня интересует само фактическое движение и достаточно точное его выполнение.
Вам нужен степпер, а затем просто используйте шестерни для достижения любого разрешения, которое вам нравится. Сервопривод тоже может работать, но с настройкой у него больше проблем, а степпер просто. Если вы возьмете двигатель постоянного тока и сделаете ПИД-контур для управления им, то вы заново изобрели сервопривод.
@MichaelFox: это тот ответ, на который я надеялся; Спасибо. Итак, если я заменю энкодер сервопривода (возможно, потенциометр) своим собственным и добавлю ПИД-контур, то я смогу получить любое разрешение, если мой энкодер может разрешать до такой степени, или есть практические ограничения в самой функциональности двигателя?
Поскольку вы поменяете скорость на силу и точность, вы можете использовать относительно крошечный двигатель для медленного приведения в действие большой нагрузки. При некотором разрешении вибрация двигателя или любая внешняя вибрация будут ограничивать точность. Обычное решение — просто увеличить нагрузку. Кроме того, какая-то подвеска для поглощения вибрации. Проверьте механизм в микроскоп. Имея дело с большими силами, вы попадаете в машиностроение. Возможно, вам придется беспокоиться о стрессе и деформации, деформирующих вашу систему. Опять же, сделайте его большим и тяжелым.

Ответы (5)

Вы не указали, какая минимальная и максимальная скорость требуется. Я полагаю, вы не хотите идти на компромисс ни по одному параметру ;-)

С шаговым и микрошаговым драйвером вы можете достичь разрешения выше 0,15 градуса. Но что такое точность? Вероятно, это неправильно, потому что есть нелинейность двигателя и микрошага, а крутящий момент низкий, динамический диапазон низкий, и дополнительные проблемы возникают на очень низкой скорости.

Вы можете организовать его как двухконтурное управление с энкодером нагрузки на внешнем контуре. Это должно повысить точность. Допустим, 13-битный энкодер нагрузки и 32 или 64 микрошага с 400-шаговым двигателем могут обеспечить точность 0,15.

Коробка передач помогает с крутящим моментом и разрешением, но вам также нужно двойное управление контуром и отсутствие люфта, если вы хотите изменить направление. Есть дополнительная проблема, если в коробке передач есть пружина. Если да, то на выходе есть сила, вам нужен высокочастотный контур управления. Может быть даже невозможно управлять системой, когда вы должны учитывать эту силу. Так дорогой редуктор или обратно к прямому приводу.

Вы можете заменить шаговый двигатель бесщеточным трехфазным двигателем и энкодером с редуктором или без него и одним или двумя энкодерами. Динамический диапазон и цена растут. Крутящий момент??? Для высокой скорости вам нужен кодер/декодер с высокой пропускной способностью. И очень сложно отлаживать такую ​​настройку в реальном времени, так как вы почти не можете использовать точки останова.

Как правило, при использовании энкодеров они должны удовлетворять ваши потребности в точности (а не только в разрешении).

РЕДАКТИРОВАТЬ (поскольку комментирование запрещено): Кодер AS5045/8: я думаю, вам нужно учитывать в основном нелинейные параметры INL в диапазоне градусов, которые влияют на точность (хуже 0,15 градуса). Также задержка распространения в диапазоне 100 мкс ограничивает скорость, 1RPS = 1/4096 = 244 мкс на такт позиции.

Спасибо за рассмотрение различных факторов. Что касается последнего предложения («бесщеточный трехфазный двигатель и энкодер») — можете ли вы немного расширить его? Почему это предпочтительнее степпера? Не будет ли использование бесщеточного двигателя постоянного тока (при условии, что с ПИД-контуром) означать возвратно-поступательные колебания вокруг целевой точки из-за перерегулирования, пока мы, наконец, не остановимся на месте назначения? Также обратите внимание, что я использую энкодер с очень высокой пропускной способностью (магнитные энкодеры от AMS).
Бесколлекторный обеспечивает более широкий динамический диапазон, степпер ограничен максимальной скоростью из-за проблемы резонанса. Основной задачей является настройка ПИД-регулятора, чтобы избежать перерегулирования. Но проблема не в бесколлекторном двигателе, а в любой системе с обратной связью (т.е. ПИД). Что такое разрешение и точность магнитных энкодеров (я посетил ams.com, но не смог быстро найти список сравнения или около того).
Вот энкодеры, о которых я говорю (см., например, AS5045 или AS5048): ams.com/eng/Products/Position-Sensors/…

Можно микрошаговые шаговые двигатели. Если вы получите правильные драйверы, они могут интерполировать шаги на большое количество подразделений. Я видел драйверы, которые могут делать 256 микрошагов за шаг. При довольно стандартной цифре 1,4 градуса на шаг вам нужно всего ~ 10 микрошагов на шаг, чтобы получить 0,15 градуса на микрошаг. 8 микрошагов дадут вам 0,175 градуса на шаг, и вы можете получить микросхемы микрошагового драйвера «все в одном» от Allegro, которые могут выполнять до 8 микрошагов на шаг. Я использовал Allegro 3977 несколько лет назад для проекта. 16 или 32 микрошага на шаг дадут вам 0,0875 или 0,04375 градуса на шаг, чего должно быть более чем достаточно.

Микрошаг может быть лучшим вариантом, если требования к крутящему моменту невелики. Обычно микрошаги не очень хорошо держат свое положение под нагрузкой, но если нагрузки почти нет, они великолепны. Гораздо больше точности с нулевым люфтом. Это в основном приводит в действие двигатель с помощью синусоидальных волн вместо квадратов и останавливается в произвольных точках вдоль формы волны.
Если вы добавите управление с обратной связью поверх микрошага, это может стать достойным решением. Добавление микрошага или двух для противодействия внешнему крутящему моменту, вероятно, будет довольно эффективным. Однако, если у вас есть хороший энкодер, вы также можете использовать двигатель постоянного тока.
@AaronD: Но скажем, есть значительная нагрузка - я немного новичок в шаговых двигателях, но не сделает ли инерция микрошаг практически бесполезным с точки зрения поддержания точности? Например, в этой статье говорится о микрошаге.
@alex.forencich: Теперь я вижу надежду, ха-ха! Видите ли вы какие-либо препятствия в реализации управления двигателем постоянного тока с помощью энкодера (предположим, удовлетворительного) и достижении такого разрешения в реальном движении - подходит ли ПИД-регулятор?
Да, эта статья во многом верна, если довести ее до крайности. 256/шаг, вероятно, недостижимо с абсолютной точностью. К этому моменту вас больше беспокоит механический шум, чем точность позиционирования. Но небольшие числа, например, 8 или меньше, вероятно, будут работать, если ваша нагрузка невелика.
Как упоминалось в статье, шаговые двигатели имеют спецификацию на удерживающий момент. Это максимальная нагрузка, которую может выдержать двигатель при полном шаге. И, как видно из таблицы, вы должны уменьшить эту спецификацию, если используете микрошаги. Если сниженная спецификация по-прежнему больше, чем нагрузка, то, вероятно, у вас все хорошо. Если это близко, вы можете добавить энкодер или использовать больший или другой тип двигателя.
Проблема с щеточными двигателями постоянного тока заключается в том, что им присуще некоторое трение в щетках, которое необходимо преодолеть, чтобы начать движение, поэтому даже с надлежащим энкодером трудно разместить сам двигатель там, где вы хотите. Вы можете использовать редуктор, чтобы ваша система управления могла восстановиться и снова стать точной до того, как выходной сигнал уйдет слишком далеко, но тогда у вас есть спецификация для люфта. Если ваша нагрузка всегда имеет одно и то же направление, учитывая гравитацию, трение, инерцию и т. д., то люфт может не иметь значения.
Обычной практикой при использовании энкодеров с редукторами является размещение энкодера на валу двигателя или где-то в середине зубчатой ​​передачи вместо выхода. Затем вы можете использовать энкодер с более низким разрешением и более высокой скоростью примерно для того же эффекта. Разрешение обычно стоит больше, чем скорость.
@boardbite Если у вас есть нагрузка, и вы хотите использовать микрошаг, я бы беспокоился о деформации кручения оси, это приведет к ошибке между шагом двигателя и шагом нагрузки. Хотя все зависит от габаритов.

Одним из способов сделать это может быть коробка передач. Например, если на выходе этого мотора поставить редуктор 10:1, то 10 оборотов мотора дадут вам 1 оборот на выходе редуктора. Таким образом, если вы можете контролировать положение вашего двигателя только с точностью до 1 градуса, мощность редуктора теоретически можно будет позиционировать с точностью до 0,1 градуса.

Я говорю «теоретически», потому что у редукторов есть люфт, который обозначает люфт между зубьями шестерни. Это снижает точность выходного вала. В промышленных редукторах этот люфт указан как спецификация, которую вы можете учитывать при проектировании. Тем не менее, большинство коробок передач для любителей, которые я видел, не указывают люфт, поэтому у вас могут возникнуть проблемы с поиском недорогой коробки передач с достаточно маленьким люфтом для вашего применения.

Когда указано, люфт указан как величина изменчивости выходного вала. Например, один промышленный редуктор с сервоприводом 10:1 имеет выходной люфт 5 угловых минут или 0,083 градуса.

Коробки передач могут иметь так называемый люфт шестерни. Это происходит, когда зубья шестерни имеют небольшое расстояние, не направляя входной крутящий момент муфты на выходной крутящий момент при изменении направления вращения. Это может быть особенно проблематично при управлении положением серводвигателя в замкнутой системе.
@MichaelKaras Совершенно верно. Теперь, когда я думаю об этом, я думаю, что будет трудно найти недорогую коробку передач с достаточно малым люфтом для этого применения. Я обновил свой ответ.
Вы можете добавить другие виды зубчатых передач — например, в механизм, приводимый в движение двигателем, чтобы уменьшить влияние люфта.
шестерни, такие как червячные, имеют почти нулевой люфт, они также имеют очень хороший крутящий момент для удержания положения. Еще один способ уменьшить люфт — предварительно сместить направление, чтобы любое дальнейшее движение действительно двигало выходной сигнал, и никогда не менять направление после этого (что устранит смещение, которое вы только что придали ему). @МайклКарас
@KyranF: Упомянутый вами метод уменьшения люфта - если я правильно понимаю, вы предварительно компенсируете люфт, добавляя дополнительное движение в противоположном направлении, я прав?
@boardbite не в другом направлении, в том направлении, в котором вы собираетесь двигаться. Люфт влияет только на движение, когда вы меняете направление, имея «мертвую зону».

Вы смотрели на - мышь?
Не животное, точка и нажмите один. В частности, старый стиль с мячом.

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

Для вашей установки «мяч» станет небольшим электродвигателем. Как упоминалось другими, эта настройка страдает от «люфта»: в некоторой степени это преодолевается за счет установки оптического кодирования на последнем колесе, которое может иметь действительно большой диаметр (что дает вам желаемое разрешение).

Проблемы? В зависимости от размера и веса этой установки вы, возможно, заменили «люфт» на «инерцию»… отключите питание двигателя, большому тяжелому колесу может потребоваться некоторое время, чтобы остановиться. Он может даже пролететь мимо цели, а это значит, что вам придется переключить двигатель и вернуться на некоторое расстояние.
Это затухающий осциллятор . Чем жестче ваши требования к разрешению, тем больше вероятность того, что система обнаружит ошибку положения, что приведет к постоянным «исправлениям».

Требования:

  • точность позиционирования 0,15 градуса
  • значительная нагрузка
  • доступный/дешевый

Несколько вещей, которые следует учитывать:

  • Вы должны получить информацию о положении как можно ближе к нагрузке, чтобы компенсировать деформацию при кручении и другие дефекты.
  • Низкочастотный, высокополюсный BLDC или аналогичный двигатель был бы предложенной альтернативой, если вы не выбираете шаговый двигатель.
  • Разрешение энкодера тоже важно.
  • В любом случае вам понадобится замкнутый контур управления.

Давайте посмотрим на возможности:

Получите действительно хороший двигатель/систему

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

Механическая коробка передач

Как упомянул Бен Миллер, коробки передач могут помочь. Я бы посоветовал использовать высококачественную коробку передач с высоким передаточным числом. Посмотрите цены/даташиты, может что-то найдете.

Весна

Это очень высокоточный процесс, так почему бы не взглянуть на часовое дело. Посмотрите на этот рисунок из Википедии: спираль ressort . Если вы намотаете такую ​​пружину на какую-то точку оси, вы можете точно отрегулировать положение, делая небольшие движения другого конца пружины. Это будет дополнительный инструмент для компенсации нагрузки и точной настройки. Я думаю, вам все равно понадобится степпер (или что-то еще) для начального позиционирования. Вероятно, это лучше всего подходит для процессов, в которых вам не нужны динамические изменения позиции. Конечно, с этим есть проблемы, но, возможно, вы сможете что-то из этого сделать.

Привод/маленький двигатель + рычаг

Если у вас есть место, вы можете использовать очень длинный жесткий стержень, чтобы создать более высокий д Икс / д ф . Это означает, что вы получаете очень небольшие изменения угла при (сравнительно) больших (почти линейных) перемещениях конца стержня. Таким образом, вам практически нужно добавить этот длинный стержень на ось и прикрепить к его концу небольшой двигатель. Изгиб стержня, вероятно, будет значительным, но я думаю, что контур управления может помочь. Вы практически строите его на отношении: ф "=" арксин ( Икс / р ) (для малых х). Вы можете отсоединить рычаг при больших изменениях угла.

Рычажное решение

Не могли бы вы немного расширить идею удочки? Я не могу представить, куда вы помещаете стержень, чтобы создать более высокое значение dx/dϕ.
Изобразите два круга разного диаметра. Теперь у вас есть только маленький круг, но если вы добавите стержень, вы получите больший круг. Чтобы получить одинаковый угол на обеих окружностях по окружности, вам нужно будет пересечь пути разной длины. Таким образом, используя больший круг, вы получаете желаемое соотношение между длиной пути и углом.
Я думаю, что это может быть действительно хорошим решением, поскольку вы можете синхронизировать угловое вращение диска с двигателем. Но я все еще не могу понять, куда вы кладете этот стержень! Можете ли вы сделать очень грубый набросок, чтобы показать, что вы имеете в виду? Вы предлагаете использовать два диска со стержнем, соединяющим их? Я почему-то думал, что прямой привод (т.е. прямое надевание оси основного большого диска на вал двигателя) был единственным вариантом в данном случае.
Я могу получить к нему доступ только с мобильного телефона до завтра, поэтому тогда я добавлю рисунок.
Конечно; просто надеюсь на грубый эскиз, чтобы я мог понять геометрию компонентов в вашем предложении.
@boardbite Я добавил скетч.
Это очень хорошо продумано и полезно; Спасибо! Я поиграю с ним и посмотрю, что я могу построить.