реклама на сайте
подробности

 
 
> Детекция ЭДС в регуляторе бесколлекторного двигателя.
murmur
сообщение Jun 8 2018, 18:29
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708



Коллеги, есть трупик модельного регулятора скорости бесколлекторного двигателя. Китайский. Плата 4-х слойная, прозвонила ее с трудом. На плате ATmega8.
Во первых Атмега горелая, буду ее менять. Во вторых, хочу залить свою прошивку по ряду причин - отрегулировать напряжение отключения при разряде, добавить изменение направления вращения по команде на пин и др.
В общем, частичный реверсинг.
В принципе схема очень похожа на вот это http://radioparty.ru/prog-avr/program-c/61...bldc-sensorless
С одним лишь отличием - посмотрите как реализована схема детекции обратной ЭДС там, и посмотрите в выложенный мной PDF - это в моем контроллере, для которого хочу писать прошивку.

В статье, которую я привела выше, замечательно расписано, как с помощью компаратора детектируется обратная ЭДС. Но совершенно непонятно, какую функцию выполняют входы ADC0 ADC1 ADC2. Ни в статье это не описано, ни в приведенном коде на С обращения к этим пинам нет.

Посмотрите на мою схему, в прилагающемся PDF. Там немного по другому. Но тоже идут 3 линии к ADC0 ADC6 ADC7.
Для чего же они нужны, какую роль они играют в управлении двигателем?

Ну и, учитывая то, что в моей схеме цепи детекции несколько иные, будет ли отличаться алгоритм обработки поступющих с них сигналов на компаратор и на ADC ?

Сообщение отредактировал murmur - Jun 8 2018, 18:31
Прикрепленные файлы
Прикрепленный файл  Sheet1.pdf ( 24.87 килобайт ) Кол-во скачиваний: 45
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
murmur
сообщение Jun 10 2018, 18:07
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708



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

Мда... с ШИМом он почему-то вообще не стартует, только дергается.
Будем искать...

Цитата
значит теперь смещайте угол пока не закрутится.

Это что-то вроде угла опережения зажигания?

