roboforum.ru

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

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

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

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

Сообщение dccharacter » 25 июл 2013, 03:49

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

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


оглавление:
Теория
-Теория
-Аппноты, хаутушки, мануалы
-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 раз(а).
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Angel71 » 26 авг 2013, 19:39

linvinus, под стм свои наработки или опенсорс за основу взяли? а без холлов для ваших задач никак? мало ли, может mpu6050 какой прикрутить или ещё как.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение linvinus » 26 авг 2013, 20:01

Angel71 писал(а):linvinus, под стм свои наработки или опенсорс за основу взяли?

Меня Vooon подсадил на Chibios, она бесплатная, остальное из разных источников.
По большому счёту всё как у всех но проприетарные библиотеки не использую.

Angel71 писал(а):а без холлов для ваших задач никак? мало ли, может mpu6050 какой прикрутить или ещё как.

Ну задача сделать "идеальный" колёсный привод, "бесшумный", малоинерционный, без люфта и простой конструкции. (В идеале мотор-колесо)

mpu6050 это уже в дополнение.

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

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

Сообщение avr123.nm.ru » 27 авг 2013, 17:47

linvinus писал(а):
avr123.nm.ru писал(а):Главно непонятно нафига этот огород то? :o

чтобы вычислять положение ротора на малых скоростях, когда цифровые датчики холла бесполезны.
и вообще можно построить такой алгоритм при котором каждому положению ротора можно точно генерить соответствующую фазу синусоиды.
Энкодер будет гораздо точнее и проще.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение linvinus » 28 авг 2013, 02:24

avr123.nm.ru писал(а): Энкодер будет гораздо точнее и проще.

сколько стоит абсолютный энкодер с разрешением в 0.5 градуса и рассчитанный на большую скорость вращения?


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

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

Сообщение elmot » 28 авг 2013, 11:37

сколько стоит абсолютный энкодер с разрешением в 0.5 градуса и рассчитанный на большую скорость вращения?

Чота есть версия, что надо либо трусы надеть, либо крестик снять. Вплоть до установки двух наборов датчиков - на малую скорость и на большую.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

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

Сообщение avr123.nm.ru » 28 авг 2013, 18:30

linvinus писал(а):0.5 градуса
это с потолка взяли или из пальца?
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение Dmitry__ » 28 авг 2013, 22:16

linvinus, последние посты - вредные советы. Не слушай их.

linvinus писал(а):Похоже проблема с нелинейностью сигнала была связана с операционным усилителем, заменил на OP491G

Что-то сомневаюсь я что другой op даст больше линейность. А с чего ты взял что там должна быть чистая синусоида? Посмотреть бы сигнал прямо на датчиках, смотреть дифференциально, только с такими уровнями хз как справится осцилл...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение linvinus » 28 авг 2013, 22:50

elmot,
Я же говорю "идеальный" привод.
Про то как сделать из гомна конфетки все знают.
В общем, эта тема не обсуждается.

avr123.nm.ru,
В методе который я тут выкладывал расчётная точность в 0.18 градусов.

О! только написал что ты кудато пропал а ты тут.

Что-то сомневаюсь я что другой op даст больше линейность. А с чего ты взял что там должна быть чистая синусоида? Посмотреть бы сигнал прямо на датчиках, смотреть дифференциально, только с такими уровнями хз как справится осцилл..


Сигнал слабый и сильно зашумлён, но судя по всему именно такой он и есть.
Я начал реализовывать программную часть, по этой статье download/file.php?id=29272

первая проблема, нормализовать данные не так просто, максимальное и минимально значение меняется от магнита к магниту, пока занизил на 10% чтобы стопудово было -1 до 1, иначе вся математика в дальнейшем плывёт.

вторая проблема я не понимаю как должен работать алгоритм :sorry: , когда читаешь всё понятно, написал программу на выходе не то что должно быть :-D

Есть ещё какие нибудь примеры рассчёта положения по аналоговым датчикам?

Добавлено спустя 4 минуты 19 секунд:
Сигнал отдельно взятого датчика меняется от -pi/2 .. pi/2 .. -pi/2 .. pi/2
т.е. то возрастает то убывает, а нужно получить постоянно возрастающий и в этом месте у меня ступор :(

Добавлено спустя 3 минуты 5 секунд:
зы. глюк с питанием оказался не связан с питанием, были подключены цифровые датчики холла которые были обесточены но вызывали прерывание при электромагнитных помехах, а в прерывании менялся режим работы таймера.

Добавлено спустя 8 минут 21 секунду:
Ну и чтобы было понятно вот такой вот стенд для изучения
STMка крутит равномерно двигатель на ардуине пытаюсь вычислить положение по датчикам.

h_1377701441_2797296_a3fc0af5d6.jpg

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

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

Сообщение dccharacter » 29 авг 2013, 05:04

слушай, у тебя что-то с датчиками. на сидиромовых движках с датчиками идеальные синусы. нарой себе один, посмотри. Осцил вполне их видит.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Dmitry__ » 29 авг 2013, 06:32

сидиромный - pmsm, а у него bldc, да еще конкретно многополюсный. Но если магниты на роторе стоят в упор друг к другу то будет ближе к синусу, если есть зазор, то так и будет. Я больше склоняюсь к правильным показаниям осцилла. Но датчики у него стоят хитро через слой магнитопровода, должно сгладить до синуса. В общем: сон - это не сон, а про не сон, что это пересон, а пересон - не сон... :)

