Разработка контроллера электродвигателя постоянного тока

Электронное устройство, способное запускать и останавливать двигатель, регулировать его скорость, обеспечивать плавное ускорение для недопущения пробуксовки и др. Предназначено для двигателей постоянного тока, применяемых в роботах.
Роботы помогают людям в самых разных областях – они оптимизируют производственные процессы, помогают проводить хирургические операции, исследуют космос и выполняют другие функции. Робототехника стала доступной технологией, не требующей специальных инженерных навыков. С богатым выбором инструментов даже дети могут строить роботов!

Заказчик создает роботов, а также компоненты и инструменты для их строительства, предназначенные как для профессионалов, так и для любителей. Чтобы повысить конкурентоспособность, компания решила расширить свою линейку продукции и предложить клиентам больше возможностей.

Запрос

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

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

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

Было важно соблюсти требования к проекту и минимизировать стоимость разработки, не поступаясь производительностью устройства, его функционалом и габаритами.
3D-моделирование детали устройства

Решение

В качестве силовой части устройства мы выбрали полномостовую схему управления (Н-мост). Это классическая цепь управления моторами с двумя ключами верхнего и двумя ключами нижнего плеча. Мостовая схема снабжает устройство напряжением и обращает его полярность, что позволяет вращать мотор в обоих направлениях.

Для управления скоростью и крутящим моментом двигателя мы использовали импульсный стабилизатор напряжения (с широтно-импульсной модуляцией).

Наша схема позволяет использовать контроллер для управления как щеточными, так и бесщеточными двигателями постоянного тока, а также переключаться между этими двумя режимами.
Схема, на которой показаны варианты подключения одного бесщеточного или двух щеточных двигателей постоянного тока
Варианты подключения одного бесщеточного или двух щеточных двигателей постоянного тока
Контроллер позволяет подключить к нему датчик Холла в режиме управления бесщеточными ДПТ. Устройство оснащено двумя каналами для управления щеточным ДПТ и одним каналом для управления бесщеточным ДПТ. На каждом канале может быть до двух концевых выключателей для контроля предельных положений механизмов.

Аналоговые датчики, установленные на каждом плече управления, позволяют контроллерам высчитывать обратную электродвижущую силу. Измерение обратной ЭДС помогает определять положение ротора в бесщеточном ДПТ и, таким образом, контролировать его работу. Вычисление этого параметра также используется в режиме торможения в щеточном ДПТ.

Контроллер оснащен аналоговыми и цифровыми входами и поддерживает несколько интерфейсов обмена данными, в том числе UART, RC, CAN и RS-485.

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

Чтобы получать обратную связь от двигателя и корректировать его скорость, пользователи могут подключить к контроллеру цифровой квадратурный энкодер (датчик положения). Прошивка контроллера будет использовать данные с энкодера для регулирования скорости мотора. Кроме того, мы применили пропорционально-интегрально-дифференциальный алгоритм (ПИД-алгоритм). Он анализирует скорость двигателя, сравнивает ее с заданным значением и высчитывает ШИМ-сигналы для регулирования скорости мотора, а также рассчитывает пройденную дистанцию.

Чтобы не допустить возникновения сквозного тока в полномостовой схеме управления, мы ввели dead time, который позволяет транзисторам попеременно включаться и выключаться с небольшими задержками.
ШИМ-сигнал с введением dead time, который позволяет транзисторам попеременно включаться и выключаться с небольшими задержками
ШИМ-сигнал с dead time
Для настройки параметров контроллера мы создали кроссплатформенное приложение.

Разрешенные сложности проекта

Самым сложным оказалось спроектировать устройство с широкими диапазонами рабочего напряжения и тока, а также решить проблему перегрева контроллера. Для этого нам пришлось опробовать разные схемы и уделить особое внимание выбору компонентов и разводке печатной платы. В результате мы спроектировали несколько вариантов контроллера со следующими предельными параметрами: 10 A и 20 В, 30 A и 40 В, 60 A и 60 В, 150 A и 60 В.

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

  • Проект по разработке контроллера электродвигателя включал в себя проектирование электроники и написание прошивки. Мы создали принципиальную схему, подобрали компоненты и развели печатную плату.
  • На стадии низкоуровневого программирования наша команда написала специализированную прошивку и алгоритмы для эффективной работы контроллеров.
  • Мы протестировали прототипы, а также подготовили перечень компонентов (BOM) и Gerber-файлы для серийного производства изделия.
      Использованные технологии
      • Для создания принципиальной схемы и проектирования печатной платы использовался Altium Designer.
      • Прошивка была разработана с помощью STM Studio на C/C++.
      • Контроллеры выполнены на базе более старой версии МК STM32F4 и МК новой серии STM32G0.
      • В интегральной схеме мы использовали силовые транзисторы MOSFET и IGBT.
      • Устройство поддерживает передачу данных по аналоговым и цифровым линиям, а также по UART, CAN, RC, RS-485 и USB.
      • Прошивка разработана на базе FreeRTOS, что позволяет контроллерам реагировать на внешние события в реальном времени.
      • Устройство может работать в двухканальном режиме для управления щеточными ДПТ и в одноканальном режиме для управления бесщеточными ДПТ.
      • Мы создали кроссплатформенное десктопное приложение с помощью фреймворка Qt на языке C++.

      Итоги

      Мы выполнили комплексную разработку, включающую в себя проектирование аппаратной части и написание программного обеспечения. В результате мы создали контроллер для электродвигателей с множеством функций и несколькими режимами работы. Устройство может переключаться между режимами, что позволяет ему управлять щеточными и бесщеточными ДПТ, используя разомкнутую или замкнутую систему управления. Мы создали несколько версий одноканальных и двухканальных контроллеров с аналоговыми и цифровыми входами, а также интерфейсами UART, CAN, RC и RS-485.

      Контроллер может запускать и останавливать электродвигатели, менять направление вращения мотора, регулировать его скорость и крутящий момент, а также определять его положение. Устройство может использовать простые управляющие команды или режим с программируемым поведением. Последний позволяет запрограммировать контроллер на выполнение определенной последовательности действий.

      Контроллер поддерживает как автомобильное, так и дифференциальное управление. Особый режим позволяет контроллеру запускать и останавливать мотор плавно, что устраняет пробуксовку. Это помогает пользователям оценивать пройденную роботом дистанцию и определять его местоположение.

      Для безопасности контроллер оснащен системами защиты от перегрузки по току и напряжению, а также от перегрева.

      Грамотный подбор компонентов и разводка платы позволили нам создать рентабельное решение, которое обеспечивает стабильную и эффективную работу контроллера при широких диапазонах рабочего напряжения и тока.
      Диапазоны рабочего тока и напряжения для разных версий контроллеров ДПТ:
      10 A 20 В
      60 A 60 В
      30 A 40 В
      150 A 60 В