Что такое дробление шага на драйверах

Обновлено: 04.07.2024

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

Микрошаговый режим – это режим, при котором происходит дробление шага большее чем 1/2 за счет получения плавно вращающегося поля статора, т.е. ток плавно снижается на одной обмотке и плавно нарастает на другой. Благодаря этому ротор шагового двигателя теоретически можно зафиксировать в любой произвольной позиции, если установить правильное отношение токов в обмотках (фазах).

Из графика видно, что увеличивая дробление шага мы дискретно приближаемся к изменению значений токов в обмотках по закону Sin, со сдвигом фаз π/2.

Теоретически, благодаря микрошаговому режиму, мы можем повысить разрешение шагового двигателя. Например, взяв двигатель с углом поворота ротора 1.8° (200 шагов на оборот), при микрошаговом режиме 1/8 получаем 800 шагов на оборот, при дроблении 1/16 – 3200 шагов на оборот и так далее. На практике же, для большинства используемых шаговых двигателей, повышение дробления шага больше 1/8 не дает ожидаемого повышения разрешения двигателя. Это происходит из-за несовершенства деталей шагового двигателя, инерции ротора, силы трения и ряда других причин.

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

Ниже приведен результат испытаний связки шаговый двигатель + блок управления SMD 4.2 CAN в динамометрическом стенде.

Из графиков можно сделать вывод, что дробление шага отрицательно сказывается на величине максимального момента двигателя, но положительно влияет на его равномерность (особенно это видно при режиме 1/128). Так же микрошаг сильно снижает максимальное количество оборотов в минуту, которое может выдать шаговый двигатель. Это происходит из-за того, что с увеличением дробления шага, растет количество переключений напряжения, подаваемого на обмотки, что ведет к росту потерь. Поэтому в драйверах нового поколения SMD-4.2i разгон и торможение двигателя происходит в микрошаговых режимах, а при увеличении скорости драйвер автоматически понижает дробления шага в момент, когда текущее дробление не дает преимуществ над меньшим дроблением для данной частоты вращения ротора шагового двигателя.

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

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

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

Статья относится к принтерам:

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

В общем, попытаемся опровергнуть или подтвердить этот миф. Для этого я взял поверенный энкодер на 80000 импульсов на оборот, устройство индикации к нему и соорудил небольшой стенд. Двигатель установил наиболее распространенный, FL42STH47-1684A.

Разрушители легенд

Постараюсь ввязаться в неблагодарную битву за правду и развеять миф о микрошаговом режиме. Первый драйвер возьмем SMD-1.8 - простой промышленный драйвер, на основе DRV8825. Режим дробления 1/16.

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

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

Разрушители легенд

Максимальная погрешность получилась 0,19 градуса, то есть дробление выше 1/8 не дает увеличения точности позиционирования, по крайней мере на DRV8825. Также мы видим, что есть некоторое количество точек, которое выпадает из общей картины – это либо дефект на роторе, либо баг, с этим разберусь на следующих выходных.

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

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

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

Ардуино-контроллеры используемые в любительском ЧПУ, бывают различного вида, но все содержат одинаковые компоненты:

  1. Микроконтроллер - который в себе содержит не только прошивку (программа по которой он работает), но и специальную память EEPROM в которой можно хранить настройки контроллера, и они не теряются, при отключении контроллера от питания.
  2. Микросхема преобразования USB сигнала в USART сигнал, для связи компьютера с микроконтроллером.
  3. Драйвера моторов - специальные модули преобразующие цифровые данные от микроконтроллера, в нужное напряжение, и ток, который подается на моторы.


Контроллер лазерного выжигателя


Контроллер микро-фрезерного станка



И плата подключаемая к ардуино контроллеру

По умолчанию в 0.9 версии контакты настроены следующим образом:

Карта контактов

Карта контактов

Карта контактов для платы Arduino Mega версия GRBL 0.9:

Драйвера моторов

Применяемые драйвера моторов бывают различных видов, но принцип работы, подключения, и управления одинаковый, на следующем рисунке, представлен один из них:

Драйвер мотора

1) EN (Enable) - Данный вывод может применяться для остановки работы шагового двигателя, если подать на этот вход +5 вольт, то управляющие сигналы, приходящие на этот драйвер не будут применяться, а мотор остановиться.

5) STP (STEP) - На данный вход драйвера, с ардуино-контроллера приходят импульсы, каждый импульс вызывает поворот оси мотора на 1 шаг, 1 шаг соответствует углу указанному на моторе:

мотор

В данном примере 1 шаг соответствует углу 1.8 градуса, если на данный вывод подать 10 импульсов, то ось мотора повернется на 18 градусов, а если подать 100 импульсов, то ось повернется на 180 градусов.

2,3,4) M0,M1,M2 - Данные выводы позволяют настраивать дробление шага, т.е. подавая импульсы на вывод №5, можно уменьшить угол поворота, например если настроить дробление 1/2, то для поворота оси мотора на 180 градусов потребуется подать уже 200 импульсов, а если сделать дробление 1/4, то потребуется уже подать 400 импульсов, для поворота на 180 градусов.

6) DIR - Управление направлением вращения, если на данном входе 0 вольт то ось мотора вращается в одном направлении, если +5 вольт, то в обратном.

7,8) Внешнее питание для подачи его на шаговый мотор, дело в том что для моторов используется отдельное питание, которое зачастую намного выше того, что используется для ардуино-контроллера, и цифровых входах драйвера.

9,10,11,12) Контакты доля подключения шагового мотора, шаговый мотор представляет собой 2 отдельные обмотки, которые называют A и B, в месте подключения часто можно видеть надписи +A и -A, что означает подключение первой обмотки, и +B и -B, что означает подключение второй обмотки.

Дополнительно: Если взять и поменять местами контакт +А и -А, то мотор изменит направление вращения, т.е. если раньше он вращался по часовой стрелке, то станет против часовой, и тоже самое в обратном направлении. Что позволяет инвертировать направление вращения, в "железной части", а можно это делать программным путем, в настройке прошивки.

Подключение концевиков

У станка есть рабочее поле, в пределах которого выполняется фрезеровка/гравировка, но в случае неправильных настроек, или указании координат куда двигаться, находящимися за пределами рабочей зоны, может повредиться механика и электроника. Для того что-бы такого не было, добавлена возможность подключать концевики, для каждой из оси, на каждую ось приходится по одному входу, методика подключения следующая:

подключение концевиков

Для примера подключение концевиков к оси X, к входу микроконтроллера подключается 2 кнопки/тумблера, которые располагают на краях по оси X, по умолчанию кнопки разомкнуты, и значит +5 вольт, на вход микроконтроллера не подается. Но как только механика станка достигнет границы по оси X, сработает одна из кнопок, и на вход микроконтроллера попадет +5 вольт, что вызовет немедленную остановку станка.

. Но это нужно настроить, будет описано ниже

Но на схеме так-же нарисован резистор, обычно ставится с сопротивлением 10 килоОм. Данный резистор нужен для того, что-бы в тот период времени, когда не нажата ни одна кнопка концевика, на вход микроконтроллера подавалось 0 вольт.

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

Список параметров хранящихся в EEPROM контроллера.
$0 = 10 Ширина импульса Step, мкс.
$1 = 25 Задержка перед переходом на удержание, мс.
$2 = 0 Маска инвертирования сигналов Step: 00000000
$3 = 6 Маска инвертирования сигналов Dir: 00000110
$4 = 0 Инвертирование сигнала Step enable, BOOL
$5 = 0 Инвертирование входов от конечных датчиков (концевики), BOOL
$6 = 0 Инвертирование входа от датчика поверхности Probe, BOOL
$10 = 3 Маска получения статуса от GRBL: 00000011
$11 = 0,020 Отклонение при прохождении крутых поворотов, мм.
$12 = 0,002 Величина сегмента дуги, мм.
$13 = 0 Данные от контроллера GRBL в дюймах, BOOL
$20 = 0 Включить программное ограничение перемещений (параметры $130,$131,$132) BOOL
$21 = 0 Включить ограничение по концевым датчикам, BOOL
$22 = 0 Автопозиционирование по концевикам, поиск точки Home, BOOL
$23 = 1 Маска инвертирования направления движения к точке Home 00000001
$24 = 50,000 Скорость движения у концевиков, мм / мин
$25 = 635,000 Скорость движения к точке Home, мм / мин
$26 = 250 Задержка срабатывания концевиков (антидребезг) мс.
$27 = 1,000 Расстояние «отскока» от концевиков, мм.)
$100 = 314,961 Число шагов на мм. по оси X, шаг / мм
$101 = 314,961 Число шагов на мм. по оси Y, шаг / мм
$102 = 314,961 Число шагов на мм. по оси Z, шаг / мм
$110 = 635,000 Максимальная скорость перемещений по оси X мм / мин
$111 = 635,000 Максимальная скорость перемещений по оси Y мм / мин
$112 = 635,000 Максимальная скорость перемещений по оси Z мм / мин
$120 = 50,000 Ускорение по оси X (чем больше значение тем быстрее разгон) мм / сек ^ 2
$121 = 50,000 Ускорение по оси Y (чем больше значение тем быстрее разгон) мм / сек ^ 2
$122 = 50,000 Ускорение по оси Z (чем больше значение тем быстрее разгон) мм / сек ^ 2
$130 = 225,000 Программное ограничение перемещения по оси X мм (включение $20 = 1)
$131 = 125,000 Программное ограничение перемещения по оси Y мм (включение $20 = 1)
$132 = 170,000 Программное ограничение перемещения по оси Z мм (включение $20 = 1)

Вывод списка параметров, команда: $$
Изменение параметра: $x = значение (x - номер параметра, например $100=90, новое значение количества шагов на один миллиметр для оси X = 90)

Таблица значений для масок инвертирования:

Инв. X Инв. Y Инв. Z Маска
bit
Значение
dec
Нет Нет Нет 00000000 0
Да Нет Нет 00000001 1
Нет Да Нет 00000010 2
Да Да Нет 00000011 3
Нет Нет Да 00000100 4
Да Нет Да 00000101 5
Нет Да Да 00000110 6
Да Да Да 00000111 7

Если например нужно инвертировать направление движения по осям X и Y, выбираем маску 00000011 значение 3.
Вводим команду: $3 = 3 OK

После внесения изменений в параметры, выполняем сброс контроллера (команда CTRL-X OK или соответствующая кнопка в управляющей программе).

Настройка параметров ($100, $101, $102) количество шагов на миллиметр для осей X, Y, Z.
Для ШВП. Вводные:
1. Шаг винта мм/оборот
2. Число полных шагов на один оборот вала двигателя, для шагового двигателя обычно 200 но может быть и меньше (смотрите документацию на двигатель).
3. Микрошаг (деление шага, установленное на драйвере двигателя) если полный шаг берем 1.
Шагов на миллиметр = Число полных шагов * микрошаг / Шаг винта.
Пример для оси Y: Шаг винта = 5, Число полных шагов = 200, микрошаг = 8; 200 * 8 / 5 = 320
Задаем новое значение для оси Y: $101 = 320 OK, делаем сброс CTRL-X и проверяем перемещение (например F500 G1 Y30).
Тоже самое для других осей.

DM442 Leadshine, напряжение 20..40 В, ток до 4.2 А

Микрошаг - режим деления шага шагового двигателя, когда обмотки мотора запитаны не полным током, а его уровнями, изменяющимися по закону sin в одной фазе и cos во второй.

микрошаговый режим шагового двигателя


В общем случае под микрошагом понимают микрошаговый режим управления шаговым двигателем, иначе говоря - режим деления шага. Микрошаговый режим отличается от штатного режима управления двигателем тем, что в каждый момент времени обмотки шагового мотора запитаны не полным током, а некими его уровнями, изменяющимися по закону sin в одной фазе и cos во второй. Такой метод дает возможность фиксировать вал в промежуточных положениях между шагами. Количество таких положений задается настройками драйвера. Скажем, режим микрошага 1:8 означает, что с каждым поданным импульсом STEP драйвер будет перемещать вал примерно на 1/8 полного шага, и для полного оборота вала потребуется подать в 8 раз больше импульсов, чем для режима полного шага.

Применение микрошагового режима


У микрошагового режима может быть несколько применений.
Вначале разберем несколько заблуждений относительно микрошага:

  1. Микрошаг позволяет увеличить точность привода.
    На самом деле это не так. Во-первых, этому мешает геометрическая неидеальность ротора и статора двигателя, неидеальные обмотки, зазоры в подшипниках вала и т.п. В результате двигатель выполняет шаги всегда с некоторой погрешностью(как правило, 5% от величины полного шага), причем абсолютное значение погрешности постоянно для любого выбранного микрошагового режима! Кроме того, во многих драйверах управление двигателем также далеко от идеального, что приводит к дополнительной неравномерности перемещения в режиме микрошага. Дальнейшее деление шага более чем на 5-10 микрошагов приводит только к увеличению разрешающей способности привода, но не точности. То есть вы сможете более дискретно задавать позицию в ЧПУ системе, но не сможете её получить с заданной точностью.
  2. Микрошаг значительно снижает момент двигателя(относительно полношагового режима).
    Момент действительно снижается. Однако, использование микрошага одновременно увеличивает плавность хода двигателя, и снижает резонансные явления, что способствует увеличению момента. Два противоположных влияния на момент в среднем более-менее уравновешивают друг друга. В многих случаях применение микрошага на самом деле увеличивает момент, поэтому целесообразность отказа от микрошагового режима должна определяться в каждом конкретном случае.

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

Выбор оптимального режима деления шага


Оптимальный режим деления шага необходимо выбирать в зависимости от конкретного станка и стоящих задач. Основными факторами являются необходимость снизить резонанс двигателей, уменьшить шум, разрешающую способность станка. В большинстве случаев имеет смысл использовать наибольшее деление шага, при котором станок сможет развивать расчетную максимальную скорость. Ограничением в данном случае будет максимальная частота входных импульсов у драйвера или максимальная частота генерации управляющих импульсов ЧПУ-системой. Скажем, скорость вращения 10 об/сек стандартного двигателя с шагом 1.8 град требует подавать импульсы STEP с частотой 2000 Гц для режима полного шага и с частотой 256 КГц для деления шага 1:128, тогда как, например, программа Mach3 максимально может генерировать импульсы с частотой 100 Гц.

Микрошаговый режим драйверов Leadshine


Цифровые драйверы Leadshine построены с применением особой технологии - драйверы всегда используют максимальный режим деления шага. Установка микрошагового режима на самом деле указывает множитель - сколько микрошагов надо совершить на каждый импульс STEP. Такая технология позволяет добиться максимальной плавности движения при любых установках режима деления шага и максимально устранить вибрации шагового двигателя.

Читайте также: