Контроллер sensorless BLDC мотора с контролем тока через обмотки

Arhat109

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

Если кто-то знает что-то готовое и не прочь поделиться - велкам. Сэкономит мне кучу времени…

Требования к контроллеру:

  1. Оперативный контроль током фазы/обмоток с ограничением до заданного и, возможно, с оперативным управлением ограничением.
  2. Возможность вращать мотор на низких и сверхнизких оборотах, например с kv=30…100 (gimbal) плавно

… в пределе с п.1. удерживать мотор в заданном положении с заданным усилием (контролем тока) по типу серв.

  1. Возможность контроля температуры мотора, можно в ключевом/отсечном режиме.

Требования к токам мотора - небольшие (у меня) 1-3А., рабочее напряжение двигателей 2-3S. Силовую часть могу собрать на полумостах AO4606 (их есть у меня).

Есть что-то готовое? Можно ли переделать из готовых самоделок, в тч из закрытой темы про самодельный контроллер?

Arhat109

Желающих помогать или посоветовать что-то готовое - нет?

RW9UAO

а вы хотите, чтобы вам вот так вот отдали проект векторного управления БЛДЦ?

Arhat109

Не понял … что значит “вот так вот отдали”?

Пилю сам, вроде ни у кого не прошу. Получится - постараюсь выложить в общий доступ. Просто ищу помощь, которая может сократить время … только и всего.

Да и не понял … там есть нечто “сложное” в векторном управлении? 😃

P.S. Мне просто надо не только медленно крутить мотор, что просто сразу тянет за собой контроль тока, но ещё и удерживать его с заданным усилием в одном положении.
Найти готовый контроллер со всем комплектом фич мне не удалось. Если Вы такой знаете - подскажите, если нет то вообще непонятно что значит “вот так просто отдать”? Как можно отдать то - чего нет в природе? 😃

RW9UAO

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

если умеете векторное управление - сделайте дешевый ESC на 10 ампер, на входе DSHOT125 хотябы и мультикоптерщики вас изцелуют во все места. там еще и рекуперация подтянется.

Arhat109

Вот в этом самом “почти” и вся закавыка. А не почти, а “готовый” - можете подсказать, чтобы не изобретать лисапед? 😃

Мне не для “коптерного” или “подвесного” применения, хоть и очень похоже на подвес … мне на “Луноход” мотор-колесо сделать … и таких 8шт. 😃

Надо чтобы колесо вставало непосредственно на ротор аутраннера (моторы уже купил и они даже уже на руках, перематывать авиационники придется на очень малое kV, но уже “морально готов” и даже уже приступил).

И вот чтобы это мотор-колесо:
а) ехало вперед-назад как обычно от медленно до относительно шустро;
б) могло ехать очень медленно и плавно и с подтормаживанием “под уклон”;
в) его можно было бы зафиксировать и “шагать” на колесах, в т.ч. и по лестницам/косогорам - нужен “упор” неподвижного колеса …
г) чтобы его не перегреть и не спалить - контроль тока…

Есть готовое? 😃

Не умею и даже пока не знаю “что это такое”, но разберусь. Не боги горшки обжигают. Не так давно (месяц с небольшим) не знал что такое BLDC тоже … кое в чем разобрался - накропал свое понимание тут в дневнике. 😃

Итого все детальки должны уложится примерно в 200руб на контроллер для 2-х BLDC…

Arhat109

То есть готового нет и следовательно “вот так вот отдать” … нечего, жаль. 😉

Ну а желающие помочь - есть?

Arhat109

Кое-что по “векторному управлению” проясняется. Вот интересное описание “на пальцах”: geektimes.ru/company/npf_vektor/blog/269486/, вкупе с этим комплектом www.avislab.com/blog/brushless01/ статей, в общем-то “не так оно и сложно”… 😃

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

Arhat109

Из вчерашнего “сетевого штурма”, что стало понятней:

  1. Бездатчиковыми моторами можно управлять не только по поиску средней точки принимая сигналы с делителей на АЦП контроллера, но и по сигналам с датчиков тока “точно также” можно определять положение ротора. То есть достаточно 3 входа АЦП, а не 6шт (а то уже расстроился, их всего 8);

1а. Главная проблема тут - слабый отклик противоЭДС при малых скоростях вращения. Но, можно решать подачей ВЧ наводок на фазы, как в сельсинах. В моем случае видимо не должно сказаться как-то значительно, ибо моторы будут с повышенной индуктивностью, среднее kV в диапазоне 30-100.

1б. Собственно этот же способ подачи ВЧ примеси можно использовать для начального определения положения ротора при запуске стоящего мотора и его управления в режиме “малой скорости”.

  1. Примитивное 6-и шаговое управление, для датчиковых моторов это и есть самый простой случай векторного управления. А если ещё оно делается “по синусу”, так и вообще класс. А если оно ещё и смещает среднюю точку, то может подавать даже большую напругу на обмотки в каждый момент управления (плавающая средняя точка);

