roboforum.ru

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

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

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

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

dccharacter » 25 июл 2013, 03:49

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

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


оглавление:
Теория
-Теория
-Аппноты, хаутушки, мануалы
-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-двигателям

leprud » 23 сен 2013, 20:38

dccharacter писал(а):Нужен мне силовой блок. Хочется либо купить готовый, либо сварганить самому из рассыпухи.

Гляньте на EvvGC и ее исходники https://github.com/EvvGC/Firmware
Изображение

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

dccharacter » 23 сен 2013, 22:47

Кажися то, что надо. Вся платка замечательная. Спасибо!

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

leprud » 23 сен 2013, 22:50

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

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

Angel71 » 23 сен 2013, 23:25

до 1.3 вроде
20130714 - Updated vpre1.3ce2 componets R5, R13, R14 from 1k resistors to 10k to better match the STM spec

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

leprud » 23 сен 2013, 23:27

1.3 готовую не купишь - только самому делать/заказывать.
Я про это
IMPORTANT!!!
About MOSFETs burning problem on PCB v1.2.
Looks like mosfets sometimes burns even if GPIO is configured immediately after power on.
Current solution for this is to add 1-3,3K resistors on BSS123.

Изображение

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

dccharacter » 23 сен 2013, 23:32

а, ну ноги-то за уши притягивать.... это мы проходили. хорошо если только мосфеты вылетят.

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

avr123.nm.ru » 24 сен 2013, 12:47

афро контроллер работает и в статике обычно. 3 в 5 преобразовать соотв преобразователем уровней.
Вложения
преобразователи логических уровней и изолированые mkpochtoi.jpg

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

Nesenin » 29 сен 2013, 00:25

какой чудесный моторка http://www.thingap.com/technology/

Изображение

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

avr123.nm.ru » 29 сен 2013, 11:46

Действительно красиво.

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

linvinus » 13 окт 2013, 13:35

Тут целая серия 28 полюсных моторов для квадрокоптеров http://www.foxtechfpv.com/dualsky-produ ... 9_210.html

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

b580130 » 06 ноя 2013, 02:29

Здравствуйте Уважаемые.
:?:

Нужна практическая помощь по управлению мотором BLDC (4 полюсный)
Сразу готов сказать, что не очень силен в программировании ( использую Codevision).

На данный момент кручу мотор блочной коммутацией, используя китайскую силовую плату (раньше на ней была установлена Atmega8 с блочной коммутацией)и собранным мной модуль на xmega.

Так вот хочу управлять синусом, подобрал аппноут AVR435 , где используется AT90PWM3, но вот хоть убейте (мож тупой) не понимаю реализацию алгоритма вычисления угла чтобы перенести на xmega. Много смотрел всякой литературы но так ничего путного не придумал. Скорее всего не до конца понимаю математику процесса.

Я говорю именно об алгоритме, понимаю приблизительно как это работает, но на уровне программы не могу реализовать.

Если необходима доп. информация готов предоставить.

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

Dmitry__ » 06 ноя 2013, 23:39

