Перейти к содержанию

Детекция ЭДС в регуляторе бесколлекторного двигателя.

Коллеги, есть трупик модельного регулятора скорости бесколлекторного двигателя. Китайский. Плата 4-х слойная, прозвонила ее с трудом. На плате ATmega8.

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

В общем, частичный реверсинг.

В принципе схема очень похожа на вот это http://radioparty.ru/prog-avr/program-c/61...bldc-sensorless

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

 

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

 

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

Для чего же они нужны, какую роль они играют в управлении двигателем?

 

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

Sheet1.pdf

Изменено пользователем murmur

Поделиться сообщением


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

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

Но в случае более мощного мотора вариант с компараторами не пройдет.

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

post-2050-1528484336_thumb.png

Тогда применяют АЦП в строго синхронном с ШИМ-ом режиме и деалают медианную фильтрацию как у Microchip - http://www.microchip.com/wwwAppNotes/AppNo...ppnote=en533912

Другие применяют интегрирование и проч. методы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Входы ADC0 ADC1 ADC2 это РС1,PC2 и PC3 -аналоговые входы . По умолчанию порты РС1,PC2 и PC3 на строены как аналоговые входы в строках :

// Аналаговый компаратор

ADCSRA &= ~(1 << ADEN); // Выключаем АЦП

SFIOR |= (1 << ACME); // Отрицательный вход компаратора подключаем к выходу мультиплексора АЦП

ACSR |= (1 << ACIE); // Разрешаем прерывания от компаратора

в выбранном контроллере один компарато поэтому его по очереди подключают ко входам ADC0 ADC1 ADC2-

#define SENSE_U ADMUX = 0; // Вход обратной ЭДС фазы U

#define SENSE_V ADMUX = 1; // Вход обратной ЭДС фазы V

#define SENSE_W ADMUX = 2; // Вход обратной ЭДС фазы W

компаратор настраиваеми разрешаем прерівания

/ Аналаговый компаратор

ADCSRA &= ~(1 << ADEN); // Выключаем АЦП

SFIOR |= (1 << ACME); // Отрицательный вход компаратора подключаем к выходу мультиплексора АЦП

ACSR |= (1 << ACIE); // Разрешаем прерывания от компаратора

 

Поделиться сообщением


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

Но в случае более мощного мотора вариант с компараторами не пройдет.

 

Статья статьей, но я привела свою схему, на которой именно компаратор, а мотор к ней можно подключать до 20 ампер. И схема работает.

Конденсаторы фильтров на плате есть, я их просто на схеме не привела. За статью спасибо, очень интересно.

 

V_N, вам тоже спасибо. СЛона то я и не заметила)))

 

Следующий вопрос - ШИМ. В статье, которую я привела, все просто и логично - управление верхними ключами осуществляется через ШИМ выходы контроллера. При проектировании же моей платы китайцы наверное следовали Конфуцию или еще кому-то... Но у меня OC1A, OC1B и OC2 вообще не заняты. Управление верхними ключами повешено на PC3 PC5 PD4.

 

Есть статейка от АТМЕL, где есть интересное решение - один ШИМ выход и логические элементы. Но у меня такое решение не применено.

Неужели у меня был программный ШИМ?

 

Как на практике еще организовывают ШИМ управление? Может есть какой-то способ шимировать все ключи или ток регулировать?

У меня на плате есть еще несколько элементов, предназначение которых я понять не могу пока, в виду того, что плата 4-х слойная.

 

Кстати - на плате почему то целых 3 преобразователя напряжения 7805, которые соединены параллельно, только выход их развязаны маломощными резисторами 22 ом. И это при том, что из 5-ти вольтовых потребителей только Атмега... Никого ни на какие мысли не наводит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
И схема работает.

Конденсаторы фильтров на плате есть, я их просто на схеме не привела.

BLDC многое стерпят.

Они даже в асинхронном режиме крутятся.

Вопрос как эффективно вы хотите управлять.

Конденсаторы фильтров дадут вам неизвестную фазовую задержку, которая на высоких оборотах приведет к плохому регулированию, низкому КПД и неприятному шуму.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм... странно все таки. Почему разработчик моего контроллера не использовал аппаратные возможности шим....

Скажите я ведь могу, используюя для управления верхними ключами навязанные мне пины, завести таймер и с его помощью тупо менять состояния пинов обычным "ногодрыгом" и возвращать их обратно? Это будет адекватная замена аппаратным возможностям?

