avatar_amaora

Открытый контроллер BLDC

Автор amaora, 11 Май 2019 в 02:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

edw123

Цитата: amaora от 18 Июнь 2019 в 22:39
Нет, ручка "газовая". С отдельной тормозной ручкой было бы проще. В новой версии платы видимо стоит предусмотреть два аналоговых входа.

Но пока я хочу сделать самый простой вариант с одной ручкой.
Так он без механического тормоза? %-) Это как-то стрёмно. А если "понесёт"?

amaora

Цитата: edw123 от 18 Июнь 2019 в 22:45
Так он без механического тормоза? %-) Это как-то стрёмно. А если "понесёт"?
У меня без механического тормоза, да. Был ножной, но сохранить его не удалось. Согласен, что он нужен ведь контроллер может отключиться, из-за кз например.

Стараюсь аккуратно кататься, и я чаще тестирую разгон-торможение а не максимальную скорость  :-) этот самокат и с тормозом будет довольно опасен, можно нырнуть через руль на кочке.
Бездатчиковый векторный контроллер PMC

495

#38
Цитата: amaora от 18 Июнь 2019 в 22:14Пытаюсь уложить все управление в одну ручку.
Есть возможность , при включении считывать уровень ручки газа и считать его нулём . для этого лучше иметь механический стопор из подпружиненого шарика . как сделать  нулевую эону возле него не знаю .
Я делал контроллер вокруг стабилизатора тока у которого ноль фазного тока был возле прямого падения напряжения на диоде (на входе в микропроцессор) +/- 20 миливольт возле этого уровня была зона отключения регулятора , все уровни заданы были делителями на резисторах , поэтому разгон-торможение получились в одном регуляторе . К тому же контроллер изначально был с одним проводом управления и двумя питания , я старался не трогать то что мне не сильно мешало . Работа осталась на уровне тестов подсистем , на сборку не хватило энтузиазма .
Лучше не придумывать своё , а взять два аналоговых входа : один газ , второй тормоз . Приоритет должен быть у тормоза . Также вместо тормоза возможен цифровой холл на отключение газа или геркон или микрик . Для начала хватит . Изготовителей механики на порядок больше , чем программистов со знанием электроники . Пусть механики впихивают два холла и две пружины в ручку газа , если захотят .

amaora

Добавил ослабление поля (FW), и рискнул проверить. На холостую получаю удвоение скорости при том же питании. На батарее ~48в, без FW скорость ~700 об/мин. Со включенным на ~50% FW скорость ~1400 об/мин, а потребление ~200 Вт. При этом транзисторы в контроллере на 60в.

Попробовал прокатиться, как и ожидал прирост скорости под нагрузкой заметно меньше. Мощности аккумулятора не хватает, да и колесо тоже перегрелось. Была скорость ~25 км/ч, теперь ~33 км/ч. Напряжение батареи (12s1p) просело до ~35в, работает ограничение. На картинке отмечена точка в конце длительного участка на высокой скорости.



Отключение тормоза сделал по времени. Если 2 секунды колесо неподвижно, то отключаем его. Дальше можно свободно катить самокат. Теперь мне все нравится.

Бездатчиковый векторный контроллер PMC

amaora

Планирую в ближайшее время выпустить новую ревизию платы:

  • Заменены драйверы на аналогичные (можно паять любые) но с меньшим током, старые слишком быстро переключают :-), хочу уменьшить всплески перенапряжения
  • Заменены усилители шунтов, на аналогичные (можно паять любые) с меньшим коэффициентом усиления
  • Трансивер CAN теперь 5-вольтовый
  • Добавлен вывод управления вентилятором для охлаждения платы (5в)
  • Добавлено два аналоговых входа (от 0 до 5в)
  • Добавлены сдвигающие резисторы в цепи замера напряжения фаз, для большей точности
  • Много мелких доработок платы, оптимизация футпринтов
  • Убрал SMD конденсаторы с нижней поверхности силовой платы, теперь это место для теплоотвода
  • Добавил надписи с обратной стороны платы, для того чтобы можно было собрать две платы компонентами внутрь
  • Думаю не сделать ли 8 слоев вместо 6-ти, для снижения сопротивления и улучшения теплопроводности платы

