Обсуждение точности позиционирования шагового двигателя в режиме микрошага

Собираем, настраиваем, печатаем, делимся опытом, помогаем новичкам

Модератор: Kaktus

Аватара пользователя
3D-SPrinter
Сообщения: 10967
Зарегистрирован: 19 ноя 2015, 14:23
Имя: Андрей
Откуда: Н.Новгород
Благодарил (а): 78 раз
Поблагодарили: 1031 раз
Контактная информация:

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение 3D-SPrinter » 30 дек 2017, 10:46

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

Изображение

Зависание между шагами - это теория, предполагающая:
Иногда микрошаговый режим используется для увеличения точности величины шага сверх заявленной производителем двигателя. При этом используется номинальное число шагов. Для повышения точности используется коррекция положения ротора в точках равновесия. Для этого сначала снимают характеристику для конкретного двигателя, а затем, изменяя соотношение токов в фазах, корректируют положение ротора индивидуально для каждого шага. Такой метод требует предварительной калибровки и дополнительных ресурсов управляющего микроконтроллера. Кроме того, требуется датчик начального положения ротора для синхронизации его положения с таблицой корректирующих коэффициентов.
А практически микрошаг применяется только при разгоне-торможении на малых скоростях (близких к собственному резонансу мотора) для уменьшения шума. А удержание и скорости в 2-3 раза больше резонанса происходят в полношаговом режиме.
Иногда контроллеры шаговых двигателей позволяют корректировать форму выходного сигнала путем добавления или вычитания из синуса его третьей гармоники. Однако такая подстройка должна производится индивидуально под конкретный двигатель, характеристики которого должны быть перед этим измерены.

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

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение pamalofeev » 30 дек 2017, 12:35

3D-SPrinter писал(а):
30 дек 2017, 09:51
Точно сказать не могу, но почти уверен, что в Марлине есть алгоритм коррекции дробных шагов.
Марлин совершенно ничего не знает о дробности шагов. Иначе там была бы переменная в конфиге, указывающая кол-во микрошагов на один целый шаг.
Уже столько копий переломали про точность микрошага... Но все споры теоретические! А измерить всем слабо???

Аватара пользователя
Alex Post
Сообщения: 7026
Зарегистрирован: 11 янв 2017, 17:22
Имя: Александр
Откуда: Брест, РБ
Благодарил (а): 333 раза
Поблагодарили: 822 раза
Контактная информация:

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение Alex Post » 30 дек 2017, 13:04

Предложи, как измерить?
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393

Firestartter
Сообщения: 86
Зарегистрирован: 01 окт 2016, 19:11
Имя: Виктор
Благодарил (а): 5 раз
Поблагодарили: 3 раза

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение Firestartter » 30 дек 2017, 13:40

Alex Post писал(а):
30 дек 2017, 13:04
Предложи, как измерить?
Первое, что мне приходит в голову - микросхема-датчик угла поворота, есть с разрешением 0,05 типа этого https://www.terraelectronica.ru/news/66, но точность маловата.

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение pamalofeev » 30 дек 2017, 13:59

Я бы повесил на вал ШД энкодер от оффисного струйника HP на 2400 рисок, в HP обычно на самом диске написано кол-во рисок. Взял бы самый дешевый логический анализатор, например такой https://ru.aliexpress.com/item/New-USB- ... 74523.html, повесил бы на него выход датчика энкодера и сигналы step/dir с драйвера ШД. ПО на анализатор - https://sigrok.org/, в нём есть декодеры для сигналов энкодера и step/dir. Для обычного ШД на 200 шагов/об и 16 микрошагах на один step получится 3 тика энкодера.
Прошу не считать меня голословным, сам я это проделать не могу, у меня нет принтера на шаговиках. Но если найдётся смельчак с прямыми руками, могу помочь с энкодером. Принтер смельчака должен позволить установку довольно крупного диска, примерно 100мм диаметром. За смельчаком естественно статья на 3дешник ;)

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение pamalofeev » 30 дек 2017, 14:00

Firestartter писал(а):
30 дек 2017, 13:40
Первое, что мне приходит в голову - микросхема-датчик угла поворота, есть с разрешением 0,05 типа этого https://www.terraelectronica.ru/news/66, но точность маловата.
У них еще и паспортная нелинейность порядка градуса.

Igor
Сообщения: 43
Зарегистрирован: 21 дек 2017, 07:30
Имя: Игорь
Поблагодарили: 1 раз

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение Igor » 30 дек 2017, 14:51

Ребята, разговор ни о какой точности не идет! Была высказана идея, что неравномерностью нанесения нити по оси Z может влиять микрошаги, и это всего лишь предположение. При чем тут точность, шум и их обсуждение...

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение pamalofeev » 30 дек 2017, 15:22

Igor писал(а):
30 дек 2017, 14:51
и это всего лишь предположение
Ну кому как, а мне очень интересно было бы проверить это предположение.

Igor
Сообщения: 43
Зарегистрирован: 21 дек 2017, 07:30
Имя: Игорь
Поблагодарили: 1 раз

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение Igor » 30 дек 2017, 15:39