Поделиться сообщением


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

Скажите я ведь могу, используюя для управления верхними ключами навязанные мне пины, завести таймер и с его помощью тупо менять состояния пинов обычным "ногодрыгом" и возвращать их обратно? Это будет адекватная замена аппаратным возможностям?

Конечно можете.

Более того, мотор будет крутится даже если вовсе не будете следить за обратной ЭДС.

Все упирается в назначение мотора и характеристики регулирования.

Если не планируется какое-то точное регулирование, то всеми ключами можно управлять программно без аппаратного ШИМ-а.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Конечно можете.

Более того, мотор будет крутится даже если вовсе не будете следить за обратной ЭДС.

Все упирается в назначение мотора и характеристики регулирования.

Если не планируется какое-то точное регулирование, то всеми ключами можно управлять программно без аппаратного ШИМ-а.

Мотор изначально предназначен для авиамодели. Но мной он будет установлен в детский автомобильчик (через редуктор), взамен старого и дохлого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АвтоESCи сильно отличаются от авиа. По характеру нагрузки и условиям охлаждения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Скажите я ведь могу, используюя для управления верхними ключами навязанные мне пины, завести таймер и с его помощью тупо менять состояния пинов обычным "ногодрыгом" и возвращать их обратно? Это будет адекватная замена аппаратным возможностям?

На Атмеге это будет довольно сложно делать. Слабовата имхо.

Я конечно делал подобное на STM8 на 16МГц (ШИМ=10кГц), но аппаратным ШИМом. И то пришлось бОльшую часть кода на асме писать. И это без всяких векторных управлений, без обратных связей, чисто синусное управление. А на синусном управлении моторчиком под нагрузкой (да ещё переменной нагрузкой) имхо не по-управлять. :laughing:

 

Но можно сделать без ШИМа и без векторного управления, коммутируя ключи в соответствии с датчиком положения ротора. Это называется BLDC.

Но всё равно схема будет очень чувствительна к задержкам выполнения кода (на разных скоростях ротора влияние задержек будет меняться). Задержка будет вызвана: скоростью вычисления положения ротора по показаниям датчиков положения ротора (зависит от типа датчиков) и скоростью выставления управляющих воздействий на ключи по вычисленному положению.

А как, кстати, положение ротора на вашей плате определяется? д.Холла или бездатчиковое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А как кстати положение ротора на вашей плате определяется? д.Холла или бездатчиковое?

 

У авиаторов - исключительно BackEMF

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
У авиаторов - исключительно BackEMF

Читать много лень. :)

Для авиа-назначения, можно считать, что нагрузка примерно постоянна (вентиляторная нагрузка)? И можно обойтись без обратной связи? Если так, то можно и синусным ШИМом по-управлять, заранее зная параметры инерции вала с пропеллером.

Но ТС ведь хочет этот моторчик для авто применить. А там уже так не поработать. Обратная связь по положению ротора нужна. И самое простое тут - датчики Холла :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Читать много лень. :)

Для авиа-назначения, можно считать, что нагрузка примерно постоянна (вентиляторная нагрузка)? И можно обойтись без обратной связи?

Авиа, в свою очередь, делятся на самолетные и вертолетные. Основное отличие - для вертолетов через BackEMF (обратная ЭДС по-русски :)) делается стабилизация частоты вращения ротора под любой нагрузкой (governor mode)

Если так, то можно и синусным ШИМом по-управлять, заранее зная параметры инерции вала с пропеллером.

Чаще всего так и делается

Но ТС ведь хочет этот моторчик для авто применить. А там уже так не поработать. Обратная связь по положению ротора нужна. И самое простое тут - датчики Холла :laughing:

 

Все зависит от kV мотора и передаточного отношения редуктора. Но не припоминаю на модельных автомоторах датчика Холла...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Но не припоминаю на модельных автомоторах датчика Холла...

Зато гироскутеры наверное все на них бегают :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смущает в коде, что по ссылке в первом сообщении, отсутствие deadtime. Или я слепая и не вижу?

 

Зато гироскутеры наверное все на них бегают :rolleyes:

Гироскутеры на них не просто бегают, они на них равновесие держат. Именно этим определяется необходимость в датчиках Холла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти