Embedded HandbookПриложения
Все разделы › VIII. Электроника вокруг микроконтроллера
STM32F103, STM32F407, STM32G474 · уровень средний · 8 мин чтения
Открыть в интерактивном справочнике

57. ШИМ в силовой электронике

Микроконтроллер умеет только включать и выключать. Чтобы получить «половину», он включает половину времени. Из этой простой идеи вырастает всё: регулировка яркости, обороты двигателя, температура паяльника, преобразователи напряжения.

Раздел про то, что нужно понимать, когда ШИМ управляет не светодиодом, а мощностью: чем среднее значение отличается от действующего, как частота разменивается на разрешение, почему шкала яркости кажется неравномерной и что происходит с током в обмотке двигателя.

Механика самих таймеров — в разделе 13, высокое разрешение — в разделе 46, ключи — в разделе 52.

Как это называется в документации

Оригинал Перевод
duty cycle коэффициент заполнения, скважность
average / RMS value среднее / действующее значение
resolution разрешение (число различимых уровней)
gamma correction гамма-коррекция
flicker мерцание
current ripple пульсации тока
electrical time constant электрическая постоянная времени
dead time защитный интервал
half-bridge, full bridge полумост, полный мост
complementary outputs комплементарные выходы
centre-aligned PWM ШИМ с выравниванием по центру

57.1 Частота и разрешение делят одну тактовую

Разрешение ШИМ — это число тактов таймера, укладывающихся в период. Отсюда прямой размен: чем выше частота, тем грубее шаг.

Частота ШИМ Шагов при таймере 72 МГц Разрядов
1 кГц 36 000 (делитель 2) 15,1
20 кГц 3600 11,8
100 кГц 720 9,5
500 кГц 144 7,2

Потолок задаёт и разрядность счётчика: таймеры F103 16-битные, и в период помещается не больше 65 536 шагов. 72 000 не влезают — на 1 кГц нужен делитель 2.

На 20 кГц (обычная частота для двигателей — выше слышимого диапазона) получается 3600 шагов: одиннадцати разрядов хватает, двенадцати уже нет. На 500 кГц не хватает даже восьми — вот почему для преобразователей питания делают отдельный таймер высокого разрешения (раздел 46.1).

Как выбирают частоту:


57.2 Среднее и действующее — разные величины

Это первое, на чём ошибаются.

Скважность Среднее Действующее
0,25 3,00 В 6,00 В
0,50 6,00 В 8,49 В
1,00 12,00 В 12,00 В

Действующее значение равно U · √D — на половине оно больше среднего в 1,414 раза.

Нагрев зависит от действующего. Нагреватель 10 Ом при скважности 0,5 от 12 В получит 7,2 Вт, а не 3,6, как получится, если посчитать по среднему. Ошибка ровно вдвое.

Полезная проверка: на полной мощности нагреватель берёт 14,4 Вт, значит скважность 0,5 даёт ровно 50 % мощности. Для чисто резистивной нагрузки мощность пропорциональна скважности напрямую — но получается это только через действующее значение, а не через среднее.

Где что применимо:

Нагрузка Что важно
нагреватель, лампа накаливания действующее (мощность)
светодиод с резистором среднее (ток задан резистором)
двигатель среднее (момент от среднего тока)
после RC-фильтра или дросселя среднее (переменная составляющая сглажена)

Среднее и действующее значение ШИМ от 12 В по скважности; нагреватель 10 Ом при скважности 0,5


57.3 Светодиод: яркость и глаз

У светодиода ток задан резистором, поэтому яркость пропорциональна среднему току: скважность 0,25 — 2,5 мА, 0,5 — 5 мА, 1,0 — 10 мА.

Но глаз воспринимает яркость нелинейно, примерно как степень 1/2,2:

Скважность Выглядит как
0,10 35 %
0,25 53 %
0,50 73 %

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

Лечится гамма-коррекцией: чтобы получить «половину яркости на вид», нужна скважность 0,218 — код 891 из 4095, а не 2048. На практике берут заранее посчитанную таблицу из 32–256 значений: это и быстрее, и позволяет подогнать шкалу под конкретный светодиод.


57.4 Мерцание

