Какой лучший способ построить замкнутый цикл непрерывного вращения сервопривода для 3D-принтера?

resolution servo closed-loop

Поэтому я подумывал об использовании двигателя с замкнутым контуром в моем 3D-принтере для повышения точности и высокой скорости печати без потери шагов. Я проанализировал доступные варианты, включая простую настройку шагового тока и изменения прошивки, чтобы предотвратить потери шага, но я хочу найти лучший способ сделать это с помощью кодеров. Проблема в том, что мне нужно довольно высокое разрешение для 3d-принтера, и обычно серводвигатели с высоким разрешением используют потенциометры, которые ограничены и не подходят для 3d-принтера. Я подумываю о том, чтобы построить свой собственный замкнутый сервопривод непрерывного вращения с использованием шаговых двигателей и энкодеров постоянного тока, но я не могу найти ни одного энкодера высокого разрешения по разумной цене. Итак, есть ли какой-то способ каким-то образом использовать энкодеры с низким разрешением (например, 36 импульсов на каждый полный оборот) или есть какой-то тип энкодера, который я могу использовать для повышения точности по разумной цене, кроме оптических? Также есть ли какое-либо другое решение для замкнутых систем по разумной цене?
Обратите внимание, что я отдаю себе отчет в том, что мне, возможно, придется модифицировать прошивку или написать свой собственный код для двигателей и программировать их с нуля.
Примечание: Вы можете считать этот вопрос короткозамкнутыми шаговыми двигателями возможным дубликатом, но я уже читал об этом, и моя главная проблема заключается в том, что я не могу найти ни одного дешевого энкодера с высоким разрешением для этой цели.

Кроме того, по какой-то причине я не могу использовать такие продукты, как шаговые приводы с замкнутым контуром BTT S42B, мой единственный вариант-построить их самостоятельно.
TL;DR:
Существует ли какой-либо тип кодера с высоким разрешением и дешевой ценой для использования в 3D-принтерах? (Я не имею в виду бренд, я имею в виду технологию)

, 👍1

Обсуждение

Я просто прошу разъяснений: с одной стороны, вы говорите: "Мне нужно довольно высокое разрешение для 3d - принтера", а с другой стороны, вы считаете, что 36 "шагов" за поворот-в то время как стандартные шаговые двигатели делают 200 шагов (1,8 градуса)?, @octopus8

@octopus8 Проблема именно в этом. Дешевый кодер пульсирует каждые 10 градусов, что так низко. У меня в голове была идея, например, уменьшить передачу 1:100 и прикрепить кодер к входной части коробки передач, чтобы разрешение составляло 0,1 градуса. Я прошу решения этой проблемы, включая другие типы кодировщиков и, возможно, любое аналогичное решение, @Mahan Lamee

Шестерни будут иметь люфт, если вы не сможете его измерить, вы ничего не получите. И по иронии судьбы для измерения люфта шестерни потребуется кодер ha. Кодировщик с высоким разрешением-ваш единственный вариант tbh., @FourierFlux

Как насчет шаговых двигателей с присоединенной планетарной коробкой передач, например, 3:1? Есть ли у них также обратная реакция? Или, может быть, это не очень важно, потому что достигнутое увеличение разрешения все равно лучше?, @octopus8

Если вы стремитесь к точности, вы, вероятно, также стремитесь к качеству. Поскольку в принтере необходимо работать вместе по трем-четырем осям, задержка с исправлением шага, вероятно, принесет больше вреда, чем пользы для качества печати. Я по-прежнему считаю, что правильные драйверы (например, TMC5160) с правильными шагами-гораздо более простой способ предотвратить потерю шагов. У меня был прямой привод CoreXY с осью X до 1200 мм/с при скорости 20 км/с^2 без потери шага., @towe


2 ответа


Лучший ответ:

2

Вы можете использовать магнитный датчик положения.

Датчик положения Высокого Разрешения AS5048B

14-битный поворотный датчик положения с цифровым углом наклона (интерфейс) и ШИМ-выходом

14 бит означает 16 тысяч шагов/вращение. С шаговым двигателем, который делает 200 шагов/вращение и 16-кратный микрошаг, вам понадобится всего 11 бит, так что у вас есть много дополнительной точности, которую вы можете использовать для фильтрации шума.

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

AS5600 в режиме ШИМ делает до 920 Гц, AS5048-1 кГц. Я не уверен в режиме I2C, но наверняка больше. Конечно, вы должны учитывать задержку между измерением положения и передачей положения.


,

Очень интересная штука. Нужно ли просто приклеить плоский магнит к валу двигателя? --> нашел его. Есть даже ссылки на рекомендуемых поставщиков магнитов., @octopus8

@octopus8 Я купил обе платы на Aliexpress, и они уже поставляются с магнитом. Я думаю, вам просто нужно быть осторожным с железными деталями поблизости, потому что, если они находятся ОЧЕНЬ близко, они могут исказить поле и вызвать проблемы с нелинейностью., @FarO

Спасибо за ваш ответ. Так что я могу сделать до 1/64 микрошага, если у него 16 тыс. PPR. Что означает разрешение 2,5 микрона без каких-либо ошибок. Приведет ли это к каким-либо изменениям в качестве печати по сравнению с обычными принтерами без кодера?, @Mahan Lamee

Кроме того, у меня не так много информации о кодерах. Так что же лучше использовать для этой цели абсолютное или инкрементное?, @Mahan Lamee

Нет, я бы не сделал шаг до 64X, это механически бессмысленно, потому что ничто в 3D-принтере не является достаточно точным для этого. 16 РАЗ-это много. Кроме того, я предполагаю, что у вас не так много опыта в экспериментальных измерениях, но если вы измерите 1 мм линейкой с отметками 1 мм, ваша неопределенность составит 100%. Вы хотите, чтобы инструмент измерения был намного точнее, чем все, что вы измеряете. Кроме того, эти кодеры имеют погрешности по меньшей мере в 2 бита, поэтому 16X-это уже максимум, который вы можете использовать для получения значимых данных. В остальном вы должны посмотреть это, я никогда не использовал их лично (пока)., @FarO


1

Подход к коробке передач надежен, но он будет в 100 раз медленнее, а вы сказали, что хотите скорости.

,

Действительно, это будет намного медленнее. И, вероятно, менее надежен. Попытка построить разумную скорость всей установки уменьшения 100:1 означала бы вращение шагового двигателя на два порядка. Таким образом, он будет иметь гораздо меньший крутящий момент, вероятно, будет терять шаги и, возможно, даже будет невозможно повернуть так быстро. (В противном случае с увеличением 1:100, но я не буду рассматривать влияние ;) ). Хотя все это всего лишь замечание, а не полный ответ на то, как построить решение :(, @octopus8