roboforum.ru

Технический форум по робототехнике.

Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

Модераторы: 1970DenisT, Dmitry__

Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

dccharacter » 25 июл 2013, 03:49

Так, надоело постоянное тро-ло-ло. Объявляем десятилетие изучения BLDC моторов. Взываю к духу учителя. Желающие присоединяются.

2nd_Gen_Prius_Transaxle.jpg
2nd_Gen_Prius_Transaxle.jpg (17.9 КиБ) Просмотров: 432368


оглавление:
Теория
-Теория
-Аппноты, хаутушки, мануалы
-linvinus - подробно об управлении двигателем

Двигатели
-Двигатель бессенсорный высокооборотистый
-Двигатель сенсорный высокооборотистый
-Двигатель сенсорный низкооборотистый (в т.ч. и "удерживающий")
- перемотка BLDC под свои нужды
- самодельные BLDC

Контроллеры
-Самодельные контроллеры/драйверы
-Покупные контроллеры с перепрошивкой

Управление с ПК
-Управляющее ПО (контроль, измерения, настройка)

Механизмы на основе BLDC
- BLDC Сервоприводы

Dmitry__ писал(а):
Myp писал(а):вопрос, скока магнитиков клеить на ротор?

Есть книга, гуглить "BrushlessPermanentMagnetMotorDesignVersion2".
Еще есть онлайн калькуляторы, типа:
http://www.bavaria-direct.co.za/scheme/calculator/
https://www.emetor.com/edit/windings/

Для меня самое понятное соотношение: 1, 2 или 4 магнита на одну группу полюсов (группа = 3 полюса). Т.е. те соотношения которые не дают пульсаций гармоник в калькуляторе при нажатии кнопки "advanced".
Например: 12s16m, 12s8m, 18s12m, 18s6m и.т.д. Подбирать так: Число слотов делим на 3 и умножаем на 1, 2 или 4.
Последний раз редактировалось dccharacter 12 июн 2016, 08:07, всего редактировалось 2 раз(а).

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

Dmitry__ » 28 янв 2016, 15:55

Да все есть, я просто сравниваю с 21МВН - 40кг. болгарской какашкой из прошлого века...

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

Madf » 28 янв 2016, 16:14

Я с злым умыслом на станок думал о таких, интересно цены и ваще купить-то можно...

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 06 фев 2016, 23:21

Полностью открытый проект поддерживает сенсорное и безсенсорное векторное управление, графический интерфейс настроек http://vedder.se/2015/01/vesc-open-source-esc/

Плата продаётся тут http://www.ollinboardcompany.com/produc ... controller

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

ilalexey » 07 фев 2016, 11:09

Вкуснятина какая

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

dccharacter » 24 фев 2016, 05:56

http://hackaday.com/2016/02/23/anti-cog ... ss-motors/
Ребята промоделировали в широком диапазоне факторы, влияющие на колебания крутящего момента и исправляют их элетроникой. Получают из этой электроники и дешевых движков аналоги дорогих движеов, использующихся в роботостроении.

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 24 фев 2016, 11:55

спасибо, полезно.
о том что нужно создать некую функцию которая бы компенсировала "залипание" мы с Дмитрием обсуждали ещё в 12 году, он тогда сказал что это не сложно сделать, но по простому у меня не получилось, и я пошёл путём использования редуктора, один из плюсов - снижение эффекта залипания.

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

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 23 мар 2016, 12:13

Не bldc но про магниты очень советую почитать и посмотреть новость http://hackaday.com/2016/03/21/just-whe ... ore-196751
можно пофантазировать как это изменит мир BLDC например можно создать цельнолитой магнит с большим числом маленьких магнитиков :)))

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

Nesenin » 23 мар 2016, 16:10

скрестить упомянуте магниты с такими моторами http://www.thingap.com/wp-content/uploa ... /01/03.jpg

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

ilalexey » 23 мар 2016, 17:32

но про магниты

если бы в домашних условиях такое можно было делать

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

Nesenin » 23 мар 2016, 17:53

ilalexey писал(а):
но про магниты

если бы в домашних условиях такое можно было делать

http://rwgresearch.com/open-projects/ma ... gnets-cmr/

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 23 мар 2016, 19:08

dccharacter писал(а):http://hackaday.com/2016/02/23/anti-cogging-algorithm-brings-out-the-best-in-your-hobby-brushless-motors/
Ребята промоделировали в широком диапазоне факторы, влияющие на колебания крутящего момента и исправляют их элетроникой. Получают из этой электроники и дешевых движков аналоги дорогих движеов, использующихся в роботостроении.