Возможностей по напряжению и току для мелкого транспорта я думаю достаточно. Предел по напряжению питания 60в. Ток фазный 50А - становится тепло, 80А - нужен обдув, радиатор и толстые провода, 120А - импульсом. То есть, в лучшем случае, долговременная мощность без особых мер по охлаждению ~50*50 = 2500 Вт. Делать версию платы на большее напряжение/ток не планирую. Стоимость сейчас получается около ~7 тр на компоненты + ~1 тр на плату + сколько-то на монтаж.

По софтовой части:

  • Исправил бездатчиковый метод, были проблемы с МК, раньше работал только с низко-индуктивными и высоко-оборотными RC моторами
  • Доработал режим управления моментом, можно настроить так чтобы отрицательный ток работал как тормоз (для этого включаем контур скорости с заданием 0), а не как реверс. То есть исключается обратное вращение.
  • Добавил ослабление поля, чтобы превышать скорость несмотря на низкое напряжение питания (ценой дополнительных потерь)
  • Работа аналоговой ручки доведена до приемлемого состояния. Все параметры настраиваются, входной диапазон напряжения по трем точкам, параметр которым управляем по трем точкам (мин.,среднее,макс.)
  • Доработаны ограничения тока, фазного и батарейного и отдельно тормозного. Можно не беспокоится о перенапряжении если BMS отключит батарею во время торможения. Можно задать минимальное напряжение ниже которого контроллер не будет просаживать аккумулятор (в предыдущем сообщении есть график)
  • Датчики холла не использую, все не найду время на них, и провода еще тянуть. На низкой скорости сейчас управления нет (ток снижается до 0), нужна начальная скорость. Но порог этой начальной скорости так мал (~2% от максимальной), что это не является проблемой
  • Нагрев обмоток двигателя не влияет на бездатчиковый метод, отслеживается изменение сопротивления от -10% до +40%, то есть -25° и +105° относительно того, что было при замере сопротивления. Диапазон настраивается. Думаю про то, чтобы вытащить непосредственно оценку температуры двигателя, но это сложно, много искажений.
  • HFI временно не работает, в связи с переходом на новый бездатчиковый метод

Что еще на обдумывании. Защиты от межфазного КЗ сейчас нет. В софте есть проверки на превышение тока и на "странное" поведение мотора, но они не всегда могут правильно и быстро сработать. И еще не хватает искрогашения при подключении аккумулятора, хотя мне кажется это должно быть функцией BMS. Здесь тоже слабо продумано, как это должно быть.

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

amaora

Новости:


  • Подготовил трассировку платы на 8 слоев.
  • Исправил и протестировал HFI для работы на нулевой скорости без датчиков. Нормально для старта, можно ногой не толкаться теперь. Вот измеренные индуктивности мотора в DQ осях. Этого отличия достаточно для HFI. Но работоспособность метода зависит не только от этого. Точно узнать можно лишь попробовав на конкретном моторе.
ЦитироватьC   [198] pm.const_im_LD = 5.5027E-4 (H)
C   [199] pm.const_im_LQ = 6.8142E-4 (H)
  • Добавил некоторую быстродействующую (~3 мкс) защиту от межфазного КЗ. Добился отсутствия ложных срабатываний. КЗ делать пока не пробовал.
  • Добавил расчет пробега и потребленной энергии. Проехал ~1км для теста. Расход средний ~15 Вт*ч/км. Возврат энергии в батарею на торможении ~13% от потраченной (за весь маршрут) Вт*ч или ~10% если считать А*ч. Горки на маршруте не более 5% уклон (измерял пузырьковым строительным уровнем  :kidding:).
  • Пытался настроить режим управления скоростью (положение ручки линейно связано с заданной скоростью), вносил некоторые исправления, но результат мне по прежнему не нравится. Лучше управлять моментом.
Бездатчиковый векторный контроллер PMC

edw123