pamalofeev писал(а):
30 дек 2017, 15:22
Ну кому как, а мне очень интересно было бы проверить это предположение.
Так проверь.
А то точность FDM печати по оси Z, целыми шагами при винте 8мм и 200шагами на оборот с перемещением на шаг в 0,04мм, при 400 шагах (0,9 градуса) это 0,02мм и естественно увеличивается при применении вала с оборотом на 4мм, не говоря при 1мм на оборот....

Аватара пользователя
Alex Post
Сообщения: 7026
Зарегистрирован: 11 янв 2017, 17:22
Имя: Александр
Откуда: Брест, РБ
Благодарил (а): 333 раза
Поблагодарили: 822 раза
Контактная информация:

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение Alex Post » 30 дек 2017, 16:06

pamalofeev писал(а):
30 дек 2017, 13:59
Я бы повесил на вал ШД энкодер от оффисного струйника HP на 2400 рисок, в HP обычно на самом диске написано кол-во рисок. Взял бы самый дешевый логический анализатор,
Интересное предложение. А обычная дуня не справится с фиксацией показаний? Собрать макет ШД + драйвер + энкодер + дуня, подавать в ком порт терминалом кол-во импульсов степ и читать оттуда сколько энкодер насчитал "тиков". Скетч простейший, имхо. Надо это дело обдумать...
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: HyperCube Evolution [StanislavI]

Непрочитанное сообщение pamalofeev » 30 дек 2017, 16:21

Alex Post писал(а):
30 дек 2017, 16:06
А обычная дуня не справится с фиксацией показаний?
Справится, оттуда https://github.com/misan/dcservo можно взять шустрый алгоритм обработки энкодера. Степы той-же дуней на драйвер подавать?
Igor писал(а):
30 дек 2017, 15:39
Так проверь.
Нет возможности, и об этом чуть выше я писал:
pamalofeev писал(а):
30 дек 2017, 13:59
сам я это проделать не могу, у меня нет принтера на шаговиках

Аватара пользователя
Alex Post
Сообщения: 7026
Зарегистрирован: 11 янв 2017, 17:22
Имя: Александр
Откуда: Брест, РБ
Благодарил (а): 333 раза
Поблагодарили: 822 раза
Контактная информация:

Re: Обсуждение точности позиционирования шагового двигателя в режиме микрошага

Непрочитанное сообщение Alex Post » 30 дек 2017, 17:06

pamalofeev писал(а):
30 дек 2017, 16:21
Степы той-же дуней на драйвер подавать?
Для чистоты эксперимента можно и другой. У меня Nano-дунь штук пять валяется для опытов, не проблема.
В общем, надо в мусоре поковыряться, вроде где то струйник валялся HPшный, глянуть что у него за диск.
Prusa i3 rework - трудится с 2015 года
Черно-оранжевый 3D-SPrinter 232 - https://3deshnik.ru/forum/viewtopic.php?f=21&t=393


Аватара пользователя
3D-SPrinter
Сообщения: 10967
Зарегистрирован: 19 ноя 2015, 14:23
Имя: Андрей
Откуда: Н.Новгород
Благодарил (а): 78 раз
Поблагодарили: 1031 раз
Контактная информация:

Re: Обсуждение точности позиционирования шагового двигателя в режиме микрошага

Непрочитанное сообщение 3D-SPrinter » 30 дек 2017, 17:41

pamalofeev писал(а):
30 дек 2017, 12:35
Марлин совершенно ничего не знает о дробности шагов. Иначе там была бы переменная в конфиге, указывающая кол-во микрошагов на один целый шаг.
Согласен. Это меня и смущает. А проверить можно гораздо проще - замерить напряжение на фазах мотора при удержании. Если напряжение есть только на одной фазе, то это полный шаг. И это значит, что деление шагов вообще нигде не учитывается. Скатывание мотора вперёд, или назад по дробному шагу процесс случайный. Но по теории вероятности направление скатывания 50/50%. Как-то так эта ошибка и компенсируется.

pamalofeev
Сообщения: 16
Зарегистрирован: 05 ноя 2017, 23:16

Re: Обсуждение точности позиционирования шагового двигателя в режиме микрошага

Непрочитанное сообщение pamalofeev » 30 дек 2017, 18:47

3D-SPrinter писал(а):
30 дек 2017, 17:41
А проверить можно гораздо проще - замерить напряжение на фазах мотора при удержании.
Так не получится, микрошаг же для драйвера задан, перемычками, и драйвер будет честно выдавать соответствующие напряжения по фазам. А вот скатился двигатель или нет так просто мы не узнаем.
Alex Post писал(а):
30 дек 2017, 16:06
Собрать макет ШД + драйвер + энкодер + дуня
Кстати, раз уж речь зашла о скатывании, на макете его можно и не увидеть, нужна обстановка приближенная к боевой, чтобы и ускорения с джерками были, и нагрузка на двигатель. Проще наверно на живой принтер поставить энкодер и стэпы с марлина снимать. А из того проекта https://github.com/misan/dcservo можно и обработчик step/dir выдернуть.

Ответить

Вернуться в «3D принтеры и 3D печать»

Яндекс.Метрика