Открытый проект модуля управления электрическими моторами. Начало
Основное назначение модуля — управление синхронными бесколлекторными двигателями (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.
Программная часть проекта будет рассмотрена в следующей статье.