Что такое ток удержания шагового двигателя
4.3.8. Управление питанием мотора¶
4.3.8.1. Снижение тока потребления¶
Для уменьшения энергопотребления шагового двигателя в режиме ожидания контроллер позволяет задавать уровень потребляемого тока в состоянии остановки ниже номинального значения. Этот режим по умолчанию активирован. Он повсеместно используется для снижения нагрева шагового двигателя в режиме удержания при сохранении точности нахождения в заданной позиции. Уровень тока удержания задаётся в процентах от номинального уровня тока в обмотках. Также определяется время в миллисекундах, через которое ток будет снижен. Опцию снижения тока можно отключить специальным флагом. Для настройки функции снижения тока удержания смотрите функцию set_power_settings (см. раздел Руководство по программированию ) или вкладку настроек XiLab — Настройка параметров энергопотребления . Установка номинального тока шагового двигателя осуществляется командой set_engine_settings (см. Руководство по программированию или раздел Настройка кинематики движения (Шаговый двигатель) ).
Разумным значением уровня сниженного тока удержания является (40-70%) . Это снижает энергопотребление в 2-4 раза, а сила удержания обычно остаётся достаточной. Время, через которое ток снижается разумно выбирать в диапазоне 50-500 мс. Это время окончания низкочастотных колебаний механической системы, которые могут сбить позицию удержания в некоторых системах.
4.3.8.2. Отключение питания мотора¶
Также для уменьшения энергопотребления шагового двигателя существует режим отключения питания мотора по таймеру. Это необходимо в основном для предотвращения траты энергии на удержание позиции, когда работа с установкой закончена и никаких движений не происходит долгое время. Этот режим по умолчанию активирован, но может быть отключен пользователем. Время от остановки до отключения настраивается в секундах. Разумным временем является 3600 секунд (один час). Для настройки функции отключения питания мотора смотрите функцию set_power_settings (см. раздел Руководство по программированию ) или вкладку настроек XiLab — Настройка параметров энергопотребления .
4.3.8.3. Специфика расчёта временных задержек¶
Все временные задержки работают следующим образом: при каждом переходе в состояние остановки двигателя запоминается время с точностью до миллисекунды. Далее, при достижении заданных пользователем таймаутов и включенности функций PowerOff/CurrentReduce происходит отключение питания двигателя или снижение тока в обмотках. Все настройки можно менять онлайн. Например, если увеличить время таймаута PowerOff после того, как он уже случился, то обмотки запитаются и функция PowerOff сработает снова по достижению таймаута от момента остановки двигателя. То же самое касается включения и отключения флагов использования режимов PowerOff/CurrentReduce. Отсчёт таймаутов останавливается и функции PowerOff/CurrentReduce отменяются при любом начале движения.
4.3.8.4. Функция Jerk free¶
Иногда необходимо плавно менять ток в обмотках двигателя для устранения вибраций механической системы. Для этого в контроллере предусмотрена опция Jerk free, где можно задать скорость выхода тока через обмотки с нуля на номинальное значение с точностью до миллисекунды. Опция включается соответствующим флагом. При этом все изменения тока стабилизации или отключения обмоток будут проходить с предварительным плавным набором или сбросом тока удержания. Например, если установлена скорость набора тока 100 мс и происходит событие снижение тока удержания до (50%) , то он будет снижен плавно за 50 мс (а не 100 мс, ведь 100 мс нужно чтобы полностью сбросить ток до нуля). Также за 50 мс ток будет снова набран до номинального при новом движении. Для настройки функции Jerk free смотрите функцию set_power_settings (см. раздел Руководство по программированию ) или вкладку настроек XiLab — Настройка кинематики движения (Шаговый двигатель) .
Функция плавного набора тока работает при любом изменении амплитуды тока в обмотках, например при смене номинального тока удержания. При этом скорость увеличения или уменьшения тока рассчитывается на основе максимального из введённых токов удержания: старого или нового. Если обмотки нужно отключить, то ток снижается до нуля, а только затем силовые выходные цепи контроллера обесточиваются. Если обмотки нужно запитать номинальным током, то они запитываются нулевым током и далее ток растёт до номинального.
Существуют исключения, когда ток мгновенно сбрасывается до нуля и обмотки отключаются, даже когда функция Jerk free включена. Это события опасности и попадание в состояние Alarm (см. Критические параметры ), а также моменты перезагрузки контроллера для обновления программного обеспечения. Все эти события редки и не должны происходить во время работы с позиционером.
Разумным значение времени Jerk free будет 50-200 мс, так как это приведёт лишь к низкоэнергетичным вибрациям на частоте 3-10 Гц, которые будут значительно меньше вибраций от бытовых шумов (шагов, сквозняка). Установка большого времени Jerk free и функции снижения тока для экономии электроэнергии и снижения нагрева мотора приведёт к постоянным задержкам для сброса и набора тока. Поэтому время Jerk free не стоит делать большим.
Можно ли безопасно снизить энергопотребление шагового двигателя, применив ШИМ к входу включения драйвера?
У меня есть плата управления драйвером шагового двигателя, основанная на чипе Allegro A4988. Я заметил, что когда двигатель неподвижен, у него гораздо лучший удерживающий момент, чем при движении. У меня конфигурация с батарейным питанием, и большую часть времени шаговый двигатель используется только для удержания позиции. Потенциометр установки предела уже находится на плате выключателя, поэтому я не могу изменить его с помощью своего микроконтроллера.
Смогу ли я подать сигнал PWM на вывод активации драйвера двигателя, чтобы изменить ток, поступающий в двигатель, чтобы я мог управлять двигателем с более высоким уровнем тока при активном движении и уменьшить ток для удержания положения?
Меня больше всего интересует влияние сигнала ШИМ на жизнь схемы драйвера. Нигде в техпаспорте не сказано, что вы можете или не можете делать что-то подобное.
Я не уверен, что вы подразумеваете под «потенциометром установки предела», но (при условии, что вы имеете в виду текущие резисторы и (что было бы интересным дизайном, они должны соответствовать низкому сопротивлению) резисторы) Читал на странице 9, в разделе Внутренний ШИМ Текущий контроль : R S 2 R S 1 ‘ role=»presentation»> R S 1 R S 2 ‘ role=»presentation»> R S 2
Максимальное значение ограничения тока устанавливается выбором RSx и напряжением на выводе VREF. Функция трансдуктивности аппроксимируется максимальным значением ограничения тока, (A), которое устанавливается I T r i p M A X ‘ role=»presentation»> I T r i p M A X
I T r i p M A X = V R E F / ( 8 R S ) ‘ role=»presentation»> I T r i p M A X = V R E F / ( 8 R S )
где — сопротивление резистора (Ω), а V_ — входное напряжение на выводе REF (V). R S ‘ role=»presentation»> R S
У вас есть доступ к контакту REF (контакт 17)? Если это так, настройка этого с помощью ЦАП даст тот же эффект, что и изменение чувствительных резисторов.
В противном случае вход «Включить», вероятно, является лучшим выбором, чем отключение питания или использование выводов спящего режима или выключения, для которых потребуется задержка в 1 мс (согласно описанию на стр. 10).
Я не вижу в таблице данных ничего, что бы указывало на то, что вывод разрешения не может быть импульсным. По внутренней схеме сложно сказать, не вызовет ли это проблемы. Разрешающий вывод отключает внешние клеммы, что может означать, что микросхема не может правильно перераспределять ток, вызывая скачки напряжения. Тем не менее, я ожидаю, что Allegro справится с этой ситуацией, так как это будет происходить каждый раз, когда Enable достигает высокого уровня.
Если у вас есть запасной водитель, то мой совет будет просто попробовать.
В качестве альтернативы, вы можете уменьшить напряжение Vref, а не использовать ШИМ. A4988 позаботится о текущем снижении для вас приятно. Это может быть достигнуто путем вытягивания контакта Vref немного ниже с помощью резистора и либо транзистора, либо контакта MCU, который может переключаться между низким и высоким импедансом.
Еще лучшим решением может быть автоматическое включение. Используйте сигнал шага для быстрой зарядки конденсатора, который поднимает напряжение Vref. Отсутствие шаговых сигналов позволяет медленно разряжать крышку, а вместе с ней напряжение Vref и ток двигателя. Чем быстрее шаги, тем выше Vref.
Вот очень грубая схема того, как это может работать. Я только угадал значения резисторов и не проверял, будут ли они работать вообще. (Упражнение осталось до читателя).
Установка тока шаговых двигателей 3D дельта принтера. Снижение резонансных вибраций
30.09.2016 Сайт https://anteh.ru
Они не позволяют установить максимальный паспортный ток шаговых двигателей 3х вертикальных X Y Z осей 1.7A (и это хорошо). Предельный ток для шагового двигателя экструдера(JK42HS40-1204D) 1.2A, для шаговых двигателей X Y Z осей(JK42HS60-1704A) 1.7А. Согласно документации максимальный ток у А4988 2A. Но у используемой платы драйвера A4988 его невозможно установить более 1.5A. Т.е. максимальный ток можно установить только для шагового двигателя экструдера. Связано с использованием вместо 20k резистора 30k в цепи формирования опорного напряжения платы драйвера. Сделано скорее для предотвращения перегрева и повреждения шаговых двигателей. Слишком большой ток может их повредить и в установке максимального тока нет необходимости, особенно для дельта принтера. Для дельта принтера ток устанавливаю на 30% меньше их максимального паспортного значения.
Забегая вперёд, использование дробления шага 1/32 вместо 1/16 не приведёт к увеличению разрешения принтера. Это приведёт к увеличению нагрева драйвера и двигателя, снижению момента двигателя. Не всегда использование 1/32 приведёт к снижению шума, как в режиме удержания, так и режиме хода. Поправить разрешение можно здесь. Всё будет зависеть от индивидуальных особенностей принтера, платы драйвера, шаговых двигателей. Причём оно настолько индивидуально, что при перестановке вроде бы одинаковых плат драйверов шум может уменьшиться или увеличится. Т.е. «шаманство» ещё то. В моём случае использование DRV8825 с дроблением 1/32 привело к существенному увеличению шума при удержании. Слабо уловимый свист А4988(Vref=1.2V=1.5A дробление 1/16) сменился на довольно заметное шипение/шелест DRV8825(Vref=0.85V=1.7A дробление 1/32) и только снижение тока до 0.9A поменяло шипение на еле различимый свист. Причём Y двигатель перестал шипеть при 1.2A, X при 1.1A, Z при 0.9. Перестановка одинаковых X Y Z драйверов меняет картину. В общем двигатель Y шипит/свистит существенно меньше остальных как с DRV8825 так и с А4988. Причём перестановка одинаковых драйверов меняет его шумность. Как видим всё не просто. Получается, для снижения шума нужно подбирать двигатели, драйвера, провода, мощность блока питания, напряжение питания двигателей, например поднять с 12 до 14V.
Субъективно показалось, что при 1/32 ход по Z более тихий, но были положения в которых двигатель начинал очень сильно «шелестеть» почти скрипеть и положения, в которых его было не слышно.
Фантазии по поводу разрешения. Для увеличения разрешения нужно использовать 0.9градусные двигатели вместо 1.8, с энкодером. Не дёшево и в ряде случаев это ничего, кроме опыта и морального удовлетворения не даст. Использую сопло 0.8мм толщина слоя 0.5мм, планирую на сопло 1.2 переходить. Диаметр стола 400 высота 835. Измеренная микрометром вертикальная погрешность, каждой из X Y Z осей используемого дельта принтера, при смене направления движения каретки 0.11мм. С такой погрешностью нет смысла о разрешении шагового двигателя беспокоиться, но это сравнительно малая погрешность. Используются рельсовые направляющие HIWIN, ремень GT2.
Это стандартные значения для 1.8град двигателя, дробление 1/16, ремень GT2 шаг 2мм и количество зубьев на шкиве двигателя =20. Для дробления 1/32 нужно установить Xsteps/mm, Ysteps/mm, Zsteps/mm в 160. Esteps не трогал, для него оставлен А4988.
Также можно в исходнике прошивки marlin поменять:
#define DEFAULT_AXIS_STEPS_PER_UNIT <80, 80, 80, 155>//
на:
#define DEFAULT_AXIS_STEPS_PER_UNIT <160, 160, 160, 155>//
При необходимости 4ре коэффициента можно вычислить так:
Для дельта принтера первые 3 коэффициента будут одинаковыми -это X Y X одинаковые двигатели.
360/1.8 = 200 шагов на оборот. 1.8 -угол шага.
(200*16)/(2*20) = 80 = (шагов на оборот * количество микро шагов устанавливается джамперами на RAMPS 1.4) /(приводной ремень GT2 с шагом 2 мм * 20-ти зубчатые шкивы на роторе шаговых двигателей каждой из XYZ осей)
Последний коэффициент экструдера рассчитывается так:
((200*16) / (d шкива подачи прутка * 3.14))*1.1 = (3200/(7.2мм*3.14))*1.1=
155
d шкива подачи прутка -это наименьший его диаметр в центе. Коэффициенты могут быть дробными.
Расчёт опорного напряжения, для выставления предельного тока драйвера делается так:
Для A4988:
Vrefэкструдер = 1.2А * 8 * 0.1Ом = 0.96V
Vrefxyz = 1.7А * 8 * 0.1Ом = 1.36V
Для DRV8825:
Vrefэкструдер = 1.2А * 5 * 0.1Ом = 0.6V
Vrefxyz = 1.7А * 5 * 0.1Ом = 0.85V
Значения можем уменьшить на 30%.
Для установки опорного напряжения используем любой мультиметр и отвёртку с изолированной ручкой. Включаем принтер, щуп минуса мультиметра на GND(земля) платы драйвера, плюс на движок подстроечного резистора -то что отвёрткой будем крутить. Двигатели должны быть отключены. Отвёрткой аккуратно выставляем нужное напряжение. Разные драйвера мешать можно, повторюсь соблюдайте правильную ориентацию установки драйвера, или приобретайте их с запасом.
На +5 и +12V была добавлена чип керамика 10u и 0.1u. И вместо +3.3V опоры, на подстроечный резистор, через 12k, были заведены +5V. Т.е. реализована схема как у A4988.
Ток был выставлен такой же, как и для A4988. Дробление задано такое же 1/16.
Результат:
С Vref всё было в порядке, субъективно, по показаниям осциллографа встроенные 3.3V лучше, чем внешние +5V. Т.е. предположение о повышенном шуме из-за нестабильности Vref было не верным. Доработка не нужна. Из произведённой доработки смысл есть оставить на +12V конденсаторы 10u и 0.1u.
Что касается акустического шума, с DRV8825 он субъективно стал меньше на 1/16. После autohome слышится ощутимый шелест, но при минимальном движении по X или Y наступает тишина, еле различимый свит, субъективно меньше, чем у A4988. Не обошлось без перестановки местами драйверов, шум при удержании снизился.
Единственно явное преимущество замены A4988 на DRV8825 -это снижение тепловыделения, можно смело палец на радиаторе держать сколько угодно долго. DRV8825 с током 1.2А. шаг дробления 1/16. Под платой драйвера первый второй джампера сняты, третий установлен. Если использовать шаг дробления 1/32 то тепловыделение будет больше, чем для A4988 c 1/16.
Из всего делаю выводы:
0. Со стабильностью Vref=3.3V у DRV8825 никаких проблем.
1. Для тестируемого принтера предпочтительно использование DRV8825 с шагом дробления 1/16 и с правильно выставленным током для используемой скорости печати. Снижает шум и в силу особенностей конструкции существенно снижает нагрев драйвера. Можно в цепь +12V на драйвер напаять конденсаторы, чип керамику, например 10u(или более) 25V 1206 и 0.1u 0805, хуже не будет.
2. Но если Вы решили собрать принтер сами, безопаснее использовать A4988, в отличие от DRV8825 у неё производитель выставляет безопасный ток 1A, предельный ток 1.5A, который при недосмотре не угробит, ни сам драйвер, ни двигатель. На A4988 можно в цепи питания +5 и +12V на драйвере напаять дополнительную чип керамику.
3. Единственное что позволило снизить шипение при удержании -это снижение тока и перестановка драйверов местами, дробление(для используемого принтера) осталось 1/16. DRV8825 субъективно начинал шипеть на большем токе, чем A4988. С DRV8825 печать различимо тише. Можно попробовать купить пачку другую шаговых двигателей и подобрать наименее шумные, вряд ли в этом есть смысл.
Реально и объективно замена A4988 на DRV8825, снизит тепловыделение при дроблении 1/16 и шум при печати. Перестановка драйверов местами может снизить шум/шелест при удержании двигателя. Снижение тока драйверов снижает шум, но нужно следить за отсутствием пропуска шагов. Для дельта принтера можно ставить ток на 30% и более % меньше максимального паспортного тока шагового двигателя, но нужно следить за отсутствием пропуска шагов и отсутствием вибраций эффектор. Использование дробления 1/32 увеличивает тепловыделение драйвера, снижает максимальную скорость печати и не всегда приводит к снижению аккустического шума и резонансных явлений.
Установка тока X Y Z драйверов дельта принтера
Последняя на 15.09.2016 прошивка marlin, меняем параметр DEFAULT_STEPPER_DEACTIVE_TIME с 60 на 600, чтобы двигатели не отключались через 60 секунд при простое:
#define DEFAULT_STEPPER_DEACTIVE_TIME 600
Команда autohome g28, включаем шаговые двигатели на удержание. Меряем и настраиваем токи XYZ драйверов, как 30% от максимального паспортного значения тока двигателя. По паспорту 1.7A настраиваем 1.2А.
Создаём или берём какую-либо длинную модель, растягиваем на весь рабочий стол, скорость печати задаём, например 35мм/сек, формируем G код. Высоту печати настраиваем, чтобы она началась на высоте, например 50мм от поверхности стола, филамент вытаскиваем из экструдера, реальная печать не производится. Через SD карту запускаем на печать. На LCD экране принтера скорость печати 100%, фейдером её можно до 999% довести т.е. увеличить с 35мм/сек до 35*9.99 до 350мм/сек. Смотрим максимальную паспортную скорость принтера, в текущем случае производитель заявляет 300мм/сек. Т.е. при скорости печати 35мм/сек могу произвести аппаратное увеличение скорости печати через меню принтера до 850%.
Далее, у нас есть 2 настраиваемых параметра, аппаратная скорость печати от 100%(35мм/сек) до 850%, это 35-300мм/сек и ток X Y Z драйверов. Как обратную связь контролируем пропуск шагов и вибрации эффектора при движении хотэнда по окружности и/или прямой.
Проверим пропуски шагов, настраиваем токи X Y Z в 1.2A (для 1.7А двигателей), и плавно увеличиваем скорость печати шагами по 50%. Для DRV8825 ток 1.2А заметные пропуски начинаются на 850%. Проявляются в виде щелчков и опускании плоскости печати по вертикальной оси вниз, во время щелчков экструдер понемногу приближается к столу, причём наблюдается перекос плоскости печати. Ниже 3 демонстрационных видео демонстрирующих пропуски шагов:
DRV8825 ток 1.2А скорость 300мм/сек
DRV8825 ток 1.6A скорость 300мм/сек
A4988 ток 1.2A скорость 300мм/сек
Реальная комфортная скорость для точной печати у этого принтера 25-40мм/сек, после описанных изменений. Можно печатать до 100мм/cек. Драйвер DRV8825 ток 0.8А, дробление 1/16. Максимальная скорость в районе 200мм/сек, с DRV8825, если выше, то наблюдаются пропуски.
Для DRV8825 ток 0.5А, 1/16, пропуски наблюдаются на 300% или 105мм/сек. В управляющем файле задана скорость 35мм/сек.
Тестируемый принтер, вопреки маркетинговым заявлением продавца, не будет работать со скоростью печати 300мм/сек, нужно пробовать увеличить напряжение питания шаговых двигателей.
Наблюдается некая вилка скоростей печати, при которых эффектор не вибрирует, резонансные явления минимальны. Он вообще не вибрирует, до скоростей 40-60мм/сек, далее начинает немного вибрировать в центральной части стола. Потом вибрации усиливаются и затем на 250мм/сек и более, снижаются. Увеличение напряжения питания шаговых двигателей должно увеличить скорость их работы, и соответственно скорость печати, что весьма актуально, в том числе изменить шумность работыи повлиять на резонансные явления.
На скоростях, в районе 300мм/сек и более, для тестируемого принтера, вибрации эффектора слабы. Чем плохи вибрации эффектора или резонанс? Качество печати не проверял, но помимо шума резонанс убивает механику принтера, существенно снижает момент. В любом случае 40-60мм/сек качественной печати это очень хорошо. Резонанс существенно снижает момент двигателя, дробление шага также снижает момент, но если, например при дроблении 1/8 будет наблюдаться резонанс, а при 1/16 его не будет, то можно сказать что при увеличении дробления до 1/16 момент увеличился т.к. исчез резонанс. Паразитный резонанс может снижать момент в большей степени, чем дробление.
Пока закончилось так: драйвер DRV8825, ток X Y Z =1.3A, дробление 1/16. Питание шаговых двигателей оставлено прежним +12V. На глаз — увеличение тока драйверов X Y Z приводит к снижению вибраций эффектора. Возможно, ток будет установлен в 0.6A и напряжение питания +24VDC от линейного источника питания. Об этом в других статьях
драйвер шагового двигателя
Посоветуйте драйвер шагового двигателя, позволяющий регулировать как ток при вращении, так и ток удержания. Желательно совместимый с стандартными 16-контактными разъемами (как на платах 3д принтеров)
Нужно для управления монтировкой телескопа. Там червячная передача, а потому особо удержание практически и не требуется
- Ссылка
В NVC70514 вроде можно задавать ISTEP и IHOLD отдельно. Но он по SPI управляется, так что не знаю, есть ли оно на стандартных 16-тиногих платках, на них вроде ножек для SPI не предусмотрено.
- Ссылка
Для биполярных двигателей есть неплохое решение, да и по деньгам копейки выйдет, ключи на ток более 3 ампер: https://bezkz.su/publ/shemy/shagovye-dvigateli/700110-drayver-shagovogo-dvigatelya.html
Еще Eddy_Em в своём ЖЖ обещал свой драйвер разработать, но что-то пока не разработал, светодиодные матрицы не дают ему покоя:)
- Показать ответы
- Ссылка
вопрос цены не принципиален (в разумных пределах), а вот компактность хотелось бы
- Ссылка
Смотри в сторону тринамиковских. Есть с управлением по SPI, I2C и UART. У некоторых вообще внутри полноценный контроллер, которому и STEP/DIR не нужны. Разве что обратная связь не заведена, это тебе самому нужно будет энкодер к МК подключить.
P.S. У меня студент один занимается автоматизацией попсовой экваториальной монтировки. Вполне ничего у него даже на абдуринке получилось. Если перейдет на STM32, так вообще сможет полноценный аналог какой-нибудь мидовской системы сделать с встроенным каталогом и помощником выставления оси.
- Ссылка
Только вот позавчера мне бухгалтер звонила, что накладные пошли в оборот. В общем, месяца через два, авось, придут детали, буду разрабатывать.
На али, кстати, только вчера я видел подобное: тоже на одной плате и драйвер ШД, и МК, и холловский энкодер. И тоже умеет кучу интерфейсов. И это всего за полторы тысячи рублей. Правда, никакой документации.
// а с матрицей я еще балуюсь: хочу добить «арканоид», но что-то у меня с управлением не очень получается, да и надо с «бонусами» придумать что-нибудь эдакое. «Тетрис» и «змейка» работают нормально.
- Показать ответ
- Ссылка
На али, кстати, только вчера я видел подобное: тоже на одной плате и драйвер ШД, и МК, и холловский энкодер.
проект опенхардварный, на гитхабе вроде попадалась схема с переделкой на хорошие драйверы (http://www.trinamic.com tmc2208 )
- Показать ответ
- Ссылка
Они самые. Сегодня рассмотрел поближе — туфта полная. Все-таки, буду делать свое на тринамиках с обратной связью по 14-битному датчику Холла. А в качестве базового МК возьму либо STM32F042, либо F303 (вроде бы, у него тоже CAN и USB могут одновременно работать).