Специальные цены   новые товары
Закрытая тема
Показано с 1 по 24 из 24

Motor Vibrometer - балансируем моторы с помощью полетного контроллера

Тема раздела Коптеры. Комплектующие, сборка, настройка. в категории Квадрокоптеры и мультироторы; Добрый день. Выкладываю на всеобщее обозрение свой проект по динамической балансировке моторов коптера. Ссылка на Github Существует множество способов балансировки. ...

  1. #1

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70

    Motor Vibrometer - балансируем моторы с помощью полетного контроллера

    Добрый день. Выкладываю на всеобщее обозрение свой проект по динамической балансировке моторов коптера.
    Ссылка на Github

    Существует множество способов балансировки. Но хотелось создать чтото, что позволяет увидеть разбаланс в простых цифрах которые можно сравнить.
    Проект создан под контроллер MuktiWii Micro, но подойдет любой на Atmega328 и чипом MPU6050. Проект можно залить в любой совместимый полетник установленный на коптер, но т.к. контроллер обычно демпфирован от вибраций, репрезентативность измерений упадет. Советую крепить плату с сенсорами прямо на луч.
    Порядок работы:
    1. Открываем скетч в Arduino
    2. Прошиваем в плату
    3. Крепим плату на луч коптера где находится балансируемый двигатель. Крепить лучше так чтобы плата не попадала под потоки воздуха от винта.
    4. Подключаем ESC к 9-му пину на плате
    5. Подаем питание на ESC
    6. Подключаем плату к компу, запускаем на нем Arduino Port Monitor и коннектимся к COM порту платы
    7. Проверяем что кабели не попадут под пропеллер
    8. В порт мониторе посылаем любой символ в плату для начала калибровок
      Видим чтото типа:
      Код:
      Initializing I2C devices...
      Testing device connections...
      MPU6050 connection successful
      
      Calibrating.............
      Calibrations:
      -1251   -1109   1132    10  23  -11
      
      Send motor PWM number or .(dot) to start measurement:
    9. Посылаем в плату число от 1000 до 2000 соответственно таймингу ESC, или же можно посталь символ .(точка) что будет соответствовать значению 1200. Я выбрал его как самое удобное. При большем значении будте готовы что коптер попытается улететь на одном моторе. Так что держите его. Лучших результатов я добился ставя коптер на стол и оставляя балансируемый луч за краем стола, чтобы потоки воздуха от пропа не создавали дополнительных вибраций.
    10. Плата раскрутит мотор на 5-6сек и выдаст результат теста:
      Код:
      Starting motor at: 1200
      Spin up...
      Measuring 5 seconds...
      ...........
          ax  ay  az  gx  gy  gz
      Max:    228 264 424 52  50  46  
      Avg:    58  106 101 11  11  10  
      Measurements count: 2275
    11. Я использовал следующую последовательность при калибровке:
      1. Измеряем просто мотор с пропеллером
      2. Вешаем стяжку на мотор и меряем с ней
      3. Поворачиваем стяжку на треть оборота и еще раз меряем
      4. Поворачиваем стяжку еще на треть и меряем еще раз
      5. По результатам 4 измерений смотрим где у нас минимальные вибрации
      6. Проверяем/подгоняемм лучшую позицию стяжки
      7. Запоминаем положение замка и убираем стяжку
      8. Клеим кусок металлического скотча на это место
      9. Измеряем
      10. Повторяем 8-9 до тех пор пока вибрация уменьшается
      11. Имеем сбалансированный мотор на луче

  2.  
  3. #2

    Регистрация
    27.09.2013
    Адрес
    Свердловская обл., г. Реж
    Возраст
    42
    Сообщений
    1,147
    Это всё классно. Вот изобрел бы кто-нибудь способ балансировки, при котором видно было бы место установки груза, наподобие как в шиномонтажке....

  4. #3

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70
    Ну по сути мы это и получаем. Поворачивая замок стяжки находим место куда вешать грузики.
    В шиномонтажке стенд увешан датчиками угла поворота и ускорений. Тут слишком накладно такое )

  5. #4

    Регистрация
    27.09.2013
    Адрес
    Свердловская обл., г. Реж
    Возраст
    42
    Сообщений
    1,147
    Да я понимаю технологию, приходилось балансировать движки (лазерной указкой). Но это немного не то. Перемещая замок мы находим точку, куда надо добавить груза. Но эту точку находишь не сразу. Надо провести несколько тестовых круток, прежде чем найдешь. Это метод проб, а не инструментарный.

  6.  
  7. #5

    Регистрация
    06.07.2012
    Адрес
    Челябинск
    Возраст
    37
    Сообщений
    76
    Цитата Сообщение от SideWinder Посмотреть сообщение
    слишком накладно такое
    Чего тут накладного?
    Берешь вот такой фото резистор, подключаешь его к атмеге. Маркером на двигателе рисуешь риску. Размещаешь резистор перед риской. PROFIT! Путем несложного программирования вычисляешь место, относительно риски, куда требуется повесить грузик.

  8. #6

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70
    Цитата Сообщение от rx9abc Посмотреть сообщение
    Чего тут накладного?
    Берешь вот такой фото резистор, подключаешь его к атмеге. Маркером на двигателе рисуешь риску. Размещаешь резистор перед риской. PROFIT! Путем несложного программирования вычисляешь место, относительно риски, куда требуется повесить грузик.
    Ок. Спасибо за идею. Такое вполне можно реализовать

  9. #7
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771

  10.  
  11. #8

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70
    Цитата Сообщение от Nesenin Посмотреть сообщение
    Не хотелось бы стенд воротить. К тому же по ссылке плата только снимает показания, а обработкой данных занимается PC.
    Даже идея с фоторезистором вызывает сомнения в плане реализации.
    Быстрее провести три измерения со стяжкой на моторое, чем подвесить на луч датчик (еще не всегда нормально подберешься к мотору, а вешать надо близко), нарисовать на моторе линию так чтобы она была видна (тут что делать с черными моторами, или надписями на них тоже непонятно). Вобщем от реализации этого только лишние действия появляются.

  12. #9

    Регистрация
    06.07.2012
    Адрес
    Челябинск
    Возраст
    37
    Сообщений
    76
    С фоторезистором я собираю отдельный стенд. Т.е. планируется не датчик вешать на луч, а двиг+пропеллер устанавливать на стенд и все настраивать. На черных двигателях рисовать белым маркером. Три измерения может быть и быстрее, но на нормальном стенда качество балансировки выше! Все зависит от поставленной задачи.

    Кстати! А пусть нам ответят специалисты: можно ли как нибудь привязаться к угловому положению двигателя, без всяких датчиков? Ведь регулятор знает на какую обмотку надо подать напряжение. И вообще, существует понятие синхронизации.
    Последний раз редактировалось rx9abc; 16.04.2014 в 12:10.

  13. #10
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    Цитата Сообщение от rx9abc Посмотреть сообщение
    Кстати! А пусть нам ответят специалисты: можно ли как нибудь привязаться к угловому положению двигателя, без всяких датчиков? Ведь регулятор знает на какую обмотку надо подать напряжение. И вообще, существует понятие синхронизации.
    нельзя. синхронизация по противоЭДС (наведенная магнитами на обмотки одной из фаз) на выключенной (от питания) обмотке. это дает знание когда надо вкл следующие (там разные методы вкл но обратная связь именно так). есть сенсорные моторы в которых датчики хола следят за положением магнитов. и в первом и во втором случае мы можем лишь следить за сменой магнитов\катуше, но мы не сможем пометить какая из них "начало координат" (в полярной системе координат). посему надо как то самому размечать начало координат и собирать данные на оборот.

    я считаю годится лучше всего оптический метод. и чтоб не мудрить можно использовать готовые оптические системы например http://www.dx.com/ru/p/lm393-compara...arduino-150663
    тут есть выход с компаратора который либо 0в либо 5в, что нам и надо для четкой фиксации начала координат(ну и заодно можно обороты мерить). на свободный вал можно крепить заведомо сбалансированный прозрачный диск и сделать 1 непрозрачный участок.
    PS я собственно и собирался делать систему работающую с ПК, где будет аналогичный график и данные чего куда лепить. на arduino и MPU6050.

  14. #11

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70
    Цитата Сообщение от rx9abc Посмотреть сообщение
    С фоторезистором я собираю отдельный стенд. Т.е. планируется не датчик вешать на луч, а двиг+пропеллер устанавливать на стенд и все настраивать. На черных двигателях рисовать белым маркером. Три измерения может быть и быстрее, но на нормальном стенда качество балансировки выше! Все зависит от поставленной задачи.

    Кстати! А пусть нам ответят специалисты: можно ли как нибудь привязаться к угловому положению двигателя, без всяких датчиков? Ведь регулятор знает на какую обмотку надо подать напряжение. И вообще, существует понятие синхронизации.
    Соглашусь что выше, но я ставил себе задачу сделать это на собраном коптере. Т.е. с минимальными изменениями в готовом устройстве. Изначально думал вообще в полетник на самом коптере залить.
    Угловое положение из регулятора просто так не достанешь. Если только его прошивку менять.

    Цитата Сообщение от Nesenin Посмотреть сообщение
    PS я собственно и собирался делать систему работающую с ПК, где будет аналогичный график и данные чего куда лепить. на arduino и MPU6050.
    диск с прорезью не пойдет. он искажения будет вносить в пару проп/мотор.
    надо попробовать с фоторезистором. уже заказал.

  15. #12
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    Цитата Сообщение от SideWinder Посмотреть сообщение
    диск с прорезью не пойдет.
    я про прорезь ничего не писал. прозрачный диск с нарисованной маркером черточкой пойдет.

    ну и вариант с отражением от корпуса двигателя то же можно попробовать с использованием этой штуки http://www.dx.com/ru/p/lm393-compara...arduino-150663.
    фоторезистор как вы прикручивать надумали? делитель делать и напряжение мерять? не лучше ли дискретный сигнал заводить и прерывание организовывать?

  16. #13

    Регистрация
    07.07.2013
    Адрес
    Москва, Бескудниково
    Возраст
    28
    Сообщений
    551
    Записей в дневнике
    12
    Идея хорошая и нужная. Конечно, надо делать с учётом положения, а не с усреднёнными данными.
    В даташите MPU6050 пишут, что максимальная частота выдачи данных - 1 кГц, а внутри стоит ФНЧ с максимальной частотой 260 Гц.
    Это значит, что какую-то более-менее правдоподобную картинку с распределением можно получить лишь на значительно меньших оборотах.
    C какой частотой вращаются пропы у коптера? Скажем, 10-е винты на моторе 1000kv?

  17. #14

    Регистрация
    13.05.2013
    Адрес
    Казань
    Возраст
    39
    Сообщений
    70
    Цитата Сообщение от AlexeyStn Посмотреть сообщение
    C какой частотой вращаются пропы у коптера? Скажем, 10-е винты на моторе 1000kv?
    В описаных мной режимах будет около 2-2,5 тысяч оборотов в минуту. Разумеется зависит от батареи и регулятора.

  18. #15

    Регистрация
    07.07.2013
    Адрес
    Москва, Бескудниково
    Возраст
    28
    Сообщений
    551
    Записей в дневнике
    12
    Провёл сегодня эксперимент с оптическим датчиком.
    Нажмите на изображение для увеличения
