Меню

Bldc мотор угол опережения

Оценка положения ротора BLDC на низкой скорости

Расскажу немного о методах используемых в PMC при работе на низкой скорости. Речь пойдет о векторном бездатчиковом управлении синхронными двигателями с постоянными магнитами. Как известно, при вращении ротора двигателя в обмотках статора возникает ЭДС, что позволяет оценить положение. Либо непосредственно измеряя ЭДС на отключенной фазе, как это делают в 6-ти шаговом управлении, либо косвенно с помощью наблюдателя состояния по измерениям тока, что подходит для векторного управления. Чем больше скорость, тем лучше видно вектор ЭДС на фоне шумов и неопределенностей. При неподвижном роторе этот метод очевидно бесполезен. В этом случае PMC может задействовать наблюдатель положения основанный на других особенностях мотора. О методе инжекции высокой частоты (HFI) далее.

Нам потребуется трехфазный инвертор и датчики фазного тока. Все то же, что необходимо для векторного управления. Большего не требуется.

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

Мост управляется одни таймером, для каждой фазы задается заполнение. Симметричная схема, таймер считает вверх, затем вниз. То есть, в начальный момент открыты все нижние ключи. Фаза с наибольшим заполнением раньше всех переключается на верхний ключ и соответственно позже всех возвращается на нижний. В середине когда все нижние ключи открыты происходит сэмплирование сигналов с датчиков тока. Этот момент считается началом нового такта работы. Абстрактно можем считать, что имеем три источника напряжения.

Все дела в векторном управлении делаются в подвижной ортогональной системе координат связанной с ротором. Ось D (direct) направлена по направлению потока ротора, ось Q (quadrature) ей ортогональна и направлена так, чтобы при положительном вращении знак ЭДС был положительным.

Промежуточная система координат XY (обычно обозначают альфа-бетта но у меня вот так) неподвижная и связана со статором. А на самом деле у нас три фазы и поэтому будем работать еще и с третьей системой координат ABC которая неподвижная и связана со статором но имеет три оси. Формулы перехода между разными системами координат достаточно просты [1], главное ничего не перепутать. Измерения тока преобразуются ABC->XY->DQ а выходной управляющий сигнал на мост DQ->XY->ABC.




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

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

Это записано с реального мотора, частота 3.75кГц, полученные значения индуктивностей 9 и 12 мкГ. След от тока образует эллипс вытянутый по направлению наименьшей индуктивности. Это направление совпадает с направлением потока ротора. Таким образом можно определять положение ротора. Сам угол или вектор направления вытаскивается с помощью нахождения тензора индуктивности (по аналогии с тензором инерции в механике) и дальнейшим анализом его собственных векторов. Это всего лишь симметричная матрица размерности 2×2, полученная путем дискретного преобразования Фурье над сигналами тока и напряжения и дальнейшим переходом к импедансу а именно мнимой части которая обусловлена индуктивностью.

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

Читайте также:  Как узнать что троит мотор

Здесь, ток i и напряжения u в XY системе координат, матрица L диагональная содержащая индуктивности по DQ осям (тензор индуктивности), матрица A делает преобразование XY->DQ. Очевидно произведение трех матриц в правой части даст тензор в системе координат XY элементы которого зависят от положения ротора.

Дальше будем использовать пульсирующий вектор а не вращающийся, это гораздо лучше т.к. не создает пульсации вращающего момента и вибрации если направить вектор по прямой D оси, ток по которой не создает момента. Посмотрим, что будет с таким вектором если его пропустить через уравнения. Это достаточно легко представить, направим вектор тока по оси X, и масштабируем его разными коэффициентами из матрицы L в осях DQ. Если оси DQ и XY совпадают то направление вектора напряжения совпадает с током. Но если немного повернуть DQ то масштабирование будет изменять направление вектора, появится составляющая по оси Y.

Вместо XY здесь может быть любая другая система координат. Можем принять за нее оценку DQ которая имеется на данный момент. Подаем сигнал по прямой D оси, и смотрим на отклик по квадратурной Q оси. Если наша оценка DQ осей верна то отклика не будет, иначе знак и величина пульсации указывают в какую сторону и на сколько ошибаемся. Чтобы отделить полезный сигнал используется фильтр пропускающий только высокую частоту. Далее мгновенные значения тока умножаются на опорный гармонический сигнал, чтобы распознать знак и еще больше отфильтровать лишнее.

Здесь HPF означает High Pass Filter. Величина r используется для коррекции положения осей DQ и оценки скорости. Для оценки скорости используется phase locked loop, достаточно простой наблюдатель.

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

Такая схема достаточно хорошо работает на реальных двигателях. При низкой индуктивности и небольшом их различии по осям может потребоваться предельно высокая частота для надежной оценки. Мы приняли частоту в 12 раз ниже частоты ШИМ как предельно высокую.

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

Таким образом для решения проблемы с двумя устойчивыми положениями анализируем ток не только по Q оси но и по D. Умножаем на опорный сигнал удвоенной частоты, анализируем среднее значение f за некоторый период. Если перешла некоторый порог, переворачиваем оценку положения на 180 градусов.

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

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

Читайте также:  Китай лодочные электро моторы

Источник

Заметки о трёхфазных BLDC-моторах. Часть 1. Алгоритм блочной коммутации

Скопилось тут у меня достаточно много моторчиков от старых винчестеров. Выкидывать это добро — жалко, поэтому решено было куда-нибудь их приделать. Ну, до «приделать» мы ещё дойдём, а перво-наперво неплохо было бы разобраться как такие моторы вообще работают и как ими управлять. Написано об этом в общем-то довольно много, но я попробую изложить всю эту теорию несколько по-новому, так сказать под другим углом.

Итак, поехали. Аббревиатура BLDC расшифровывается с буржуинского как brushless direct current (motor) — бесщёточный мотор постоянного тока. По своей сути это обычный трёхфазный синхронный электродвигатель с постоянными магнитами, по крайней мере в том, что касается конструкции самого двигателя. Про общие принципы работы синхронных двигателей можно почитать вот тут.

Если вкратце говорить о конструкции, то тут всё просто, — на статоре двигателя располагаются электромагниты, намотанные тремя проводами (три фазы), на роторе закреплены постоянные магниты. Двигатели с ротором, расположенным внутри статора, называются Inrunner («крутилка» внутри), двигатели с ротором, расположенным вокруг статора, называются Outrunner («крутилка» снаружи). Оба варианта показаны на рисунке слева. Обмотки статора соединяются между собой в звезду или в треугольник. Вот и вся конструкция.

Что же в нём всё таки особенного, чем он всё таки отличается от обычного синхронника и как его запитать постоянным током? Для того, чтобы это понять — с обычного синхронника и начнём, постепенно «переделывая» его в bldc-мотор.

Как питается обычный синхронник

Для начала давайте нарисуем диаграмму подачи напряжений на обмотки обычного синхронного электродвигателя (рисунок справа). Это три синусоиды, которые сдвинуты на 120 0 по фазе. Они, как известно, создают вращающееся магнитное поле, с которым сцепляется и синхронно вращается магнитное поле ротора (ну и, соответственно, сам ротор). Вертикальные оси на рисунке (U, V, W) — напряжение на обмотках относительно нулевого провода трёхфазной сети (тот, к которому подключается общая точка при соединении обмоток звездой), горизонтальные оси (t) — оси времени.

Переделываем обычный синхронник на однополярное питание

А теперь давайте возьмём и сделаем нашу синусоиду дискретной, ну то есть разделим её на кучу участков, на каждом из которых часть синусоиды заменим на среднее для этого участка напряжение(рисунок слева). Что принципиально поменялось? Да ничего! При достаточно большой степени дискретизации двигатель вообще не заметит никакой разницы.

Это как со звуком. Звук ведь сейчас почти повсеместно цифровой, то есть дискретный, однако мало кто может отличить цифровой звук от аналогового. Ну, разве что какие-то особо изощрённые любители «тёплого лампового звука» (и то, это им только так кажется). Или другая аналогия — если бы у телеги колеса были не идеально круглыми, а многогранными с очень большим количеством маленьких граней. Телега бы всё равно отлично ехала, просто колеса бы вращались не совсем равномерно.

С нашим двиглом будет ровно то же самое. Его вращение будет слегка неравномерным, поскольку слегка неравномерным станет модуль вращающего момента, но в целом двигатель как крутился — так и будет крутиться.

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

Как сделать цифровые синусоиды

Ну вот мы и пришли к тому, что наш обычный синхронный двигатель может работать от постоянного напряжения. Всё, что нам теперь нужно — это каким-то образом извернуться и сделать цифровые синусоиды. Да легко. Берём на каждую фазу по два ключа и шинкуем этими ключами импульсы, скважность которых изменяется по синусоидальному закону (ну то есть применяем ШИМ-модуляцию). Тогда среднее за время импульса напряжение тоже будет изменяться по синусоидальному закону. Схема показана на рисунке справа.

Читайте также:  Рекомендованный бензин для лодочного мотора

От синусоид к блочной коммутации

А теперь поиздеваемся над нашими синусоидами ещё немного, — аппроксимируем исходные синусоиды не множеством маленьких прямоугольных импульсов, а только шестью, как это показано на рисунке справа.

Если проводить аналогию с телегой, то мы, можно сказать, заменили идеально круглое колесо не многоугольником, а конкретно шестиугольником. Поедет наша телега с шестиугольными колёсами? Да она и с квадратными поедет, и с треугольными, весь вопрос в том, насколько лошадь сильная. Ну и, естественно, чем меньше углов — тем сильнее нашу телегу будет трясти. Я, кстати, попозже покажу как сделать так, чтобы телегу с треугольными колёсами трясло поменьше. Но… вернёмся к нашим моторам.

У нас всё аналогично, чем меньшим количеством отрезков мы аппроксимируем синусоиду — тем более неравномерным будет вращение ротора, однако, вращение всё равно будет, никуда не денется.

Первый интервал у нас на картинке получился разорванным, так что давайте эту картинку перерисуем в более удобоваримом виде, сдвинув фазу таким образом, чтобы все интервалы получились сплошными. У нас все сигналы периодические, поэтому без разницы, какую точку принять за начало отсчёта и с какого интервала начинать нумерацию, главное чтобы порядок следования этих интервалов остался правильным. Заодно, кстати, и нулевой потенциал на рисунке сдвинем таким образом, чтобы он соответствовал минусу источника питания (мы же собираемся от источника постоянного напряжения всё это запитывать). После проделанных манипуляций получим картинку слева. Видно, что теперь нам для управления нужно всего три уровня (синие, жёлтые и красные участки), один из которых — это минус источника питания (синие участки).

А что делать, если у нас нет ШИМа? Как тогда сформировать жёлтые участки? Да никак. Выкинем их и всё. Тут как бы придётся сделать ещё одно допущение. Если вернуться к реальным синусоидам, то в момент пересечения этими синусоидами нуля (имеется ввиду ноль относительно нулевого провода звезды, а не относительно источника постоянного напряжения) потребляемая соответствующими обмотками от источника питания мощность равна нулю (напряжение между двумя концами обмотки — ноль, значит и потребляемая мощность — ноль). То есть источник питания в этот момент как бы можно и отключить, и ничего не изменится.

Теперь вернёмся к нашим «шестиугольным колёсам». Жёлтые участки на нашей последней картинке как раз аппроксимируют те участки реальных синусоид, которые пересекают ноль (относительно нулевого провода). То есть на этих участках средняя потребляемая мощность тоже как бы должна быть равна нулю. И поэтому источник питания тоже как бы можно отключить и всё будет работать, а мы получим классический алгоритм управления обмотками BLDC-моторов. Этот алгоритм называется блочной коммутацией и именно моторы с таким алгоритмом управления называются BLDC.

Что нам этот алгоритм даёт? Очень просто. Теперь нам не нужно никаких ШИМ-ов, нужно только по 2 раза за цикл переключить каждый из наших шести ключей, вот и всё. Картинка этих переключений показана на рисунке справа. Обратная ЭДС у нас, кстати, теперь будет трапециевидная, а совсем не синусоидная, ну да про это мы ещё поговорим.

Частота вращения ротора, понятное дело, как и для любого синхронника, определяется частотой циклов подачи управляющих напряжений (раньше у нас это была просто частота синусоид, но теперь так уже не скажешь, синусоид-то как бы больше нет), делённой на количество пар полюсов ротора.

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

Источник

Adblock
detector