Добавлено спустя 1 минуту 58 секунд:
Я бы, все-таки, датчики ставил в торец. :pardon:

linvinus писал(а):т.е. то возрастает то убывает, а нужно получить постоянно возрастающий и в этом месте у меня ступор

А зачем так?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 29 авг 2013, 06:33

linvinus, а что за проводочки интересные у тебя серенькие с бирками?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Angel71 » 29 авг 2013, 07:40

female to female, только не bls-1 (или как их там, точно не помню)
80001.jpg
80001.jpg (8.07 КиБ) Просмотров: 4858

а "литые" и судя по фото расчитаны на более короткий штекер
п.с. кстати хотел такие обжимать, а не покупать, но пока искал клещи (пока безрезультатно) уже нашел по такой же цене, но уже готовые и с доставкой.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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

Сообщение linvinus » 29 авг 2013, 13:02

Dmitry__ писал(а):сидиромный - pmsm, а у него bldc, да еще конкретно многополюсный. Но если магниты на роторе стоят в упор друг к другу то будет ближе к синусу, если есть зазор, то так и будет.

Да так всё и есть, между магнитами довольно большой зазор примерно в половину ширины самих магнитов.
Dmitry__ писал(а):Я больше склоняюсь к правильным показаниям осцилла. Но датчики у него стоят хитро через слой магнитопровода, должно сгладить до синуса.

Я тоже на это рассчитывал. Думаю дальше сглаживать сигнал в контроллере.

Dmitry__ писал(а):В общем: сон - это не сон, а про не сон, что это пересон, а пересон - не сон... :)

Добавлено спустя 1 минуту 58 секунд:
Я бы, все-таки, датчики ставил в торец. :pardon:


Тогда 100% на показания датчиков будет влиять поле ротора. Мне и без этого хватает проблем.
А плюс будет только один, увеличится амплитуда сигнала, но она итак уже достаточная.
В статье которую я привёл эта проблема обсуждается, кстати как я понял у них в статье тоже PMSM, они вообще ориентируются на приводы для движений максимального приближенным к биологическим существам.
Dmitry__ писал(а):
linvinus писал(а):т.е. то возрастает то убывает, а нужно получить постоянно возрастающий и в этом месте у меня ступор

А зачем так?

А как ннада?

Вообще, кто нибудь читал статью? Я понять не могу формулы 4,5,6. Как они из периодического сигнала получают абсолютный без сумматора для меня загадка. А фраза "note that ⌊·⌋ represents the floor() function." вообще столку сбивает, т.к. далее следует понимать все квадратные скобки как округление до целого в меньшую сторону.
Но тогда получается вообще полный бред.

dccharacter, были в комплекте с осциллографом (он с логическим анализатором на 16 каналов)
Мне они тоже очень нравятся, жаль их мало.

Добавлено спустя 11 минут 59 секунд:
Если кому интересно, вот страница одного из авторов статьи http://homes.cs.washington.edu/~todorov/papers.html

Добавлено спустя 23 минуты 32 секунды:
Вот что получается на выходе arcsin(ri)
Вложения
g1.png
g1.png (8.68 КиБ) Просмотров: 4876
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение Dmitry__ » 29 авг 2013, 16:02

linvinus, все эти формулы в пэдээфах - резюме воспаленного мозга отдельно взятого индивидуума в определенных условиях вакуума. У тебя не 3 синусоиды, а 3 квадратных сплюснутых косинуса :). Соотв. твоя картинка с arcsin тебе и показала разницу между чистыми синусами и твоими магнитами. Зачем такие сложности? Подходи к задаче не со стороны батана с высшей математикой, а со стороны механика/физика.
Как бы делал йа:
У нас есть 3 хреновых синуса с гуляющим нулевым уровнем. Соотв. должны быть 2 регистра на один синус, в которых по мере вращения двигателя будет оседать (статистикой и фильтрацией) значения min и max. При вкл. питания, эти регистры можно загружать из eeprom как результат прошлой работы двигателя, а по мере поступления новой информации - корректировать значения. Далее, относительно этих min и max надо нормировать все синусоиды, а потом не формулой (у нас кривой синус), а таблицей калибровок преобразовать синусы в угол. При этом надо не все 3 сигнала учитывать (плоские вершины синусов не имеют информации (большая ошибка), а выбирать синусоиды с пологими боками (там самая большая линейность), а информацию о смещении в +-120 град. брать аналитически из значений плоских вершин плохих синусов в данный момент.
Пля, Кассандра...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Alex080969 » 29 авг 2013, 18:50

Мужики, я конечно сильно извиняюсь за свою тупость, но чем вентильные двигатели лучше бесколлекторного двигателя постоянного тока? При том что бесколекторник на сколько я понял проще по конструкции.
Первая заповедь радиотехника - почисти контакты!
Аватара пользователя
Alex080969
 
Сообщения: 763
Зарегистрирован: 10 ноя 2009, 13:13
Откуда: Красноярск
прог. языки: С++, Delphi, PHP, SQL, 1C
ФИО: Александр

Пред.След.

Вернуться в КиберЗона - клуб боевых роботов

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1