2а. управление по синусу устраняет залипания на магнитах при малых оборотах и как раз и создает вращающийся вектор м.поля. В таблице управления достаточно иметь только 1/4 часть синуса, остальное получается вычислением стартовой точки.

2б. моё желание фиксить мотор в заданном положении решается примитивно выставлением “по синусу” фазных токов на это самое положение. Тут важен ШИМ, дабы не пожечь мотор.

  1. Все решает ШИМ. Управление просто модифицирует его “как того требует ситуация”, но в конечном итоге ток в обмотках формируется им.

  2. Управление моментом можно решать 2-я путями:
    а) подавая “размагничивающий” ток в продольную фазу;
    б) формируя “урезанный/уширенный шим” в нужное время.

  3. Преобразование координат при переходах “туда и обратно” вполне можно запихать в таблицы преобразований и сложность вычислений приближается к нулю. К тому что 32-я мега в общем-то должна справиться с возникающими задачами.

Arhat109

Продолжу.

Итого, в качестве испытательного стенда, выбрал имеющуюся у меня самопальную плату на базе ATmega128a (“МУРК-128”) с блоком расширения ОЗУ до 512кбайт и экранчиком TFT в 2". Оба устройства сидят на шине расширения RAM-bus и имеют прямое управление. МК имеет на борту 6 16-и битных ШИМ каналов (2 таймера) + 8 каналов АЦП, которые легко запинываются в режим 79 ksps/10бит или в режим до 400ksps/7бит. и можно сразу выводить на дисплейчик формы с АЦП по типу осцилоскопа… параллельного ОЗУ на 512кб должно хватить для накопления нужных семплов и просмотра результатов на экранчике.

Программа экспериментов:

  1. Собрать типовое 6-и шаговое управление мотором с входного резистора “скорость вращения” + собрать управление скважностью ШИМ каналов также с входного резистора “мошность мотора” и посмотреть на формы токов в обмотках. Звезда и треугольник.
  2. Переработать схему на режим “управление по синусу”, запихав в прогмем таблицу из 240 точек на 1/4 периода. Посмотреть снова формы токов в обмотках на звезде и треугольнике и управляемость на ХХ.
  3. Загнать тот же ШИМ в качестве частоты измерения индуктивности и посмотреть варианты сельсинного определения положения ротора.
  4. Нормирование снимаемых токов и построение таблицы преобразования координат во вращающуюся систему “ротора”.
  5. Построение режимов работы “управление по скорости” и “управление по моменту” … отладка “итого” что получится.
    … в целом если не напутал с пониманием “векторного управления”, на ближайшие пару месяцев интересными увлечениями вроде как обеспечен…

Поправьте плиз, если где не так понял чего-нибудь …

RW9UAO

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

Arhat109

Какие моторы посоветуете на низкие обороты 30-100 kV с наружным диаметром не более 28мм и весом до 50гр с тягой в районе 1.5кг*см и токами в пределах пары ампер?

RW9UAO

вот тут х.з. надо у автомобильщиков спрашивать.

Arhat109

Не нашел у них моторов легче 75-140гр. в свое время … может плохо искал. Все что меньше, они катают на коллекторниках, а там не будет возможности (или это проблематично) выковыривать мотор из колеса в случае выгорния щеток (типовая проблема на соревнованиях по робототехнике). Поэтому и остановился на бесколлекторниках, но их в нужном диапазоне тоже нет.
Отсюда и вся тема.
В целом, уже “загорелся”: “на ближайшие пару месяцев развлечение себе найдено” … может даже и на подольше. 😃

Так что, моторы приехали, находятся в перемотке (это не быстро как оказалось), камни и прочие деталюшки, чего не хватает - уже заказаны, едут, силовую часть драйвера уже развел … можно собирать макетку и тестировать “что там получается на самом деле”…

P.S. Жаль что так и не нашел “образцов для подражания” … за основу взял цикл статей с avislab как наиболее универсальное решение.

11 days later
Arhat109

Собрал силовую часть драйвера, осталось запаять Нанно (лежит новая нераспаянная)…

Итого, в драйвере: силовые мосты АО4606 + их раскачка от двух пинов контроллера: верхнее и нижнее плечо по отдельности. Есть встроенная блокировка одновременного включения обоих плеч для устранения сквозных токов.

С каждой фазы сделан делитель с ФНЧ: 33кОм / (2.4кОм + 560нф), чтобы снимаемый сигнал не превышал порога АЦП в 1.1в.
Поставлено 1 сопротивление для измерения общего тока 3-х фаз номиналом в 0.2 ома. Его сигнал также в пределах 1.1в для токов до 5А.

Собственно и вся силовая часть. Итого имеем 6 ног управления + 3 фазных напряжения + 1 токовое = 4 АЦП входа.