BLDC контроллер своими руками на микроконтроллере STM32
Вставка
- Опубліковано 23 гру 2024
- Плата управления бесколлекторными двигателями на микроконтроллере STM32F103. Схема, чертеж платы:
blog.avislab.c...
Примеры и исходный код для STM32:
github.com/avi...
github.com/avi...
Статьи об управлении бесколлекторными двигателями с помощью микроконтроллера STM32
STM32 - BLDC Motor Control:
blog.avislab.c...
STM32 - PMSM Control:
blog.avislab.c...
Подборка видео о бесколлекторных моторах. BLDC, PMSM, векторное управление:
blog.avislab.c...
Все о brushless моторах:
blog.avislab.c...
Видео вообще на +5! Спасибо за столь подробный анализ и пояснения!
Очень подробно и понятно.
Спасибо.
Странно почему мало просмотров, не ужели все такие умные что не учатся.
Продолжайте.
Думаю многим поможет в реализации проэктов
Вы обьясняльщик от бога :) несколько лет учу векторное управление и только сейчас понял. Спасибо за канал!
Очень познавательное видео. Спасибо. Редко такое увидишь в инете.
Очень информативно и доходчиво обьяснил))
Автору респект👍
Очень полезное и информативное видео... Я конечно, все, что сказано в этом видео знаю и ничего нового для себя, не услышал, но все-равно, заслушался... Насколько плотно четко и доступно подана информация - браво!
Спасибо! Потихоньку вникаю в тему управления bldc двигателями...
Огромное вам спасибо! Очень интересно. Делайте ещё! Ещё! И ещё)
Так подробно и доходчиво объясняют единицы! Спасибо!
Работаю с силовой техникой - использую быстрый диод параллельно R3 R4 в обратном включении - тогда полевики быстрее закрываются. Еще важен монтаж Сток верхнего транзистора идет на микросхему (VS), а уж потом на Исток нижнего транзистора. Выходной провод подключается вблизи (VS). Может показаться мелочью - но вч тычки пропадают. D1 лучше использовать быстрый BYV27-200-TR (время 15-25 нс) и падения напряжения на нем по меньше 0,7-0,85в.
Спасибо за полезный совет.
Avislab, ни одного дизлайка, красава)
Драйвер полумоста ir2101 имеет встроенную аппаратную защиту от одновременного открытия верхнего и нинего ключей, что освобождает контроллер от необходимости вставлять дедтаймы. Собственно драйвера для того и создаются, чтобы упростить управление аналоговыми цепями при помощи цифровых устройств.
Очень интересно. Отличная подача материала. Спасибо
Большая благодарность за отснятый материал!!! Успехов Вам!!!
Очень познавательно и толково, спасибо большое.
Просто платиновая информация, да по полочкам!
Конечно серийный образец купить проще.
Но причина №3 (докопаться и разобраться) пересилила.
Очень информативное видео!
Четко, понятно, без воды! Лайк подписка
Irf540 во многих китайских драйверах стоят, а значит их там можно попробовать купить. Спасибо за видео.
Супер, все правильно и просто.
Просто шикарно! Спасибо!
ПРИВЕТ А ЕСТь ЛИ СXЕМА НЕ АРДУИНОВСКАЯ ДЛЯ УПРАВЛЕНИЕ ТРЁXФАЗНИКА С УСТАНОВКОЙ ПЛАВНООГО ПУСКА ИЛИ ПЛАВНОГО ТОРМОЖЕНИЯ ИЛИ ПУСК ВПЕРЁД ИЛИ ПУСК НАЗАД ??? СПАСИБА !!!!!
Красава, отличная работа. Спасибо
ТОП контент! Круто!!
Здравствуйте , а можно купить готовый слабенький вариант и его умощнить?
При параллельном включении мосфетов, выравнивающие ток резисторы необходимо включать в истоковые цепи. Величину сопротивлений выравнивающих резисторов следует выбирать одного номинала, исходя из падения напряжения на них при максимальном рабочем токе - около 0,7 вольта. А резисторы в цепях затвора льшь сглаживают паразитные ёмкостные и индуктивные всплески (осцилляции).
Можно по подробнее рассказать про бездатчиковое определение положение ротора BLDC, схематехнику, откуда и с чем сравниваете АЦП во время подачи коротких импульсов
Про бездатчиковые BLDC будет следующее видео.
Подскажите, а для 1s можно собрать такой рконтроллер? На машинку стрижки волос нужен
а как на счет широко распространенных драйверов ADP3418 и согласно его даташиту транзисторов - IPD12N03 и IPD06N03 (2шт) ?
вроде бы широко распространенный драйвер/транзисторы из материнок. правда напряжение максимум 30V но для начала достаточно...
драйвер с автоматическими дедтаймом, то есть, казалось бы, подавай себе на вход ШИМ и все дела...
можно ли заменить на вашей схеме драйвера/транзисторы на эти, как думаете?
Круто, ну хоть Вы расскажите то, что сколько можно цеплять транзисторов на одно плечо? В даташите нигде не нашёл, в моем случае, ir2104
11:58 дайте ссылочку на отдельное видео
Здравствуйте, а не могли бы подсказать какой драйвер лучше использовать вместо IR2101? Ни то, что бы не нравится IR2101, просто в виде прозвучала фраза, что это не самый лучший драйвер, а какие тогда лучше
Бесспорно видео просто отличное!
Хотелось бы уточнить один нюанс, на 6.24 минуте видео говорится о частоте ШИМ и " дид тайме" , но на сколько мне известно частота ШИМ как правило постоянна при таком способе управления скоростью вращения, меняется длительность импульса а период(частота) постоянен! Таким образом меняется время открытого состояния транзистора за период!
При ШИМ изменяется действующее напряжение, т.е. меняется напряжение на нагрузке.
????
Или в видео другой способ описывается?
Или же тут за счёт изменения частоты происходит изменение скорости вращения???
Тогда это не ШИМ а просто частотное управление скоростью!????
Хотелось бы уточнить у автора для правильного понимания...
Anti spark - хорошо, но конденсатор нужно еще и разряжать при снятии питания. Если конденсатор емкий и на высокое напряжение с этим могут быть проблемы - если просто поставить параллельно резистор может или сильно греться в процессе работы или очень долго разряжать конденсатор при отключении питания. Подбирал сопротивление экспериментально.
навіщо розряджати? це ж не мережевий блок, де 310В як їбане то зірки в очах стають - тут низька і безпечна напруга
Так ACS712 уже ж не рекомендуют для использования в новых разработках. Замена на ACS723.
Или использовали ACS712 просто потому, что он был в наличии?
П.С. за видео - спасибо!
Эта плата собиралась из того что было, ACS712 в том числе. Но, про ACS723 я не знал, спасибо.
Здравствуйте.
Можно ли использовать в качестве тестовой платы центральную плату от гироскутера? Цена б/у гироскутера колеблется в пределах 3..5 т.р.. Зато имеется два трёхфазных моста, два двигателя и источник питания на литий -ионных батарейках. Будут ли у вас эксперименты с подобными платами?
Спасибо.
Привет. Я сам с большим опытом,но стал вопрос быстрого позиционирования на бесколлекторниках. Вроде сверхбыстрых шаговиков. Есть идеи,как реализовать? Нужна точность положения,высокая скорость и старт с нагрузкой.Планирую доработать 3D принтер до сверхскоростей работы :)
Резистор на затворе ограничивает ток драйвера и фронты сглаживает. И разница в 10наносекундах открывания одного транзистора быстрее другого не выведет из строя. Импульсные токи гораздо больше сток исток чем 2-5 раз. А так хороший ролик.
Глянув даташит драйвера думаю розібрався в чому причина вигорання, у нього струм максимум це 360 міліампер на закритття а у вас резистор стоїть 20 ом, при 12 вольт живленняя драйвера це 600 міліампер. Треба ставить на ці драйвера як мінімум 40 ом на напругу 12 вольта щоб не вигорали а краще 100 ом .
У Ваших розрахунках дещо не враховано:
- Rg (Gate input resistance) силового транзистора;
- Опір вихідних транзисторів драйвера (у високовольтних він значний);
- Наявність R18, R26, R31
- До того ж при закриванні силового ключа резистор майже не працює, бо шунтований діодом.
То ж якби це було б причиною, застосована схема драйвера згорала б завжди та відразу. На щастя це не так і вона досі у мене працює. То ж причина в іншому. Драйвер може згоріти (не відразу, а при певних обставинах), якщо прибрати D2, D4, D6.
@@avislab7180 Звісно крім цього ще є опір, тому це той номінал при якому драйвер 100% не згорить по схемі с даташита, ну якщо ви ставили такі номінали на затвори і він горів тоді мабуть брак.
Здравствуйте. Скажите есть двигатель от стиральной машины лж с датчиками холла и оцентрован оригинальным валом с подшипником. Не хотите провести эксперимент за запчасти я заплачу.
Нет, спасибо.
Добрый день, как с вами связаться?
разве BLDC порядке переключения ключей нужен dead time ?
dead time - нужен при комплементарной работе ключей. Неважно чем они управляют и в какой последовательности включаются. Если комплементарная работа ключей не используется, тогда dead time, разумеется, не нужен.
Добрый день , можно ли в качестве драйверов использовать ir2110 для транзисторов irf3205 ?
Да, этого драйвера будет более чем достаточно.
Спасибо за познавательную информацию, понятное повествование!!!! возможна -ли реализация рекуперации? Спасибо!!!
На этой схеме рекуперация не планировалась. Но принципиально - это возможно.
У Вас в этом проекте реализовано векторное управление? Спасибо!!!
Нет. Эта плата не для векторного управления. Я на видео специально об этом говорил.
Объясните пожалуйста, зачем нужен драйвер? Почему нельзя управлять мосфетом, условно, от ноги микроконтроллера?
Нога микроконтроллера не может обеспечить необходимого напряжения и тока для открытия мосфета. Для этого и используют драйвера собранные на транзисторах или на спец. микросхемах.
@@avislab7180 спасибо
В каком магазине покупали скобы на транзисторы, скиньте пожалуйста. Или хоть маркировку их. Спасибо.
Скобы и радиатор не покупались. Они были сняты с какой то мертвой "железяки". Т.е. на разборке.
жалко, редкая вещь скобы, или дорогие. Спасибо.
подобные скобы держат корпус печки ваз 2108 2109
Можете скинути розводку плати для лута? Щоб розпечатати на принтері
На цій сторінці: www.avislab.com/blog/stm32_brushless/
Є посилання на архів зі схемою і платою для Eagle: www.avislab.com/blog/wp-content/uploads/2017/07/BLDCPMSM.zip
З архіву витягаєте файл плати (brd) і друкуєте як заманеться.
И в этой теме Вас по достаю) Спасибо ещё раз за работы. Не могли бы Вы пояснить далёким от программирования людям, чем отличаются алгоритмы управления в примере для AVR и этот для ARM? Просто на сверхмалых оборотах с нагрузкой на валу АВР хоть и с перебоями (из-за чего и переделал на ARM) но тянет мощно мотор колесо, а STM32 очень низкий момент даёт, причём рывками. Силовая часть та же что и у атмеги, все сигналы в норме(с холла через триггер Шмидта). Я так понимаю при старте отличаются алгоритмы? Что изменить в коде для STM32 чтобы добиться такой же тяги на старте, как и на Атмеге?
Благодарю!
Если вкратце, то в моих примерах есть BLDC режим и PMSM. BLDC - простой и будет работать всегда. Но PMSM более эффективный. Но для того что бы он был действительно эффективный, нужно все чётенько настроить. Мотор на малых оборотах может дергаться если контроллер думает, что мотор остановился, и пере запускает его. Пример, который я опубликовал, он универсальный, и не совсем подходит для вело колеса, ибо вело колесо для контроллера (при тех настройках что в примере) очень очень медленное. Я сейчас экспериментирую с вело колесом 500 ватт, планируется отдельный пример оптимизированный именно под вело колесо.
@@avislab7180 Спасибо, буду ждать Ваш пример для велоколеса. Чем отличается этот пример от PMSM я понял, Вы всё это доступно объяснили в видео, видимо я вопрос не точно задал. Я имел ввиду чем отличается программа и алгоритм именно BLDC на STM32 от BLDC на Атмеге? Потому что работают на старте по разному, хотя настроек особо и нет.
Это странно. Ибо алгоритмы одинаковые. На днях проверю и сообщу.
@@avislab7180 кажется я нашёл проблему. Если Вам будет интеренсо, могу поделиться опытом, скинуть фотки осциллограмм. Обнаружил, что при определённых условиях, в том числе и нагрузке на старте, драйвер просто игнорирует как минимум половину сигналов с контроллера. Соответственно при коэфф. заполнения 50% на движок в лучшем случае 25% приходит
Конечно интересно. мой e-mail: andre@avislab.com интересно понять почему так происходит.
Здравствуйте. Спасибо за очередное видео! Нужна подсказка в следующем вопросе по управлению двигателем. Запустил мотор-колесо на FOC библиотеке от STM. Одним из параметров в настройках является фазовый сдвиг в электрических градусах между максимумом B-EMF первой обмотки двигателя и нарастающим фронтом датчика Холла H1. Возможно провести измерение B-EMF первой обмотки не подключаясь к средней точке обмоток, чтобы не разбирать двигатель? Заранее благодарю!
Добрый день. Если средняя точка не доступна, один из вариантов - взять половину напряжения питания. Т.е. использовать простой делитель напряжения. Если у Вас мотор-колесо для велосипеда, очень интересно было бы услышать Ваши впечатления от FOC применительно именно к велоколесу.
1. Я не использую питание обмоток, питаются только датчики Холла, вращаю руками колесо и вижу на одном канале осциллографа сигнал датчика H1. Втором канал подключен так- щуп + подключен к обмотке 1, земляной щуп - к обмотке 2.
Необходимо определить сдвиг фазы именно между максимумом ЭДС 1 обмотки и фронтом датчика Холла. Вот и туплю, от какой именно обмотки вижу максимум... от 1 или 2. Надеюсь понятно пояснил. Благодарю за желание помочь!
2. Колесо использую от гироскутера. Мне самому интересно разобраться с FOC, собрал стенд и пытаюсь оптимизировать настройки на данный двигатель)
Я понял Вашу ситуацию. Среднюю точку можно получить собрав через резисторы в пучок все фазы. Как на этой схеме: www.avislab.com/blog/wp-content/uploads/2013/08/bldc4_2.png
спасибо!
А чего не поставить термистор для исключения искрения на клемме питания?!
Термистор можно применять, если токи не большие (единицы ампер). Здесь плата рассчитана на токи до 30А. Максимальный ток термистора, который я встречал 12А. Это шайба диаметром два сантиметра и у нее сопротивление 0.7 Ом - это очень много.
@@avislab7180 Блин, про ток я чёт и не подумал;)))
Объясните пожалуйста зачем использовать шим, Если нужно просто переключать катушки??? Я не совсем понимаю.
ШИМ нужен для регулирования уровня напряжения. Если ШИМ не применять, мотор будет всегда работать на полных оборотах.
@@avislab7180 я думал что обороты управляются частотой переключения катушек, имитируя как бы трёхфазное напряжение, разве такой подход не правильный? т.е. в вашей модели магнитное поле вращается всегда с одной скоростью??
@@Tp9m30 НЕТ! Если бы поле всегда вращалось с одной скоростью, то и ротор мотора всегда вращался бы с одной скоростью.
Здесь не применяется метод "изнасилования". Типа я дам частоту, а ты как хош так и крутись, так дела не будет, на греть мотор не надо.
Поступают так: подают напряжение на обмотки (уровень напряжения регулируется ШИМ), а переключают "катушки" по мере вращения ротора. Т.е. частота переключения напряжения на обмотках зависит от того как быстро вращается ротор.
Аналогия - двигатель внутреннего сгорания. Мы же не можем сказать, что если мы будем впрыскивать топливо в камеру сгорания чаще, то и скорость вращения мотора будет выше.
Ведь топливо нужно впрыскивать только в определенный момент, когда поршень находится в определенном положении. И если мы будем чаще впрыскивать топливо, то мы не сможем разогнать мотор, мы просто зальем мотор, топливо не будет полностью сгорать и т.п. поэтому впрыск топлива синхронизирован с оборотами мотора и выполняется в момент зависящий от положения поршня.
Считайте частота впрыска - это частота переключения напряжения на обмотках бесколекторника.
А как мы управляем скоростью вращения ДВС - изменяем количество подаваемого топлива за впрыск.
Считайте количество топлива - это напряжение на обмотках бесколекторника.
Дали больше напряжения (топлива) - мотор быстрее вращается. Быстрее вращается - чаще переключаем обмотки (делаем впрыск топлива). Ну как то так.
@@avislab7180 спасибо большое, попробую реализовать на своей модели.
@@avislab7180 вообще круто объяснил и аналогию провёл, теперь всё стало понятно ,спасибо
сколько можно подключать мосфетов на одно плечо ir2101?
Зависит от емкости затвора этих самых мосфетов...
а где схему посмотреть? сайт не работает
@Anton Tolstykh
Ссылки в описании поправил. ( Сайт давно переехал, забыл ссылки поправить ).
Здравствуйте ,можно ли использовать ардуино нано?
Нет, плата схема для STM32F103
@@avislab7180 ,я в плане прошивки
@@Дмитрий754 прошивка для stm32f103
Какова несущая частота ШИМ?
8/16/32/64 KHz. В прошивке можно установить любую разумную частоту. Частота определяется праметром PMSM_CHOPPER_PERIOD. PWM Frequency = 72000000/PMSM_CHOPPER_PERIOD. см.: github.com/avislab/STM32F103/blob/master/Example_PMSM/pmsm.h
Ты говоришь подключал к мотор колесу велосипеда, так вот хотел спросить может у тебя есть или был контроллер китайский мотор колёса? Возможно ли такой контроллер переделать чтоб поднять частоту ну чтоб быстрее ехать? У меня есть мотор колесо 250вт 36в я купил контроллер 250вт 24в-36в и с ним разгонялся до 29км/ч но в горку тянуло плохо так взял купил на 350вт 36в-48в с ним в горку едит уже лучше но вот беда с ним разгоняюсь только до 26 , я думал может хоть до каких 34кмч будет ехать, батарея у меня 36в.
Да, есть колесо с контроллером. "Поднять частоту ну чтоб быстрее ехать" - звучит забавно :)
По европейским законам скорость электро велосипедов ограничена до 25 км/ч. В китайских контроллерах обычно есть перемычка вкл/выкл ограничение. В моем специальный разъем выведен. Подозреваю, что причина в этом. Почитайте доку по Вашему контроллеру.
1) поднять напряжение до 48В, 2) сменить колесо хотя бы на 350Вт, 3) проверить просадки на акуме, возможно у вас дохлые или просто ширпотребные элементы 18650. Это всё что вам может помочь.
На 2:00 неправильно расказал. Для одновременной работы этого не достаточно. Могут сгореть так ты и сказал.
Спасибо за видео! А есть ли у вас схема более компактного драйвера? Хотябы раза в 4 меньше, чтобы можно было использовать в квадрокоптерах и прочих самоделках.
Нет, меньше нет. Меленькие (для авиамоделей) я покупаю. Получается дешевле, чем собирать самому.
@@avislab7180 привіт, без ардуіно і микроконтроллера можеш зробити. За гроші?
@@BETEP_BECT Вітаю. Так, Ні. Так - без мікроконтроллера на спеціальній мікросхемі зробити можна. Ні - під замовлення не роблю.
спасибо
Спасибо за видео! помогите разобраться?! сделал такую плату и прошил! но открывается сразу много ключей! и при потенциометре на 0, мотор удерживается обмотками, и часть ключей а их в разных положения 2-3 открыты на землю!
спасибо!
Добрый день. Мотор с датчиками или без? Какой именно прошивкой прошивали? Example_BLDC, Example_BLDC_Sensorless, Example_PMSM ?
Avislab
Мотор с холлам
Прошивал BLDC
И PMSM
МНЕ интересна именно синусная
Avislab
Более того, подключил к заранее рабочей плате драйверов, и тоже самое.
Странно. Сегодня проверю все примеры, сообщу...
Avislab спасибо
Если использовать ACS-712, то рекомендую экранировать его.
А можно пример как это сделать правильно?
Avislab у каждого своё "правильно". У меня была двухсторонняя плата, снизу полигон земли, сверху металлический экран паял над микросхемой
А на Ардуинке можна?
Можно, но не советую. Я с Атмег начинал, и желание возвращаться к ним категорически не испытую.
Етот контролер есть же и частотником?
здраствуйте, можно с вами связаться?
да, andre@avislab.com
@@avislab7180 ПРИВЕТ А ЕСТь ЛИ СXЕМА НЕ АРДУИНОВСКАЯ ДЛЯ УПРАВЛЕНИЕ ТРЁXФАЗНИКА С УСТАНОВКОЙ ПЛАВНООГО ПУСКА ИЛИ ПЛАВНОГО ТОРМОЖЕНИЯ ИЛИ ПУСК ВПЕРЁД ИЛИ ПУСК НАЗАД ??? СПАСИБА !!!!!
отзовитесь кто еще собирал проект?! не пойму толи руки толи лыжи...
Вы где всё это время были?! Я ваш сайт перечитал до дыр, а канал так и не нашёл. По вентельному электроприводу вообще нет информации в интернете и библиотеке, а она нужна. Нужное дело делаете.
Теория это хорошо НО, на практике 3 фазы питания процессоров на 3-х 120А мосфетах служили дольше и выходили из строя реже чем, 5фаз на 40А при равной мощности потребления процессором! Да и если уж городить самопал, то для самопального двигателя, а это значит что, мотать звезду с отводом от средины. Управлять можно тремя мосфетами вместо шести.
"5 фаз", "Тремя мосфетами вместо шести"... я прям, всплакнул.
@@avislab7180 он же говорит про подключение обмоток мотора звездой, видимо звезда пятиконечная у него, вот и выходит 5 фаз))))) А вообще он про питание процессора от компа говорит, про VRM, вот только он не учёл, что процессор далеко не индуктивная нагрузка...
ничего не понял . но очень интересно
Объясняете супер. Но я чувствую, что вы больше программист, а не схемотехник... Могу ошибаться. В объяснениях есть ошибочные суждения, в самой схеме не хватает очень важных мелочей, разводка пп выполнена с некоторыми нарушениями. А так для тестовой платы супер.
И Вы абсолютно правы - я больше программист чем схемотехник. Плата делалась исключительно как тестовая без каких либо претензий на что-то большее. Что касается "ошибочных суждений", замечаний по схеме и разводке хотелось бы подробностей, можно с пристрастиями, ибо я испытую острую нехватку именно конструктивной критики.
13:58 Кнопули :3
Как сделать контролёр 300в 500ампер???????
Ты тоже не знаешь вижу кому бы заказать? ))) я устал таких искать решил теперь сам заморочиться))
Быстрее и дешевле купить готовый?🤣я на blheli сжег 3 контроллера по 1600р при рограммировании(отключал мотор,пускал через лампу питание и всеравно не спасло),еще 4 контроллера дают сбой синхронизации,еще 4 контроллера не программируются,а мне нужно убрать отсечку по напряжению,один контроллер работает на коммерческом проекте и мы теряем кучу бабок и клиентов из за этой гребаной отсечки!потому что используем не литий а свинец!в гробу я видал эти регуляторы китайские хоть самому собирать начинать свой!!!
IGBT!
Umnička..
Закон Джоуля - Ленца Количество теплоты, выделяемое проводником с током, равно произведению квадрата силы тока, сопротивления проводника и времени.
Закон Ома описывает линейную зависимость между силой тока на участке цепи и электрическим напряжением на этом участке.
Мощность электрического тока равна произведению напряжения на силу тока.
Слава Украине!
По русски надо говорить: мертвое время, а не dead time