Очередная плата контроллера BLDC

9 фото
image
Работы по контроллеру идут все так же медленно. От фильтра Калмана отказался, нашлись более простые методы которые может быть даже удастся реализовать в целых числах. А пока собираюсь прототипировать на F4Discovery и вот этой силовой части. Как обычно работа встает как только нужно придумать название новой переменной :)

Проверил, что такое фотосет. Последний раз делаю плату ЛУТом, надеюсь, надоело возится.

9 изображений

  • +6
  • 12 июня 2014, 20:34
  • amaora

Комментарии (53)

RSS свернуть / развернуть
На какой ток рассчитана плата? Почему среднее плесо обделено на какую-то микросхему (похоже датчик тока)?
нашлись более простые методы
Какие?
0
  • avatar
  • Vga
  • 12 июня 2014, 20:50
20А, достаточно измерять ток в двух фазах. Вот такие, самое интересное для меня было под заголовком «Alternative Representation of the Electrical Equations», дальше можно уже и самому строить наблюдатель.
+2
А почему при таком токе — довольно, вроде, небольшом — такое количество кондеров? Китайцы может и не пример, но у их куда проще)
0
Один конденсатор может ~2.5А RMS тока, четыре впритык получается для 20А. Может поэтому у китайцев выводы конденсатора отгорают иногда?
0
У китайцев что только не отгорает) Но я думал, ВЧ токи приходятся на керамику?
0
Я это представляю как затягивание резких фронтов за счет керамики, а дальше ее все равно не хватит по емкости, но к этому времени электролиты успевают преодолеть свою индуктивность. На среднеквадратичном токе через большие конденсаторы, мелкая керамика сказывается слабо.

Хотя конечно промоделировать бы надо, с учетом паразитных параметров, индуктивности подводящих проводов, да все лень разбираться со spice стимуляторами.
0
Ставить в 2 фазы датчики это конечно по правилам, но ИМХО для такого применения (т.е. устройство не требующее высокой надежности или критичности к перекосу фаз) особого смысла нет, лишняя трата денег. Достаточно датчика тока в цепи питания, и от КЗ защитится можно и в нормальном режиме токи в фазах вычислять.
-1
Слишком компромиссный вариант, я хочу повышать частоту без ограничений еще в одном месте. И то место в котором надо будет измерять ток, там же импульсный ток, это дополнительные проблемы. Да и прототип же все таки, опять же лишние проблемы сейчас не нужны.
0
Если конкретно надо смотреть токи по фазам то да все правильно…
0
Еще можно мерить ток на на внутреннем сопротивлении полевиков, единственное надо калибровать под каждый полевик систему измерения. Т.к. внутреннее сопротивление полевика плывет с изменением температуры. Но, ради интереса можешь попробовать :) Это совсем нищебродский метод, правда требует некоторых вычислительных мощностей.
0
В этом бутерброде формул я заблудился ;) можно «на пальцах» упрощенно сказать, какие вычисления требуются, чтобы по токам определить фазы ротора?
0
Интегрируем уравнение, напряжение и ток здесь — векторы в неподвижной СК.

Находим поток ротора.


Используем условие , находим невязку и делаем поправку.




Полезно еще добавить в вектор состояния электромеханическую постоянную E, или связанную с ней K, так получается удобнее. Для K поправка не сложнее.



Все, на выходе вектор дает положение ротора, вектор дает приближенно (с динамической ошибкой в длине вектора) единичный вектор ориентации ротора, то есть sin/cos его угла. В K оценивается постоянная двигателя, и это дает адаптивность к неопределенности в R и L.

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

Скорость нужно знать, чтобы компенсировать задержки предсказывая положения ротора на нужный момент. Для управления скоростью естественно тоже.
+1
Правка: вектор дает приближенно…
0
Дело конечно ваше, но зачем выдумивать велосипед, какой уже выдумали 100500 раз. Да и по деталях дешевле выходит купить уже готовый.
Если что просто время убить, ибо нечем занятся. Но дело ваше!
-1
годный готовый тоже стоит не мало. а негодные, которых туева хуча на ебееях да хоббикингах уже мало кто ставит
0
А какие годные, например?
0
те в которых мосфеты включены через драйвера, стоят современные мосфеты с запасом по току, а не куча старого хлама. Драйвера которые генерят на выходе синусоиду, при чем по току. которые определяют фазу и при срыве не встают, а хотя бы повторно разгоняются, а в идеале — не срываются а компенсируют нагрузку
0
Ткните пальцем в конкретные изделия, пожалуйста.
0
в хорошие или плохие?
0
VGA:
А какие годные, например?

Понятно же, что человек спрашивал в первую очередь конкретные примеры…
0
а. ну если так, то видел какие то решения от немцев (вроде с микрокоптер.де как то связано, но там не нашел), плюсом сравните цены на автомодельные контроллеры и на летающие. автомодельные как правило не имеют половины недостатков в связи с тем что там жесткая механическая связь, но и стоят дороже
0
а, теперь понял… Вы говорили:
а негодные, которых туева хуча на ебееях да хоббикингах уже мало кто ставит

И я подумал, что вы можете порекомендовать правильные летающие ESC-шки, которые теперь ставит большинство. Ну, если уж обычные с HK массово перестали ставить :)

Автомобильные — это немного другое дело. Там требуются, в том числе, другие алгоритмы. Там совершенно иной характер нагрузки, она может быть импульсной (наехали на камень, или наоборот — сорвали в занос). Там совершенно другие требования к восстановлению нормальной работы (машина не коптер, из за короткого срыва фазы и кратковременной потери мощности катастрофы не будет). Да и мощность от них требуется бОльшая, двигатели слегка другие, инерция трансмиссии выше…

Неуверен, что моно приводить их как ориентир.
0
на самом деле эти алгоритмы в авто просто «нужнее». но это не значит что они не нужны в летающих контроллерах, просто не делают с целью облегчения и, в первую очередь, удешевления. как раз таки восстановление нормальной работы в летающих версиях на много хуже. автомобильные как правило вообще не срываются с синхронизации. узнаю у знакомых ребят что они нынче ставят и отпишусь.
0
спасибо
0
mikrokopter.de/ucwiki/en/BL-Ctrl_2.0
вот первое попавшееся
0
Гм. А чем оно так уж выделяется? Столь же скромные кондеры, драйверы, кажется, на рассыпухе (в моем китайце — интегральные), по вычислительной мощности — та же атмега. Разве что прошивка коптеро-оптимизированная и настроенная на работу с конкретным мотором.
0
драйвера там более/менее правильно сделаны. по крайней мере открываются/закрываются большими токами. прошивка тоже закрытая и стоит денег )
0
прошивка тоже закрытая и стоит денег )
Это не редкость. Но не всегда она их стоит)
0
Не факт. Разным задачам требуются разные алгоритмы и те же авиациаонные ески не зря поддерживают программирование. А специальные «коптерные» прошивки вообще отличаются только тем, что начито отрывают говернеры, фильтры, мягкие старты и прочее, что мешает контроллеру коптера управлять мощностью движка с минимальной задержкой.
+1
Вот сколько раз мы уже обсуждали эту тему. Да, купить готовый ESC можно. То, что массово продается на «хобби кинг» (условно) — это повторение однотипного образца с древним интерфейсом и работает оно как «черный ящик». Да, для многих регулей есть альтернативные прошивки. Но говорить о «изобретении велосипеда» нельзя, там очень много тонкостей.

Вот разве Вам бы не хотелось иметь ESC с современным последовательным интерфейсом? С двусторонним? И который бы позволял посадить все ESC на общую шину… С открытой мат. моделью? С возможностью динамически менять параметры или получать актуальную телеметрию?
+1
Возможно я ошибаюсь, но по моему, для большинства ESC это все можно реализовать, залив более альтернативную прошивку. По сути это всего лишь сервисные мелочи.
А amaora (насколько я понимаю) занимается вопросом потому, что это ему интересно и собственно вопрос состоит в экспериментировании с более сложными алгоритмами управления двигателем.