Где-то здесь задержку ставить надо?
Код
switch (commutation_step)
    {
        case (0):
            if(!SENSE_UVW || startup)
            {
                UH_ON; // На фазе U - ШИМ
                WH_OFF; // Фаза W отключена
                SENSE_W; // Активируем вход фазы W
                commutation_step = 1; // Следующий шаг
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;

        case (1):
            if(SENSE_UVW || startup)
            {
                VL_OFF; // На фазе V - лог. 0
                WL_ON;  // На Фазе W - лог. 1
                SENSE_V; // Активируем вход фазы V
                commutation_step = 2;
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;

        case (2):
            if(!SENSE_UVW || startup)
            {
                UH_OFF; // Фаза U отключена
                VH_ON;  // На фазе V - ШИМ    
                SENSE_U; // Активируем вход фазы U
                commutation_step = 3;
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;
    
        case (3):
            if(SENSE_UVW || startup)
            {
                UL_ON;  // На фазе U - лог. 1
                WL_OFF; // На Фаза W - лог. 0
                SENSE_W; // Активируем вход фазы W
                commutation_step = 4;
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;

         case (4):
            if(!SENSE_UVW || startup)
            {
                VH_OFF;  // Фаза V отключена
                WH_ON;   // На фазе W - ШИМ
                SENSE_V; // Активируем вход фазы V
                commutation_step = 5;
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;

        case (5):
            if(SENSE_UVW || startup)
            {
                UL_OFF; // На фазе U - лог. 0
                VL_ON;  // На Фазе V - лог. 1
                SENSE_U; // Активируем вход фазы U
                commutation_step = 0;
                TCNT0 = 0; // Обнуляем счетчик T0
            }
            break;
    }


Сообщение отредактировал murmur - Jun 10 2018, 18:09
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 11 2018, 05:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(murmur @ Jun 10 2018, 21:07) *
Это что-то вроде угла опережения зажигания?

Управление вашим двигателем сводится к одной простой вещи: "держать магнитное поле статора к магнитному полю ротора под 90 градусов!" И всё будет ок.
Под +90 или под -90 - в зависимости от требуемого направления вращения.
А значит: нужно знать угловое положение м.поля статора и м.поля ротора.
Для формирования поля статора у Вас есть ключи (грубое задание углового положения поля, с большой дискретностью - просто коммутацией; и более точное - с помощью ШИМ).
А для того, чтобы определить положение ротора (и его магнитного поля), используют датчики угла разных типов (д.Холла, ресольверы, синус-косинусные датчики, энкодеры и т.п.).
Также в самых дешёвых случаях используют бездатчиковое определение: по ЭДС на неиспользуемых обмотках. Естественно это и самый плохой случай. О недостатках полно инфы в инете.
Например хотя-бы то, что не завращав ротор (а без вращения не получить эту самую ЭДС) не получить и показаний угла. Да и на малых скоростях ЭДС мала и определять угол по ней сложно.
Наилучшие варианты: ресольвер или синус-косинусный датчик. Но дорого и громоздко.
Вот измерили Вы угловое положение поля ротора и можете задать угловое положение поля статора, но остаётся вопрос: каков угол между началом координат (точкой 0 градусов) статора и началом координат ротора? А они естественно обычно не совпадают. А чтобы выставить поле под 90 градусов эту угловую разницу нужно знать. Обычно её измеряют. Или задают конструктивно. Ну или в крайнем случае грубо можно определить методом тыка.
Вот про этот угол (угловую разницу) я и говорю. Обычно, когда я неверно выставлю этот угол, то у меня как раз такая картина и наблюдается: моторчик гудит, свистит, но не едет. Это если заданная угловая разница далека от истинной. Если ошибка не очень большая, то едет, но с гораздо бОльшим током по обмоткам (греется).
Примерно так.

Цитата(варп @ Jun 11 2018, 04:24) *
в отличие от Холлов

Не вводите в заблуждение! д.Холла - это всего лишь частный случай датчиков положения ротора. Не самый лучший кстати. Их много разных бывает.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 11 2018, 05:57
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Jun 11 2018, 08:37) *
Примерно так.

Вообще-то есть способы определения угла поворота ротора с помощью измерения напряжений даже в статическом состоянии.
Они описаны в апнотах у TI, Microchip, ST и прочих
Обратная ЭДС достаточная для синхронизации в модельных моторчиках возникает уже со второго импульса.
Надо только применять не компаратор, а АЦП этак на сотню килогерц.

Go to the top of the page
 
+Quote Post
Lagman
сообщение Jun 11 2018, 08:45
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(AlexandrY @ Jun 11 2018, 08:57) *
Вообще-то есть способы определения угла поворота ротора с помощью измерения напряжений даже в статическом состоянии.
Они описаны в апнотах у TI, Microchip, ST и прочих
Обратная ЭДС достаточная для синхронизации в модельных моторчиках возникает уже со второго импульса.
Надо только применять не компаратор, а АЦП этак на сотню килогерц.

Речь про это документ?
SENSORLESS BLDC MOTOR CONTROL AND BEMF SAMPLING METHODS WITH ST7MC
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 11 2018, 20:16
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Lagman @ Jun 11 2018, 11:45) *

Нет не это.
Что-то вроде этого - https://www.researchgate.net/publication/43...hless_DC_Drives
Go to the top of the page
 
+Quote Post
khach
сообщение Jun 12 2018, 08:59
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Цитата(AlexandrY @ Jun 11 2018, 22:16) *

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

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- murmur   Детекция ЭДС в регуляторе бесколлекторного двигателя.   Jun 8 2018, 18:29
- - AlexandrY   Цитата(murmur @ Jun 8 2018, 21:29) Ну и, ...   Jun 8 2018, 19:12
- - V_N   Входы ADC0 ADC1 ADC2 это РС1,PC2 и PC3 -аналоговые...   Jun 8 2018, 19:20
- - murmur   ЦитатаВ статье применялся очень маломощный двигате...   Jun 9 2018, 02:57
|- - AlexandrY   Цитата(murmur @ Jun 9 2018, 05:57) И схем...   Jun 9 2018, 06:33
- - murmur   Хм... странно все таки. Почему разработчик моего к...   Jun 9 2018, 07:01
|- - AlexandrY   Цитата(murmur @ Jun 9 2018, 10:01) Хм... ...   Jun 9 2018, 07:59
||- - murmur   Цитата(AlexandrY @ Jun 9 2018, 10:59) Кон...   Jun 9 2018, 08:08
|- - jcxz   Цитата(murmur @ Jun 9 2018, 10:01) Скажит...   Jun 9 2018, 10:11
|- - gosha-z   Цитата(jcxz @ Jun 9 2018, 13:11) А как кс...   Jun 9 2018, 10:23
|- - jcxz   Цитата(gosha-z @ Jun 9 2018, 13:23) ...   Jun 9 2018, 10:33
|- - gosha-z   Цитата(jcxz @ Jun 9 2018, 13:33) Читать м...   Jun 9 2018, 10:41
||- - jcxz   Цитата(gosha-z @ Jun 9 2018, 13:41) ...   Jun 9 2018, 10:50
|- - Lagman   Цитата(jcxz @ Jun 9 2018, 13:33) Читать м...   Jun 9 2018, 14:39
- - gosha-z   АвтоESCи сильно отличаются от авиа. По характеру н...   Jun 9 2018, 08:20
- - murmur   Смущает в коде, что по ссылке в первом сообщении, ...   Jun 9 2018, 11:29
|- - Lagman   Цитата(murmur @ Jun 9 2018, 14:29) Гироск...   Jun 9 2018, 13:37
|- - jcxz   Цитата(murmur @ Jun 9 2018, 14:29) Гироск...   Jun 9 2018, 14:14
|- - Lagman   Цитата(jcxz @ Jun 9 2018, 17:14) д.Холла ...   Jun 9 2018, 14:24
||- - jcxz   Цитата(Lagman @ Jun 9 2018, 17:24) Зачем ...   Jun 9 2018, 15:04
||- - Lagman   Цитата(jcxz @ Jun 9 2018, 18:04) Вы о чём...   Jun 9 2018, 15:12
||- - jcxz   Цитата(Lagman @ Jun 9 2018, 18:12) О том ...   Jun 9 2018, 15:15
|- - murmur   Цитата(jcxz @ Jun 9 2018, 17:14) д.Холла ...   Jun 9 2018, 14:26
|- - jcxz   Цитата(murmur @ Jun 9 2018, 17:26) Я пред...   Jun 9 2018, 15:03
- - Lagman   Тут недавно была информация про плату https://www....   Jun 9 2018, 15:04
- - murmur   Может вы не будете спорить, а ответите мне про dea...   Jun 9 2018, 15:51
|- - jcxz   Цитата(murmur @ Jun 9 2018, 18:51) Может ...   Jun 9 2018, 16:21
- - Lagman   Еще можете посмотреть исходники BLHeli https://git...   Jun 9 2018, 18:55
- - murmur   Что-то не получается у меня с ЭДС. Господа, взгля...   Jun 10 2018, 13:34
- - Lagman   А если помочь рукой прокрутить, стартует?   Jun 10 2018, 14:13
- - murmur   Не стартует. К слову, ШИМ у меня сейчас пока нет,...   Jun 10 2018, 14:16
|- - jcxz   Цитата(murmur @ Jun 10 2018, 17:16) Не ст...   Jun 10 2018, 16:38
- - murmur   ЦитатаПопробуйте сначала коммутировать ключи с фик...   Jun 10 2018, 16:45
|- - jcxz   Цитата(murmur @ Jun 10 2018, 19:45) Этот ...   Jun 10 2018, 16:48
|- - AlexandrY   Цитата(khach @ Jun 12 2018, 11:59) Измеря...   Jun 13 2018, 15:04
- - murmur   Все пока хорошо, но вот почему то запускается двиг...   Jun 10 2018, 19:30
|- - варп   Цитата(murmur @ Jun 11 2018, 01:30) .... ...   Jun 11 2018, 01:24
- - Herz   С ней всё не так. Вообще непонятно, что это: может...   Jun 10 2018, 20:58
- - alexvu   Не касаясь особенностей ШИМ (я в этом не профи), 1...   Jun 13 2018, 18:28
- - Herz   Цитата(alexvu @ Jun 13 2018, 21:28) Не ка...   Jun 13 2018, 20:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 22:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016