avatar_VVK

Контроллеры Vector, открытый код. (Велосипед / Моноцикл / Сигвей)

Автор VVK, 08 Май 2015 в 13:19

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

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

on4ip

[user]VVK[/user], 7мкс очень хорошо, я так понимаю у вас она на внешнем компараторе?
В жизни все не так, как на самом деле.

VVK

Цитата: on4ip от 14 Янв. 2017 в 11:18
[user]VVK[/user], 7мкс очень хорошо, я так понимаю у вас она на внешнем компараторе?
Нет, использую компаратор процессора. У него типовое время отклика 150нс, максимальное 400нс. Этого достаточно. Плюс  специально добавлена небольшая задержка и простенький цифровой фильтр.

on4ip

Ну я не корректно сформулировал про компоратор, имел ввиду что это аналогового реализованная защита,а не защиты в периоде шим.у вас в процессоре по всем 3 фазам есть компараторы?
В жизни все не так, как на самом деле.

VVK

Цитата: on4ip от 14 Янв. 2017 в 12:20
Ну я не корректно сформулировал про компоратор, имел ввиду что это аналогового реализованная защита,а не защиты в периоде шим.у вас в процессоре по всем 3 фазам есть компараторы?
У меня один датчик тока по минусу и, соответственно, один компаратор. Этого достаточно, чтобы отслеживать КЗ между фазами двигателя и КЗ между фазой и плюсом батареи. При этом КЗ между фазой и минусом отследить не получится, т.к. ток в этом случае пойдет в обход датчика.

on4ip

А для векторного управления вы ток из батарейного в фазные пересчитываете?
В жизни все не так, как на самом деле.

VVK

Цитата: on4ip от 14 Янв. 2017 в 21:12
А для векторного управления вы ток из батарейного в фазные пересчитываете?
Фазный ток пересчитывается из батарейного, но используется он только для токовой защиты. Вектор считается по холлам.

on4ip

Не совсем понял, для классического вектора используются преобразования сларка парка которые используют положение ротора и фазные токи, после преобразований получается 2 компоненты тока которые и регулируются. Я так понимаю у вас как то по-другому. Если вы по какой-то статье делали управление и это не секретная информация можете ссылкой поделиться?
В жизни все не так, как на самом деле.

VVK

Цитата: on4ip от 15 Янв. 2017 в 13:38
Не совсем понял, для классического вектора используются преобразования сларка парка которые используют положение ротора и фазные токи, после преобразований получается 2 компоненты тока которые и регулируются. Я так понимаю у вас как то по-другому. Если вы по какой-то статье делали управление и это не секретная информация можете ссылкой поделиться?

Секретов тут нет, я перечитал много статей и какой-то конкретной сейчас выделить не могу.  Смотрите в поиске svpwm algorithm

По-моему, неплохая статья будет эта: http://www.atmel.com/Images/doc7671.pdf

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

bsvi

Боюсь, вы сделали не векторник, а контроллер с синусоидальной коммутацией. Вот статейка, которая поясняет разницу:
http://www.motioncontroltips.com/faq-whats-the-difference-between-field-oriented-control-and-sinusoidal-commutation/

Хотя, в этом ничего плохого нет (кроме неправильного названия). По факту, синусник для МК тоже хорошо работает.

VVK

Цитата: bsvi от 17 Янв. 2017 в 20:37
Боюсь, вы сделали не векторник, а контроллер с синусоидальной коммутацией. Вот статейка, которая поясняет разницу:
http://www.motioncontroltips.com/faq-whats-the-difference-between-field-oriented-control-and-sinusoidal-commutation/

Хотя, в этом ничего плохого нет (кроме неправильного названия). По факту, синусник для МК тоже хорошо работает.

Спасибо, хорошая статья. Но слово "вектор" в ней используется и применительно к этому управлению:
Цитировать
The result is a smoothly rotating current vector with constant magnitude that is always orthogonal to the rotor.

И по русски:
В результате получается плавно вращающийся ВЕКТОР ТОКА с величиной, всегда ортогональной положению ротора.

Хотя, я вообще за название не держусь, пусть будет синусная коммутация. По моему, правильное название "space vector pulse width modulation" - SVPWM.

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

FOC алгоритм тоже попробую когда-нибудь. К сожалению, сейчас возможности им заниматься совсем нет.


on4ip

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

bsvi

Цитировать
The result is a smoothly rotating current vector with constant magnitude that is always orthogonal to the rotor.

И по русски:
В результате получается плавно вращающийся ВЕКТОР ТОКА с величиной, всегда ортогональной положению ротора.
Смысл в том, что синусная коммутация не дает никакой гарантии того, что положение поля станет точно ортогонально положению ротора. Фактически, ШИМ - это источник напряжения, который работает на индуктивную нагрузку. При достаточно большой скорости, фаза начнет уплывать и вектора перекосятся.

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

Векторники-же имеют обратную связь по току в обмотках (а поле строго пропорционально току), поэтому дают гарантии относительно положения и амплитуды поля. Как положительный побочный эффект, векторники работают с любой BEMF мотора, а не только с синусоидальной.

Цитировать
Хотя, я вообще за название не держусь, пусть будет синусная коммутация. По моему, правильное название "space vector pulse width modulation" - SVPWM.
Тут вы путаете способ формирования ШИМ со способом управления двигателем. SVPWM - это просто способ лучше использовать шину питания, ни никак не способ управления двигателем.

VVK

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



И упрощенная диаграмма всей системы:


Только у меня есть еще один контур регулировки по току.


Еще попробовал сделать жгут из МГТФ. От китайских готовых приходится отказываться - выходят из строя. Как ни странно, это в плане надежности важнее, чем алгоритмы управления двигателем и другие программные функции.
Новый жгут:



DragonTM

[user]VVK[/user], про жгут, какого сечения или диаметра МГТФ? не проще ли взять, допустим, витую пару? или телефонный провод жил на 6?
Мои байки - https://electrotransport.ru/index.php?topic=35001.0
Новый проект электромотоцикла - https://electrotransport.ru/index.php?topic=51461.0

VVK

Цитата: DragonTM от 21 Янв. 2017 в 09:39
[user]VVK[/user], про жгут, какого сечения или диаметра МГТФ?
Диаметр 0.35  По прочности неплохо, только все провода одного цвета получаются.

Цитата: DragonTM от 21 Янв. 2017 в 09:39
не проще ли взять, допустим, витую пару? или телефонный провод жил на 6?
Нельзя, такой провод горит хорошо. Уже проверено O_O

on4ip

Горит хорошо это плохо, лучше без пожаров. А вы не заменяли до сколько ерпм контроллер крутит?
В жизни все не так, как на самом деле.

VVK

Цитата: on4ip от 21 Янв. 2017 в 12:41
А вы не заменяли до сколько ерпм контроллер крутит?
При частоте ШИМ 20 кГц и числе выборок 96/период ERPM получается до 20000. Это примерно соответствует 100км/ч на миникрошке2 в 26" ободе. Если нужно больше, то можно либо ШИМ повысить до 40кГц, либо число выборок снизить. Либо и то и другое. В теории можно до 80000 ERPM разогнать, быстродействия процессора хватает. Но реально я больше 20000 двигатель не крутил, т.к. моя механика это не позволяет.

Lazarev

Добрый день!
А когда появится программка под андройд в доступе ?
Я еще не купил телефончик, есть какие-то особые требования ? ( ну там экран только XWGA или андройд 6.0 )