Еще один БК проект для подвесов - EvvGC 3/2axis Brushless Gimbal Controller
меня интересует какая схема управления реализована в этой плате
вот схема питания двигателей
полумосты, а не мосты. одновременно вкл все 3 фазы. ибо векторное управление.
ШИМ дергает транзисторы в полумостах на каждой фазе. поочередно открывает\закрывает транзисторы в верхнем и нижнем плече. в итоге на каждой фазе присутствует некое значение напряжения. это нам дает некий вектор магнитного поля. меняя значение ШИМ по некому закону(например по синуса со сдвигом для каждой фазы, но можно и трапецию или еще чего)
получаем вращение вектора. а так как мотор синхронный и вообще работает в режиме удержания, ротор поворачивается вслед за полем, на нужный угол, который мы отслеживаем по обратной связи в виде данных гироскопов\акселерометра.
Мы все здесь не плохо разбираемся в моторах но дело в том что дело не в моторах. Дело в удержании платформы гироскопа неподвижно. Кто будет это делать и с какими датчиками контроллеру наплевать, он хочет только одного что бы его слушались. Есть такое понятие пид регулятор. Математически отработанная модель расчетов для контролера с помощью которой и происходит удержание. Датчики на моторах нужны я полагаю для более эффективной работы самого мотора. Как всегда все просто есть моторы есть гироскоп и есть мозг в задачу которого входит то что ему велено а именно Держать.
Ребят, с тем что вы написали, я полностью согласен. Но это все не касается моего вопроса.
Для управления блдц, нужно знать положение ротора относительно статора (по крайней мере с точностью до полного электрического оборота).
Обычно применяют два способа это реализовать.
1 - в лоб: подключают 3 датчика Холла к статору, которые определяют одно из трех положений ротора.
2 - по обратной эдс: выводы моторов помимо трехфазного моста подключены через специальную схему из делителей напряжения и виртуальной земли, подключены к ацп контроллера. При вращении мотора, на неподключенную фазу наводится напряжение, по которому можно судить о положении ротора. Чем больше обороты, тем больше наведенное напряжение, тем легче детектировать положение. (именно этот способ чаще всего используется в хоббийных регулях т.к. дешевле).
Но в схеме этого контроллера нет ни того, ни того способа. Выводы моста подключены к движку и все. Меня это вводит в ступор, прощу мне помочь.
Зы: еще раз, по инерциалке определить положение ротора определить невозможно т.к. инерциалка не идеальная. Т.е. по горизонтальным осям еще куда ни шло, но вращение по вертикальной вообще измеряется с огромной ошибкой т.к. там не действуют акселерометры
Для управления блдц, нужно знать положение ротора относительно статора
нет, если это медленное вращение без опережения вектора магнитного поля (катушек) над полем магнитов на некий угол(иначе происходит срыв).
это скорее напоминает шаговые моторы. где поле создали туда и повернулся. у нас успевает ротор поворачиваться вслед за медленным поворотом магнитного поля.
то есть все дело в скорости вращения и мощности поля. в какой то момент ротор не поспевает за вращением поля катушек и появляется необходимость синхронизировать.
нет, если это медленное вращение без опережения вектора магнитного поля (катушек) над полем магнитов на некий угол(иначе происходит срыв).
это скорее напоминает шаговые моторы. где поле создали туда и повернулся. у нас успевает ротор поворачиваться вслед за медленным поворотом магнитного поля.то есть все дело в скорости вращения и мощности поля. в какой то момент ротор не поспевает за вращением поля катушек и появляется необходимость синхронизировать.
Согласен что мы можем создать поле, направленное в нужную нам сторону. Но на роторе ведь не один магнит, а довольно много. Это значит что есть много положений ротора, которые будут устойчивыми при заданном направлении поля. И мы не знаем к какому из них он устремится т.к. не знаем где он находится сейчас
Ребят, с тем что вы написали, я полностью согласен. Но это все не касается моего вопроса.
Для управления блдц, нужно знать положение ротора относительно статора (по крайней мере с точностью до полного электрического оборота).
Обычно применяют два способа это реализовать.
1 - в лоб: подключают 3 датчика Холла к статору, которые определяют одно из трех положений ротора.
2 - по обратной эдс: выводы моторов помимо трехфазного моста подключены через специальную схему из делителей напряжения и виртуальной земли, подключены к ацп контроллера. При вращении мотора, на неподключенную фазу наводится напряжение, по которому можно судить о положении ротора. Чем больше обороты, тем больше наведенное напряжение, тем легче детектировать положение. (именно этот способ чаще всего используется в хоббийных регулях т.к. дешевле).
Но в схеме этого контроллера нет ни того, ни того способа. Выводы моста подключены к движку и все. Меня это вводит в ступор, прощу мне помочь.Зы: еще раз, по инерциалке определить положение ротора определить невозможно т.к. инерциалка не идеальная. Т.е. по горизонтальным осям еще куда ни шло, но вращение по вертикальной вообще измеряется с огромной ошибкой т.к. там не действуют акселерометры
Все очень просто. Принцип такой же как и при управлении шаговым двигателем в режиме микрошага: подразумевается что срывов нет - те двигатель находится в расчетном угле в режиме удержания, при необходимости повернуть вал, контроллер выдает сигнал для поворота на определенный угол и дальше удержание - ос не нужна т.к. двигатель всегда отрабатывает поворот на нужный угол. При аварийном срыве с полюса или при запуске системы статус кво востанавливается по информации с гиры. Еще раз: ос нужна при срывах и при необходимости достигать высокой эффективности на бесколлекторнике при высоких оборотах (чтобы сдвигать вектор), здесь ос не нужна!
И мы не знаем к какому из них он устремится т.к. не знаем где он находится сейчас
не знаем , но потом то он все равно будет вращаться в магнитном зацеплении (эквивалент нашей системы это магнитная муфта), и мы повернем в положение нужное по данным акселерометра.
Инфа для Андрея. У меня почему-то не адекватно работает аналоговое управление ЯВом. Если долго держать джойстик, и резко опустить - ЯВ либо вобще не останавливается, либо останавливается через некоторое время. На ролле такого эффекта не наблюдается. Так-же на него не действует значение максимальных углов. Сколько угодно ставь - ЯВ поворачивается все равно по полной.
Все, понял. Спасибо огромное)
Приехала плата 1.3 с аирбота. Включил, и ну ни как не могу настроить. Прошивка с рцгупс. Что за фигня, до этого была китайская плата 1.2 за пять минут настроилась и прекрасно работала, пока я её не решил перепрошить и забыл снять джампера.
Плату 1.3 с аирбота пробовал с датчиком от 1.2, таже фигня, не настраивается. Подцепился терминалом к уарту4 на I2C лезут ошибки.
Как лечить? куда вешать кольца? к датчику или к плате?
И почему ошибок не было на 1.2 плате? (прошивки одинаковые) Железо и питание одинаковое, только плату поменял 😦
Для начала я бы запитал от 3.3 и без моторов.
Если все ок значит реально давят наводки и пора магию колец применять.
о, без моторов ошибок нет
Да поможет тебе Толкиен.
Держите хоббита.
скрутил провода от датчика в жгут и повесил колечко в тремя витками жгута. ошибок стало меньше.
Но ролл всё равно работает плохо. если быстро крутишь по отрабоатывает хорошо если медленно как бы заедает.
С эти что можно сделать?
Расскажу свою историю, я к этой плате подключил внешние драйвера (предварительно выпаяв родные) работает нормально. ну как нормально, надо еще настраивать много всего, но первые результаты понравились. двигатели можно запитывать от 4 банок. прошивается плата на раз. позже подробности и фото выложу
А я в тупике. Не могу прошиться. Плата 1.3. Ставлю две перемычки, включаю платку USB - COM, подсоединяю к UART1. Питание 3.3В, синий светодиод загорается. Открываю Flash Loader. Вытаскиваю перемычку Reset. Нажимаю Next - и такая ошибка:
Местами RX и TX менять пробовал. Моторы отключены от платы, питание тоже естественно. Моторы пробовал подключать - тоже самое. Датчик гироскопа-акселя к плате подключен.
Если подключиться к UART4 и запустить ГУИ - всё коннектится, чтение-запись происходит. Что делать, как прошиться? Хочу программу Андрея Гапонова залить…
Глупость скажу, но скорость 9600.
И не верьте дядьке на видео минус выключать не нужно 😃
А я в тупике. Не могу прошиться. Плата 1.3.
в места отмеченные красным впаиваете провода как можно короче и подключаете к TX RX и все шется на ура
да и скорость при прошивке чем ниже тем лучше
Подключены все 4-ре провода, дядьке никакому не верил. С перемычкой Reset потребление 8мА, без неё при попытке прошиваться - 21мА. Это я замерил, греша на питание, ибо взял от телефона USB - COM, он на микросхеме 2303, там есть 3,3В на 17-й ноге. Пробовал давать нагрузку - 40мА он мне выдал, еще увеличивать нагрузку не пробовал, ибо уже в 2 раза больше может выдавать, чем микроконтроллер потребляет. При замыкании Rx Tx эхо возвращается в терминале, да и связь есть в ГУИ с микроконтроллером. Если припаяться к транзисторам - это всего то уберет резисторы по 100 Ом из цепи, они вообще по идее должны на выходах 2303 находится, я же напрямки припаялся. Даже ферритовые колечки поставил на шину Rx Tx, может зря? Скорости пробовал самые разные вплоть до 2400. Все одно и тоже.
В общем, х.з. Дождусь еще другого переходника USB-COM, должен приехать скоро… Может тогда смогу перепрошиться…
Стоп стоп 2303 это же RS232.
Как бы совсем не то что нужно для данного случая.
К ней на выход нужно макс 232 что бы из 232 TTL сделать.
Вроде в неё все есть (Rx Tx Vcc GRN) и даже больше prolificusa.com/…/pl2303ta-usb-serial-bridge-contr…
Это вообще полноценный COM из USB при желании.