Цитата: amaora от 16 Июль 2019 в 20:28
Пытался настроить режим управления скоростью (положение ручки линейно связано с заданной скоростью), вносил некоторые исправления, но результат мне по прежнему не нравится. Лучше управлять моментом.
Скоростью - это напряжением или непосредственно оборотами?

amaora

Цитата: edw123 от 16 Июль 2019 в 21:09
Скоростью - это напряжением или непосредственно оборотами?
Непосредственно оборотами. Проблема похоже в том, что торможение начинается в разных положениях ручки в зависимости от текущей скорости. И это выглядит как задержка отклика на управление, особенно если настроить плавный разгон/торможение.
Бездатчиковый векторный контроллер PMC

amaora

Сделал измерение силы/момента в статическом режиме. Датчики Холла по прежнему не использую. Положение ротора двигателя определяется по отличию индуктивностей с помощью инжекции ВЧ сигнала.

Получается ~5 кг тяги при фазном токе 15А, а расчетно должно быть ~8 кг. Если ток поднять выше 15А то оценка срывается и начинаются рывки в разные стороны. Похоже на то, что оценка положения все больше уходит от истинной при увеличении тока. Это может происходить из-за того, что асимметрия индуктивностей вызвана не конструкцией ротора а насыщением железа статора магнитным потоком ротора, так что собственный поток статора искажает эту асимметрию.

Можно кое-что еще улучшить. Но как преодолеть ограничение в 15А я пока не знаю. Хотя и это уже не мало для этого мотора.

[yt_search]phLGdwzEnQY[/yt_search]
Бездатчиковый векторный контроллер PMC

edw123

Цитата: amaora от 18 Июль 2019 в 18:37
Сделал измерение силы/момента в статическом режиме. Датчики Холла по прежнему не использую. Положение ротора двигателя определяется по отличию индуктивностей с помощью инжекции ВЧ сигнала.

Получается ~5 кг тяги при фазном токе 15А, а расчетно должно быть ~8 кг. Если ток поднять выше 15А то оценка срывается и начинаются рывки в разные стороны. Похоже на то, что оценка положения все больше уходит от истинной при увеличении тока. Это может происходить из-за того, что асимметрия индуктивностей вызвана не конструкцией ротора а насыщением железа статора магнитным потоком ротора, так что собственный поток статора искажает эту асимметрию.

Можно кое-что еще улучшить. Но как преодолеть ограничение в 15А я пока не знаю. Хотя и это уже не мало для этого мотора.

Наверное можно проверить насыщение магнитопровода в статике - постоянку дать и силу страгивания измерять. Может частота уже велика для статорного набора?

on4ip

Цитата: amaora от 16 Июль 2019 в 21:59
Непосредственно оборотами. Проблема похоже в том, что торможение начинается в разных положениях ручки в зависимости от текущей скорости. И это выглядит как задержка отклика на управление, особенно если настроить плавный разгон/торможение.
Управление скоростью в классическом виде для человека не очень понятный процесс, так как человек сам себе регулятор. Управление реализовать можно управляя с ручки газа заданием скорости и ограничением тока, которое ограничит выход регулятора скорости. Ну и желательно коэффциенты регулятора менять при этом. Для более адекватной работы помогает введение зоны снижения тока  если ошибка по скорости меньше какого то значения.
В жизни все не так, как на самом деле.

on4ip

Цитата: amaora от 18 Июль 2019 в 18:37
Сделал измерение силы/момента в статическом режиме. Датчики Холла по прежнему не использую. Положение ротора двигателя определяется по отличию индуктивностей с помощью инжекции ВЧ сигнала.

Получается ~5 кг тяги при фазном токе 15А, а расчетно должно быть ~8 кг. Если ток поднять выше 15А то оценка срывается и начинаются рывки в разные стороны. Похоже на то, что оценка положения все больше уходит от истинной при увеличении тока. Это может происходить из-за того, что асимметрия индуктивностей вызвана не конструкцией ротора а насыщением железа статора магнитным потоком ротора, так что собственный поток статора искажает эту асимметрию.

