roboforum.ru

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

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

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

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

dccharacter » 25 июл 2013, 03:49

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

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


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

BLDC бессенсорный высокооборотистый

dccharacter » 25 июл 2013, 04:05

картинка типового двигателя:

ключевые особенности:

график мощности для такого мотора:

Выбор двигателя для подвеса камеры (высокий момент и плавность вращения)
Последний раз редактировалось dccharacter 26 июл 2013, 04:03, всего редактировалось 1 раз.

[Контроллер] Покупной контроллер с перепрошивкой

dccharacter » 25 июл 2013, 04:12

Прошивка tgy:
Список проверенных регуляторов
Прямая ссылка на таблицу из этого документа

Проект https://github.com/sim-/tgy написан под AVRA, код полностью совместим с асмом атмела. Все что надо сделать в AVR Studio - создать новый проект визардом, указать проект тип - Atmel AVR assembler, выбрать проц - atmega8 (A, L по вкусу). Сохраниться. Подключить исходный код tgy.asm, открыть его, поиском найти: #include "tp.inc" и заменить его (или закомментировать ";" и добавить нужный ini) на нужный ini. Например на: #include "bs_nfet.inc"
Все ini файлы всех хоббийных контроллеров лежат в папке проекта. Находится нужный ini или по названию регулятора в файле " README.md" или эмпирическим путем. Лично мне проще прозвонить все контакты авр на новом контроллере (чтоб найти всякие доп. вкусняшки типа rs232 обьединенным с PPM сигналом регулятора или узнать, что есть аналоговый датчик напряжения аккумулятора). Все, компилим проект, если появились ошибки типа неподкл. m8def.inc, находим и подключаем вручную.
Теперь конфигурация, на примере хотелок Мура :)
мысли по допиливанию:
1. можно ему сделать реверс?
2. можно управлять командами, а не шимом?
3. можно максимальную скорость задрать до максимума?
4. можно куданибуть допаять светодиод, для индикации достижения нужных оборотов?

1.За реверс отвечает "RC_PULS_REVERSE" в tgy.asm. Ваш КО :)
.equ RC_PULS_REVERSE = 1 ; Enable RC-car style forward/reverse throttle

Можно добавить электронное торможение двигателем "MOTOR_BRAKE" (для car)
Можно ограничить стартовый пуск SLOW_THROTTLE (не палить контроллеры пока чайник)
2. Вот тут варианты. У всего проекта tgy тяжелое наследство PPM управления, если команды перестают поступать с опред. частотой, то контроллер выключит двигатель по "потеря сигнала". Это относится и к ppm (USE_INT0) и к уарт (USE_UART), i2c и spi не проверял но 99% тоже. Проще всего, например для уарт - посылать команды постоянно, ноги уарта для tgy растут из:
http://home.versanet.de/~b-konze/blc_6a/blc_6a.htm
Находится в тексте tgy.asm:
Код: Выделить всёРазвернуть
   ; This is Bernhard's serial protocol implementation in the UART
   ; version here: http://home.versanet.de/~b-konze/blc_6a/blc_6a.htm
   ; This seems to be implemented for a project described here:
   ; http://www.control.aau.dk/uav/reports/10gr833/10gr833_student_report.pdf
   ; The UART runs at 38400 baud, N81. Input is ignored until _= 0xf5
   ; is received, вхере :) (пипец, почините форум) we start counting to MOTOR_ID, at which
   ; the received byte is used as throttle input. 0 is POWER_OFF,
   ; _= 200 is FULL_POWER.



Лично я пошел по пути выпиливания всего лишнего из кода, как-нибудь выложу, сейчас еще код не устаканен.
3. делается сооств. командой управления мощностью (говорю про уарт)
4. найти свободный пин (все пины контроллера обьявляются в соотв. ini) . Сам код - 2 строчки, когда начнешь крутить регуль, тогда допишем.

Советую начинать мучить регуль со стандартного PPM сигнала сервотестером или приемником. Отключить все уарты spi i2c, оставить только USE_INT0, кажись так во всех ini по умолчанию
Код: Выделить всёРазвернуть
.equ   USE_INT0   = 1
.equ   USE_I2C      = 0
.equ   USE_UART   = 0
.equ   USE_ICP      = 0