Расскажу про алгоритм DDS:
Создаешь таблицу одного периода синуса, чтоб укладывалось в 256 байт (чтоб не проверять переполнение указателя)
Код: Выделить всёРазвернуть
;таблица синуса 1 периода в дополнительном коде
SinTab:
   .db   0, 1, 2, 4, 5, 6, 7, 9
   .db   10, 11, 12, 13, 15, 16, 17, 18
   .db   19, 20, 21, 22, 24, 25, 26, 27
   .db   28, 29, 30, 31, 32, 33, 34, 34
   .db   35, 36, 37, 38, 39, 39, 40, 41
   .db   42, 42, 43, 44, 44, 45, 45, 46
   .db   46, 47, 47, 47, 48, 48, 49, 49
   .db   49, 49, 49, 50, 50, 50, 50, 50
   .db   50, 50, 50, 50, 50, 50, 49, 49
   .db   49, 49, 49, 48, 48, 47, 47, 47
   .db   46, 46, 45, 45, 44, 44, 43, 42
   .db   42, 41, 40, 39, 39, 38, 37, 36
   .db   35, 34, 34, 33, 32, 31, 30, 29
   .db   28, 27, 26, 25, 24, 22, 21, 20
   .db   19, 18, 17, 16, 15, 13, 12, 11
   .db   10, 9, 7, 6, 5, 4, 2, 1
   .db   0, 255, 254, 252, 251, 250, 249, 247
   .db   246, 245, 244, 243, 241, 240, 239, 238
   .db   237, 236, 235, 234, 232, 231, 230, 229
   .db   228, 227, 226, 225, 224, 223, 222, 222
   .db   221, 220, 219, 218, 217, 217, 216, 215
   .db   214, 214, 213, 212, 212, 211, 211, 210
   .db   210, 209, 209, 209, 208, 208, 207, 207
   .db   207, 207, 207, 206, 206, 206, 206, 206
   .db   206, 206, 206, 206, 206, 206, 207, 207
   .db   207, 207, 207, 208, 208, 209, 209, 209
   .db   210, 210, 211, 211, 212, 212, 213, 214
   .db   214, 215, 216, 217, 217, 218, 219, 220
   .db   221, 222, 222, 223, 224, 225, 226, 227
   .db   228, 229, 230, 231, 232, 234, 235, 236
   .db   237, 238, 239, 240, 241, 243, 244, 245
   .db   246, 247, 249, 250, 251, 252, 254, 255
EndSinTab:

т.е. получили таблицу с размерностью мощности шим в один байт, каждый байт в таблице - это угол равный 360град./256. 360град - это полный период синусоиды, 256 - это размерность таблицы синуса.
Теперь определяем указатель, например: PWM_STEP_SIN, размерностью один байт, который будет бегать по нашей таблице. Начинаем его крутить с нужной частотой, обзовем PWM_DDS_FREQ (угловая скорость):
Например, каждые 2мс. прибавляем к PWM_STEP_SIN число 3 из PWM_DDS_FREQ. Если мы хотим увеличить скорость, то соотв. прибавляем большее значение. Т.к. PWM_STEP_SIN имеет такую же размерность как сама таблица, то получается автоматический переход с конца периода на начало при переполнении этого регистра. В общем, у нас крутится регистр PWM_STEP_SIN с определенной скоростью, остается считывать данные для трех синусоид сдвинутых относительно друг друга на 120 град.
Например для первой синусоиды считываем данные по адресу [PWM_STEP_SIN] и кидаем в pwm. Для 2-й синусоиды информацию берем из смещенного указателя на 120 градусов: PWM_STEP_SIN + 256*120/360. На асме так:
Код: Выделить всёРазвернуть
   ldi   temp1,0xFF & (256*120/360)   ;считать данные из таблицы для второй синусоиды (+120 градусов)

Для 3-й синусоиды соотв. сдвигаем на 240град. относительно первой: 256*240/360.Имеем 3 синусоиды сдвинутые на 120 град. Частота синусоид зависит от значения PWM_DDS_FREQ. И конечно, надо сопоставлять разрешающую способность таблицы с угловой скоростью PWM_DDS_FREQ. Чтоб PWM_DDS_FREQ не давал приращение к PWM_STEP_SIN по полпериода за раз. Иначе поимеем квадратный синус и прочие умные слова типа алиасинг :)

Вот щаз я особенно покассандрил :D

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

dccharacter » 07 ноя 2013, 03:07

во во, с этим алгоритмом 4 пожарика я и сделал

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

avr123.nm.ru » 21 ноя 2013, 13:34

b580130 писал(а):хочу управлять синусом, подобрал аппноут AVR435 , где используется AT90PWM3, но вот хоть убейте (мож тупой) не понимаю реализацию алгоритма вычисления угла чтобы перенести на xmega.
В исходниках поищите по слову clark вроде.

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

linvinus » 21 ноя 2013, 21:40

А я токи наконец то считал.
Измеряю шунтами в верхнем плече, вот что получается
current.png
current.png (7.78 КиБ) Просмотров: 2830

Q-электрические градусы
A,B,C токи в фазах.
Вот теперь ломаю голову что с этим делать, фактически известен ток только в одной фазе.


Rambler\'s Top100 Mail.ru counter