Можно кое-что еще улучшить. Но как преодолеть ограничение в 15А я пока не знаю. Хотя и это уже не мало для этого мотора.

[yt_search]phLGdwzEnQY[/yt_search]
Когда я делал бездатчиковое управление для машины выскокоборотной (был там не hfi а observer)  то заметил что ощенка положения искажается реакцией якоря( ну или потоком ага стороны статора) делал коррекцию оценки угла в функции тока активного.
По поводу насыщения стали статоров оно есть и оно не линейно по осям, только если вы значительно не превышаеье токи номинальные мотора думаю а с ним развал системы не связан.
В жизни все не так, как на самом деле.

TRO

Цитата: amaora от 24 Июнь 2019 в 20:06И еще не хватает искрогашения при подключении аккумулятора, хотя мне кажется это должно быть функцией BMS.
Пришлось как то вырисовывать схему контроллера пром вентилятора (BLDC с холлами), там по минусовой стороне  в разрыв конденсаторов по питанию (электролитов) стояло сопротивление через которое они предзаряжались,  а уже как зарядились то это сопротивление выкорачивал мощный мосфет. По моему очень годное решение.

Wahoo 2012 29er, +собран складной двухосис на раме"Land Rover" 69er с эл. мотором, и и МОНОКОЛЕСО

amaora

Цитата: on4ip от 19 Июль 2019 в 07:32
Когда я делал бездатчиковое управление для машины выскокоборотной (был там не hfi а observer)  то заметил что ощенка положения искажается реакцией якоря( ну или потоком ага стороны статора) делал коррекцию оценки угла в функции тока активного.
По поводу насыщения стали статоров оно есть и оно не линейно по осям, только если вы значительно не превышаеье токи номинальные мотора думаю а с ним развал системы не связан.
Ну это от того что в наблюдателе поток статора считается по линейной формуле i*L а на самом деле есть гистерезис и насыщение. Я не знаю насколько велик этот эффект, в основном наблюдателе я просадку момента не наблюдал. Хотя и измерений точных не проводил.

Про HFI там несколько иначе. Сам метод основан на том, что индуктивность по осям отличается и зависит от положения ротора. В моторе с внешним ротором и наклеенными магнитами отличие индуктивностей конструкционно отсутствует. Но через железо статора проходит поток от магнитов и на BH характеристике точка смещается. Это происходит по разному по разным электрическим осям. То есть говоря "насыщение" я имею ввиду не выход на участок где магнитная проницаемость уже равна 1, а лишь смещение, которое можно увидеть по изменившейся индуктивности.

Так вот, вместе с движение ротора движется поток от магнитов, и индуктивность обмоток статора меняется. Направление в котором индуктивность наименьшая указывает положение потока ротора. Простой метод определения этого направления, подать вращающийся вектор напряжения достаточно высокой частоты и измерить вектор тока при этом. Если полученный вектор тока нарисовать на плоскости как параметрический график от времени, то получим эллипс параметры которого описываются тензором (квадратичная форма, симметричная матрица 2x2) индуктивности. Из этих данным можно вытащить главные оси индуктивности и соответсвенно понять положение ротора. Но с некоторой неопределенностью, потому как можно определить ось но нельзя определить направление. Можно ошибиться на 180°. Но на эту проблему тоже есть решение.

Дальше когда начинаем подавать ток по оси Q чтобы создать момент, то асимметрия индуктивностей меняется и оценка плывет. В месте с оценкой плывет заданный ток (он же задан в оцениваемой системе координат) и это снова влияет на асимметрию. До некоторого значения тока такая система стабилизируется со смещенной оценкой положения. Дальше при увеличении тока оценка "срывается" и может начать колебаться.

Цитата: TRO от 19 Июль 2019 в 13:16Пришлось как то вырисовывать схему контроллера пром вентилятора (BLDC с холлами), там по минусовой стороне  в разрыв конденсаторов по питанию (электролитов) стояло сопротивление через которое они предзаряжались,  а уже как зарядились то это сопротивление выкорачивал мощный мосфет. По моему очень годное решение.
Да это понятно. Но есть куча мелких вопросов. В контроллер это добавлять не хочется исходя из-того, что это избыточно при наличии нескольких контроллеров в системе. Добавлять это в BMS может быть надо или отдельным устройством между источником и контроллером. Сам сейчас обхожусь резистором и дополнительным разъемом, если забыть включить разъем то начинает пахнуть горелым резистором.
Бездатчиковый векторный контроллер PMC