Кто начнет химичить с регулем подключенным к аккуму на 100C тот сам себе буратино, все меры предосторожности есть в ссылках и упоминались тут.
Последний раз редактировалось dccharacter 25 июл 2013, 23:25, всего редактировалось 2 раз(а).

[Двигатель] BLDC сенсорный низкооборотистый, "удерживающий"

dccharacter » 25 июл 2013, 04:17

картинка типового двигателя:

ключевые особенности:

график мощности для такого мотора:

Изображение

я тут подумал...
получается что мотор из старого флопика большого диаметра, плсокий и с болшушим количеством полюсов наиболее подходит в качестве донора для удерживающего мотора?
Последний раз редактировалось dccharacter 27 июл 2013, 00:39, всего редактировалось 1 раз.

[Документы] Аппноты, хаутушки, мануалы

dccharacter » 25 июл 2013, 04:31

!Названия статей на языке источника!

InstaSPIN - супер пупер библа для электропривода - http://www.ti.com/instaspin

3PHASELV-KIT: 3-Phase BLDC/PMSM Low-Voltage Motor Control Drive (и 8 бит МК и 32) - development platform for 12-24Vdc, 4A motors. Feedback signals are provided that allow a variety of algorithms to control 3-phase PMSM and BLDC motors.
http://www.freescale.com/webapp/sps/sit ... HASELV-KIT

Набор библиотек FSLESLHCS08: Freescale Embedded Software Library S08
http://www.freescale.com/webapp/sps/sit ... 0152109D3F

Силовой модуль со всей документацией - TWR-MC-LV3PH: Low-Voltage, 3-Phase Motor Control Tower System Module
http://www.freescale.com/webapp/sps/sit ... R-MC-LV3PH

3-Phase AC Induction Motor Control with PFC - Асинхронный сотор на 8 битном МК - ACIM (V/Hz Open-loop speed control, V/Hz Closed-loop speed control and Constant Slip Control). Switching among these algorithms is provided from a FreeMASTER control
http://www.freescale.com/webapp/sps/sit ... IMCPFCMP16

AVR496: Brushless DC Motor Control using ATtiny861 и AVR498: Sensorless control of BLDC Motors using ATtiny861
http://www.atmel.com/applications/autom ... =documents
и AVR447 AVR448 AVR449 AVR492 AVR1636: Configurable PMSM Sensorless Field Oriented Control using the XMEGA

BLDC
====
STM32 BLDC Control with HALL Sensor - код для STM32 для управления двигателем с датчиками холла. Используются таймеры в режиме интерфейса датчиков Холла и трехфазной коммутации.

AN1946 - SENSORLESS BLDC MOTOR CONTROL AND BEMF SAMPLING METHODS WITH ST7MC - аппноут от STM

AN957 - Sensored BLDC Motor Control Using dsPIC30F2010 - аппноут от Microchip

AVR498: Sensorless control of BLDC Motors using ATtiny261/461/861 - аппноут от Atmel

Современные методы управления синхронными двигателями с постоянными магнитами + ссылки в статье

Подвес камеры на бесколлекторных моторах с прямым приводом (Кратко суть: Далее PID-контроллер определяет ошибку по каждой оси и дает сигнал на моторы. На выходе контроллера - "электрический угол" (см. принцип работы безколлекторников). Далее, этот угол преобразуется в три синуса, сдвинутые на 120 град., и подается тремя PWM-генераторами на силовые ключи - (полумост на каждую фазу). Таким образом, вектор магнитное поля в обмотках статора поворачивается на нужный угол, а ротор стремится следовать за ним, исправляя ошибку.)

PMSM
====
Permanent Magnet Synchronous Motor (PMSM) Design

Общая теория
============
Контроллер шагового двигателя - теория по шаговикам, определения механических и электрических углов и т.д.
Последний раз редактировалось dccharacter 20 авг 2013, 01:29, всего редактировалось 10 раз(а).

[Двигатель] BLDC сенсорный высокооборотистый

dccharacter » 25 июл 2013, 04:35

картинка типового двигателя:

ключевые особенности:

график мощности для такого мотора:
Последний раз редактировалось dccharacter 27 июл 2013, 00:40, всего редактировалось 1 раз.

[Контроллер] Самодельные контроллеры/драйверы

dccharacter » 25 июл 2013, 07:14

Ну что, начинай подчищать!
Последний раз редактировалось dccharacter 27 июл 2013, 00:41, всего редактировалось 2 раз(а).

[Теория] Бесколлекторные двигатели

dccharacter » 25 июл 2013, 10:13

Книги
=====
Электронный учебник "Электрические машины" - http://elmech.mpei.ac.ru/em/EM/EM_cont_0.htm

Электрические машины - Кацман М.М. - Высшая школа, 3-е издание Год 2000
rutracker.org/forum/viewtopic.php?t=4091812

Электрические машины приборных устройств и средств автоматизации Год 2006
Автор: Кацман М. М. Кацман М. М. - rutracker.org/forum/viewtopic.php?t=3540484

Терминология
============
BLDC motor - BrushLess DC motor
PMSM - Permanent Magnet Synchronous Motor

Типы бесколлекторных двигателей
===============================
BLDC
SensorLess - группа двигателей, управление которыми осуществляется без использования датчиков. Для коммутации обмоток двигателя в этом случае используются измерения параметров двигателя, такие как, например, измерение обратной ЭДС (back-EMF) в обмотках.
Sensored - группа двигателей, для управления которыми используется информация с датчиков, (однозначно) определяющих положение ротора двигателя в каждый момент. Примером датчиков могут служить дачитки Холла, абсолютные энкодеры.

Обзор
=====
В первую очередь нужно понимать, что бесколлекторный мотор без обвязки не работает, в отличие от коллекторного двигателя постоянного тока, обязательно нужно использовать специальный контроллер.
Поэтому сравнивать характеристики двигателей нужно только в связке "контроллер+датчики+мотор".

Далее идёт способ создания управляющих напряжений, который используется в контроллере:
Блочная коммутация.
синус.

Далее способ синхронизации.
Датчиковый (sensored) (датчики холла,энкодеры, резольверы )
без датчиковый (sensor less) - синхронизация по сигналу противоЭДС.

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

В связке "датчики холла и блочная коммутация" есть один огромный, и может быть не очевидный плюс.
Состояния датчиков холла чётко задают как нужно коммутировать обмотки в любой момент времени.
Другими словами - постоянная синхронизация.
Например, это полезно если двигатель остановился, его не нужно заново синхронизировать, достаточно просто повысить значение ШИМ, и двигатель начнёт крутиться.
Т.е. классическое управление напряжением как у коллекторных двигателей.
И главное, электрическая мощность наиболее легко и точно переходит в механическую (вращение вала). (у других способов получить аналогичные характеристики не так просто)
Получается полный аналог коллекторного двигателя, и достаточно просто реализуется на процессоре.

Сенсорное (на базе датчиков холла) и без сенсорное (sensor less) управление не может оптимально переключать обмотки во всём диапазоне частот вращения вала.
Это означает, что требуются дополнительные способы вычисления оптимальной коммутации, так называемые тайминги.
Например, в случае с датчиками холла, можно повысить КПД на определённых оборотах за счёт небольшого смещения положения датчиков.


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

Заблуждения и трудности, которые могут возникнуть у новичков.
1) Сенсорный бесколлекторный двигатель может работать на малых оборотах, начиная от 0.
В случае если в качестве сенсоров используются датчики холла это не так.
Датчики разнесены в пространстве на 120 электрических градусов, поэтому в этом промежутке сигнал не меняется, поэтому на малых скоростях невозможно понять двигается мотор или остановился, проблема обостряется для синусоидального управляющего напряжения, происходит срыв фазы.
В случае если используется энкодер или резольвер, можно вращать на очень низких оборотах, но всё равно есть предел разрешения датчиков.
И как правило двигатели с этими датчиками очень дорогие.

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

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