Название: 8b6b171d283311e38d6f002618ebf332_5ffca0c1c7a4435fbd64830eab7d36af.jpg
Просмотров: 57
Размер:	33.0 Кб
ID:	930841
    На внешней зеркальной поверхности мотора нарисовал чёрным маркером вертикальную полоску шириной 5мм. Наклейку с мотора снял. Датчик находится в 7 мм от поверхности ротора.

    В результате момент прохождения ротора через ноль чётко фиксируется на любых оборотах, вплоть до максимальных (у меня на 1400kv, 3S и с 8x4.5 пропом это 200 об/c).

    Значит, измерять вибрацию в привязке к положению двигателя вполне реально.

    Теперь надо подключить MPU-6050, захватить с него данные и попытаться их синхронизировать с оптодатчиком.

  19. #16

    Регистрация
    06.04.2014
    Адрес
    Омск
    Возраст
    37
    Сообщений
    18
    не снимая платы с коптера можно определить какой из движков дает вибро. например поставив аппарат на стол с поменяными местами проводами двиг. чтоб врашение было в другую сторону. потом по первому алгоритму балансируем вмг.

  20. #17

    Регистрация
    07.07.2013
    Адрес
    Москва, Бескудниково
    Возраст
    28
    Сообщений
    551
    Записей в дневнике
    12
    Cобрал стенд для снятия вибраций, имитирующий луч коптера. На луче стоит MPU6050, рядом с мотором оптодатчик, обрабатывает всё STM32F3 Discovery.

    Нажмите на изображение для увеличения
