Руководство · Средний · 35 min

Как работают шаговые двигатели: угол отставания и потеря шагов

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

Фраза, которая объясняет принцип работы шаговых двигателей

Шаговый двигатель не выполняет шаги.

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

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

Синусоида момента, делённого на момент удержания, в зависимости от угла отставания между заданным полем и ротором в электрических градусах, от минус 180 до 270. Область от минус 90 до плюс 90 заштрихована как устойчивая. Красный маркер расположен на 90 градусах с подписью «срыв», с примечанием, что за этой точкой момент уменьшается по мере того, как ротор проскальзывает дальше. Янтарный маркер примерно на 26 градусах обозначает положение реальной нагрузки при 43 процентах пикового момента. Маркеры на минус 180 и 180 градусах подписаны как неустойчивые. Подпись отмечает, что один полный шаг равен 90 электрическим градусам.
Всё поведение шагового двигателя на одной кривой. Момент пропорционален синусу угла отставания, поэтому достигает максимума при 90 электрических градусах — ровно одном полном шаге, — а затем уменьшается по мере отставания ротора. Эта убывающая половина и есть ловушка. Скачать SVG

Записанная формула модели помещается в одну строку:

T = T_peak × sin(δ)

Здесь δ — угол отставания в электрических градусах. Всё остальное ниже — следствия.

Электрические градусы и двигатель 1.8°

Шаговые двигатели описывают в механических градусах: двигатель «1.8°» поворачивает вал на 1.8° за полный шаг, что даёт 200 полных шагов на оборот. Но магнитная структура повторяется гораздо быстрее вала. У стандартного гибридного двигателя 50 зубьев ротора, поэтому магнитный цикл повторяется 50 раз за оборот вала:

Величина Механическая Электрическая
Один полный шаг 1.8° 90°
Один оборот 360° 18 000° (50 циклов)
Пиковый момент при отставании на 1.8° отставании на 90°
Устойчивый диапазон ±1.8° ±90°

Нужна только одна арифметическая операция: один полный шаг — это 90 электрических градусов всегда, на каждом двигателе 1.8°. Поэтому устойчивый диапазон — где чем сильнее отставание, тем сильнее ротор тянет обратно, — равен ±1 полному шагу, а точка невозврата на 180° всего в двух полных шагах позади.

Почему шаговые двигатели теряют шаги

Посмотрите ещё раз на синусоиду. В диапазоне от −90° до +90° двигатель ведёт себя как пружина: чем дальше ротор отстаёт, тем сильнее его тянет обратно. Это устойчивое равновесие, и именно поэтому шаговый двигатель вообще может работать в разомкнутом контуре без энкодера и обратной связи. Ротор сам корректируется.

После 90° синус перегибается. Если ротор отстаёт ещё сильнее, момент, тянущий его вперёд, становится слабее. Значит, он отстаёт ещё сильнее, момент становится ещё слабее — а при 180° момент вообще меняет знак и начинает толкать ротор к следующему полюсу, а не возвращать к текущему. После этого ротор скользит, пока не попадает на следующий устойчивый зубец, на целый электрический цикл дальше.

Поэтому 90° — то место, где установившаяся нагрузка выходит за пределы. За этой точкой нет равновесия, к которому можно было бы прийти, есть только склон. Кратковременный выход за 90° ещё можно пережить, если у ротора достаточно импульса, чтобы вернуться: полношаговый режим делает именно это на каждом фронте шага, перелетая примерно до 100° и восстанавливаясь каждый раз, — но нагрузка, которая остаётся за 90°, уже выходит из равновесия.

В результате теряются шаги, и у этого явления есть три свойства, которые стоит запомнить:

  • Потеря незаметна. Энкодера нет. Драйвер продолжает считать импульсы, прошивка продолжает верить им, и представление машины о своём положении теперь постоянно неверно. Каждое последующее перемещение смещено.
  • Потеря кратна четырём. Ротор оказывается на следующей устойчивой точке, на один электрический цикл дальше — 360 электрических градусов, то есть четыре полных шага. Шаговый двигатель никогда не теряет один шаг. Он теряет четыре, восемь или сто.
  • Потеря не исправляется сама. Потеря шагов в противоположном направлении позже не компенсирует её, кроме случайного совпадения.

Симулятор шагового двигателя интегрирует это непосредственно, а не задаёт сценарий: в коде нигде не ищется потеря шагов. Уравнение движения ротора — приведённый выше закон синуса, и когда sin(δ) перегибается, ротор сам выходит из синхронизма, а сообщаемая потеря всегда кратна четырём.