3) Легко поставить датчики холла на бездатчиковый двигатель.
Найти оптимальное положение датчиков, так чтобы магнитное поле статора не влияло на показания датчиков очень сложно, всё зависит от конструкции мотора.
Наиболее простой способ расположения датчиков для outunner двигателей, снаружи. Но такой способ подходит, только если стоят сильные неодимовые магниты, т.к., как правило, ротор выполнен из стального кольца, которое экранирует магнитное поле.

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



Под зачистку:
-----------
Смотри, что я хотел сделать:
Купить любой брушлес или снять с винта/сидюка
Взять Ф3Дискавери
Сделать простой драйвер на микрухе, желательно с защитой от сквозняка, шунтами для токочувствования и резисторными делителями для обратной эдс. Микруха - либо три полумоста либо четыре (четвертый сидит в сторонке и наблюдает). В принципе минимум рассыпухи, но сразу получаем возможность пилить алгоритмы и немножко страхуемся от пожаров.
Чем не нравится готовый десятибаксовый драйвер с атмегой - не нравится атмегой. Ну неохота начинать в атмегах колупаться.
А это, опять же, стимул писать нормальный код для прошивки - чтобы и на том и на том можно было завести.

Добавлено спустя 2 минуты 53 секунды:
Типа такого:


микрообзорчик "Motor control with STM3232‑bit ARM‑based MCU" http://www.st.com/st-web-ui/static/acti ... tm32mc.pdf

не нравятся аврки, но как говорится - надо плакать, но продолжать грызть кактус. Понимание как управлять двигателем приходит через туеву хучу времени, и стотышмиллионов перепрошивок драйвера, на половине этого пути ты полностью поменяешь концепцию схемотехники, про детские страхи сквозняков забудешь. Твоя пупер разработка безнадежно устареет. Под авр есть проект для драйверов под иде ардуины, типа multiwii (кажись). Уважаемый человек с rcdesign (который по 2 часа на коптерах висит) хорошо отзывался о них, там есть даже восстановление синхронизации после сбоя, чего нет на tgy. Где-то он говорил, что только в очень сложных ситуациях tgy выигрывает. Ссылку бы найти на эти комменты...
Если совсем тоскливо с авр, то можно найти драйвер на силабовском 51-ом чипе.
Или взять драйвер с внешней нашлепкой с контроллером, отпаять нашлепку, припаять свою нашлепку. Например Point-70
Последний раз редактировалось dccharacter 20 авг 2013, 01:34, всего редактировалось 6 раз(а).

перемотка BLDC под свои нужды

Myp » 25 июл 2013, 14:20


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

Dmitry__ » 25 июл 2013, 20:39

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


Мне тоже не нравятся аврки, но как говорится - надо плакать, но продолжать грызть кактус. Понимание как управлять двигателем приходит через туеву хучу времени, и стотышмиллионов перепрошивок драйвера, на половине этого пути ты полностью поменяешь концепцию схемотехники, про детские страхи сквозняков забудешь. Твоя пупер разработка безнадежно устареет. Под авр есть проект для драйверов под иде ардуины, типа multiwii (кажись). Уважаемый человек с rcdesign (который по 2 часа на коптерах висит) хорошо отзывался о них, там есть даже восстановление синхронизации после сбоя, чего нет на tgy. Где-то он говорил, что только в очень сложных ситуациях tgy выигрывает. Ссылку бы найти на эти комменты...
Если совсем тоскливо с авр, то можно найти драйвер на силабовском 51-ом чипе.
Или взять драйвер с внешней нашлепкой с контроллером, отпаять нашлепку, припаять свою нашлепку. Например Point-70:
Изображение
Кста, нашлепкой можно сделать выпиленный из discovery stm32, который st-link

dccharacter писал(а):Взять Ф3Дискавери
Сделать простой драйвер на микрухе, желательно с защитой от сквозняка, шунтами для токочувствования и резисторными делителями для обратной эдс. Микруха - либо три полумоста либо четыре (четвертый сидит в сторонке и наблюдает). В принципе минимум рассыпухи, но сразу получаем возможность пилить алгоритмы и немножко страхуемся от пожаров.

Ну, выше сказал. Из хилых силовых микросхем ты быстро вырастишь, силовуху надо делать только на рассыпухе, а эти и есть 10-ти баксовые регули.
Еще вариант, если тебе нужен лабораторный девайс для академич. исследований, то проще купить готовую весч, могу тебе втюхать по остаточной цене PICDEM MCLV, там есть все хотелки и dspic.
Изображение
Ту мур, чего у тебя за регуль и чего ты с ним хочешь сделать? Нужен подопытный хомячок для написания: "чайникам от Кассандры" :)

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

Myp » 25 июл 2013, 21:03

китайский регуль
на вид почти как HKSS-10A Изображение
отличие тока в чуть сдвинутых в бок элементах.

мысли по допиливанию:
1. можно ему сделать реверс?
2. можно управлять командами, а не шимом?
3. можно максимальную скорость задрать до максимума?
4. можно куданибуть допаять светодиод, для индикации достижения нужных оборотов?

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

Dmitry__ » 25 июл 2013, 21:52

Если ты сможешь прозвонить и найти контрольные точки или подпаяться к соотв. контактам, то ответ на все пункты - да. В твоем контроллере корпус атмеги - MLF, нужен опыт на "ты" с паяльником. Нужные контакты: 15,16,17 и 29 reset (обязательно идет на какой-нибудь резистор/конденсатор, проще подпаяться туда). Программатор есть? Наверно можно и на базе дуины...
Изображение

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

linvinus » 25 июл 2013, 21:55

Напоминаю про тему? forum11/topic10041.html?hilit=bldc, там я приводил графики работы sensorless с разными режимами
конкретно тут forum11/topic10041-30.html?hilit=bldc#p207408
и тут forum11/topic10041-30.html?hilit=bldc#p207463

Перемотка:
http://penolet.ru/content/110?page=show
http://www.bavaria-direct.co.za/models/motor_info.htm

Пе ред тем как запускать мотор после перемотки,нужно накинуть ротор,закоротить обмотки и поврощать ротор.Ротор должен крутиться равномерно во всех направлениях.Если где-то чуть-чуть проскакивает немного,то это означает,что где-то перепутано напрвление намотки!!!Разбирать и проверять!!!Иначе можно остаться без регулятора.


Способ определения фаз, и установка датчиков холла http://e0designs.com/documentation/find ... binations/

Модель хоббийных двигателей читать так:
SII-3008-23
SII - название модельного ряда
30 -диаметр статора в мм.
08 - ширина статора в мм. (размер контактной площади)

дальше если маленькое число (меньше сотни например 23)
- это количество витков на зуб
либо амперы (но как правило с приставкой 23C)

если порядок от 100 до тысяч (например 1200) это KV (обороты на вольт)
чем меньше KV тем меньше максимальные обороты, тем больше крутящий момент на малых оборотах.

Иногда в описании встречается информация 23 Turn - количество витков

всё это есть у модельщиков на форумах.

На заметку.
Авиа двигатели использовать для не летательных аппаратов сложно, нужно тщательно выбирать двигатель, но маркетологи очень стараются, и все данные приводятся для нагрузки в виде пропеллера, поэтому не имея двигателя на руках можно только догадываться как он намотан каким проводом и т.п.
Последний раз редактировалось linvinus 09 авг 2013, 16:38, всего редактировалось 6 раз(а).

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

dccharacter » 25 июл 2013, 22:37

Ну что, как вам вот эта штука:
http://www.hobbyking.com/hobbyking/stor ... 728X52.jpg
http://hobbyking.com/hobbyking/store/__ ... _UBEC.html
??? Контакты для программирования есть, на TWI контактах что-то висит вроде, но уже надо смотреть на плате. Есть УБЕК.

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

dccharacter » 25 июл 2013, 22:56

Хочу просто разобраться. На СТМ-ках крутил движки. Всему свое время, думаю и до синуса дойдем. Прямо сейчас я решаю простую проблему - с минимальным вложением времени и денег получить готовый стенд для экспериментов. Потом... ну, например, есть проект с подвесом камеры. Взять и подвесить фотик - фотик ведь есть у любого и это интересно. А то надоело зашивать в устройства алгоритмы, которые работают только с магическим сетом подобранных в течение трех ночей параметров. Шаг вправо, шаг влево - попытка побега, прыжок на месте - провокация.


Rambler\'s Top100 Mail.ru counter