Название: IMG_0864.jpg
Просмотров: 204
Размер:	67.5 Кб
ID:	932487

    Нажмите на изображение для увеличения
Название: IMG_0866.jpg
Просмотров: 128
Размер:	78.9 Кб
ID:	932486

    У акселерометра предельная частота сэмплирования 1 кГц, поэтому чтоб собирать достаточно точек на период, пришлось вращать пропеллер на малых оборотах.

    С датчика снималось ускорение по оси X - перпендикулярной лучу горизонтальной оси.

    Красный график - для нового целого пропеллера APC, синий график - для такого же пропеллера с отломанным на 3мм концом. На нижнем графике синхронизированные данные с оптического датчика.

    Нажмите на изображение для увеличения
Название: Graphs.jpg
Просмотров: 50
Размер:	46.5 Кб
ID:	932488

    Синусоиды чётко прорисовываются. Можно попытаться уменьшить шумы, усреднив данные за несколько периодов.

    Таким образом, по амплитуде можно видеть, насколько разбалансирована ВМГ, а по фазе можно понять, где именно.

    Теперь вопрос в том, как точно связать фазу синуса с положением дисбаланса.

    Если из всего этого выйдет что-то толковое, то можно будет портировать с STM32 на Arduino и запускать такой тест непосредственно на полётном контроллере, а на луч всего лишь вешать оптодатчик и акселерометр.

  21. #18
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    те же яйца но с запуском на arduino

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

    то есть это все дело, в зависимости от крепления, от оборотов, от дисбаланса вибрирует так, что никакой синусоиды на показаниях акселерометра не прослеживается.
    я пока вижу способ решения в подборе опоры . в оригинальной статье там пружины были http://habrahabr.ru/post/207478/ надо че то придумать\подобрать.
    ЗЫ обороты минимальные в районе 900об\мин

  22. #19
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    я тут провел маленькое исследование по конструкции стенда (применительно к поиску угла смещения масс и его уровня для чего на показаниях сенсоров надо получить\увидеть синусоиду).
    Пришел к выводу что под каждую нагрузку нужен точно настроенный стенд.
    Такой что б давал возможность совершать мотору собственные колебания с минимальным влиянием опоры (иначе в показаниях датчиков будет видно это воздействие и не видно исследуемой инфы). При этом есть предельный уровень дисбаланса, который сможет отследить стенд. Полагаю большинству и заморачиваться не стоит. Лучше уж методом тыка грузики подбирать (как в оригинале у автора темы).
    но мне интересен стенд. поэтому продолжим.

    попробовал крепление на 4 пружинах. жутко геморройная конструкция.

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

    решил погуглить как оно собственно делается по науке. нашел тут http://www.cardanbalans.ru/balans.htm
    качающуюся раму.
    сделал

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

    а еще надо попробовать сделать датчики

    из пары катушка\магнит. да считывать показания наведенной ЭДС. потому что частоты акселерометра как то не хватает.

    вспомнил что есть у меня фотик снимающий до 1000fps
    снял на 240fps

    частота вращения около 830rpm

    PS. это достаточно хорошо сбалансированные мотор винт. качается все равно - значит точность высока.
    Последний раз редактировалось Nesenin; 04.05.2014 в 20:25.

  23. #20
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    хм. человек вон не заморачивался так в тисках и оставил луч с мотором только обернул мягкой пеной

    продает наборчик 155$ http://www.dynexhobby.com/
    шлет данные в звуковую карту (линия микрофона). на компе прога на LabView писаная. собсно я в ней и делаю свою. все приколюхи из библиотеки можно надергать. что еще?
    тема о балансировке http://www.rcgroups.com/forums/showthread.php?t=1769171 есть инфа о конструкциях стендов.

    импеллер крепят по схеме крайней справа во втором ряду.
    а вот человек из каши извлекает полезную инфу

    крепление на демпферах. нда..
    а еще он использует акселерометр ADXL345 пишет
    the GY-521 which I understand is a MPU6050 looks a bit slow, it can sample only at 1khz for the accelerometer. The ADXL does it at 3.2 khz. Besides, the MPU6050 only has a I2C interface. For speed we need SPI and my program is made for that..
    и о чудо у мну есть в запасе он (в составе GY-80).
    http://diydrones.com/forum/topics/ba...ment%3A1483203
    ну и в этом же сообщение ссылка на исходники включая код под arduino
    ну круть! теперь можно что хош сделать.

  24. #21
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    готово.

    все в дневнике http://forum.rcdesign.ru/blogs/109830/blog19122.html

  25. #22

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    40
    Сообщений
    1,941
    Класс, приятно смотреть что виброметр кто то реализовал из наших )))

    У меня когда то была подобная идея, но руки так и не дошли до реализации. Кстати, как развитие идеи: Ставим на каждый луч, по акселерометру и сводим их на один мозг, дальше мозг анализирует вибрации на каждом луче и лампочками сигнализирует, если на каком то из лучей вибрации превышают порог. Ну типа, для квадрика - четыре светодиода (красный/зеленый), если все зеленые - можно летать, если какой нибудь красны - бяда )))

  26. #23

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    34
    Сообщений
    168
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Ставим на каждый луч, по акселерометру и сводим их на один мозг, дальше мозг анализирует вибрации на каждом луче и лампочками сигнализирует, если на каком то из лучей вибрации превышают порог. Ну типа, для квадрика - четыре светодиода (красный/зеленый),
    была мысль поставить аксель в регулятор, круглый регуль под мотором и в нем все анализировать, пока делаю "квадратный" и так времени не хватает, руки дойдут сделаю)))

  27. #24
    Забанен
    Регистрация
    08.01.2012
    Адрес
    Казань
    Возраст
    31
    Сообщений
    771
    Хочу обратить внимание на необходимость именно "правильной" опоры для снятия показаний. Лучшие результаты из всего что я пробовал (а я пробовал много), получаются на качающаяся платформе. Она позволяет использовать резонанс для нахождения самого минимального дисбаланса.

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

    На производстве похоже дешёвые моторы и не балансируют. Вероятность получить что то годное низка. Тем более говоря про сборку ВМГ. Хотя и такое бывает, если все части сделаны точно.
    Вот видео как выглядит не сбалансированный ВМГ

    Дисбаланс ужасный. Синусоида четкая, большая амплитуда.
    А вот после работы (на той же частоте - резонансной).

    Идеально! Я даже отдельно снял прогон полного диапазона оборотов.

    Обратите внимание на провода - не колышутся. Даже старт\стоп не влияет.

Закрытая тема

Похожие темы

  1. Полетный контроллер DJI Naza M v1
    от Sci_Rosso в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 20018
    Последнее сообщение: 14.10.2017, 20:50
  2. Zero UAV YS-S4 flight controller - самый младший брат полетного контроллера YS-X6.
    от Basil в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 211
    Последнее сообщение: 17.07.2016, 21:29
  3. Продам Полетный контроллер Copter Control
    от Nachal_nik в разделе Барахолка. Квадрокоптеры и другие многороторные системы
    Ответов: 25
    Последнее сообщение: 21.04.2014, 17:12
  4. Продам полетные контроллеры KK и MultiWii
    от raefa в разделе Барахолка. Квадрокоптеры и другие многороторные системы
    Ответов: 7
    Последнее сообщение: 30.01.2014, 09:36
  5. Полетные контроллеры для 10, 12 и более двигателей
    от kumbr в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 21
    Последнее сообщение: 14.06.2013, 02:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения