Еще раз о sensorless

Автор jeka, 01 Апр. 2015 в 03:31

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

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

jeka

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

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

Немного теории.
При управлении из обратной связи без прерывания вращения имеем одно значение обратной связи - это значение удвоненного синуса угла текущего (активного) интервала. Этот удвоенный синус (если точнее, это N (сильно больше единицы, скажем, 10) минус модули синусов двух обмоток - т.е. строго говоря, но не совсем синус, но для простоты будет синусом) получается из-за разницы индуктивности пары обмоток, которая образуется вследствие действия магнитного поля на железо и как следствие уменьшение проницаемости. Отклонение напряжения средней точки от половину и есть результат отношения индуктивностей. Это измеряемое значение ниже будет обозначаться словом "E". И, скажем, диапазон идеальных его значений от -1 до 1 (т.е. представим его как синус удвоенного угла ротора).

"E" представляет синус двойной частоты (к частоте само-ЭДС), т.к. индуктивность меняется от модуля магнитного потока. Сигнал "E" переходит через ноль в центре интервала (за центр берем 0 градусов). Соответственно, интервал - от -30 до +30 градусов.
При этом помехи могут достигать 10-20 процентов. Амплитуда этой обратной связи на разных обмотках также меняется, до 20% легко. На разных моторах - в разы. Плюс на него накладывается само-ЭДС обмоток (т.е. к "E", являющейся синусом удвоенной частоты приплюсовывается синус одинарной частоты, пропорциональный угловой скорости ротора на текущий момент)

Теперь про вращение с использованием этого сигнала.
Когда позиция ротора достигает +30 или -30 градусов (т.е. момента переключения фаз, который нам нужно определить), измеряемый "E" имеет угол +60 или -60 градусов. Т.е. абсолютное значение 0.87, что близко к единице (а в условиях помех его с единицай легко спутать). Соответственно, в идеале в этот момент и нужно переключаться на следующий (предыдущий) интервал.
Что нам мешает:
а) само-ЭДС. Если мотор резко дернуть, то будет накладываться второй синус (причем суммироваться, если мотор вращается туда же, куда и крутит контроллер. Иначе вычитается).
б) нестабильность амплитуды (подозреваю, что влияет гистерезис железа, неидеальность намотки и возможно что-то еще). Достигает 20-30%. Также шумы оцифровки, обычно менее 10%.
в) значение "E", которое нам нужно поймать, при всем при этом - 0.87. Т.е. близко к единице. Но если мы единицу провороним, синус пойдет на снижение и мы будем думать что мотор поехал обратно, а на самом деле давно пора переключиться.

Также, мы можем, кратковременно прервав вращение и считав индуктивность всех обмоток, определить позицию ротора. Причем по второй гармонике (т.е. определенный угол говорит о том что ротор может находитсься в позиции X или в позиции X+180 градусов). Поэтому потеря угла и сбой на 180 градусов в данном случае приведет к очень неприятной вещи - к реверсу тяги. Соответственно, за позицией нужно четко следить и не терять ее.

Возможные пути решения:
а) при значении синуса около 0.5 мы кратковременно переключаемся на следующий интервал и измеряем значение его "E" (это будет синус, сдвинутый уже на 120 градусов).
Если понимаем, что новый "E" существенно больше, то переключаемся обратно в ожидании некоторого увеличения "E", после повторяем процедуру.
Сейчас, периодически прерывая работу мотора и измеряю вторую гармонику угла, но это приводит к частым сбоям и реверсу тяги.
Либо что-то другое. Вообщем, если есть мысли (или непонятно что-то написал), предлагайте.
Также, не исключаю присутствие ошибок в материале.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

NUBITO

По сути бессенсорного режима в двигателе нет, просто сам двигатель выполняет роль датчика и, имхо, плохо её выполняет. Думаю, что старый добрый датчик и есть выход из этой проблемы. Ну или поставить датчики и их усиленный сигнал подавать на обмотки, а-ля бессенсорный пуск на бессенсорном контроллере, но с чётким сигналом переключения :-D