Металл2024 Реклама
Метобр2024 Реклама

Marlin: управление шаговыми двигателями

SergeyR7
Идет загрузка
Загрузка
17.07.2018
12542
53
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

30
Marlin: управление шаговыми двигателями
Как выяснилось, прошивка Marlin не совсем честно управляет шаговыми двигателями. При увеличении частоты импульсов для шага, нарушается равномерность (период) импульсов.

Про разгон/торможение не буду рассказывать. Подключил осциллограф к пину STEP и гонял отключённый мотор с разной скоростью через Repetier-Host. У меня в настройках установлено 100 шагов на 1 мм. Считать скорость импульсов удобно - скорость 10 мм/с соответствует 10*100 = 1000 импульсов в секунду, т.е. частота импульсов 1 кГц. И наоборот - 5 кГц соответствует скорости перемещения 5000/100 = 50 мм/сек.

Начал с низкой скорости перемещения. Выставил 50 мм/сек и увидел что и ожидалось:
Marlin: управление шаговыми двигателями
Только частота импульсов примерно 4 кГц, т.е. реальная скорость 40 мм/сек. Это объясняет несоответствие расчётного времени печати в слайсере и реального времени печати. Аналогичная ситуация и на скорости 80 мм/сек - реальная скорость печати 64 мм/сек… Поднимаю скорость, 100 мм/сек - реально 79 мм/сек:
Marlin: управление шаговыми двигателями
Поднимаю скорость до 130 мм/сек и тут я удивился:
Marlin: управление шаговыми двигателями
Импульсы пошли пачками по два. Период пачек 193 мкс - частота пачек 5.18 кГц. Умножаем частоту на 2 (два импульса в пачке) получаем 103,6 мм/сек.

Дальнейшее повышение скорости перемещения выглядит также: 180 мм/сек соответствует 7,19 кГц * 2 - это 14380 импульсов в секунду (143 мм/сек).

Формально, количество импульсов соответствует (немного с занижением) скорости перемещения, но фактически, это может привести к искажению печатаемой модели. Если для перемещения печатающей головки на таких скоростях это сильно может не повлиять из-за инерции, то на экструдере это может привести к неравномерной подачи прутка. В зависимости от драйвера, этот эффект может сгладиться, например, если драйвер делает аппроксимацию микрошагами (1/128) и контроллирует реальное вращение вала. Если простой драйвер, например, A4988 - тут теряем момент на валу двигателя и можем получить пропуск шагов.

Если посмотреть в прошивку:
Marlin: управление шаговыми двигателями
Измерения подтверждаются кодом - для частоты импульсов от 10 кГц до 20 кГц получаем пачки по 2 импульса. Если частота выше 20 кГц - в пачке 4 импульса.

Из этого можно сделать следующий вывод:

При выборе количества микрошагов (1/16, 1/32, 1/128 и т.п.) нужно проверять, что пачки импульсов не повлияют на результат. Особенно это критично для экструдера. Если выбрать 1/128 микрошаг на драйвере экструдера, то предельная максимальная скорость вычисляется из ограничения частоты импульсов в 10 кГц. У экструдера без редуктора, на один оборот 200 шагов (если шаг двигателя 1,8 градусов).

Предельная скорость вращения вала экструдера 10000 Гц / (200 * 128) = 0,390625 оборотов в секунду, если превысить эту скорость, то возможно появление волн и т.п. - подача пластика будет пульсирующей.

Шестерёнки у всех разные - скорость подачи прутка можно пересчитать из скорости оборотов, зная диаметр шестерёнки. Это примерный расчёт, т.к. соотношение скорости подачи прутка и диаметра шестерёнки может зависеть от силы прижима и других параметров.

Итог такой: толще сопло - крупнее микрошаг. Сравнивать дроби - 1/16 больше, чем 1/128, т.е. крупнее.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

30
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама