Шим в аналоговый сигнал. Исходные данные и основные требования. Принцип действия ШИМ

Как получить из шима постоянное напряжение, знает каждый начинающий электронщик. Всё просто, надо пропустить шим через фильтр низких частот(в простейшем случае RC цепочка) и на выходе фильтра получим постоянное напряжение, не так ли?

На самом деле, как мне кажется всё гораздо интереснее, при попытке получить из шима постоянное напряжение появляются следующие вопросы:

Как подобрать номиналы элементов фильтра?

Сгладиться ли шим полностью или останутся пульсации?

И как вообще это работает, ведь конденсатор заряжается и разряжается через один и тот же резистор и по идее если коэффециент заполнения будет меньше половины, напряжение на конденсаторе вообще будет равно нулю. Например, у нас коэффециент заполнения равен 30%, тогда 30% периода конденсатор будет заряжаться, а 70% разряжаться, через тот же резистор и в итоге на нём ничего не останется, по крайне мере можно так подумать.

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

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

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


Ух ты, что-то начинает проясняться, у нас появилась постоянная составляющая. То есть в наши рассуждения закралась ошибка и заключается она в том, что конденсатор заряжается от 0 до 63% за время равное R*C(T ), а разряжается он от 63% до 5% за время больше чем 2T , ниже графики, поясняющие это.

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

Теперь, когда мы нашли ошибку в наших размышлениях давайте, проанализируем что происходило, в первом эксперименте. Известно, что полная зарядка или разрядка конденсатора происходит за время равное 5T , а зарядка до 95% и разрядка до 5% примерно за 3T . Так как постоянная времени RC цепочки(которую мы использовали как ФНЧ) была мала, то за один период шима конденсатор успевал, почти полностью зарядиться и разрядиться.

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

Итак вывод, постоянная времени RC цепочки должна быть равна или больше периода шима, тогда за один период не будет происходить полный заряд-разряд конденсатора. Если же ещё на порядок увеличить постоянную времени RC цепочки, то увеличится время переходного процесса и уменьшаться пульсации. Время переходного процесса - это промежуток времени, за которое напряжение на конденсаторе изменится от 0 до некоторой постоянной величины. Данный вывод приведен для общего понимания.

Теперь примерно, понимая как вообще получают из шима постоянное напряжение, давайте перейдём к реальной задаче.
Необходимо на одном из входов ОУ формировать опорное напряжение с помощью шима и ФНЧ, логическая единица у шима составляет 3 вольта, частота шима 10KHz, допустимый уровень пульсаций 30 милливольт. Считаем, что входы ОУ ток не потребляют, в качестве ФНЧ возьмём фильтр первого порядка, реализованный на RC цепочке.

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


Итак для расчёта по-честному, давайте посчитаем во сколько раз надо ослабить сигнал, 3000/30 = 100 и переведём в децибелы, получается -40дб.

Известно, что крутизна спада у фильтра первого порядка составляет 20дб/декаду и ослабление сигнала на 40дб, соответствует увеличению частоты на две декады . (20дб/декаду - уменьшение амплитуды в 10 раз(20дб), при увеличении частоты в 10 раз(декада).


Зная, что частота среза фильтра должна быть на две декады(в 100 раз) меньше частоты шимы, можно её рассчитать 10KHz/100 = 100Hz .

Номиналы фильтра можно подобрать пользуясь известной формулой.


Сопротивление возьмем равным 16K, а конденсатор 100nF.
Давайте проверим, что получится на практике, соберём схему, изображённую ниже и подключимся к точкам один и два.



И нарисуем ЛAЧХ нашей схемы.

У данного генератора импульсная система питания, которая сильно шумит, это можно видеть во втором канале, но если присмотреться, то видно, что амплитуда пульсаций на осциллограмме примерно 40 милливольт, то есть немного отличается от расчётной, но это нормально так, как шим содержит высшие гармоники, которые вносят свой вклад и спад не везде равен 20дб/декаду, это видно на ЛАЧХ. Несмотря на
некоторые допущения, мне этот расчёт показался очень простым и понятным, ведь мы с помощью простых логических размышлений и школьных формул, решили такую интересную задачу. При решении данной задачи важно понять именно физический смысл, что мы по сути на АЧХ абстрактного фильтра находим точку, которая соответствует нужному подавлению сигнала, вторая координата точки - это частота, она должна быть равна частоте шима. Таким образом мы находим одну из точек АЧХ фильтра, пользуясь этой точкой находим частоту среза, а зная её мы находим номиналы фильтра, вот и всё.

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

На плате Arduino UNO их 14 (D0-D13). Они могут работать как входы, как выходы и как выходы с поддержкой ШИМ.

Конфигурация выводов как вход либо выход задается в void setup

pinMode (3, OUTPUT ); // Инициализируем цифровой pin 3 как вход pinMode (3, INPUT );

1) Цифровые выходы

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

// Устанавливает высокий уровень напряжения на 3 пине digitalWrite (3, HIGH ); // Устанавливает низкий уровень напряжения на 3 пине digitalWrite (3, LOW );

При высоком уровне выход работает как "источник питания" с напряжением 5 Вольт, при низком же уровне выход соединяется с землей МК. В двух этих режимах порт может выдать либо принять ток до 40мА. Это позволит подключать к плате Arduino маломощные нагрузки. При превышении тока в 40мА может выгореть либо отдельно порт, либо весь камень.

Пример на практике

В качестве первого примера выполним некий "Hello, World!" в тематике Arduino - помигаем светодиодом.

Плата Arduino уже имеет на своем борту встроенный светодиод подключенный к выводу D13. Можно использовать и его, но в качестве примера соберем первую схемку на макетной плате.

2) Цифровые выходы с поддержкой ШИМ

ШИМ (Широтно-Импульсная Модуляция) или PWM (Pulse Width Modulation) представляет собой программное, завязанное на внутренний таймер контроллера, чередование высокого и низкого уровней на порту контроллера с задаваемой скважностью. ШИМ это очень полезная штука, которая пригодится для регулирования яркости светодиодов либо управления скоростью вращения моторов ().

Не все цифровые выводы имеют поддержку ШИМ. У Arduino UNO их 6 (D3, D5, D6, D9, D10, D11). У других плат количество может отличаться. Смотрите в спецификации.

В программном коде скважность задается числом от 0(min) до 255(max)

// Устанавливает ШИМ сигнал на 3 пине со скважностью 150 analogWrite (3, 150);

Пример на практике

В качестве наглядного примера поупрявляем яркостью светодиода с помощью ШИМ модуляции.

Как уже говорилось, Arduino имеет на своем борту встроенный светодиод подключенный к выводу D13. Однако, этот вывод не имеет поддержки ШИМ. ШИМ поддержку имеет вывод D3. К нему, как и в предыдущем примере, мы подключим светодиод

Для эксперимента нам понадобятся:

Описание примера:

При установке высокого уровня (HIGH ), на выводе D3 появляется напряжение, которое протекая через светодиод (LED1) заставляет его светиться. При установке низкого уровня (LOW ), напряжение больше не подается и светодиод не горит. Резистор (R1) необходим для ограничения потребляемого светодиодом тока.

Скважность ШИМ сигнала, по сути своей, задает интервалы чередования высокого и низкого уровня, т.е. зажигает и гасит светодиод. Благодаря инертности нашего зрения, при частоте мерцания светодиода свыше определенного значения, наш мозг перестает воспринимать реально происходящие мерцания и воспринимает картинку как изменение яркости свечения.

Принципиальная схема остается такой же как и в первом примере.

На реальной макетной плате всё будет выглядеть следующим образом:

Примечания по сборке:

Вывод D3 соединяется с анодом светодиода, а катод уходит на резистор. У резистора нет полярности и его можно устанавливать любой стороной.

Пример программного кода:

// Присваиваем имя цифровому выводу 3 int led = 3; void setup () { // Инициализируем цифровой pin 3 как выход pinMode (led, OUTPUT ); } void loop () { /* Задаем значение ШИМ равное 25 (10% от max) Иными словами (1/10 времени HIGH, 9/10 LOW) Такое мигание находится в диапазоне воспринимаемой человеком. Глаз видит мигание */ analogWrite (led, 25); delay (4000); // Ждем 4 секунды /* Задаем значение ШИМ равное 150 (60% от max) Иными словами (6/10 времени HIGH, 4/10 LOW) Частота смены картинки велика, выше воспринимаемой глазом человека, но не максимальна Глаз воспринимает как постоянно горящий светодиод с определенной яркостью */ analogWrite (led, 150); delay (4000); /* Задаем значение ШИМ равное 255 (100% от max) Иными словами (10/10 времени HIGH, 0/10 LOW) При максимальном значении ШИМ светодиод горит постоянно */ analogWrite (led, 255); delay (4000); // И для финального примера прогоним значения ШИМ от min до max for (int i = 0; i < 255; i++) { analogWrite (led, i); delay (50); } for (int i = 255; i > 0; i--) { analogWrite (led, i); delay (50); } }

3) Цифровые входы

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

// Считываем значение с цифрового порта 4 digitalRead (4);

В ответ получаем значения HIGH или LOW .

Если к считываемому порту ничего не подключено, то функция digitalRead () может беспорядочно возвращать значения HIGH или LOW. Во избежание ложных срабатываний, входы необходимо подтягивать резистором 10-20кОм. При замыкании кнопки на землю - подтягивать к питанию, при замыкании на питание - к земле.

ШИМ или PWM (англ. Pulse-Width Modulation) — широтно-импульсная модуляция — это метод предназначен для контроля величины напряжения и тока. Действие ШИМ заключается в изменении ширины импульса постоянной амплитуды и постоянной частотой.

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

Принцип действия ШИМ

Принцип действия ШИМ, как указывает на это само название, заключается в изменении ширины импульса сигнала. При использовании метода широтно-импульсной модуляции, частота сигнала и амплитуда остаются постоянными. Самым важным параметром сигнала ШИМ является коэффициент заполнения, который можно определить по следующей формуле:

Также можно отметить, что сумма времени высокого и низкого сигнала определяет период сигнала:

  • Ton — время высокого уровня
  • Toff — время низкого уровня
  • T — период сигнала

Время высокого уровня и время низкого уровня сигнала показано на нижнем рисунке. Напряжение U1- это состояния высокого уровня сигнала, то есть его амплитуда.

На следующем рисунке представлен пример сигнала ШИМ с определенным временным интервалом высокого и низкого уровня.

Расчет коэффициента заполнения ШИМ

Расчет коэффициента заполнения ШИМ на примере:

Для расчета процентного коэффициента заполнения необходимо выполнить аналогичные вычисления, а результат умножить на 100%:

Как следует из расчета, на данном примере, сигнал (высокого уровня) характеризуется заполнением, равным 0,357 или иначе 37,5%. Коэффициент заполнения является абстрактным значением.

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

Значение T, в нашем примере, следует взять уже в секундах для того, чтобы совпали единицы в формуле. Поскольку, формула частоты имеет вид 1/сек, поэтому 800ms переведем в 0,8 сек.

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

Для вычисления среднего значения напряжения ШИМ необходимо знать коэффициент заполнения, поскольку среднее значение напряжения является произведением коэффициента заполнения и амплитуды напряжения сигнала.
Для примера, коэффициент заполнения был равен 37,5% (0,357) и амплитуда напряжения U1 = 12В даст среднее напряжение Uср:

В этом случае среднее напряжение сигнала ШИМ составляет 4,5 В.

ШИМ дает очень простую возможность понижать напряжение в диапазоне от напряжения питания U1 и до 0. Это можно использовать, например, для , или скорости вращения двигателя DC (постоянного тока), питающиеся от величины среднего напряжения.

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

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



Пример управления светодиодом при помощи ШИМ.

Сигнал ШИМ поступает на базу транзистора VT1 через резистор R1, иначе говоря, транзистор VT1 с изменением сигнала то включается, то выключается. Это подобно ситуации, при которой транзистор можно заменить обычным выключателем, как показано ниже:


Когда переключатель замкнут, светодиод питается через резистор R2 (ограничивающий ток) напряжением 12В. А когда переключатель разомкнут, цепь прерывается, и светодиод гаснет. Такие переключения с малой частотой в результате дадут .

Однако, если необходимо управлять интенсивностью свечения светодиодов необходимо увеличить частоту сигнала ШИМ, так, чтобы обмануть человеческий глаз. Теоретически переключения с частотой 50 Гц уже не незаметны для человеческого глаза, что в результате дает эффект уменьшения яркости свечения светодиода.

Чем меньше коэффициент заполнения, тем слабее будет светиться светодиод, поскольку во время одного периода светодиод будет гореть меньшее время.

Такой же принцип и подобную схему можно использовать и для . В случае двигателя необходимо, однако, применять более высокую частоту переключений (выше 15-20 кГц) по двум причинам.

Первая из них касается звука, какой может издавать двигатель (неприятный писк). Частота 15-20 кГц является теоретической границей слышимости человеческого уха, поэтому частоты выше этой границы будут неслышны.

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

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

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

Управляя , следует помнить о применении диода для защиты транзистор VТ1 от индукционных всплесков, появляющимся в момент выключения транзистора. Благодаря использованию диода, индукционный импульс разряжается через него и внутреннее сопротивление двигателя, защищая тем самым транзистор.



Схема системы управления скоростью вращения двигателя постоянного тока с защитным диодом.

Для сглаживания всплесков питания между клеммами двигателя, можно подключить к ним параллельно конденсатор небольшой емкости (100nF), который будет стабилизировать напряжение между последовательными переключениями транзистора. Это также снизит помехи, создаваемые частыми переключениями транзистора VT1.

АМн · ФМн · КАМ · ЧМн · GMSK
OFDM · COFDM · TCM Импульсная модуляция АИМ · ДМ · ИКМ · ΣΔ · ШИМ · ЧИМ · ФИМ Расширение спектра FHSS · DSSS См. также: Демодуляция

Широтно-импульсная модуляция (ШИМ, англ. Pulse-width modulation (PWM) ) - приближение желаемого сигнала (многоуровневого или непрерывного) к действительным бинарным сигналам (с двумя уровнями - вкл /выкл ), так, что, в среднем, за некоторый отрезок времени, их значения равны. Формально, это можно записать так:

,

где x (t ) - желаемый входной сигнал в пределе от t1 до t2 , а ∆T i - продолжительность i -го ШИМ импульса, каждого с амплитудой A . ∆T i подбирается таким образом, что суммарные площади (энергии) обеих величин приблизительно равны за достаточно продолжительный промежуток времени, равны также и средние значения величин за период:

.

Управляемыми "уровнями", как правило, являются параметры питания силовой установки, например, напряжение импульсных преобразователей /регуляторов постоянного напряжения/ или скорость электродвигателя. Для импульсных источников x (t ) = U const стабилизации.

Основной причиной внедрения ШИМ является сложность обеспечения произвольным Напряжение_(электрическое). Есть некое базовое постоянное напряжение питания (в сети, от аккумуляторов и пр.) и на его основе нужно получить более низкое произвольное и уже им запитывать электродвигатели или иное оборудование. Самый простой вариант - делитель напряжения , но он обладает пониженным КПД, повышенным выделением тепла и расходом энергии. Другой вариант - транзисторная схема. Она позволяет регулировать напряжение без использования механики. Проблема в том, что транзисторы греются больше всего в полуоткрытом состоянии (50%). И если с таким КПД ещё "можно жить", то выделение тепла, особенно в промышленных масштабах сводит всю идею на нет. Именно поэтому было решено использовать транзисторную схему, но только в пограничных состояниях (вкл/выкл), а полученный выход сглаживать LC-цепочкой (фильтром) при необходимости. Такой подход весьма энергоэффективен. ШИМ широко применяется повсеместно. Если вы читаете эту статью на LCD-мониторе (телефоне/КПК/... с LCD-подсветкой), то яркость подсветки регулируется ШИМ. На старых мониторах можно убавить яркость и услышать как ШИМ начинает пищать (очень тихий писк частотой в несколько килогерц). Так же "пищат" плавно мигающие LED-лампочки, например, в ноутбуках. Очень хорошо слышно пищание ШИМ по ночам в тишине.

В качестве ШИМ можно использовать даже COM-порт. Т.к. 0 передаётся как 0 0000 0000 1 (8 бит данных + старт/стоп), а 255 как 0 1111 1111 1, то диапазон выходных напряжений - 10-90% с шагом в 10%.

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

Применение

ШИМ использует транзисторы (могут быть и др. элементы) не в линейном, а в ключевом режиме, то есть транзистор всё время или разомкнут (выключен), или замкнут (находится в состоянии насыщения). В первом случае транзистор имеет почти бесконечное сопротивление, поэтому ток в цепи почти не течёт, и, хотя всё напряжение питания падает на транзисторе, то есть КПД=0 %, в абсолютном выражении выделяемая на транзисторе мощность равна нулю. Во втором случае сопротивление транзистора крайне мало, и, следовательно, падение напряжения на нём близко к нулю - выделяемая мощность так же мала.

Принцип работы ШИМ

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

Генерируется аналоговым компаратором , на отрицательный вход которого подаётся опорный сигнал в виде «пилы» или «треугольника», а на положительный - собственно сам модулируемый непрерывный аналоговый сигнал. Частота импульсов соответствует частоте «зубьев» пилы. Ту часть периода, когда входной сигнал выше опорного, на выходе получается единица, ниже - нуль.

В цифровой технике, выходы которой могут принимать только одно из двух значений, приближение желаемого среднего уровня выхода при помощи ШИМ является совершенно естественным. Схема настолько же проста: пилообразный сигнал генерируется N -битным счётчиком. Цифровые устройства (ЦШИП) работают на фиксированной частоте, обычно намного превышающей реакцию управляемых установок (передискретизация ). В периоды между фронтами тактовых импульсов, выход ЦШИП остаётся стабильным, на нём действует либо низкий уровень либо высокий, в зависимости от выхода цифрового компаратора, сравнивающего значение счётчика с уровнем приближаемого цифрового сигнала V (n ). Выход за много тактов можно трактовать как череду импульсов с двумя возможными значениями 0 и 1, сменяющими друг-друга каждый такт Т . Частота появления единичных импульсов получается пропорциональной уровню приближаемого сигнала ~V (n ). Единицы, следующие одна за другой, формируют контур одного, более широкого импульса. Длительности полученных импульсов переменной ширины ~V (n ), кратны периоду тактирования T , а частота равна 1/(T *2 N ). Низкая частота означает длительные, относительно T , периоды постоянства сигнала одного уровня, что даёт невысокую равномерность распределения импульсов.

Описанная цифровая схема генерации подпадает под определение однобитной (двухуровневой) импульсно-кодовой модуляции (ИКМ ). 1-битную ИКМ можно рассматривать в терминах ШИМ как серию импульсов частотой 1/T и шириной 0 либо T . Добиться усреднения за менее короткий промежуток времени позволяет имеющаяся передискретизация. Высоким качеством обладает такая разновидность однобитной ИКМ, как импульсно-плотностная модуляция (pulse density modulation ), которая ещё именуется импульсно-частотной модуляцией .

Восстанавливается непрерывный аналоговый сигнал арифметическим усреднением импульсов за много периодов при помощи простейшего фильтра низких частот. Хотя обычно даже этого не требуется, так как электромеханические составляющие привода обладают индуктивностью, а объект управления (ОУ) - инерцией, импульсы с выхода ШИП сглаживаются и ОУ, при достаточной частоте ШИМ-сигнала, ведёт себя как при управлении обычным аналоговым сигналом.

См. также

  • Векторная модуляция - векторная широтно-импульсная модуляция, используемая в силовой электронике.
  • SACD - формат аудиодисков, использующий широтно-импульсную модуляцию звукового сигнала.