Что увеличивает угол отставания

Есть три фактора, и их различение помогает диагностировать станок.

Нагрузка. При установившемся движении угол отставания устанавливается там, где создаваемый момент равен требуемому:

sin(δ) = torque demanded ÷ peak torque available

Нагрузка 43% от пиковой соответствует 26 электрическим градусам. Нагрузка 71% — 45°. Нагрузка 100% — 90°, прямо на краю, без запаса. Поэтому обычный совет — выбирать шаговый двигатель примерно на половину доступного момента: не из суеверного запаса, а потому что половина момента даёт 30 электрических градусов отставания и оставляет 60° запаса на переходный процесс, который вы не моделировали.

Ускорение. Для разгона ротора тоже нужен момент, и он берётся из того же бюджета. Во время ускорения требуемый момент равен load + J × α, поэтому угол отставания максимален на разгоне, а не при постоянной скорости. Если остановленному двигателю сразу задать полную скорость, заданное поле убегает вперёд, пока ротор ещё разгоняется: отставание превышает 90° за одну-две миллисекунды, и без силы, возвращающей его, продолжает расти, поэтому двигатель просто гудяет на месте. У этого предела есть название: предельная частота запуска, максимальная частота шагов, которую можно задать из состояния покоя без разгона.

Скорость. Это наименее очевидный и самый частый источник реальных отказов, поэтому ему посвящён отдельный раздел.

Момент падает с ростом скорости, а момент удержания — маркетинговое число

Число на наклейке двигателя — «0.44 N·m момента удержания» — измерено при неподвижном вале и номинальном токе обмоток. Оно почти ничего не говорит о движущемся двигателе.

Обмотка — это индуктивность. Чтобы создать момент, драйвер должен подавать в неё ток, а затем менять его направление снова и снова, всё быстрее по мере разгона двигателя. Этому препятствуют два фактора:

  • Реактивное сопротивление. Сопротивление обмотки изменению тока растёт пропорционально электрической частоте, а частота перемагничивания в 50× выше частоты вращения вала.
  • ПротивоЭДС (Back-EMF). Вращающийся ротор из постоянного магнита создаёт собственное напряжение, противоположное питанию. Начиная с некоторой скорости, питание просто не может подать ток.
Момент срыва в ньютон-метрах в зависимости от скорости двигателя в rpm для одного двигателя при фиксированном ограничении тока 1.2 ампера и трёх напряжениях питания. Каждая кривая остаётся постоянной на 0.311 ньютон-метров до угловой скорости, затем падает: 280 rpm при 12 вольт, 599 rpm при 24 вольт и 907 rpm при 36 вольт. Пунктирная опорная линия отмечает момент удержания при 1.2 ампера.
Один двигатель, одно ограничение тока, три напряжения питания. Горизонтальный участок — место, где драйвер ещё выигрывает; критическая скорость спада момента — место, где он перестаёт выигрывать. Напряжение питания смещает эту скорость, и именно поэтому 3D-принтеры перешли с 12 V на 24 V. Скачать SVG

Получаются два правила, важных, когда станок не может двигаться достаточно быстро:

Симптом Что изменить Почему
Останавливается под нагрузкой на низкой скорости Увеличьте ограничение тока До критической скорости ток непосредственно задаёт момент
Останавливается только на высокой скорости Увеличьте напряжение питания После критической скорости именно напряжение заставляет ток течь
Останавливается везде Неверный двигатель или слишком большая нагрузка Никакая настройка не спасёт двигатель недостаточного размера

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

Микрошаги: что они делают и чего не делают

Микрошаги означают поворот поля на доли полного шага смешиванием токов двух фаз, а не полным переключением фаз. При шаге 1/16 один импульс STEP поворачивает поле на 5.625 электрических градуса вместо 90.

То, что микрошаги действительно исправляют, — это звон. Ротор представляет собой массу на магнитной пружине с очень малым демпфированием. Если каждый раз изменять поле на 90 электрических градусов, ротор перелетает, колеблется и успокаивается — это слышно и видно. Такой шум создаёт двигатель в полношаговом режиме, и он оставляет рябь на поверхности. Уменьшите угол возбуждения в шестнадцать раз, и звон почти исчезнет.

Это можно измерить. Приведите одну и ту же ось с одной и той же скоростью и нагрузкой и запишите, насколько далеко каретка отклоняется от заданной траектории:

Микрошаги Размер шага (ремень GT2) Максимальное отклонение от траектории Установившаяся ошибка от нагрузки
Полный шаг 0.200 mm 0.127 mm 0.049 mm
1/2 0.100 mm 0.082 mm 0.045 mm
1/4 0.050 mm 0.061 mm 0.044 mm
1/8 0.025 mm 0.050 mm 0.044 mm
1/16 0.0125 mm 0.045 mm 0.044 mm

Сравните последние два столбца друг с другом: это весь аргумент. Увеличение разрешения в шестнадцать раз даёт примерно в 2.8× лучшее слежение, а затем улучшение прекращается — при этом установившаяся ошибка от нагрузки вообще не меняется. Она равна 0.044 mm при полном шаге и 0.044 mm при шестнадцатом шаге. Кривая третьего столбца приближается к четвёртому, но не отражает разрешение.

То, что микрошаги не исправляют, — угол отставания. При этой нагрузке ротор отстаёт примерно на 20 электрических градусов, что составляет 0.4 механических градуса, а на этой оси — 0.044 mm ошибки положения. При полном шаге это четверть шага, и никто этого не замечает. При шаге 1/16 те же 0.044 mm — это 3.5 микрошага, а драйвер уверенно сообщает положение, которого он не достиг. Деление шага сделало ошибку больше в единицах шагов, но ничего не изменило в самой ошибке.

Причину стоит сказать прямо. Чтобы удерживать положение на один микрошаг от фиксированного состояния, двигатель создаёт T_peak × sin(90° ÷ microsteps) — момент, доступный на один микрошаг, уменьшается по мере увеличения числа микрошагов:

Микрошаги Момент удержания на один микрошаг Доля момента удержания
Полный шаг sin(90°) 100%
1/8 sin(11.25°) 19.5%
1/16 sin(5.625°) 9.8%
1/256 sin(0.352°) 0.61%

Последнее число совпадает со значением, которое приводит литература по драйверам для шага 1/256, и в нём вся суть: при мелких делениях момент, отличающий один микрошаг от следующего, меньше трения в вашей машине. Ротор физически не может их различить. Он двигается, когда накопленная команда становится достаточно большой, чтобы преодолеть трение, а затем сразу перемещается на несколько микрошагов.

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

Как увидеть это

Самый полезный эксперимент — самый дешёвый. В симуляторе шагового двигателя выполните перемещение на 60 mm дважды, оставив всё одинаковым, кроме разгона:

С профилем ускорения Сразу на полную скорость
Пиковый угол отставания 25° — комфортно выше 90° через 1.2 ms, исчезает через 3.0 ms
Потеряно полных шагов 0 280
Где заканчивается ось 60.00 mm 4.0 mm

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

Когда всё идёт не так

Симптом Вероятная причина Что делать
Двигатель громко гудит и не вращается Заданная частота шагов выше предельной частоты запуска Добавьте профиль ускорения; проверьте начальную скорость
На каждой печати смещается на несколько миллиметров в одну сторону Потеря шагов на разгоне Снизьте ускорение, увеличьте ток или замедлите движение
На низкой скорости нормально, при ускорении останавливается Работает после критической скорости спада момента Увеличьте напряжение питания — ток не поможет
Положение отличается на число, кратное четырём полным шагам Классическое проскальзывание полюсов Найдите перемещение, перегружающее двигатель; число скажет, сколько шагов потеряно
Двигатель горячий настолько, что больно Слишком большое ограничение тока или двигатель выполняет настоящую работу 60–80 °C — нормально; сверьте предел с паспортом
Шершавый, шумный, вибрирует на одной скорости Резонанс в середине диапазона Измените микрошаги, добавьте демпфирование или избегайте этой скорости
Две обмотки соединены как одна пара Неверное соединение проводов Измерьте сопротивление: пара показывает несколько омов, неверное соединение — разрыв

Куда это ведёт

Когда угол отставания закреплён в голове, остальной мир шаговых двигателей перестаёт быть набором несвязанных правил. Настройка ограничения тока на A4988 задаёт T_peak. Выбор ремня или ходового винта определяет, во сколько электрических градусов обходится миллиметр ошибки. Возврат в начало по концевому выключателю восстанавливает абсолютное положение, которое станок с разомкнутым контуром управления никогда не может измерить. А профиль движения удерживает угол отставания в пределах ±90° на всём перемещении.

Это четыре грани одной синусоиды.

Исследуйте граф

Входит в эти сборки

Проекты и учебные пути, в которые входит это руководство.

Дополнительные материалы

Источники