И все же, неужели алгоритмы в готовых ESC настолько убоги, чтобы был смысл разрабатывать свое кроме как для получения соответствующего опыта? Те же альтернативные прошивки для коптеров, АФАЙК, всего лишь отрывают ненужные функции ески, мешающие коптеру.
0
программа минимум — выдать на выход синусоиду. большинство об этом даже не местает. а когда видишь что в верхнем плече стоят p-канальники с просаживаемым затвором который закрывается через резистор в килоом так 10, нервно сглатываешь слюну и понимаешь почему при токах 20-30 ампер временами отпаиваются траезисторы. отсутствие адекватной схемотехники, адекватной обратной связи, адекватной периферии или вычислительной мощности тупо альтернативной прошивкой не исправить
0
Простите за идиотский вопрос, но зачем синус, когда существует ШИМ?!
0
шим как раз и должен генерить синус по току.
0
Насколько я знаю, в отличие от PMSM BLDC как раз на синусоиду не рассчитаны. А обратная связь там стандартная, без физических датчиков положения вала делать больше нечего.
Паскудная схемотехника — это да. Приходится выбирать «не слишком паскудные» — скажем, из моих — мощная имеет драйверы, а мелочь 1S/2А или 2S/6A в них просто не нуждается, МК с выходным током 50мА на пин хватает. Вот кондеры там, конечно, такие, что рекомендуют делать провода аккума как можно короче, чтоб кондер как бы и не требовался.
0
после выхода на режим (то есть на обороты которые указаны на вольт) действительно подачи постоянного напряжения в нужной фазе достаточно для получения оптимальных токов (больше просто не успеет нарасти). а вот при разгоне/торможении происходят огромные потери.
0
Строго говоря, я не особо разбираюсь в вопросе физики движков. Все, что могу сказать — это что, во первых, читал что единственное отличие BLDC от PMSM — первые рассчитаны на трапециеидальный сигнал, и второе — что BLDC и PMSM действительно выдают разный сигнал на Back-EMF.
0
честно говоря я разницы тоже не понял и со вторыми не сталкивался. но с модельными движками видел именно то что описал. при оптимальной скорости там даже ток ограничивать не приходелось :)
0
Ну, надеюсь amaora, вооружившись новой платой драйвера движка (контроллером это не является, именно драйвер) прояснит сей вопрос и разжует для прочих интересующихся)
0
Смотрел противоЭДС у модельных BLDC, вобщем там и не синус и не трапеция, в спектре там в основном только первая и третья гармоники, причём третья гармоника у некоторых двигателей доходит до половины первой. В результате форма отдалённо похожа на синус с большим провалом в середине полуволны.
0
Ага, она довольно кривенькая. Я уже как-то постил картинки с BEMF, снятой с разных моторов. Но все же, при определенном воображении можно счесть это грубой аппроксимацией трапеции)
0
И все же, неужели алгоритмы в готовых ESC настолько убоги, чтобы был смысл разрабатывать свое кроме как для получения соответствующего опыта?

Возможно ошибаюсь я, ибо в последнее время не слежу за развитием альтернативных прошивок. Когда я искал прошивку под свои контроллеры, я так и не смог найти «идеальный» вариант. Получалось (условно говоря), что одна прошивка, вроде, неплоха по отзывам, но умеет только PWM. Другая поддерживает I2C но у нее проблемы со срывом синхронизации. Третья имеет отличную функциональность, но не портируема, ибо написана на ASM под конкретный контроллер.

В любом случае, ИМХО, рано говорить что в софте для ESC уже расставлены все точки.
0
Я имел в виду готовую китайчатину с НК. Те, что я проверял — держат синхру, пока движок не заклинишь, после чего питаются перезапустить его.
0
Справедливости ради, на HK продаются ESC-шки, пригодные для альтернативных прошивок, которые добавляют I2C. Более того — сам HK на это ссылается и это есть в документации к ESC-шкам.

