Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по векторному управлению
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Электрические машины, Электропривод и Управление
sennet
Здравствуйте.

Пытаюсь реализовать векторное управление мотором для авиамодели. За основу взял библиотеку техаса. Возникла проблема при подключении ПИ регуляторов токов. Заданный ток они держат, но примерно до 1250rpm. На этой скорости в обратных токах Id и Iq возникают низкочастотные колебания. При дальнейшем разгоне мотор влетает в ступор.
Дабы разобраться в чем тут дело, набросал модель матлабе. Алгоритм был полностью скопирован. Параметры мотора пришлось взять другие, т.к. на свой не нашел. Тут повторилась та же ситуация. Ниже графики из матлаба.


Токи Id, Iq при частоте, меньшей 1250rpm.


Id, Iq. 1250rpm.

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

Может кто сталкивался с такой проблемой и подскажет решение?

P.S. Пробовал в модели подключать наблюдатель и регулятор скорости. Работает хорошо, но до 1500rpm. Максимальные обороты мотора - 5000rpm.
enshtein
У вас похоже все работает как надо только вот ПИ регулятор просто так работать не будет. Ему нужен запас по напряжению. Если обороты выросли выросло и эдс. На картинке именно случай потери устойчивости системы. Выход только один - поднимать напряжение питания.
Чем выше обороты тем больше напряжение питания. Для оценки питающего напряжения используйте постоянную двигателя.
oleg_d
Цитата(sennet @ Jul 25 2016, 16:52) *
Здравствуйте.

Пытаюсь реализовать векторное управление мотором для авиамодели. За основу взял библиотеку техаса. Возникла проблема при подключении ПИ регуляторов токов. Заданный ток они держат, но примерно до 1250rpm. На этой скорости в обратных токах Id и Iq возникают низкочастотные колебания. При дальнейшем разгоне мотор влетает в ступор.

Если нет возможности поднять напряжение, обороты можно поднять используя режим ослабления поля, правда крутящий момент падает по мере увеличения оборотов.
На английском это называется field weakening или flux weakening, почитать можно например тут https://www.google.lv/url?sa=t&rct=j&am...QBdl6kF6-72XWzQ
amaora
Вектор напряжения ограничивайте по длине так, чтобы он умещался в шестигранник в любом положении. Другими словами, при вращении (при переходе в abc координаты), вектор напряжения не должен менять свою длину и направление.
AlexandrY
Цитата(sennet @ Jul 25 2016, 16:52) *
Может кто сталкивался с такой проблемой и подскажет решение?


Значит с недопустимой ошибкой измеряется скорость вращения ротора.
enshtein
Цитата(oleg_d @ Jul 25 2016, 19:19) *
Если нет возможности поднять напряжение, обороты можно поднять используя режим ослабления поля, правда крутящий момент падает по мере увеличения оборотов.
На английском это называется field weakening или flux weakening, почитать можно например тут https://www.google.lv/url?sa=t&rct=j&am...QBdl6kF6-72XWzQ


Даже если вы ослабите поле и тем самым уменьшите эдс, ток для поддержания момента все равно нужен и если напряжения не будет хватать для его поддержания у вас произойдет потеря устойчивости. Известно, что есть такие параметры как запас по фазе и амплитуде. Проверьте, что вы не выходите за допустимые пределы. На графике типичная потеря устойчивости только не понятно по амплитуде или по фазе.
sennet
Цитата(enshtein @ Jul 25 2016, 15:35) *
У вас похоже все работает как надо только вот ПИ регулятор просто так работать не будет. Ему нужен запас по напряжению. Если обороты выросли выросло и эдс. На картинке именно случай потери устойчивости системы. Выход только один - поднимать напряжение питания.
Чем выше обороты тем больше напряжение питания. Для оценки питающего напряжения используйте постоянную двигателя.

Используется двигатель на 600KV, 12V питание. До 7200rpm должен разгоняться без проблем.
Цитата(amaora @ Jul 25 2016, 19:20) *
Вектор напряжения ограничивайте по длине так, чтобы он умещался в шестигранник в любом положении. Другими словами, при вращении (при переходе в abc координаты), вектор напряжения не должен менять свою длину и направление.

Цитата(AlexandrY @ Jul 25 2016, 19:52) *
Значит с недопустимой ошибкой измеряется скорость вращения ротора.

Пробовал раскрутить без регулятора скорости. Когда возникают колебания, сигнал на выходе ПИ регулятора Id тока резко уходит вниз. Ограничение здесь тоже не поможет.
AlexandrY
Цитата(sennet @ Jul 26 2016, 11:52) *
Пробовал раскрутить без регулятора скорости. Когда возникают колебания, сигнал на выходе ПИ регулятора Id тока резко уходит вниз. Ограничение здесь тоже не поможет.

А откуда вообще идея что там нужен ПИД регулятор?

На моторе же написана KV.
Сколько напряжение дадите такую скорость и получите.
Коммутировать ключи только синхронно не забывайте.

Скорее всего синхронизма у вас нет.
sennet
Цитата(AlexandrY @ Jul 26 2016, 09:57) *
А откуда вообще идея что там нужен ПИД регулятор?


В векторном управлении пара Пи регуляторов по току контролирует момент. Еще один ПИ регулятор отвечает за скорость.
AlexandrY
Цитата(sennet @ Jul 26 2016, 12:26) *
В векторном управлении пара Пи регуляторов по току контролирует момент. Еще один ПИ регулятор отвечает за скорость.

Насколько видел программы ESC модулей для коптеров, там нет векторного управления.
Посмотрите проект PX4.
Векторное управление там просто не нужно. Там даже PID-а не нужно.
amaora
Вопрос к sennet, чему равна частота тех колебаний? электрической скорости умноженной на 6?
TSerg
Цитата(sennet @ Jul 26 2016, 11:52) *
Используется двигатель на 600KV, 12V питание.

Очень интересные параметры двигла.
sennet
Цитата(AlexandrY @ Jul 26 2016, 11:06) *
Насколько видел программы ESC модулей для коптеров, там нет векторного управления.
Посмотрите проект PX4.
Векторное управление там просто не нужно. Там даже PID-а не нужно.

Векторное лучше работает в динамике, быстрее разгон, меньше потребление.
http://www.ti.com/lit/an/sprt703/sprt703.pdf
Цитата(TSerg @ Jul 26 2016, 23:28) *
Очень интересные параметры двигла.

А чем они так интересны?
http://www.rctigermotor.com/html/2013/Prof...al_0912/52.html
AlexandrY
Цитата(sennet @ Jul 27 2016, 14:25) *
Векторное лучше работает в динамике, быстрее разгон, меньше потребление.
http://www.ti.com/lit/an/sprt703/sprt703.pdf

Полагаю эта статья для раскрутки пакета InstaSPIN.
Но исходники то FAST недоступны.

Единственное очевидное преимущество у FOC это низкие скорости, но это коптерам не нужно.
Как только дело доходит до высоких скоростей FOC начинает проигрывать, это и видно на графиках в статье.

Контур управления у коптеров не предусматривает PIDа в ESC модулях.
Поэтому тестирование скорости старта ни о чем не говорит, надо было тестировать устойчивость в реальной динамике.
sennet
Цитата(AlexandrY @ Jul 27 2016, 14:26) *
Как только дело доходит до высоких скоростей FOC начинает проигрывать, это и видно на графиках в статье.


На каких графиках это видно? Там только тест разгона и потребляемого при этом тока.
Соглашусь, что коптерам хватит скалярника. Но вопрос был не о том, какое управление лучше.
AlexandrY
Цитата(sennet @ Jul 28 2016, 10:24) *
Но вопрос был не о том, какое управление лучше.

Вопрос по сути не был сформулирован.
Модели не представили, о типе датчиков ничего не сказали.
Ссылаетесь на InstaSPIN, но исходников его обсервера никто не знает.

Разговор тут может быть только ни о чём. biggrin.gif
sennet
Цитата(AlexandrY @ Jul 28 2016, 09:55) *
Вопрос по сути не был сформулирован.
Модели не представили, о типе датчиков ничего не сказали.
Ссылаетесь на InstaSPIN, но исходников его обсервера никто не знает.

Разговор тут может быть только ни о чём. biggrin.gif


Наблюдатель на реальном движке еще не подключался. Датчиков никаких нет. Угол и скорость будет вычисляться по обратному току. Алгоритм работает по прерыванию от ШИМа. Частота прерываний - 10кГц.
Вот даташит с примером настройки алгоритма: http://www.ti.com/lit/an/sprabq5/sprabq5.pdf
Или вот: http://processors.wiki.ti.com/index.php/TM..._Control_Primer
Так же библиотека со всеми блоками есть в controlSUITE: http://www.ti.com/tool/controlsuite
Если кто будет реализовывать векторное управление, то у техаса есть замечательный цикл статей по настройке ПИ регуляторов: http://e2e.ti.com/search?q=Teaching%20Your...r%20to%20Behave
Код был переписан под другой МК.
somebody111
Цитата(sennet @ Jul 25 2016, 16:52) *
Здравствуйте.

Пытаюсь реализовать векторное управление мотором для авиамодели.

Может кто сталкивался с такой проблемой и подскажет решение?

Давайте сначала:что такое векторное управление. Это управление по математической модели асинхронного двигателя. Цель этой модели - по току, напряжению и скорости вычислить потокосцепление ротора, по которому нужно сориентироваться. Умные дядьки сделали 3 типа таких моделей: DFOC, IFOC,SFOC. У всех трёх моделей есть огромный минус - нужно знать параметры схемы замещения двигателя. Если вы их знаете приблизительно, то и двигатель с таким управлением будет работать приблизительно - момент двигателя будет ниже и чем больше погрешность, тем меньше момент, тем на меньшую скорость вы сможете разогнаться. Короче говоря, проведите эксперимент короткого замыкания и холостого хода и определите параметры схемы-замещения нормально. Теже самые умные дядьки, убедившись, что невозможно залезть в ротор машины даже математически и что все эти эксперименты с огромной погрешности пришли к выводу, что нужна адаптация. И здесь наука заканчивается, потому что окончательного решения, которое давало бы 100% гарантию работы нет. В основе INSTA-SPIN лежит хитрая модификация наблюдателя Куботы с ПИ-регулятором. Если на словах как это работает: по простой модели ротора, измеренному датчиками току и напряжению статора вычисляется потокосцепление ротора; по потокосцеплению ротора и напряжению статора вычисляется ток статора. А дальше сравнивается реальный ток и вычисленный косвенно по модели; разница между ними идёт на ПИ-регулятор, а его выход обратно в модель, корректируя погрешность. Если вы понимаете ТАУ, то для вас очевидно, что ПИ-регулятор будет выравнивать реальный и рассчитанный ток до тех пор, пока они не совпадут, т.е. ПИ-регулятор полностью скорректирует модель двигателя с неправильными параметрами. Реально такой наблюдатель может вытащить погрешность 15-20%, дальше он потеряет стабильность и система будет работать хуже, чем без адаптации вообще.
Короче говоря, варианты решения - уточните параметры асинхронника, поиграйтесь с ПИ-регулятором наблюдателя.
---
Если есть такая возможность - поставьте датчик скорости; вы себе задачу упростите на порядок; без датчика все адаптивные модели работают плохо - вы можете поставить в звено постоянного тока датчик напряжения и тока и вычислять реальные фазные токи и напряжения по ним и это будет работать, а датчик скорости с погрешностью 10% может развалить любую адаптивную модель
AlexandrY
Цитата(somebody111 @ Jul 29 2016, 20:28) *
Короче говоря, варианты решения - уточните параметры асинхронника, поиграйтесь с ПИ-регулятором наблюдателя.
---
Если есть такая возможность - поставьте датчик скорости; вы себе задачу упростите на порядок; без датчика все адаптивные модели работают плохо - вы можете поставить в звено постоянного тока датчик напряжения и тока и вычислять реальные фазные токи и напряжения по ним и это будет работать, а датчик скорости с погрешностью 10% может развалить любую адаптивную модель


Тем более странно как автор статьи, на которую ссылается TC - http://www.ti.com/lit/an/sprt703/sprt703.pdf умудрился применить InstaSPIN к BLDC двигателю, а не асинхроннику.

Либо статья насквозь фейковая и он на самом деле применил энкодеры вместо измерителей BEMF, тем и улучшил характеристики.
И называть это надо по честному векторной модуляцией, а не векторным управлением.

Хотя для BLDC и векторная модуляция не в тему будет.
Видимо движки для коптеров это нечто промежуточное между BLDC и BLAC. Потому производители их и не характеризуют никак, а продвинутые любители безнаказанно мучают их векторной модуляцией.
sennet
Цитата(somebody111 @ Jul 29 2016, 18:28) *
Давайте сначала:что такое векторное управление.

Примерно так я все себе и представлял. Проблема в том, что наблюдатель и ПИ регулятор скорости еще не подключались. Разгонял мотор без ПИ регуляторов(поднимая напряжение Vq) до 60% от максимальной(5000rpm) скорости. И только после 60% возникают искажения в обратном токе. Если же подключить ПИ регуляторы момента(токов Id, Iq), то разогнать получилось до 30%. Дальше в обратном токе возникают биения.
Частота колебаний токов Id и Iq - 40Гц.
sennet
Цитата(AlexandrY @ Jul 29 2016, 21:45) *
Тем более странно как автор статьи, на которую ссылается TC - http://www.ti.com/lit/an/sprt703/sprt703.pdf умудрился применить InstaSPIN к BLDC двигателю, а не асинхроннику.

Либо статья насквозь фейковая и он на самом деле применил энкодеры вместо измерителей BEMF, тем и улучшил характеристики.
И называть это надо по честному векторной модуляцией, а не векторным управлением.

Хотя для BLDC и векторная модуляция не в тему будет.
Видимо движки для коптеров это нечто промежуточное между BLDC и BLAC. Потому производители их и не характеризуют никак, а продвинутые любители безнаказанно мучают их векторной модуляцией.


Зря вы так. Если техасовцы пишут, что что-то работает, значит это работает. Да и не путайте народ насчет применимости векторного управления к синхронным электродвигателям.
AndreyChip
Добрый день . Данный алгоритм работает на BLDC and ACIM моторе. С кит набора мотор разгоняется до 5000 обор. Чтобы все заработало необходимо провести оценку мотора . BLDC моторы оценивает стабильно и правильно . С ACIM проблема не оценивает сопротивление ротора .
somebody111
Цитата(AlexandrY @ Jul 28 2016, 11:55) *
Ссылаетесь на InstaSPIN, но исходников его обсервера никто не знает.

Кто ищет, тот найдет) Прямо из доков control suite. Там простой аналог Кубботы с ПИ-регулятором (стр 24 ACI FE) -)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.