Перейти к основному содержимому

PWM-управление (ШИМ)

ШИМ-команда от контроллера и отдельный силовой путь к моторам робота

Мотору мобильного робота редко достаточно двух команд: «выключен» и «работает на полной мощности». Для плавного старта, поворота и удержания приемлемой скорости нужна промежуточная команда. Её удобно задавать последовательностью коротких включений и выключений — широтно-импульсной модуляцией, или PWM.

Коротко

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

Зачем это нужно

Представим двухколёсного робота. На прямой оба мотора получают близкие команды. Перед поворотом контроллер уменьшает PWM слева, оставляя справа прежнее значение. Разность скоростей разворачивает шасси без отдельного рулевого механизма. Та же техника помогает мягко тронуться: команда растёт ступенями, поэтому механика не получает мгновенный рывок от нуля до полного питания.

PWM встречается не только в движении. Им регулируют мощность нагревателя, яркость светодиода и ток катушки, если силовой каскад рассчитан на такую коммутацию. Во всех случаях микроконтроллер формирует командный сигнал, а энергию нагрузке отдаёт отдельный драйвер.

Подключать мотор к PWM-выводу микроконтроллера напрямую нельзя. Вывод рассчитан на логический сигнал, а мотору нужен существенно больший и меняющийся ток. Кроме того, обмотка — индуктивная нагрузка: после выключения ключей ток не исчезает мгновенно. Без предусмотренного пути рециркуляции возникают опасные выбросы напряжения.

Примеры устройств

Примеры устройств, где встречается PWM-управление мотором

PWM встречается в разных местах силовой системы. Иногда контроллер подаёт PWM прямо на вход DC-драйвера, иногда драйвер сам импульсно регулирует ток обмотки, а у ESC похожий по форме командный импульс вообще не является фазным питанием мотора.

УстройствоГде используется PWMЧто не стоит путать
TB6612FNGвход PWM задаёт среднее воздействие на DC-моторпроцент заполнения не равен проценту скорости робота
DRV8833мост переключает ток и задаёт пути рециркуляциипауза PWM не означает, что ток обмотки исчез мгновенно
VNH5019мощный DC-мост принимает команду управлениябольший ток резко увеличивает нагрев силового каскада
A4988внутренний chopper удерживает ток фазы шагового мотораэто не та же команда, что analogWrite() на Arduino
ESCхоббийная команда может передаваться длительностью импульсакомандный импульс не является одним из трёх фазных проводов BLDC

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

Главная идея

Один период PWM состоит из двух участков:

включено t_ON + выключено t_OFF = период T

Коэффициент заполнения D показывает долю включённого времени:

D = t_ON / T
f = 1 / T

Здесь f — частота повторения периодов. Например, D = 0,25 означает, что команда активна четверть периода. Это не означает автоматически «четверть максимальной скорости»: между командой, током, моментом и оборотами есть мотор, драйвер, источник питания и механическая нагрузка.

Коэффициент заполненияЧто делает логическая командаВозможное состояние привода
0%активного участка нетостанов, свободный ход или торможение — зависит от входов драйвера
25%короткое включение, длинная паузанебольшой средний момент; мотор может ещё не тронуться
50%время включения равно времени паузыпромежуточное воздействие, но не гарантированно половина оборотов
100%команда активна весь периодпостоянное состояние моста без PWM-пауз

Импульс команды и ток мотора — не одно и то же

Раздельные пути PWM-команды, питания и рециркуляции тока в H-мосте

Синий прямоугольный сигнал на входе драйвера несёт мало энергии. Он лишь сообщает силовым ключам, когда менять состояние. Ток мотора идёт другим путём:

источник питания -> силовые ключи драйвера -> обмотка мотора -> силовые ключи -> общий провод источника

Это разделение полезно держать в голове при отладке. Осциллограф на PWM-входе может показывать идеальные импульсы, хотя мотор не вращается из-за отсутствующего силового питания, плохого контакта на выходе, сработавшей защиты или недостаточного тока источника. И наоборот: силовая цепь может быть исправна, но драйвер останется в режиме сна, если не активирован соответствующий вход.

У некоторых драйверов PWM подают на отдельный вход разрешения, а направление задают другим входом. У других два логических входа непосредственно выбирают состояния половин H-моста, и PWM подают на один из них. Таблицу состояний нельзя переносить с одной микросхемы на другую: её берут из datasheet выбранного драйвера.

PWM и среднее напряжение

Для идеального ключа и установившегося режима часто используют первое приближение U_ср ≈ D × U_пит. Оно помогает оценить тенденцию, но не учитывает падение напряжения на ключах, рециркуляцию тока, противо-ЭДС мотора, пульсации и просадку источника.

Что происходит во время паузы

Обмотка мотора запасает энергию в магнитном поле. Когда активная диагональ H-моста выключается, уже текущий ток стремится продолжиться в прежнем направлении. Драйвер должен дать ему замкнутый безопасный путь. Такой ток называют рециркулирующим, а варианты его уменьшения — режимами спада тока.

Пауза PWM может быть реализована по-разному:

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

