|
Детекция ЭДС в регуляторе бесколлекторного двигателя. |
|
|
|
Jun 8 2018, 18:29
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jun 10 2018, 18:07
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jun 11 2018, 05:37
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

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

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

|
Цитата(jcxz @ Jun 11 2018, 08:37)  Примерно так. Вообще-то есть способы определения угла поворота ротора с помощью измерения напряжений даже в статическом состоянии. Они описаны в апнотах у TI, Microchip, ST и прочих Обратная ЭДС достаточная для синхронизации в модельных моторчиках возникает уже со второго импульса. Надо только применять не компаратор, а АЦП этак на сотню килогерц.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|