Открытый проект модуля управления электрическими моторами. Начало



    Основное назначение модуля — управление синхронными бесколлекторными двигателями (BLDC, BLAC, PMSM ...) с трапецеидальной или синусоидальной формой напряжения, с сенсорами скорости-положения или без сенсоров. Кроме этого модуль имеет небольшие габариты, достаточно широкий диапазон питающих напряжений, разнообразные каналы отладки, проводную и беспроводную связь.

    Мощность управляемых модулем двигателей может быть в пределах нескольких сотен ватт и напряжение до 30В. Это двигатели различных механизмов и устройств, таких как: 3D-принтеры, автоматические двери, автоматические роллеты, автономные насосы, вентиляторы, замки, электроинструмент, стабилизаторы положения, моторы и сервомеханизмы RC моделей, роботов и проч.

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

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


    (Кликнуть для увеличения)


    Для ускорения процесса разработки схемы силовой части был взят за основу один из типовых проектов, предлагаемых фирмой TI.

    Я остановился на проекте платы TIDA-00901.

    (Кликнуть для увеличения)


    Плата обладает хорошими характеристиками: ток до 20 A, мощность двигателя до 200 Вт, номинальное напряжение 12 В. Предназначена для эксплуатации в автомобиле.

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

    Очень полезным для разработки является документ Automotive 12 V 200 W (20 A) BLDC Motor Drive Reference Design.

    Плата имеет специфическую круглую форму, в качестве управляющего элемента применен контроллер C2000 LaunchPad. К сожалению программное обеспечение предоставляется не полностью открытым в части библиотек управления моторами. C2000 LaunchPad выполнен на базе DSP процессора семейства F2802x Piccolo. Это семейство процессоров специализировано для разработки несложных преобразователей энергии, и не отличается большой универсальностью и объемом ресурсов.

    Архитектура модуля.


    В данном проекте решено было выполнить модуль в виде составной конструкции из 2-х плат. Основная плата содержит силовой драйвер, подсистему питания и некоторые периферийные функции. На основную плату устанавливается плата процессора. В качестве процессорной выбрана
    плата проекта K66BLEZ1 (ещё статьи по этому проекту — 1, 2, 3, 4 ) с микроконтроллером семейства Kinetis фирмы NXP на базе ядра ARM Cortex-M4. (180 МГц, 2 МБ Flash память, 256 КБ ОЗУ + micro SD карта, часы реального времени с автономным питанием, USB device/host high speed, отдельный чип Bluetooth LE 4/ZigBee )


    (Кликнуть для увеличения)


    Модуль питается в диапазоне напряжений от 8.5 до 30 В. Несколько датчиков температуры — в микроконтроллере, вблизи силовых ключей и один внешний предохраняют модуль и мотор от опасных перегревов. Вся элементная база подобрана для работы при температуре до -40 град. С.

    Силовые ключи управления мотором рассчитаны на ток в импульсе до 200 А. Измерение тока производится резистивными шунтами с сопротивлением 0.001 Ом. Благодаря встроенным в микросхему драйвера DRV8305 регулируемым усилителям, модуль способен измерять токи от 300 А и до 0.1 А.

    Шина CAN дает возможность объединять множество подобных модулей в общую синхронизированную сеть.

    Микросхема MPU-9250 полезна в случае если требуется управление ориентацией модуля в пространстве и инерциальная навигация, а также для мониторинга вибраций и ударов.

    Встроенный в модуль DС-DC преобразователь с выходным напряжением 5В рассчитан на ток до 3.5 А. Сам модуль потребляет от этого преобразователя не более 150 мА, остальной запас тока может быть отдан на внешнюю нагрузку с разъема X4. Разъем X4 удобно использовать для подключения элементов освещения и индикации, таких как светодиодные RGB ленты на основе чипов WS2812B и аналогичных. Процессором аппаратно поддерживается формирование на цифровых выходах протокола кодирования бит в формате WS2812B, а также PPM, PCM, PWM кодирование. Аналогично без труда с минимальной загрузкой процессора модуль может принимать PPM и PCM сигналы.

    Расчет максимальной частоты переключения и обоснование выбора силовых транзисторов


    Перепроверим таблицу сравнения транзисторов, предлагаемую в документе от TI. Все параметры заново выписаны из даташитов.



    (Кликнуть для увеличения)


    Здесь у меня, как и у специалистов TI выбор пал на CSD1854Q5B. По величине максимального тока это лучший выбор. А частота переключения в 122 КГц далеко уходит за разумный предел достижимый при управлении от семейства Kinetis.

    Расчет максимальной пульсации тока и обоснование выбора фильтрующих конденсаторов


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


    Пользуясь этой формулой следует проверять способен ли модуль управлять данным мотором без превышения максимальных токов конденсаторов.

    Как подсчитали специалисты TI при указанных на схеме конденсаторах модуль на частоте ШИМ 40 КГц может долгое время питать застопоренный мотор с током через обмотки более 80 А.

    Схема основной платы модуля



    (Кликнуть для увеличения)



    (Кликнуть для увеличения)


    Расположение разъёмов


    Вид на основную плату сверху:


    (Кликнуть для увеличения)


    Вид на основную плату снизу


    (Кликнуть для увеличения)


    Габариты



    (Кликнуть для увеличения)


    Репозиторий проекта


    Все материалы относящиеся к проекту хранятся здесь.
    Схема и печатная плата разработаны в среде Altium Designer 17.0.6.
    В репозитории можно найти 3D модель сборки в формате STEP.
    Там же лежит файл расчетов для DC-DC преобразователя на A8586 в формате Mathcad.

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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 43

      +1
      Вот бы диапазон до 320В расширить (стиралки и холодильники)… Интересно, во что оно в итоге выльется. Всё круто. Реально круто. Но какая цель создания такого модуля? Чем он будет отличаться от инверторов (почему-то так называют подобные платы в бытовой технике) других производителей? Цена-диапазон применений? Спасибо.
        0
        Модуль уже нашел свое применение. От инвертеров он отличается большей интегрированной функциональностью.
        Проект инвертера на 320В я публиковал вот здесь https://habrahabr.ru/post/256611/
          0
          простите, а не изобретаете ли вы «велосипед»?
          вот такой ЕСЦ или подобный ему?
          https://www.banggood.com/ru/FVT-LittleBee-30A-ESC-2-6S-BLHeli-Supports-OneShot125-For-RC-Multirotors-p-1029502.html?rmmds=search
            0
            В такой терминологии это не изобретение велосипеда, а тюнингованная модель велосипеда.
            +4
            Приятно видеть проект, в котором автор действительно старался. А не ту фигню которую сейчас публикуют криворукие любители.

            Респект!
              0
              Отличная работа! А диоды, показанные на полевиках — это их внутренние «паразитные» или дополнительные? Я читал, что внутренние не слишком подходят для защиты полевиков при индуктивной нагрузке.
                –7

                избыточно, дорого

                  +6
                  Это был явный пример комментария от любителя ардуино и кучки проводов навесным монтажом.
                  Советую автору на такие комменты даже внимания не обращать.
                    –5

                    А это был явный пример комментария от: недалекого любителя/потребителя, не разбирающегося не в чем и жертвы маркетинга.

                  +1
                  Интересный проект.

                  Вопрос: можно ли подключать модельные сенсорные бесколлекторные двигатели?

                  30А мало. Было бы интересно, если бы была возможность расширения, для увеличения допустимых токов до 200А или даже больше.

                  Если ли обратная связь, чтобы можно было получать информацию о кол-ве совершенных оборотов и положении ротора. (Подключив, к примеру, к Ардуино)

                  И последний вопрос: Продаваться будет? :)
                    +1
                    Да, модельные моторы это одна из задач этого модуля.
                    30А это ток который допустим без радиатора.
                    С радиатором допустим ток 80А и больше. Сейчас ведутся испытания по определению максимальных режимов.

                    Обратная связь конечно же есть. Это все будет описано в следующей статье.

                    Да, модуль продается.
                      –1
                      А сколько?
                        +1
                        При 80A шунты прегреются, или их тоже на радиатор поставите? Вообще, шунты не лучший выбор при таких токах.
                          0
                          80А конечно не может быть продолжительным током. Это только для коротких перегрузок не превышающих минуту.
                      0
                      Если добавить поддержку энкодера, в проц влить пид и прочие плюшки, + разнообразие интерфейсов управления то получится серводрайвер PMSM.
                        0
                        Модуль имеет поддержку энкодера. Он и работает серводрайвером.
                        –1
                        Дизайн PCB как-то неочень.., уверен вы можете лучше.
                          0
                          А обороты мотора мерить может?
                            +1
                            Точно обороты модуль измеряет с помощью энкодера встроенного в мотор или внешнего.
                            С некоторой погрешностью модуль может измерять обороты измеряя ток и напряжение на обмотках.
                            0
                            Каких усилий будет стоить увеличение напряжения до 100.8 вольт и тока до 300ампер?
                              0
                              Как-то непонятно насчет гироскопа. «в случае если требуется управление ориентацией модуля в пространстве и инерциальная навигация, а также для мониторинга вибраций и ударов. „

                              вибрации и удары логично измерять, “сидя на моторе», а ориентацию в пространстве — где-то подальше от трясущегося и вибрирующего мотора. В случае коптера у нас есть три мотора и гироскоп логично было бы использовать один, у центрального «думателя»
                                0
                                Все верно.
                                Но есть технологическое оборудования где плата перемещается на платформах и вибрации измеряются не мотора, а платформ.
                                  0
                                  А можно чуть подробнее, чтобы хоть представление иметь о чем речь?
                                    0
                                    О стабилизаторах платформ, роботах и проч.
                                      0
                                      Например, портальный фрезерный станок и обратная связь по вибрациям
                                        +1
                                        у таких станков подобные контроллеры стоят обычно отдельно, в отдельном неподвижном ящике или шкафу. А для размещения непосредственно на двигателе ИМХО подобная конструкция (с кучкой непаяных разъемов и процессорным блоком на большом разъеме) как-то некомильфо
                                  0
                                  Подозреваю, что можно на базе этого устройства построить электрокарт с BLDC-приводом. Это будет хорошо.
                                    0
                                    Просьба не пинать сильно за небольшой оффтоп, очень нужно привести в движение bldc движки от hdd, пробовал через l298 и просто по очереди дергать обмотки и шим, бесполезно, еле дергаются, есть трехконтактые и четырехконтактные, посоветуйте контроллер какой, наподобие девайса в статье
                                      0
                                      А чем дивайс в статье не подходит?
                                        0
                                        Очевидно, что подходит. Только где девайс взять, если сам сделать не можешь?
                                        Ну и мне, как пока чайнику в управлении двигателями(все не соберусь никак купить себе «не серву» и поиграть) тоже интересно возможно ли управлять PMSM приводами с помощью L298 или L293d
                                          0
                                          Можно управлять и с помощью L298 и L293d, но их придется ставить два и все равно нужен микроконтроллер.
                                          Есть же более совершенные решения, например DRV10983
                                            0
                                            L293d вроде и одного должно хватить.
                                            DRV10983 — интересная букашка и не дорогая. Почему её в этом открытом проекте не использовали?
                                            В чем плюс именно такой реализации? И думаю круглая форма платы тоже была бы предпочтительнее чтобы было удобнее сделать её частью сервы.

                                            P.S. Отличный проект. Ждем продолжения)
                                              0
                                              Да точно, L293d должно хватить и одной.

                                              Частью сервы плату я не мог сделать, поскольку она еще выполняет кучу функций в оборудовании.
                                              А DRV10983 слишком уж интегрированное решение, и не подходит для всех идей по применению которые есть относительно модуля.
                                        0
                                        К чему вопрос был, была у меня мысль сделать дешевый «форк » Openrov проекта, подводного дрона, кому интересно, идея была проста распберри с камерой, Джанго с видеопотоком, кнопками управления движением и показаниями датчиков, управление проводное 4 жилы ethernet, корпус пвх трубы канализационные, сраный l298 избыточен, китайский мост греется и овермного потребляет, две батареи на 5 и 12 вольт балансировать, крайне неудобно, я за девайс представленный в статье много бы отдал, не больше конечно чем за pi, но купить негде, очередное фуфло, попирался на гигтаймсе, получил повышение зарплаты, и дальше паять платы для лифтов, это конечно все классно, только совок кончился, даёшь даташит, дай где купить, тут не журнал радиотехника, не за идею блять работаем, пропиарить товар, продай, готовы же купить…
                                          0
                                          Я могу продать готовые модули. Но розничная цена будет в несколько раз выше pi.
                                          Она не может быть сравнима с pi поскольку модули делаются небольшими партиями.
                                          Поэтому это и полностью открытый проект.
                                          Здесь тестируется концепция и юзкейсы. Предполагается на основе обратной связи совершенствовать проект.
                                          Продать модули — не самоцель.
                                            0
                                            Спасибо за ответ, мой конкретный юзкейс, уместить в небольшую внутренность подводного Дрона плату, способную управлять тремя четырьмя движками сразу, притом способную насаживаться на распберри и логическое напряжение в 3,3 вольта, притом напряжение питания двигал около 12 вольт, потому как батареи компоновать проще, ваш проект просто супер, выходите уже на рынок
                                        0
                                        Шунты заменить на датчики Холла. 20А продолжительно, 80А до минуты — это не про шунты. Есть уже интегрированные, с линеаризованной характеристикой.

                                        Чоппер (или хотя бы разводка под него) — где? Если это электротранспорт, как контролируемо тормозить собираетесь? И вообще для любого инерционного механизма он вам потом понадобится. Вообще рекомендую набирать инвертор не из отдельных ключей, а посмотреть в сторону уже готовых модулей мосфетных, там сразу в одном корпусе 6 ключей, чоппер, термодатчик, иногда выпрямитель и датчики тока.

                                        Схему с такими токами надо хорошо заземлять. Не вижу дорог заземления под крепежными элементами плат. Двигатель тоже надо заземлять, токи утечки на землю — мерить. Тем более если вы это собираетесь в металлический корпус ставить.
                                          0
                                          Спасибо за ценные советы. Все так и сделал в этом проекте https://habrahabr.ru/post/256611/
                                          А этот проект удешевленный.
                                          Его можно сказать смысл в том чтобы показать возможность работы в упрощенном варианте.
                                          Обратные ЭДС моторов в приложениях модуля были изучены, необходимости в чоппере нет.

                                          Насчет заземления я бы поспорил.
                                          Заземление нужно для защиты людей от ударов током. Если пытаетесь заземлить общий провод платы силового драйвера, то получите огромную электромагнитную эмиссию в полосе 1...30 МГц и не пройдете сертификацию. Нужно будет ставить глухой качественный экран, просто металлический корпус не поможет.
                                          А так без заземления можно повесить на все исходящие провода абсорберы и все будет нормально.
                                            +1
                                            Если это проект удешевленный — зачем мерить напряжение на фазах двигателя? Это минимум +3 качественных АЦП, + вычислительная мощность. Такое делается только в прецизионных сервоприводах, бест-оф-зе-бест. Обычно классическое управление по старшей производной: момент двигателя — скорость двигателя — положение вала. Момент — это ток двигателя, вот током и управляйте. Напряжение вторично, регулятор рэлейный: если тока не хватает — больше скважность ШИМ, если много — меньше.

                                            Чоппер (или схема рекуперации тока из конденсаторов обратно в батарею) ставится не для «обратных ЭДС». Вот поставил кто-то вашу схему в электровелосипед, к примеру. Вполне ведь возможно? Имеем по минимуму — это 5 м/с скорость, + 60кг масса человека, + сам велик. Кинетическая энергия при движении — 5^2*60/2=750 дж. А если скорость 36 км/ч, а масса в сумме 100кг, то и все 5000дж. При торможении в течении секунды — это мощность 5КВт будет. При каждом торможении надо либо греть двигатель на эти 5КВт, либо куда-то их сливать. Силовые конденсаторы ваши от 5КДж за секунды перезарядятся и взорвутся.
                                            Без этого можно будет только винты квадрокоптеров крутить да модельки машинок катать. И все. Даже для приводов 3Д-принтера (если он хоть какую-то приемлемую производительность имеет) рекуперация вам понадобится.

                                            Заземление нужно. Естественно заземляется не драйвер, он вообще гальванически изолирован должен быть. Заземляется двигатель, корпус устройства и минус батареи (если по автомобильному).

                                            Для программной части следующей статьи неплохо бы определиться на берегу: делаете ли вы шаговик, скалярное управление или векторное.
                                              0
                                              Рекуперация еще может производится обратно в аккумулятор.
                                              С другой стороны чоппер может быть совершенно независимым узлом и подключаться отдельно.
                                              Кстати модуль имеет специализированные выходы которые могут служить для управления чоппером если он действительно нужен будет.

                                              Что вы называете заземлением в движущихся объектах вроде велосипеда?
                                              Подключение общего провода драйвера на корпус? Да еще по углам платы?
                                              Так вы создадите просто еще один источник излучения.

                                                0
                                                Рекуперация еще может производится обратно в аккумулятор.
                                                Разумеется. И для батарейного устройства должна производиться обратно в аккумулятор. Но это еще сложнее, там одним транзистором не обойдешься, и опять-таки у вас ничего этого не предусмотрено…

                                                Что вы называете заземлением в движущихся объектах вроде велосипеда?
                                                Заземляется двигатель, корпус устройства и минус батареи (если по автомобильному).
                                                Это делается в любой как общепромышленной, так и автомобильной силовой электронике. Без исключения. Понимаете, я могу долго тут распинаться про электро- и пожаробезопасность, но чувствую что вы меня не услышите. Поэтому просто примите как медицинский факт: это делается во всех без исключения серийных схемах. Устройство без этого дальше RC-модели не уйдет. Там — пофигу, ну загорится эта моделька в воздухе — так в ней же человек не сидит. А вот пожар электровелосипеда у вас под жопой, или 3Д принтера в доме — уже совсем другой коленкор.
                                                  0
                                                  Да, я пока не слышу.
                                                  Модуль работает максимум от 30В. Т.е. электробезопасность можем пропустить.
                                                  А вот с пожаробезопасностью интересней.
                                                  Какой вы видите сценарий, когда без «заземления», а по сути без подключения к раме велосипеда (если рама не из диэлектрика) увеличивается риск пожара?
                                                  Надеюсь вы понимаете, что заземлять можно только в одной точке.
                                                    0
                                                    Модуль работает максимум от 30В. Т.е. электробезопасность можем пропустить.
                                                    Если им пользуются только взрослые мужчины — то да. Но в ПТЭЭП «условно безопасным» называется почему-то напряжение в 12В… Знаете почему? Потому что маленькие дети, например, или женщины с пиллингом, 30-40В постоянки уже таки чувствуют. И если это массовое устройство ширпотреба — то нет, не можете…

                                                    Какой вы видите сценарий, когда без «заземления», а по сути без подключения к раме велосипеда (если рама не из диэлектрика) увеличивается риск пожара?
                                                    В вашей схеме любое нештатное происшествие с силовой цепью и ее изоляцией ведет к неплохой такой дуге и пожару. Просто потому что вы НИКАКИХ мер против этого не приняли. Даже плавкой вставки не предусмотрели. И риск пожара зависит исключительно от качества изготовления компонентов. Этого мало.
                                                    Как только у потенциального интегратора вашего устройства встанет вопрос о какой-либо сертификации или лицензировании готового изделия — ваше устройство тут же будет заменено. Просто потому что.

                                          Only users with full accounts can post comments. Log in, please.