Что такое инверторный ключ
Зачем нужны инверторные бытовые приборы?
Содержание
Содержание
Инвертор – функциональный блок, который умеет регулировать уровень выходного напряжения, тем самым плавно управляя частотой вращения электродвигателей в стиральных машинах, в компрессорах холодильников или кондиционеров и так далее. Устройства, которые используют указанные преобразования энергии экономны, тихо работают, компактны. По этой причине производители бытовой техники, промышленного оборудования, профессиональных инструментов все чаще выпускают изделия, в которых используются инверторные технологии.
Техника
В начале 2 000-х годов наладили массовый выпуск микросхем, обеспечивающих преобразование напряжения с помощью широтно-импульсной модуляции (ШИМ). Частота напряжения в вашей розетке 50 Гц. Модуль с ШИМ изменяет этот параметр в частоту выше 20 000 Гц. За счет этого в 10 и более раз уменьшились габариты и вес трансформаторов, они стали дешевле. Потребитель получил миниатюрные, легкие зарядные устройства, блоки бесперебойного питания для компьютеров и другой техники. Это были первые изделия для бытовой техники, в которых инженеры использовали инверторные технологии – микросхемы с ШИМ.
В современном оборудовании инверторные блоки применяют все чаще, например:
Хозяин, поставивший у себя дома микроволновку, кондиционер, холодильник и другие бытовые приборы с инверторными технологиями экономит от 15 до 45% электроэнергии. Кроме этого, уменьшаются затраты на блоки бесперебойного питания сети, стабилизацию напряжения, увеличивается срок работы бытовых приборов, котельного и насосного оборудования.
Особенности инверторов
Компрессор – основная деталь кондиционеров, холодильников, систем подачи воздуха в пневмоинструменты. Привычные нам компрессоры работают с паузами. Устройство либо сжимает фреон, либо система обесточена. Каждый пуск сопровождается повышенным расходом энергии.
Компрессор с инверторным блоком работает непрерывно. При этом:
В холодильниках и кондиционерах работают не только компрессор, но и вентиляторы. Использование инверторных технологий относится и к этим элементам техники. Таким образом, эффект экономии достигается за счет непрерывной работы всех движущихся частей.
Инверторные стиральные машины
Чистое белье – стандарт в быту. Инверторная техника для стирки белья обеспечивает привычные нам удобства, потребляя меньше ресурсов.
В стиральной машине с инвертором используется трехфазный двигатель, который обеспечивает:
Стиральные машины с инверторным двигателем намного компактнее привычных нам устройств.
Если учесть совместимость современного оборудования с другими приборами и жителями в доме, то проблем не возникает. Напротив, прогрессивные решения с инверторными технологиями приводят к экономии затрат на электроэнергию, улучшают климатические характеристики в доме, свойства приготовленных блюд. Бытовая техника с ШИМ-регулированием надежна, имеет продолжительный срок службы, не требует дополнительных затрат при подключении.
Что такое инвертор напряжения, как он работает, применение инвертора
Для преобразования постоянного тока в переменный применяют специальные электронные силовые устройства, называемые инверторами. Чаще всего инвертор преобразует постоянное напряжение одной величины в переменное напряжение другой величины.
Инверторы применяют как в качестве самостоятельных устройств, так и в составе систем бесперебойного электроснабжения (UPS).
В составе источников бесперебойного питания (ИБП), инверторы позволяют, например, получить непрерывное электроснабжение компьютерных систем, и если в сети напряжение внезапно пропадет, то инвертор мгновенно начнет питать компьютер энергией, получаемой от резервного аккумулятора. По крайней мере, пользователь успеет корректно завершить работу и выключить компьютер.
В более крупных устройствах бесперебойного электроснабжения применяются более мощные инверторы с аккумуляторами значительной емкости, способные автономно питать потребители часами, независимо от сети, а когда сеть снова вернется в нормальное состояние, ИБП автоматически переключит потребители напрямую к сети, а аккумуляторы начнут заряжаться.
В современных технологиях преобразования электроэнергии инвертор может выступать лишь промежуточным звеном, где его функция — преобразовать напряжение путем трансформации на высокой частоте (десятки и сотни килогерц). Благо, на сегодняшний день решить такую задачу можно легко, ведь для разработки и конструирования инверторов доступны как полупроводниковые ключи, способные выдерживать токи в сотни ампер, так и магнитопроводы необходимых параметров, и специально разработанные для инверторов электронные микроконтроллеры (включая резонансные).
Требования к инверторам, как и к другим силовым устройствам, включают: высокий КПД, надежность, как можно меньшие габаритные размеры и вес. Также необходимо чтобы инвертор выдерживал допустимый уровень высших гармоник во входном напряжении, и не создавал неприемлемо сильных импульсных помех для потребителей.
В системах с «зелеными» источниками электроэнергии (солнечные батареи, ветряки) для подачи электроэнергии напрямую в общую сеть, применяют Grid-tie – инверторы, способные работать синхронно с промышленной сетью
В процессе работы инвертора напряжения, источник постоянного напряжения периодически подключается к цепи нагрузки с чередованием полярности, при этом частота подключений и их продолжительность формируется управляющим сигналом, который поступает от контроллера.
Контроллер в инверторе обычно выполняет несколько функций: регулировка выходного напряжения, синхронизация работы полупроводниковых ключей, защита схемы от перегрузки. Принципиально инверторы делятся на: автономные инверторы (инверторы тока и инверторы напряжения) и зависимые инверторы (ведомые сетью, Grid-tie и т.д.)
Полупроводниковые ключи инвертора управляются контроллером, имеют обратные шунтирующие диоды. Напряжение на выходе инвертора, в зависимости от текущей мощности нагрузки, регулируется автоматическим изменением ширины импульса в блоке высокочастотного преобразователя, в простейшем случае это ШИМ (широтно-импульсная модуляция).
Полуволны выходного низкочастотного напряжения должны быть симметричными, чтобы цепи нагрузки ни в коем случае не получили значительной постоянной составляющей (для трансформаторов это особенно опасно), для этого ширина импульса НЧ-блока (в простейшем случае) делается постоянной.
В управлении выходными ключами инвертора, применяется алгоритм, обеспечивающий последовательную смену структур силовой цепи: прямая, короткозамкнутая, инверсная.
Так или иначе, величина мгновенной мощности нагрузки на выходе инвертора имеет характер пульсаций с удвоенной частотой, поэтому первичный источник должен допускать такой режим работы, когда через него текут пульсирующие токи, и выдерживать соответствующий уровень помех (на входе инвертора).
Если первые инверторы были исключительно механическими, то сегодня есть множество вариантов схем инверторов на полупроводниковой базе, а типовых схем всего три: мостовая без трансформатора, двухтактная с нулевым выводом трансформатора, мостовая с трансформатором.
Мостовая схема без трансформатора встречается в устройствах бесперебойного питания мощностью от 500 ВА и в автомобильных инверторах. Двухтактная схема с нулевым выводом трансформатора используется в маломощных ИБП (для компьютеров) мощностью до 500 ВА, где напряжение на резервном аккумуляторе составляет 12 или 24 вольта. Мостовая схема с трансформатором применяется в мощных источниках бесперебойного питания (на единицы и десятки кВА).
Форма напряжения на выходе
В инверторах напряжения с прямоугольной формой на выходе, группа ключей с обратными диодами коммутируется так, чтобы получить на нагрузке переменное напряжение и обеспечить контролируемый режим циркуляции в цепи реактивной энергии.
За пропорциональность выходного напряжения отвечают: относительная длительность управляющих импульсов либо сдвиг фаз между сигналами управления группами ключей. В неконтролируемом режиме циркуляции реактивной энергии, потребитель влияет на форму и величину напряжения на выходе инвертора.
В инверторах напряжения со ступенчатой формой на выходе, предварительный высокочастотный преобразователь формирует однополярную ступенчатую кривую напряжения, грубо приближенную по своей форме к синусоиде, период которой равен половине периода выходного напряжения. Затем мостовая НЧ-схема превращает однополярную ступенчатую кривую в две половинки разнополярной кривой, грубо напоминающей по форме синусоиду.
В инверторах напряжения с синусоидальной (или почти синусоидальной) формой на выходе, предварительный высокочастотный преобразователь генерирует постоянное напряжение близкое по величине к амплитуде будущей синусоиды на выходе.
После этого мостовая схема формирует из постоянного напряжения переменное низкой частоты, путем многократной ШИМ, когда каждая пара транзисторов на каждом полупериоде формирования выходной синусоиды открывается несколько раз на время, изменяющееся по гармоническому закону. Затем НЧ-фильтр выделяет из полученной формы синус.
Схемы предварительных ВЧ- преобразователей в инверторах
Простейшие схемы предварительного высокочастотного преобразования в инверторах являются автогенераторными. Они довольно просты в плане технической реализации и достаточно эффективны на малых мощностях (до 10-20 Вт) для питания нагрузок не критичных к процессу подачи энергии. Частота автогенераторов не более 10 кГц.
Положительная обратная связь в таких устройствах получается от насыщения магнитопровода трансформатора. Но для мощных инверторов такие схемы не приемлемы, поскольку потери в ключах возрастают, и КПД получается в итоге низким. Тем более, любое КЗ на выходе срывает автоколебания.
Более качественные схемы предварительных высокочастотных преобразователей — это обратноходовые (до 150 Вт), двухтактные (до 500 Вт), полумостовые и мостовые (более 500 Вт) на ШИМ контроллерах, где частота преобразования достигает сотен килогерц.
Типы инверторов, режимы работы
Однофазные инверторы напряжения подразделяются на две группы: с чистым синусом на выходе и с модифицированной синусоидой. Большинство современных приборов допускают упрощенную форму сетевого сигнала (модифицированную синусоиду).
Чистая же синусоида важна для приборов, у которых на входе есть электродвигатель или трансформатор, либо если это специальное устройство, работающее только с чистой синусоидой на входе.
Трёхфазные инверторы обычно используются для создания трёхфазного тока для электродвигателей, например, для питания трёхфазного асинхронного двигателя. При этом обмотки двигателя непосредственно подключаются к выходу инвертора. По мощности инвертор выбирают исходя из пикового значения оной для потребителя.
Вообще, существует три рабочих режима инвертора: пусковой, длительный и режим перегрузки. В пусковом режиме (заряд емкости, пуск холодильника) мощность может на долю секунды двукратно превысить номинал инвертора, это допустимо для большинства моделей. Длительный режим — соответствующий номиналу инвертора. Режим перегрузки — когда мощность потребителя в 1,3 раза превышает номинал — в таком режиме средний инвертор может работать примерно полчаса.
DC/AC инвертор: принцип работы, схемотехника, встроенное ПО
Импульсные преобразователи и силовая электроника в целом, всегда оставались чем-то сакральным для большинства любителей и профессионалов в области разработки электроники. В статье освещается пожалуй самая интересная тема в среде DIY-щиков и фанатов альтернативной энергетики — формирование синусоидального напряжения/тока из постоянного.
Думаю многие из вас наверняка видели рекламу, либо читали статьи, где была фраза «чистый синус». Вот именно о нем и пойдет речь, но не о маркетинговой составляющей, а о исключительно технической реализации. Я постараюсь максимально понятно рассказать о самих принципах работы, о стандартных (и не очень) схемотехнических решениях и самое главное — напишем и разберем ПО для микроконтроллера STM32, которое и сформирует нам необходимые сигналы.
Почему STM32? Да потому, что сейчас это самый популярный МК в СНГ: по ним много обучающей русскоязычной информации, есть куча примеров, а главное эти МК и средства отладки для них — очень дешевые. Скажу прямо — в коммерческом проекте я бы поставил только TMS320F28035 или подобный DSP из серии Piccolo от TI, но это уже совсем другая история.
Важно одно — STM32 позволяет стабильно управлять простыми «бытовыми» силовыми преобразователями от которых не зависит судьба мира работа какой-нибудь АЭС или ЦОДа.
Вот такую картину управляющих сигналов необходимо получить, чтобы превратить ток постоянный в переменный. И да — тут именно синус! Как в том фильме: «Видишь суслика? — Нет. — А он есть. »
Интересно узнать каким образом формируется синус? Хочется узнать как все-таки качают нефть киловатты энергии? Тогда добро пожаловать под кат!
1. Топологии для формирования синусоидального сигнала
Если спросить у толпы электронщиков: «Как можно сформировать синусоидальный сигнал?», то посыпятся предложения с десятком различных методов, но какой нужен нам? Давайте оттолкнемся от изначальной задачи — нам нужно превратить, например, 380В 10А в переменное напряжение 230В. В общем это «классический» случай, его мы можете увидеть в любом хорошем on-line UPS или инверторе. Получается нам надо преобразовать мощность около 4 кВт да еще и с хорошим КПД, не слабо, да? Я думаю подобное условие поубавит количество вариантов «рисования» синуса. Так что же нам остается?
В силовых преобразователях до 6-10 кВт применяется две основные топологии: полный мост и «полумост» со сквозной нейтралью. Выглядят они следующим образом:
1) Топология со сквозной нейтралью
Данная топология очень чаще всего встречается в бюджетных ИБП с синусом на выходе, хотя и такие авторитеты как APC и GE не брезгуют применять ее даже на достаточно больших мощностях. Что же их побуждает к этому? Давайте рассмотрим достоинства и недостатки данной топологии.
Плюсы:
Минусы:
2) Мостовая топология
Мостовая топология… наверное самая понятная и самая распространенная топология в силовых преобразователях, а главное доступная разработчикам даже с небольшим опытом. После 10 кВт вы не встретите ничего другого кроме моста одно- или трехфазного. За что же его так любят?
Плюсы:
Минусы:
В 70% случаев мне приходится применять мостовую схему не только в DC/AC инверторах, но и в других преобразователях. Это связано с тем, что проектирую в основном промышленные решения и все чаще для европейских заказчиков, а там принято на дорогие промышленные устройства давать гарантию 5-15 лет. Классическое требование: «Хотим железку, чтобы можно было давать гарантию 10 лет», тут уже выбирать не приходится. Конечно, когда люди хотят устройство с минимальной ценой, то тут необходимо уже отталкиваться от конкретной задачи при выборе топологии.
Небольшой итог: в данной статье будет приведено ПО для работы мостового преобразователя (Н-мост или Full Bridge), но сам принцип формирования синуса одинаковый для всех топологий. Код можно будет также адаптировать и под 1-ю топологию, но это вы уже сами.
2. Формирование переменного тока с помощью мостового преобразователя
Для начала давайте разберем как вообще работает мостовой преобразователь. Смотрим на схемку и видим транзисторы VT1-VT4. Они позволяют нам подавать на нашу абстрактную нагрузку (резистор, например) тот или иной потенциал. Если мы откроем транзисторы VT1 и VT4, то получится следующее: VT4 один конец нагрузки подключит к минусу (GND), а транзистор VT1 подключит к +380В, на нагрузке появится разность потенциалов «380В — 0В», которая не равна нулю, а значит через нагрузку начнет протекать ток. Я думаю все помнят, что ученые договорились — ток протекает «от плюса к минусу». Получаем такую картину:
Что мы получили открыв VT1 и VT4? Мы подключили нашу нагрузку к сети! Если резистор заменить на лампочку, то он она бы просто загорелась. И еще мы не просто включили нагрузку, а определили направление тока, протекающего через нее. Это очень важно! А что было в это время с VT2 и VT3? Они были закрыты… совсем… намертво… Что будет если все таки VT2 или VT3 были так же открыты? Смотрим:
Предположим, что открылись транзисторы VT1, VT4 и VT2. Вспоминаем закон Ома, смотрим сопротивление канала у высоковольтных транзисторов, например, IPP60R099P7XKSA1 и видим 0.1 Ом, у нас их 2 последовательно — значит сопротивление цепи VT1 и VT2 у нас около 0.2 Ом. Теперь посчитаем ток, которые пойдет через эту цепь: 380В / 0.2 Ом = 1900А. Думаю всем понятно, что это КЗ? Так же думаю всем понятно почему VT2 и VT3 должны быть закрыты?
Данный «феномен» называется — сквозной ток. И именно с ним идет большая война в силовой электронике. Как его избежать? Создать систему управления, алгоритм которой будет жестко запрещать одновременной открытие лишнего транзистора.
Зачем же нужны тогда транзисторы VT2 и VT3? Помните я писал, что очень важно направление тока? Давайте вспомнит что такое переменные ток. Собственно это ток, который имеет что-то переменное, в данном случае направление тока. У нас в розетке протекает ток, который меняет свое направление 100 раз в секунду. Давайте теперь закроем VT1 и VT4, а затем откроем транзисторы VT2 и VT3 и получим такую картину:
Как видите направление тока (обозначено стрелками) изменилось на противоположное. Использование моста позволило нам менять направление тока, о чем это говорит? Да, мы получили переменный ток!
Прошу обратить внимание, что у моста есть как бы 2 диагонали: первая диагональ образована VT1+VT4, а вторая диагональ образована с помощью VT2+VT3. Данные диагонали работают по очереди, коммутирую ток сначала в одну сторону, а потом в другую.
Вот мы получили переменный ток, скажите вы, но не все так просто… У нас есть стандарт — сетевое напряжение. Оно нормируется двумя основными параметрами: напряжение и частота. Давайте пока разберемся с частотой, ибо вопрос напряжения простой и чисто схемотехнический.
И так частота… что о ней известно — она 50 Гц (бывает 60Гц в Штатах). Период сигнала равен 20 мс. Синусоида штука симметричная в данном случае, а значит наши 2 полуволны (положительная и отрицательная) имеют одинаковую длительность, то есть 10 мс + 10 мс. Надеюсь тут все понятно.
Что это значит в физическом смысле? Да то, что нам нужно менять направление тока в нагрузке каждые 10 мс. Получаем, что сначала у нас открыта 10 мс диагональ VT1+VT4, а затем она закрывается и на следующие 10 мс открывается диагональ VT2+VT3.
Давайте отвлечемся немного на принцип управления транзисторами. Я использую полевые N-канальные транзисторы с изолированным затвором (Mosfet).
«Открытый транзистор» — это транзистор, на затвор (G) которого подали положительный потенциал (+10..18В) относительно истока (S) и транзистор изменил сопротивление канала (S-D) с бесконечно большого (2-100 МОм) на малое (обычно 0.1 — 1 Ом). То есть транзистор начал проводить ток.
«Закрытый транзистор» — это транзистор, затвор (G) которого подтянули к истоку (S) и его сопротивление изменилось с маленького до бесконечно большого. То есть транзистор перестал проводить ток.
Для лучше ознакомления с принципом работы полевого транзистора или IGBT — советую вам прочитать пару глав в книге Семенова «Основы силовой электроники» или другой источник, можно и википедию для начала.
Для управления мы подаем сигнал с Широтно-Импульсной Модуляцией или более привычная аббревиатура — ШИМ. Особенность данного сигнала в том, что у него есть 2 состояния: нижнее напряжение (GND) и верхнее напряжение (VCC), то есть подавая его на затвор транзистора мы или открываем его или закрываем — иного не дано. Про ШИМ тоже советую почитать дополнительно, ибо я вам описал для ленивых поверхностно.
Теперь все понятно? Нет? Тогда подробнее… Как видите я отметил специально моменты открытия и закрытия транзисторов: открываются на «плюсе» и закрываются на «минусе». Также сигналы противоположны, то есть инверсные: когда синий сигнал «плюс», то зеленый сигнал «минус». Синий сигнал мы подаем на один на одну диагональ, а зеленый сигнал на другую — как видно на осциллограмме, наши диагонали никогда не открываются одновременно. Переменный ток готов!
Смотри на период. Специально показал осциллограмму с выходов контроллера, чтобы мои слова не были абстракцией. Период сигнала составляет 20 мс, одна диагональ открыта 10 мс и создает положительную полуволну, другая диагональ так же открывается на 10 мс и создает уже отрицательную полуволну. Теперь надеюсь всем понятно, а кто и сейчас не понял — пишите в ЛС, проведу для вас индивидуальное занятие на пальцах. В подтверждение моих слов осциллограмма показывает наши заветные 50 Гц! Только расслабляться рано…
3. Формирование синусоидальной формы сигнала с помощью ШИМ
Если говорить откровенно, то я не знаю как данный раздел преподнести на доступном языке. Вдруг кто не поймет, то прошу вас или погуглить дополнительно, или написать в комментарии или ЛС — попытаюсь персонально вам объяснить. Глаза боятся, а руки делают…
Давайте посмотрим как выглядит обычный график синуса:
Вот так выглядит график синуса курильщика, который соответствует нашей задачи. Как видите отрицательный полупериод я не обозначил, т.к. у нас он реализуется не с помощью синусоидального сигнала, а с помощью изменения направления тока переключением диагоналей моста.
Построили и видим, что в принципе данный сигнал больше похож на синус чем обычный меандр, но это все равно не синус пока что. Давайте увеличим количество точек. Это кстати называется «дискретность сигнала» или в данном случае «дискретность ШИМа». А как узнать координаты этих точек? С крайними то просто было…
Расчет значений для формирования синуса
Как выше я говорил — синус у нас вполне себе симметричный. Если мы построим 1/4 периода, то есть от 0 до 5 мс, то дублируя этот кусок дальше — мы можем строить синус бесконечно долго. И так формула:
И так по порядку:
Получаем шаг дискретизации 1 мс. Формулу для вычисления скважности оформим, например, в excel и получим следующую таблицу:
Теперь вернется к нашему графику синуса и построим его снова, но уже для большего количества точек и посмотрим как он изменится:
Как видим сигнал куда больше похож на синус, даже с учетом моего мастерства в рисовании, а точнее в уровне лени)) Я думаю результат не требует объяснений? По результатам построения выведем аксиому:
Чем больше точек, чем выше дискретизация сигнала, тем идеальнее форма синусоидального сигнала
И так, сколько же точек будем использовать… Понятно, что чем больше, тем лучше. Как посчитать:
Исходник таблицы и значений можно взять по ссылке — тут.
4. Управление мостовым преобразователем для формирования синуса
Мы получили таблицу синуса и что с ней делать? Нужно передавать эти значения с определенным шагом дискретизации, который у нас известен. Все начинается с того, что таймер инициализировался — время 0, скважность ноль. Далее мы отсчитываем шаг дискретизации 41,66 мкс и записываем в таймер значение ШИМа из таблицы 13 (0,13%), отсчитываем еще 41,66 мкс и записываем 26 (0,26%) и так далее все 240 значений. Почему 240? У нас 120 шагов на 1/4 периода, а нам надо нарисовать 1/2 периода. Значения скважности те же, только после того как они достигли 1000 мы записываем ее в обратной последовательность и получаем спад синуса. На выходе мы будем иметь вот такую осциллограмму:
Как видите мы получили кучу значений ШИМа в четко заданном периоде и его длительность составляет: 240 шагов х 41,66(!) мкс = 9998,4 мкс = 9,9984 мс
10 мс. Мы получили половину периода для частоты сети 50 Гц. Сигнала как видите опять два и они в противофазе, как раз то, что нужно для управления диагоналями моста. Но позвольте, где же синус спросите вы? Настал момент истины! Давайте теперь сигнал с выхода микроконтроллера подадим на ФНЧ, я сделал простой ФНЧ на RC-цепочки с номиналами 1,5 кОм и 0,33 мкФ (под рукой просто были) и получил такой результат:
Вуаля! Вот он наш долгожданный синус! Красный луч осциллографа — это сигнал до ФНЧ, а желтый луч — сигнал уже после фильтрации. ФНЧ обрезал все частоты выше 321 Гц. У нас остался основной сигнал 50 Гц, ну и конечно его гармоники с небольшой амплитудой. Если хотите идеально очистить сигнал, то сделайте ФНЧ с частотой среза около 55-60 Гц, но пока это не важно, нам надо было лишь проверить получился ли у нас синус или нет. Кстати… у меня синхронизация осциллографа включена по желтому лучу (стрелка справа экрана) и мы видим внизу экрана его частоту — идеальные 50 Гц. Что еще можно пожелать? Пожалуй все, осталось определиться какой сигнал и куда подавать. Давайте рассмотрим такую картинку:
Если вы обратите на саааамую первую осциллограмму в статье, то увидите, что сигнал в желтом и синем лучше имеют одинаковую фазу, то есть они в одно время становятся положительными и открывают транзисторы. Эти 2 сигнала открывают диагональ VT1+VT4. Соответственно 2 других сигнала так же имеют одинаковую фазу и открывают другую диагональ. Теперь мы не просто меняем направление тока, но и задаем амплитуду с помощью ШИМ таким образом, чтобы она изменялась по синусоидальному закону. Теперь рассмотрим эту же схемку, но уже с токами:
Как видим ток через нагрузку протекает в противоположную сторону, меняя направление с частотой 50 Гц, а модулированный ШИМ, подаваемый на транзисторы VT1 и VT2 позволяет нарисовать синусоидальную форму сигнала на полуволнах.
ФНЧ (фильтр низкой частоты) выполнен на индуктивности L1 и конденсаторе C2. Частоту среза для данного фильтра советую считать менее 100 Гц, это позволит минимизировать пульсации напряжения по выходу.
На десерт покажу часть схемы реального устройства с подобной топологией и фильтром, она большая, поэтому скачиваем PDF-ку тут.
5. Борьба со сквозными токами
Я думаю не для кого не секрет, что нет ничего идеального? Тоже самое и с Mosfet-ами, у них есть ряд недостатков и мы рассмотрим один из них — большая емкость затвора. То есть, чтобы нам открыть транзистор надо не просто подать напряжение, но и этим самым напряжением зарядить конденсатор, поэтому фронт и спад сигнала затягивается. Это приводит к тому, что на границе сигналов может возникать момент времени, когда один транзистор еще полностью не закрылся, а другой уже начал открываться.
Подробнее о данном явление советую почитать, например, в этой статье. Я лишь расскажу как с ним бороться. Чтобы транзисторы успели нормально закрыться до открытия следующего плеча между управляющими сигналами вводят dead-time или проще говоря — временную задержку. У нас такая задержка будет введена между управляющими сигналами на транзисторах VT3 и VT4, т.к. именно они обеспечивают коммутацию полуволн. На транзисторах с модулируемым ШИМом (VT1 и VT2) такие задержки уже есть — синус начинается со скважности 0% и заканчивается тоже 0%. Эта задержка длиной в 1 шаг дискретизации, то есть 41.6 мкс.
И так — надо реализовать мертвое время между синим и зеленым лучом/сигналом. На любом контроллере такую задержку можно сделать программным способом, но это не есть хорошо — программа подвиснет или задержится и пыщ-пыщ ваше устройство и квартира уже объяты огнем. Поэтому в силовой электронике стоит применять только аппаратные средства. На всех специализированных motor control аппаратный deadtime предусмотрен на всех выходах ШИМа и каналах, но STM32 это все таки МК общего назначения, поэтому тут все проще, но нашу функцию он выполнит.
Нам понадобится таймер TIM1, только он умеет вставлять аппаратную задержку между сигналами, в разделе про написание ПО я расскажу как это сделать, а сейчас смотрим на результат и на то, что вообще должно быть:
Чтобы увидеть задержку «растягиваем» сигнал на осциллографе, т.к. он имеет небольшую длительность около 300 нс. Необходимое время длительности deadtime необходимо рассчитывать для каждой конкретной задачи, чтобы защитить транзисторы от сквозных токов. Длительность задержки настраивается при иннициализации (настройке) таймера TIM1. Данная задержка присутствует и на фронте и на спаде сигнала.
6. Написание встроенного ПО для микроконтроллера STM32
Вот мы и подошли наверное к самой важной и интересной части. Физику процесса мы разобрали, принцип работы вроде понятен, необходимый минимум защит тоже определен — осталось только все это реализовать в реальном железе. Для этого я использую платку STM32VL-Discovery, получил ее кстати еще в 2011 году во времена, когда ST раздавали отладки бесплатно на своих конференциях и с тех пор она лежала запакованная — открыл упаковку всего пару месяцев назад, вроде срок годности не прошел))) Выглядит мой «стенд» для написание кода вот так:
Теперь пройдемся по подключению. Так как мне необходимо формировать два сигнала с разной частотой, то пришлось задействовать выходы ШИМ на разных таймерах. TIM1 формирует сигнал, который задает основную частоту 50 Гц и подает их на транзисторы VT3 и VT4. Используется канал ШИМа №3 + его комплементарный выход. Да да, в STM32 аппаратный deadtime можно настроить только между обычным и комплементарным выходом одного канала, что мне сильно не понравилось. Сам процесс формированию синуса передан таймеру TIM2, тут уже не нужна задержка (ранее писал почему) и он вполне сгодится для формирование модулированного сигнала на VT1 и VT2.
Используемые выходы:
Некоторые наверняка спросят: «А почему не задействовать DMA?» Сделать это можно и нужно, но данная статья носит скорее ознакомительный характер, да и сам МК не делает ничего сложного в плане вычислений, поэтому в производительность ядра тут точно не упереться. DMA — это хорошо, но без DMA можно обойтись без каких-либо потенциальных проблем. Давайте уточним, что нам нужно сделать в программе:
6.1. Создание таблицы синуса
Тут все просто, обычный массив. Единственное, что стоит помнить — у нас 120 точек от 0 до 1000. Нам нужно добавить в таблицу еще 120 точек, но в обратной последовательности:
6.2. Настройка системы тактирования
Настройка тактирования в STM32 весьма гибкая и удобная, но есть несколько нюансов. Сама последовательность выглядит следующим образом:
1) Переключаемся на тактирование от встроенной RC-цепочки (HSI) на внешний кварц (HSE), дальше ждем флага о готовности
2) Flash память контроллера работает несколько медленнее, чем ядро для этого настраиваем тактирование флеши. Если этого не сделать, то программа запустится, но будет периодически падать: пара кВт и нестабильное ПО — вещи несовместимые.
3) Выставляем делители для системной шины тактирования (AHB) и для шин периферии, коих аж две штуки: APB1 и APB2. Нам нужна максимальная частота, поэтому ничего не делим и коэффициенты деления делаем равными 1.
4) Настраиваем множитель частоты (PLL) предделитель, который стоит перед ним и делит частоту кварца на 2. Получаем, что 8 МГц поделили на 2 и получили 4 МГц. Теперь надо их умножить на 6, чтобы на выходе были 24 МГц. Перед записью регистров предварительно сотрем их содержимое на всякий случай.
5) Теперь надо включить множитель частоты (PLL) и дождаться флага о готовности:
6) И наконец-то настраиваем источник тактирования для системной шины (AHB) выход нашего множителя частоты, на котором заветные 24 МГц. Предварительно содержимое регистра чистим, устанавливаем нужный бит и ждем флага готовности:
В итоге у нас получается вот такая функция настройки тактирования:
6.3. Настройка таймера TIM1 и «мертвого времени»
Я приведу общую настройку таймера, она подробно описана в reference manual — назначение каждого регистра советую почитать. Да и базовые статьи по работе с ШИМ в интернете есть. Сам код у меня весьма неплохо прокомментирован, поэтому привожу сразу код функции инициализации таймера TIM1, а самые интересные моменты разберем:
Скважность у нас фиксированная и никогда не изменяется, как и частота. Именно этот таймер задает время и последовательность работы диагоналей:
Длительность паузы «мертвого времени» зависит сильно от временной параметра TDTS, которое настраивается тут:
Его длительность составляет 1 тик тактовой частоты. Если посмотреть в reference manual, то можно увидеть, что биты CKD могут, например, сделать Tdts равным 2, 8 тикам и прочее.
Самое же время паузы устанавливается тут:
Если отроете reference manual RM0041, то увидите вот такие формулы для расчета DT. Как видите параметр Tdts там основнополагающий:
6.4. Настройка таймера TIM2, формирующий синус
Тут все еще проще, объяснять что-то в настройке наверно нет смысла, ибо комментарии и так избыточны. Если будут вопросы — жду их в комментариях.
6.5. Настройка прерываний от таймера TIM6
Настраиваем сам таймер на частоту 24 кГц:
6.6. Реализация основного алгоритма управления
Основные события происходят в генерируемом таймером TIM6 прерывании. Прерывание генерируется каждые 41,66 мкс, если помните это наш шаг дискретизации. Соответственно в прерывании записывается значение скважности из таблицы в регистр CCRx. Также в данном прерывании определяется какая диагональ в данный момент времени отрисовывается, путем инверсии флага sin_status после каждого полупериода. Мы выводим 240 точек, инвертируем флаг, что вызывает переход управления к другому каналу, когда уже и он отрисовал, то флаг опять инвертируется и все повторяется. Код основного алгоритма:
Итоги
Скачиваем проект, компилируем и заливаем в ваш микроконтроллер и получаем рабочий инвертор. Вам остается только сделать мост и подавать на него сигналы:
Одну из своих схем моста я чуть ранее выложил в PDF-ке можете пользоваться сколько угодно, надеюсь она вам поможет в освоение силовой электроники.
Также в проект я натянул FreeRTOS. Конечно средствами RTOS нельзя реализовывать подобные задачи по управлению, т.к. простое переключение между задачами длится от 4 до 18 мкс и это если код хорошо написан и работе планировщика ничто не помешает. Это не позволяет получить систему управления, работающую в жестком реал-тайме. FreeRTOS я поставил для другого: интерфейсы связи (RS-485 Modbus RTU), регулировка выходной амплитуды напряжения, пересчет таблицы, синхронизация с сетью 230В и прочее. Все эти плюшки я тоже попробую реализовать на STM32, а возможно и напишу продолжение тематики статьи, если получатся интересные результаты и будет чем поделиться.
Надеюсь статья вам понравилась. Если у вас возникли вопросы по применению данного кода в реальном железе, то буду рад ответить на них. Также прошу не воспринимать данный код как что-то готовое, это ядро преобразователя, которое реализует основную функцию. Все «плюшки» и прочую избыточность вы можете добавить сами. Голое ядро проекта позволит вам понять как оно работает и не тратить кучу времени на разборку кода.
1) Проект в Keil 5 скачиваем — тут
Структура такая:
а) start_init — настройка частоты, выхода MCO для тестов, GPIO общего назначения (светодиоды/кнопки)
б) PWM — настройка ШИМа, таймеров и всего, что было задействовано при работе по управлению мостом
в) main.c — основной код
2) Reference manual для STM32F10x — тут
UPD1: хотелось бы поблагодарить пользователя sleip за ряд найденных ошибок, в основном в таблице синуса — она изменена. Те, кто использовали код или саму таблицу прошу скопировать ее снова, в статье уже исправленный вариант.