on4ip

Цитата: amaora от 19 Июль 2019 в 14:45Дальше когда начинаем подавать ток по оси Q чтобы создать момент, то асимметрия индуктивностей меняется и оценка плывет. В месте с оценкой плывет заданный ток (он же задан в оцениваемой системе координат) и это снова влияет на асимметрию. До некоторого значения тока такая система стабилизируется со смещенной оценкой положения. Дальше при увеличении тока оценка "срывается" и может начать колебаться.
Так все таки что является причиной того что система теряет ориентацию ? Это принципиально не преодолимый режим или проблема связана  с неучетом физического процесса? При появлении тока iq, в системе появится ещё один поток, изменение индуктивности по осям станет не линейным, соотношение между ними будет меняться и достигнет не идёт идентифицируемой величины, где будет точка развала системы.  15а для вашего мотора это номинальный ток? Я так понимаю мотор у вас 250 ватт.
В жизни все не так, как на самом деле.

edw123

Цитата: on4ip от 20 Июль 2019 в 07:45
Так все таки что является причиной того что система теряет ориентацию ? Это принципиально не преодолимый режим или проблема связана  с неучетом физического процесса? При появлении тока iq, в системе появится ещё один поток, изменение индуктивности по осям станет не линейным, соотношение между ними будет меняться и достигнет не идёт идентифицируемой величины, где будет точка развала системы.  15а для вашего мотора это номинальный ток? Я так понимаю мотор у вас 250 ватт.
Да вроде нет насыщения, как [user]amaora[/user], говорил. Ампер-витки поправильнее, конечно, да и параметры магнитопровода неплохо бы поточнее знать, но китайские "дешёвки" как-то справляются в большинстве бездатчиковых случаев  :bn:

on4ip

Цитата: edw123 от 20 Июль 2019 в 09:42
Да вроде нет насыщения, как [user]amaora[/user], говорил. Ампер-витки поправильнее, конечно, да и параметры магнитопровода неплохо бы поточнее знать, но китайские "дешёвки" как-то справляются в большинстве бездатчиковых случаев  :bn:
Китайские не работают в Фок и бездатчике, и м более на нулевых скоростях.
В жизни все не так, как на самом деле.

amaora

#53
Цитата: on4ip от 20 Июль 2019 в 07:45к все таки что является причиной того что система теряет ориентацию ? Это принципиально не преодолимый режим или проблема связана  с неучетом физического процесса?
Отличие между индуктивностью по разным осям становиться неразличимым. Принципиально не преодолимо или я не знаю как. Если правильно помню TI с их instaSPIN такого же мнения о HFI методах, что у каждого мотора свои пределы.

Измеренные параметры мотора. Да около 15-20А долговременный предел фазного тока по тепловыделению.

ЦитироватьR  [170] pm.const_lpf_U = 47.711 (V)
C   [172] pm.const_E = 2.3376E-2 (Wb)
    [173] pm.const_E_kv = 15.7 (rpm/v)
C   [174] pm.const_R = 2.5331E-1 (Ohm)
C   [175] pm.const_L = 5.9924E-4 (H)
C   [176] pm.const_Zp = 15
C   [177] pm.const_J = 0.0000E+0 (kg*m*m)
C   [178] pm.const_im_LD = 5.3478E-4 (H)
C   [179] pm.const_im_LQ = 6.6371E-4 (H)
C   [180] pm.const_im_B = -3.1 (g)
C   [181] pm.const_im_R = 4.5826E-1 (Ohm)

Момент кстати удалось получить до ~10 Нм при 20А путем компенсации оценки (поворот на угол в зависимости от величины тока). Сейчас причесываю это изменение.
Бездатчиковый векторный контроллер PMC