Mechaduino - closed loop stepper controller

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Re: Mechaduino - closed loop stepper controller

Сообщение kindrat » 21 июл 2016, 15:00

Насколько я понял, сам датчик магнитный тоже не идеал. И вот тут как раз эти ребята придумали шаговиком его калибровать.
kindrat
 
Сообщения: 207
Зарегистрирован: 13 мар 2013, 14:31
Откуда: Химки

Re: Mechaduino - closed loop stepper controller

Сообщение Myp » 21 июл 2016, 15:36

да тут интересный симбиоз
у шаговика достаточно точно выдержаны стандартные шаги 1.8 градуса, калибруют как раз на эти точные шаги
а потом используют для точного выставления микрошагов
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Mechaduino - closed loop stepper controller

Сообщение ilalexey » 21 июл 2016, 16:32

Myp писал(а):чтобы любой мотор с редуктором превращать в шаговик с углом 0.1 градуса.

Да-да, велосипеды где-то рядом катаются.
Главное, чтобы было "не раз-два-три-четыре, а раз-два, раз-два" :)
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Mechaduino - closed loop stepper controller

Сообщение linvinus » 21 июл 2016, 18:13

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


как вариант "удешевления" можно попробовать использовать аналоговые датчики холла из двигателей cd-roma, в принципе этот двигатель и есть датчик-резольвер только в нём синусоиды не на 90 градосов смещены а на 120, статор можно выкинуть,

что то типа такого https://www.youtube.com/watch?v=HtvWJJo ... I9&index=9
вот тут обсуждали
post281090.html#p281090

датчики стоят копейки и я видел магнитны (кольца) отдельно в продаже, единственный недостаток - датчик будет крупнее чем у AMS.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Mechaduino - closed loop stepper controller

Сообщение alexxy » 22 июл 2016, 00:21

Кстати говоря, еще одна реализация похожей схемы

https://github.com/uStepper/uStepper
alexxy
 
Сообщения: 93
Зарегистрирован: 05 фев 2015, 22:58

Re: Mechaduino - closed loop stepper controller

Сообщение linvinus » 22 июл 2016, 12:02

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


Не знаю видели или нет, в теме про bldc я давал ссылку на ролик где в cnc станке вместо шаговиков используются bldc моторы с векторым управлением (проект открытый)




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

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

bldc моторы в отличие от шаговика могут работать в разных режимах, можно реализовать точно такое же управление step+dir но оно будет работать "идеально" как статичном режиме так и при больших ускорениях.

крутящий/удерживающий момент при низких скоростях или нулевых скоростях.

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

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

Ну да.
Я и говорю.
Чтобы не нужен был энкодер - ставим шаговик.
А чтобы ловить глюки шаговика - ставим энкодер.
Всё логично, чё...

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

вот ещё один пример, http://radiokot.ru/forum/viewtopic.php?f=8&t=119089
каретка перемещается обычным dc мотором, точность обеспечивает летна-энкодер т.е. получается сервомотор.
Последний раз редактировалось linvinus 22 июл 2016, 12:18, всего редактировалось 1 раз.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Mechaduino - closed loop stepper controller

Сообщение Madf » 22 июл 2016, 12:15

bldc конечно хорошо и ролик очень впечатляет, но даже если не брать корпус/раму в которую должно это всё устанавливаться (прочность), то всё тупо упирается в цену таких моторов и самого контроллера, судя по схеме (которую я глянул одним глазком) - ОМГ - это далеко не один чип (хоть и дорогой). Т.е. мало того, что много рассыпухи, что сулит и следовательно некую сложность сборки и места занимаемого, но и цену соответствующую...
Этот проект больше похож на научное исследованние, где цена и сложность не важна. :)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Mechaduino - closed loop stepper controller

Сообщение esisl » 22 июл 2016, 12:26

А если шаговик с редуктором?
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Mechaduino - closed loop stepper controller

Сообщение linvinus » 22 июл 2016, 12:40

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

Когда то давно народ для шаговиков тоже делал контроллеры на рассыпухе, так что у bldc всё ещё впереди.

С каждым годом bldc становится всё популярнее, сначала у авиа/автомоделистов как тяговый мотор, под эти задачи появились соответсвующие недорогие моторы, потом появились gimbal решения для них сейчас тоже много недорогих предложений, так что очевидно следующим витком будут хоббийные cnc станки.

В моём решении я использую bldc моторы для gimbal и контроллер (МК + драйверы моторов) для gimbal, только свою прошивку написал которая учитывает обратную связь с энкодера AS5045.

controller StormBGC32 with STM32F405RGT6 with DRV8313 with my custom firmware based on chibios
two bldc motors BGM4114-100 (for gimbal) + magnetic encoder AS5045 in Daisy Chain mode through SPI (DMA readings).

Схема управления мотором есть в этом видео https://www.youtube.com/watch?v=hLeS3XZ ... I9&index=4

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

esisl, редуктор добавит люфт в систему.

Добавлено спустя 3 минуты 32 секунды:
Кстати, DRV8313 поддерживает до 60в до 2А, так что как и в решениях с шаговиками большую мощность можно получить за счёт повышения напряжения, есть гимбал моторы рассчитанные на 6S (у меня 4S)
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Mechaduino - closed loop stepper controller

Сообщение esisl » 22 июл 2016, 12:40

Нннуу, да. Люфт - это да. Хотя есть безлюфтовые схемы, но они наверно дороже обойдутся.
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Mechaduino - closed loop stepper controller

Сообщение Zusul86 » 22 июл 2016, 16:11

linvinus писал(а):В моём решении я использую bldc моторы для gimbal и контроллер (МК + драйверы моторов) для gimbal, только свою прошивку написал которая учитывает обратную связь с энкодера AS5045.
А с STM32F103RC срастётся? Просто выходит на 2-3 мотора электроника обойдется под 50-60$...

Добавлено спустя 32 минуты 32 секунды:
Блин, для gimbal уже готовые моторы продаются с AS5048A http://ru.aliexpress.com/af/AS5048A.html
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Mechaduino - closed loop stepper controller

Сообщение linvinus » 22 июл 2016, 17:46

По умолчанию в StormBGC32 стоял STM32F103 , думаю можно попробовать в него уместиться.

основные затраты:
1) считать по spi 2,3 сенсора это 8 байт, потом распарсить т.к. данные не выровнены по байтам
2) на основе данных положения вычислить какую фазу подавать в моторы, это два синуса + формула перевода из VAlpha Vbetta в iA iB iC
3) на основе данных реального положения и положения "идеального" мотора вычислить как скомпенсировать рассогласование.

кроме того ещё предварительно требуется откалибровать минимальную мощность для каждого электрического градуса.
вот тут я расписывал что как
post355020.html#p355020
post356041.html#p356041
post355653.html#p355653

F4 выбирал по причине аппаратной поддержки hard float, но честно говоря работало и на softfloat я опцию компилятору не передавал.
правда всё равно у F4 частота в два раза выше чем у F1.

Блин, для gimbal уже готовые моторы продаются

пока дорого, отдельно купить датчики и сделать плату намного дешевле
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Mechaduino - closed loop stepper controller

Сообщение Zusul86 » 22 июл 2016, 18:31

linvinus писал(а):пока дорого, отдельно купить датчики и сделать плату намного дешевле

3 мотора со статором 4108 и датчиками за 100$ не особо дорого, правда слабовато. Самому делать не сильно дешевле выйдет, но мотор получше можно подобрать.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Mechaduino - closed loop stepper controller

Сообщение linvinus » 22 июл 2016, 21:05

я купил as5045 5шт за $24, плату собрать не сложно если есть принтер , сверлильный станок и односторонний текстолит.
вот тут я описывал конструкцию датчика post335261.html#p335261

если будете подбирать конкретное решение не спешите покупать, давайте лучше в теме про bldc Обсудим ваш выбор, я подскажу свои соображения, кое какой опыт уже есть.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Re: Mechaduino - closed loop stepper controller

Сообщение ilalexey » 23 июл 2016, 00:45

linvinus писал(а):если есть .. сверлильный станок

Если постараться, то и он не понадобится.
Вариант с AS5040:
Вложения
AS5040.png
AS5040.png (11.09 КиБ) Просмотров: 3421
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 0

cron