Поэтому, если мы говорим о фидбеке из ESC или продвинутых алгоритмах — да, всё так… Оно того стоит. Но для нормального интерфейса пригодны вполне и готовые хоббийные изделия.
0
Полагаю, цифровой интерфейс можно на любой еске сделать — правда 1-wire, так как линий в интерфейсе всего одна)
Этот же интерфейс там исключительно из соображений совместимости — да, древнее говно (как и многие другие стандартизованные вещи) — зато поддерживается всем и вся.
0
Начало многообещающее. Серьезная, хорошая работа. Если получится как задумано и не лень будет написать документацию — будет просто конфетка. Открытая архитектура и широкие возможности по регуляции делают контроллер очень интересным для экспериментов с BLDC.
0
Насколько я понял из текста комментариев то головной контроллер управляет тягой двигателя модели вертолёта (гувернёр). Поскольку плата силовых ключей достаточно крупная то модель также не малая.
Из чего следует вывод что кратковременный отказ одного из (или единственного) силового агрегата не приведёт к катастрофе модели. Поскольку инерция главного редуктора и ротора позволит совершить аварийную посадку на авторотации (обгонная муфта не даст остановке силового агрегата остановить ротор). Из чего следует 2 вывода при не критичном отказе силовой агрегат можно попробовать перезапустить в работу (например затормозить и повторно разогнать электромотор). При критическом отказе силового агрегата (например заглох двигатель внутреннего сгорания) можно минимизировать повреждения при управлении аварийной посадкой — электроника и привода управления. не отключается.
По этому проблема может решаться как за счёт контроля над силовым агрегатом и попытках преодолеть нештатную ситуацию не потеряв агрегат. Так и отключением аварийного агрегата с продолжением работы на дублирующем или аварийной посадкой.
Ведь любой нештатный режим работы имеет причину, которая часто является внешней по отношению к системе. И исправить это внешнее воздействие не всегда возможно.

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

Ну в общем такая вот сумбурная мысль.
0
Сдается мне, что автор в первую очередь исследует как оптимально управлять двигателем — чтобы драйвер работал эффективно, а двигатель не выпадал из синхронизма (АФАЙК это единственный сбой, после которого можно продолжить работу перезапустив двигатель).
P.S. Гувернёр — стабилизатор оборотов двигателя, а не сам ESC. В электронных ESC это дополнительная функция, обычно отключаемая.
0
спасибо за пояснения.
когда я занимался авиамоделями не было тяговых электродвигателей для них. все использовали внутреннего сгорания.
0
Только недавно добрался до реальных испытаний с этой платкой. Пока ограничился током 5А, частотой 20кГц, нагрева не замечено. На затворах виден довольно нехороший звон при переключении. Время переключения получилось 100-200нс (надо еще раз смотреть, не помню), но dead time пока задан 400нс. Управляющие сигналы на входах драйверов тоже подергивает при переключении соседних каналов, видимо длинные провода, ~20см.

Проблемы пока возникают с оценками параметров двигателя. Еще до старта надо оценить индуктивности, сопротивление и количество полюсов. И хотя бы грубо предположить Kv и момент инерции. Это режим оценки индуктивность работает, но мне не нравится как он сделан. И еще нужен хороший юзер интерфейс, командно строчный.

Сам метод бездатчиковой оценки стабилизировался на фильтре Калмана для шести переменных. На 20 кГц он дает нагрузку ~30% на stm32f4xx. Остаются проблемы с оценками E (Kv) и R. Не сделаны оценки дрейфов (может быть и не понадобятся) датчиков тока во время работы. И оценка напряжения питания. Еще много чего.

Вместо регуляторов тока и скорости пока используются ПИ звенья, этим пока даже не занимался.

Шум и чувствительность датчиков тока к внешним полям пока не успел оценить. У осциллографа собственный шум оказался выше.
0
А код, над которым работаешь, ты где-то выкладываешь?

И как определяешь количество полюсов? Разве это возможно, не зная реальные обороты двигателя?
0
Уже не раз давал ссылку. Только коммичу редко, много и без подробных комментов, рано еще все подробно документировать.

Реальные обороты видит человек, в шаговом режиме можно покрутить и понять сколько полюсов. Можно и неправильное количество задать, если не нужна корректная оценка момента нагрузки и инерции.
0
Уже не раз давал ссылку.
Сорри, опять забыл. А ведь на винте лежит клон этого репозитория.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.