Конкретные названия и токовые пути зависят от архитектуры микросхемы. Нельзя изображать паузу как простой «обрыв провода»: для индуктивной нагрузки это скрывает самую важную часть работы. Нельзя также произвольно включать два ключа одной стойки H-моста — такое состояние может замкнуть питание на землю.

Почему проценты PWM не равны процентам скорости

Скорость устанавливается там, где электромагнитный момент уравновешивает нагрузку и потери. На неё влияют:

  • напряжение силовой шины и его просадка при старте;
  • сопротивление обмотки и падение напряжения на драйвере;
  • масса робота, трение, уклон, диаметр колёс и передаточное отношение;
  • противо-ЭДС, которая растёт с оборотами;
  • минимальный момент, необходимый для преодоления трения покоя;
  • выбранный режим спада тока и частота PWM;
  • нагрев обмотки, ключей и соединений.

Поэтому один и тот же D = 40% может медленно вращать поднятое колесо и не сдвинуть робота на ковре. Два номинально одинаковых мотора тоже могут иметь разные обороты при одной команде. Если роботу нужна заданная скорость, энкодер измеряет фактическое движение, а регулятор изменяет PWM по ошибке. Это уже замкнутый контур, в отличие от подачи фиксированного значения без измерения.

Пример: прямой ход двухколёсного робота

Контроллер выдаёт одинаковые начальные команды, но робот уходит вправо. Энкодеры показывают, что левое колесо проходит больше импульсов за тот же интервал. Программа немного уменьшает PWM слева или увеличивает справа. Она корректирует не «напряжение в процентах», а ошибку измеренной скорости.

Пример: конвейер с переменной нагрузкой

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

Как выбрать частоту

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

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

  1. Найти рекомендации и ограничения в datasheet драйвера и мотора.
  2. Проверить, какую частоту и разрядность реально формирует выбранный таймер контроллера.
  3. Начать испытание с ограниченным током и ненагруженным механизмом.
  4. Измерить ток, напряжение на драйвере и температуру под ожидаемой нагрузкой.
  5. Проверить поведение при старте, торможении и заклинивании по безопасной процедуре.

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

Команда PWM в программе

В среде Arduino функция analogWrite() на поддерживаемых выводах формирует PWM, но диапазон, частота и даже наличие настоящего аналогового выхода зависят от платы и её ядра. Для абстрактного двухвходового драйвера идея выглядит так:

const int pwmPin = 9;
const int directionPin = 8;

void setMotor(bool forward, int command) {
digitalWrite(directionPin, forward ? HIGH : LOW);
analogWrite(pwmPin, constrain(command, 0, 255));
}

Этот фрагмент не является универсальной распиновкой. До загрузки программы нужно сопоставить pwmPin, directionPin, активные уровни, режим сна и таблицу состояний с документацией конкретной платы и драйвера. При смене направления безопасный алгоритм часто сначала уменьшает команду, дожидается снижения тока и только затем меняет состояние моста.

Что запомнить про PWM-привод

ВопросКороткий ориентир
Где формируется PWM?в таймере контроллера или специализированной логике
Куда он приходит?на логический вход драйвера, а не прямо в мотор
Откуда берётся ток мотора?из силового источника через ключи драйвера
Что задаёт коэффициент заполнения?долю активного времени в периоде
Что он не гарантирует?точные обороты, ток или момент без измерения
Куда девается ток в паузе?течёт по предусмотренному пути рециркуляции и спадает по правилам драйвера
Откуда брать частоту?из требований системы и документации компонентов

Практика

Задание 1. Измерение команды

Настрой генератор или контроллер на три разных коэффициента заполнения при одной частоте. Зарисуйте логические осциллограммы и вычислите D по измеренным t_ON и T. Мотор пока не подключайте.

Задание 2. Поиск минимального старта

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

Задание 3. Нагрузка и скорость

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

Задание 4. Datasheet-аудит

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

Проверьте себя

  1. Чем PWM-команда отличается от тока, текущего через мотор?
  2. Как связаны период, частота и коэффициент заполнения?
  3. Почему 50% PWM не гарантирует половину максимальной скорости?
  4. Зачем индуктивному току нужен путь после выключения активных ключей?
  5. Чем свободный ход отличается от электрического торможения?
  6. Какие потери могут вырасти при слишком высокой частоте PWM?
  7. Почему таблицу логических входов нельзя переносить между разными драйверами?
  8. Как энкодер превращает управление скоростью из разомкнутого в замкнутый контур?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

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

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • PWM / ШИМ — способ управления, при котором меняют длительность активного участка повторяющихся импульсов.
  • Период T — время одного полного цикла PWM.
  • Частота f — число периодов в секунду; f = 1/T.
  • Коэффициент заполнения D — отношение времени активного сигнала к периоду.
  • Рециркуляция тока — продолжение тока обмотки по безопасному замкнутому пути после переключения ключей.
  • Режим спада — способ, которым драйвер уменьшает ток индуктивной нагрузки в паузе.
  • Противо-ЭДС — напряжение, возникающее во вращающемся моторе и противодействующее приложенному напряжению.
  • Разомкнутый контур — управление без измерения фактического результата.
  • Замкнутый контур — управление с обратной связью по скорости, положению или другой величине.

Связанные темы

Источники