Глаз не замечает мерцания выше примерно 60 Гц при спокойном взгляде. Но это не значит, что 100 Гц достаточно:

Практическая граница — от 1 кГц, и это дёшево: разрешение на 1 кГц всё равно избыточное (36 000 шагов).

Отдельный случай — динамическая индикация: четыре разряда, переключаемых по очереди с общей частотой 1 кГц, дают каждому 250 Гц и только 25 % времени свечения. Яркость падает вчетверо; компенсируют увеличением импульсного тока, но не выше того, что позволяет светодиод в импульсном режиме.


57.5 Двигатель: ток не следует за напряжением

Обмотка — это индуктивность, и ток в ней меняется не мгновенно. У двигателя с индуктивностью 1 мГн и сопротивлением 2 Ом электрическая постоянная времени — 500 мкс, то есть десять периодов ШИМ на 20 кГц. Ток просто не успевает заметно измениться за период; он течёт почти ровно, с небольшими пульсациями.

При скважности 0,5 и 20 кГц пульсации составляют 150 мА размахом при среднем токе 3 А — 5 %, вполне приемлемо.

Понизим частоту до 1 кГц — период станет вдвое длиннее постоянной времени, и ток уже не течёт ровно: он мечется между 1,6 и 4,4 А, размах 2,8 А — почти сравнялся со средним. Формула U·D·(1−D)/(L·f) дала бы 3 А: она верна, только пока период много меньше постоянной времени. До нуля ток не падает, но момент двигателя следует за током — двигатель загудит на частоте ШИМ, а нагрев обмотки, который считают по действующему току, при той же полезной работе вырастет примерно на 8 %.

Ток обмотки двигателя под ШИМ 20 кГц и 1 кГц на экране осциллографа

Отсюда правило для индуктивной нагрузки: период ШИМ должен быть много меньше электрической постоянной времени. Раз в десять — хорошо.

Обязательный спутник — путь для тока в паузе: гасящий диод при одиночном ключе (раздел 51.2) или второй ключ полумоста.


57.6 Полумост и защитный интервал

Когда нагрузку нужно питать в обе стороны (двигатель вперёд-назад, преобразователь), одним ключом не обойтись: нужен полумост из верхнего и нижнего, а чаще полный мост из четырёх.

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

Он не бесплатен. За период интервал вставляется дважды:

Частота Два интервала по 500 нс
1 кГц 0,1 % периода
20 кГц 2,0 %
100 кГц 10 %

На 100 кГц десятая часть периода уходит впустую, и вблизи нулевой скважности появляется зона нечувствительности. Кроме того, интервал искажает выходное напряжение: при 20 кГц это 120 мВ из 12 В, около 1 %. Регулятор (раздел 47) такую ошибку компенсирует, но знать о ней надо — особенно при управлении двигателем на малых оборотах, где она даёт рывки.

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


57.7 Выравнивание по центру

Обычный ШИМ начинает импульс в начале периода (выравнивание по фронту). ШИМ с выравниванием по центру строит импульс симметрично относительно середины: счётчик считает вверх и вниз.

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


57.8 Грабли

Нагреватель греет вдвое сильнее расчёта. Мощность посчитана по среднему напряжению вместо действующего.

Шкала яркости неравномерная. Нет гамма-коррекции.

Светодиоды мерцают на видео. Частота ШИМ ниже 1 кГц.

Двигатель гудит. Частота в слышимом диапазоне либо пульсации тока сравнимы со средним током.

Двигатель греется, а момента нет. Прерывистый ток из-за низкой частоты ШИМ.

Мост сгорел при первом же включении. Нет защитного интервала или он меньше времени выключения ключа.

На малых оборотах рывки. Зона нечувствительности от защитного интервала.

Разрешения не хватает. Частота ШИМ слишком высока для тактовой таймера — снизить частоту, поднять тактовую или взять таймер высокого разрешения.

Измерение тока АЦП даёт мусор. Преобразование запускается в момент переключения ключа; привязать запуск к середине импульса.


57.9 Итоги

Дальше: раздел 57а «Двигатели: коллекторный, шаговый, бесколлекторный» — H-мост, шаги и микрошаги, коммутация по датчикам Холла, TIM1.

Открыть в интерактивном справочнике