Тут есть обновлённая pdf http://modlabupenn.org/anticogging/

Nesenin спасибо за ссылки.

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

ilalexey » 23 мар 2016, 19:10

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

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 24 мар 2016, 15:10

на русском доступном языке про векторное управление электродвигателем вообще и bldc в частности https://geektimes.ru/company/npf_vektor/blog/269486/

решил вникнуть как именно реализовали anticogging http://modlabupenn.org/anticogging/
в конечном результате они предлагают делать так
Vout = Vdes + sgn(Vdes)*Vst(i) + Vcog(i)

где i это механический угол (абсолютное положение ротора),
Vdes - напряжение которое хотим подать на мотор
Vout - напряжение которое подаём на мотор, но ещё в блоке ШИМ компенсируем deadtime
d = Vout/Vsup + sgn(Vout)*Ddt

вся загвоздка как получить Vst(i) , Vcog(i) и Ddt
в статье описана пара способов нужно экспериментировать.

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 25 мар 2016, 14:03

тут есть братья по разуму https://electrotransport.ru/ussr/index. ... ic=28061.0
смоделировал по
AN4863.pdf
(919.71 КиБ) Скачиваний: 0


похоже что работать должно
figure_1.png


Вот тут ещё методика http://vectorgroup.ru/articles/article4 даже проще

Программа расчёта https://gist.github.com/linvinus/78c86cbd4eec7e7e85fb
В общем ребята в nxp перемудрили, после всех заумных формул получается очень простой вывод, добавим deadtime в большую положительную полуволну , и вычтем из меньшей отрицательной полуволны

я добавляю компенсацию в алгоритме svpwm после вычисления значений для таймеров но перед передачей в таймер
Код: Выделить всёРазвернуть
#define add_DT3(x,y)  x= (x + y)
#define add_DT_check(x,y)  ( ((x + y)>0 && (x + y)<BLDCM_PERIOD)  )

int iaerr= ( (bSector == 1 ||  bSector == 6) ? 1 : ( (bSector == 3 || bSector  == 4 ) ? -1 : 0)) ;
int iberr= ( (bSector == 2 ||  bSector == 3) ? 1 : ( (bSector == 5 || bSector  == 6 ) ? -1 : 0)) ;
int icerr= ( (bSector == 4 ||  bSector == 5) ? 1 : ( (bSector == 1 || bSector  == 2 ) ? -1 : 0)) ;

  /* Load compare registers values */

if(add_DT_check(hTimePhA,(BLDC_DEAD_TIME_CNT)*iaerr) &&
   add_DT_check(hTimePhB,(BLDC_DEAD_TIME_CNT)*iberr) &&
   add_DT_check(hTimePhC,(BLDC_DEAD_TIME_CNT)*icerr) ){
  add_DT3(hTimePhA,((BLDC_DEAD_TIME_CNT)*iaerr) );
  add_DT3(hTimePhB,((BLDC_DEAD_TIME_CNT)*iberr) );
  add_DT3(hTimePhC,((BLDC_DEAD_TIME_CNT)*icerr) );
}


или совсем просто

Код: Выделить всёРазвернуть
#define add_DT(x) x = (x < (BLDCM_PERIOD-BLDC_DEAD_TIME_CNT) ? (x + BLDC_DEAD_TIME_CNT) : x  )
#define remove_DT(x) x = (x > (BLDC_DEAD_TIME_CNT) ? (x - BLDC_DEAD_TIME_CNT) : x  )

  if( hTimePhA > hTimePhB){
          if(hTimePhB > hTimePhC){
            add_DT(hTimePhA);
            remove_DT(hTimePhC);
          }else if(hTimePhC > hTimePhA){
            remove_DT(hTimePhB);
            add_DT(hTimePhC);
          }else{
            remove_DT(hTimePhB);
            add_DT(hTimePhA);
          }
        }else{ //hTimePhB > hTimePhA
          if(hTimePhA > hTimePhC){
            add_DT(hTimePhB);
            remove_DT(hTimePhC);
          }else if(hTimePhC > hTimePhB){
            remove_DT(hTimePhA);
            add_DT(hTimePhC);
          }else{
            remove_DT(hTimePhA);
            add_DT(hTimePhB);
          }
        }

Re: Разборки с брушлесами - обобщаем инфу по BLDC-двигателям

linvinus » 06 апр 2016, 19:37

Тут post351809.html#p351809
Дмитрий проболтался что у него теперь есть гироскутер.

Дмитрий такой?


Тут на видео плохо понятно что там за моторы, сможете прояснить?


Rambler\'s Top100 Mail.ru counter