|
Бездатчиковая оценка положения ротора BLDC/PMSM, на высоких скоростях |
|
|
|
Jan 1 2014, 18:01
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Отлаживаю алгоритм (модификация вот этого, там EKF на 5 переменных, токи в dq, скорость, положение и момент нагрузки) на численной модели (модель BLDC основана на этом, форма ЭДС синусоидальная, ШИМ обсчитывается на каждом отрезке между переключениями ключей). Появляются некоторые вопросы. 1. Ошибка по положению возростает с ростом скорости. Добился некоторого улучшения путем доработки решателя ОДУ (тот который часть EKF). Но все ещё остается ~4 градуса ошибки на ~90000 rpm электрической скорости при 20 кГц ШИМ (ошибка пропорциональна скорости и периоду, на 40кГц будет ~2 градуса). Как можно бороться с этой проблемой? Пытаться дальше уточнять решение ОДУ по моему бессмысленно, на реальной системе проявяться другие детали и будет та же проблема. Компенсировать смещение самой оценки положения после EKF тоже плохая идея, надо устранять эти "вредные" невязки которые приводят к смещенности оценки. Или может быть я хочу слишком много и надо просто увеличивать частоту ШИМ? 2. Во всей литературе по теме упоминается field weakening. Я решил проверить, на своей модели, т.к. я не понимаю каким образом ток по прямой оси может привести к уменьшению постоянной ЭДС, что вызывает сомнения в правильности модели. Задал отрицательный ток по D, и действительно скорость возросла, но почему? Глядя на уравнения BLDC или PMSM это не очевидно.
Спасибо. Если кому не лень посмотреть, код здесь.
Сообщение отредактировал amaora - Jan 1 2014, 18:01
|
|
|
|
|
 |
Ответов
(1 - 14)
|
Jan 2 2014, 20:39
|

Знающий
   
Группа: Свой
Сообщений: 562
Регистрация: 25-07-06
Из: Зеленоград, Новосибирск
Пользователь №: 19 088

|
Да, на таких скоростях, а точнее кратностях, возникают проблемы.
Надо копать в сторону предикативного управления, причём у меня коллега с пол года отлаживал предикативное управление, и жаловался на то, что статей IEEE по этому вопросу реально полезных почти нет. В итоге отладил, получив быстродействие на 100% наброс нагрузки порядка трёх - пяти периодов ШИМ, но это не привод был, а инвертор работающий на сеть.
Кто это реализовал, тот это не особо афиширует. Поищите зарубежные патенты на эту тему.
У меня на реальном PMSM бездатчиковые алгоритмы в широком диапазоне частот вращения не работали, максимум до 20-30 тыс кажется, дальше полученный фазовый угол сильно искажался, это при тех же 20кГц ШИМ. Но EKF я не делал. Поэтому кстати BLDC проще реализовать на высоких оборотах, чем FOC.
А вообще, если реально на 90тыс оборотов будет работать с ошибкой 5%, считаю что это будет очень круто. Где только такие скорости, это вопрос. В спортивном моделизме больше 50 редкость, другие варианты в голову не приходят, какие-то спец применения.
--------------------
"Отсутствие вашей судимости - это не ваша заслуга, а наша недоработка." Ф.Дзержинский.
|
|
|
|
|
Jan 3 2014, 01:43
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 12-05-06
Из: Latvija
Пользователь №: 17 041

|
Цитата(Turnaev Sergey @ Jan 2 2014, 22:39)  У меня на реальном PMSM бездатчиковые алгоритмы в широком диапазоне частот вращения не работали, максимум до 20-30 тыс кажется У Вас получалось поддерживать заданный крутящий момент когда ротор PMSM не вращается, без датчика положения конечно.
|
|
|
|
|
Jan 3 2014, 16:15
|

Знающий
   
Группа: Свой
Сообщений: 562
Регистрация: 25-07-06
Из: Зеленоград, Новосибирск
Пользователь №: 19 088

|
Вот это, к сожалению не получилось, там возникали колебания положения ротора. Потом перешёл на отладку BLDC, а PMSM забросил. Самый неприятный ньюанс там был в том что привод начинал думать что двигатель вращается, когда в реальности он стоял на месте, хотя это и было вылечено специальным детектором по амплитудам в DQ. Вообще хотел реализовать способ определения положения по полным измерениям пульсаций тока, там никаких параметров двигателя знать не надо, индуктивности по D и Q однозначно вычисляются из полных пульсаций тока, но к сожалению забросил это дело. Вот эта статья:
01353352.pdf ( 393.79 килобайт )
Кол-во скачиваний: 363Хотя даже в ней как раз говорится о проблемах из-за прерывистого тока, с этим я как раз тоже сталкивался. Возможно актуально всёже делать инжекцию высокой частоты на очень низких частотах вращения. Либо как я хотел, измерять пульсацию тока на интервале нарастания, однако это накладывает ограничения на минимальную глубину модуляции.
--------------------
"Отсутствие вашей судимости - это не ваша заслуга, а наша недоработка." Ф.Дзержинский.
|
|
|
|
|
Jan 4 2014, 19:16
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Цитата(Turnaev Sergey @ Jan 3 2014, 00:39)  А вообще, если реально на 90тыс оборотов будет работать с ошибкой 5%, считаю что это будет очень круто. Где только такие скорости, это вопрос. В спортивном моделизме больше 50 редкость, другие варианты в голову не приходят, какие-то спец применения. Так это электрическая скорость, а механическая при этом ~8000 об./мин. Цитата Надо копать в сторону предикативного управления, причём у меня коллега с пол года отлаживал предикативное управление, и жаловался на то, что статей IEEE по этому вопросу реально полезных почти нет. В итоге отладил, получив быстродействие на 100% наброс нагрузки порядка трёх - пяти периодов ШИМ, но это не привод был, а инвертор работающий на сеть. EKF не предикативен? Ошибка возникает не от запаздывания оценки, а от того, что при таком крупном шаге (~30 градусов) возникает большая погрешность интегрирования уравнений. Ведь в dq координатах, вектор напряжения приложенного от инвертора, уже нельзя считать неподвижным в течении такта. Появляются "ненормальные" невязки, фильтр пытается их устраниить и уводит оценку в какое-то смещение. В какой-то степени помогает добавление простенькой адаптации по постоянной двигателя. Но идентификатор и без того капризен, а здесь ещё и от скорости все будет ползти. Может быть все таки стоит интегрировать с учетом формы ШИМ, во всех виденных мной статьях эти вопросы умалчиваются. На замер пульсаций тока от ШИМ переходить желания нет.
|
|
|
|
|
May 24 2015, 14:40
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Попробовал на реальном двигателе (а не численной модели как до этого), со следующими результатами и вопросами.
1. На высоких скоростях все достаточно хорошо, кпд высок, потери синхронизации нет. Хотя и не могу оценить точность явно, датчика положения нет. 2. На скорости ниже ~5% от максимальной, начинаются проблемы. Если пытаться получить от двигателя большой момент на такой скорости, то часто можно получить уход оценки в ложное значение и блокирование ротора в одном положении или смену направления вращения. 3. Добавил HFI. Появилась возможность работы на нулевой скорости, но момент все так же ограничен. Если превысить некоторое небольшое значение (~10% максимального), то блокирование ротора или колебания.
Основной вопрос, почему увеличение тока/момента на низкой скорости приводит к ложной оценке положения. Пробовал ограничивать скорость переходного процесса в регуляторе скорости, никакого эффекта, причина не в быстром нарастании тока.
Еще одна особенность, HFI я реализовал не так как это описано во множестве статей. Не использую аналитического решения и пропускания сигнала через BPF, LPF. Вместо этого, у меня все тот же EKF который оценивает положение по ЭДС, оценивает его также и по анизотропии индуктивности. Достаточно подмешать сигнал по прямой оси. С этим вероятно связано, то что несмотря на использование HFI я не могу повысить момент. Другой причиной могло бы быть, то что анизотропия индуктивности исчезает от большого тока по квадратурной оси, но это не так, проверял.
Заметного нагрева обмотки при таких токах еще нет, так что это тоже не причина.
Добавка: Как обычно, стоит спросить где либо, так появляются идеи. Оказывается, сильное влияние имеют масштабные погрешности датчиков тока, 2% достаточно, чтобы было так как я наблюдаю на реальном двигателе.
Сообщение отредактировал amaora - May 24 2015, 16:09
|
|
|
|
|
Nov 23 2015, 17:12
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Данные с АЦП, ток в фазах А и B. Двигатель модельный, 11 пар полюсов, наружный ротор, 700 об/мин на вольт.
Скорость можете посчитать, время в тактах (частота 60кГц), получается около 65к об/мин. Второй двигатель, 1 пара полюсов, внутренний ротор, 3400 об/мин на вольт.
Слева нагружен на воздушный винт, скорость низкая. Справа пытался вручную зажать вал, как видно получилось плохо, ток всего 2 А. Скорости 4500 об/мин и 36к об/мин.
|
|
|
|
|
Nov 24 2015, 08:08
|

Знающий
   
Группа: Свой
Сообщений: 562
Регистрация: 25-07-06
Из: Зеленоград, Новосибирск
Пользователь №: 19 088

|
Спасибо! Вообщем тоже не идеал получается. Присмотритесь к BLDC алгоритмам, особенно PWM-ON-PWM, суть их отличия показана например тут: http://open-bldc.org/wiki/PWM_Schemes#PWM_ON_PWMПоложение стабилизировать конечно нельзя, зато на высоких оборотах работает очень хорошо, КПД думаю выше чем у векторного управления, особенно для модельных двигателей с несинусоидальной формой противо-эдс.
--------------------
"Отсутствие вашей судимости - это не ваша заслуга, а наша недоработка." Ф.Дзержинский.
|
|
|
|
|
Mar 13 2016, 07:15
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 27-05-09
Из: Шахты
Пользователь №: 49 641

|
Я думаю, Вам не помешало бы взглянуть на документации Instaspin от ti. Там также они работают через ЭДС. Весь код открыт кроме кода оценки мотора, но в описании подробно описаны методы оценки параметров мотора. На данный момент я тестирую их кит и есть уже свой образец , в алгоритме там проблема только ACIM.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|