Разработка boost преобразователя на DSP: принцип работы, расчеты, макетирование
Я уже писал подобную статью про топологию buck, то есть про понижающий преобразователь, сегодня рассказ пойдет о том, как сконструировать повышающий (boost) преобразователь напряжения с управлением не на аналоговом ШИМ-контроллере, а на DSP/МК. Макет будет собран на основе моего «комплекта разработчика» с STM32F334R8T6 на борту и изолированным драйвером полумоста.
Введение
В начале хотелось бы отметить один важный момент — хоть в статье и сказано, что управление происходит с помощью микроконтроллера, но это не означает, что расчет силовой части будет чем-то отличаться от расчета преобразователя с аналоговым ШИМ-контроллером. То есть, методику расчета из данной статьи вы можете смело применять при расчетах силовой части для любого boost conveter.
В реальном мире есть множество задач, которые нельзя решить с помощью применения стандартных аналоговых ШИМ-контроллеров. Мой любимый пример — преобразователь напряжения с алгоритмом MPPT. Как только наша задача выходит за рамки «стандартной» и появляется какой-то дополнительный алгоритм управления или логика работы, наступает ситуация при которой применение DSP упрощает решение задачи и одновременно удешевляет ее, а главное позволяет в принципе решить ее.
Стоит немного рассказать о задачах где вы встретите топологию boost. Сама топология известна многим и многие ее уже наверняка реализовывали, когда вам приходилось, например, из 1 ячейки li-ion АКБ получать 5В — вы использовали маломощный dc/dc boost converter. Подобные маломощные преобразователи часто применяются в цифровой электронике, IoT, автоматике, устройствах с автономным питанием и других задачах.
Второе не совсем очевидное, но крайне важное, применение — PFC или корректор коэффициента мощности. Большинство PFC это самый обычный повышающих (boost) преобразователь, который работает по специальному алгоритму, но в итоге он выпрямляет и повышает входные 85…265VAC до +400VDC. В дальнейшем мы это дополнительно рассмотрим на примере.
Еще один часто встречающийся вариант — это мощные преобразователи dc/dc boost, например, сетевые инверторы для солнечных панелей с MPPT, которые являются одновременно и самыми дорогими и самыми востребованными, в основном применяются в СЭС на мощностях от 5 до 1500 кВт. Строятся такие преобразователи в 2 каскада, где 1-й каскад представляет из себя многофазный dc/dc boost (гуглится еще как interleaved), который получает обычно на входе постоянное напряжение 200…600VDC и повышает его до стабильных 800VDC. Далее обычным dc/ac инвертором формируется переменное напряжение. Такие преобразователи как раз и строятся на базе DSP, а их структурная схема выглядит следующим образом:
Надеюсь вам стало понятно почему данная топология важна для разработчиков силовой электроники, а так же почему актуально научиться разрабатывать boost-преобразователи с управлением на базе DSP/МК. Теперь с ясной мотивацией можно перейти к изучению топологии.
Глава 1 — Принцип работы преобразователя по топологии boost
Повышающий boost преобразователь по своему принципу работы идентичен понижающему buck преобразователю, т.к. в обоих случаях есть две стадии работы. На 1-й стадии происходит накопление энергии в дросселе при этом нагрузка питается от выходного конденсатора. На 2-й стадии происходит передача энергии из дросселя в нагрузку и одновременно заряжается выходной конденсатор, который будет обеспечивать энергией нагрузку пока дроссель будет «перезаряжаться». Разумеется, чтобы получить все таки повышающий преобразователь необходимы схемотехнические изменения, давайте посмотрим на принципиальную схему boost преобразователя:
На первый взгляд вам может показаться, что топология не похожа на buck, но если присмотреться внимательно, то станет понятно что они близнецы. Дальше вы это увидите более наглядно, а пока давайте разберем стадии работы boost преобразователя.
- Стадия накопления заряда. В момент включения преобразователя выходная емкость С2 находится под потенциалом Vin, т.к. ток проходит через дроссель L1 и диод VD1. Управляющее устройство (ШИМ-контроллер или DSP) начинает генерировать ШИМ-сигнал и подает его на затвор транзистора VT1. При открытии транзистора VT1 получается, что цепь замыкается, индуктивность L1 подключается с источнику питания и начинает накапливать энергию. Ток через VD1 не протекает, т.к. потенциал на катоде у него выше (около Vin), чем потенциал на аноде (потенциал GND, около 0В).
- Стадия разряда индуктивности. Теперь ШИМ-сигнал меняет свое значение с 1 на 0 и транзистор VT1 закрывается. В этот момент дроссель L1 стремится поддержать значение тока, путем увеличения потенциала. На входе дросселя потенциал все тем же Vin, а следовательно потенциал вырастает в точке «дроссель-сток VT1-анод VD1». Когда потенциал в данной точке станет больше, чем потенциал на катоде VD1 ток начнет протекать через VD1 в нагрузку и параллельно заряжать выходную емкость С2. На этой стадии цепь так же замыкается, но уже не через VT1, а через путь «L1-VD1-C2-нагрузка»:
Дальше эти стадии просто чередуются и преобразователь работает. Для тех, кто ничего не понял объясню за счет чего повышается напряжение. В момент, когда VT1 закрылся дроссель начинает разряжаться и в момент этой «разрядки» напряжение на нем стремится к бесконечности. Да, это в идеальной системе, а в реальной напряжение будет ограничено сопротивлением нагрузки, которое включено последовательно с дросселем и диодом, а так же, в случае наличия управления, еще и обратной связью.
Тут стоит еще дополнить по стадии накопления энергии. В момент включения в выходном конденсаторе С2 практически нет запасенной энергии, но после первой стадии разряда он заряжен и потенциал на нем равен Vout, а значит на последующих стадиях накопления энергии эта емкость С2 будет обеспечивать нагрузку энергией, в результате для нагрузки не будет перебоев в получении энергии. Из этого следует, что С2 должен иметь такую емкость, чтобы запасенной энергии хватило на обеспечение питания нагрузки на длительность открытия транзистора (ton). В соответствии из выше описанного начиная со 2-го круга повторения стадий этап накопления заряда выглядит так:
Как видите получается две замкнутые цепи. «Красная» цепь замыкается через VT1 и происходит заряд дросселя, а «зеленая» цепь замыкается через нагрузку. «Смешивание» процессов/энергии в данном случае не происходит из-за присутствия диода VD1, т.к. в любой момент времени потенциал на катоде VD1 будет выше, чем потенциал на аноде.
Теперь давайте разберемся что у нас происходит с напряжением, какую связь имеет выходное напряжение с напряжением на входе преобразователя. Как и в случае buck преобразователя наш boost имеет линейную зависимость выходного напряжения от входного, а коэффициент передачи равен коэффициенту заполнения:
Как видите взаимосвязь простая и понятная, соответственно регулировать выходное напряжение можно просто изменяя коэффициент заполнения нашего ШИМ-сигнала. Из формулы регулирования так же следует и алгоритм:
- Чтобы увеличить напряжение на выходе — необходимо увеличить коэффициент заполнения (duty);
- Чтобы уменьшить напряжение на выходе — необходимо уменьшить коэффициент заполнения (duty).
Теперь мы понимаем принцип работы boost преобразователя и логику управления выходным напряжением. Для закрепления знаний разберем пару опытов на осциллографе и посмотрим данные зависимости на практике.
Давайте для наглядности возьмем стабилизированный источник напряжения на 10В, например, лабораторный блок питания, и подадим на транзистор VT1 ШИМ-сигнал, коэффициент заполнения которого будем менять в процессе эксперимента. Щупы осциллографа подключаются в следующие точки схемы:
- Опыт №1. Входное напряжение (Vin) равно 10В, коэффициент заполнения ШИМ-сигнала составляет 0,75:
- Опыт №2. Входное напряжение (Vin) равно 10В, коэффициент заполнения ШИМ-сигнала составляет 0,5:
- Опыт №3. Входное напряжение (Vin) равно 10В, коэффициент заполнения ШИМ-сигнала составляет 0,25:
Теперь мы на практике убедились, что выходное напряжение линейно зависит от коэффициента заполнения, а следовательно мы можем построить систему управления (СУ), которая будет следить за выходным напряжением с помощью АЦП и в зависимости от измеренного значения уменьшать или увеличивать его (duty).
Глава 2 — Ограничения проектирования boost преобразователя
Как вы понимаете идеальной топологии не существует, иначе бы их не было так много и все использовали бы только ее, например, полный мост. В данном случае boost преобразователи так же имеют ряд особенностей, которые накладываю ограничения на использования данной топологии:
- Выходное напряжение не должно превышать входное более, чем в 3…4 раза.
Тут наверняка набегут специалисты и расскажут, как они в часах на ИН-12 с помощью MC34063 повышали напряжение boost-ом из +5В аж в целых +180В! Это конечно замечательно, но давайте прикинем коэффициент заполнения для данного случая, чтобы поднять напряжение из 5В в 180В надо заставить работать преобразователь при коэффициенте около 0,972(!). Думаю не надо рассказывать, что это плохая идея, что на большой частоте переходные процесс при коммутации транзисторов будут иметь сопоставимую длительность, а может даже и большую.
Так же при таком коэффициенте заполнения получается, что транзистор открыт почти всегда, а значит через него протекает ток и мы получаем максимально возможное значение статических потерь, а значит и низкий КПД.
К чему это собственно ведет… на малой мощности (тот самый случай с mc34063) гарантирована нестабильная работа, низкая надежность, пульсации тока и низкий КПД в совокупности с повышенным нагревом силовых элементов. На большой мощности — бабах.
Для примера обратите внимание на PFC, все они работают при соотношение максимум 1:4, а именно тот самый универсальный вход 85…265VAC или же стабилизатор напряжения с их 90…310VAC. Так же в качестве примера можно рассмотреть сетевые инверторы с MPPT, там при выходе 800В на вход подается 200…600VDC, то есть соотношение 1:4; - Напряжение на транзисторе. Данное ограничение тесно связано с тезисом о соотношение выше и вот почему… Транзистор VT1 должен иметь напряжение сток-исток равное минимум выходному напряжению, а в реальных устройствах иметь еще и запас хотя бы 20% на пульсации. Высоковольтные ключи имеют большое сопротивление канала, а при большом соотношении напряжений и ток на входе будет очень большим, что приведет к большим потерям на транзисторе;
- Напряжение диода. Если внимательно посмотреть на схему преобразователя, то станет понятно, что к диоду VD1 прикладывается напряжение равное выходному, то есть если у вас выход 400В, то и диод должен выдерживать эти 400В.
В связи с этим у данной топологии есть интересный «плюс», т.к. диод высоковольтный и в нем протекает ток в разы ниже, чем ток через транзистор, то во многих решениях применение диода Шоттки или SiC-диода позволит получить меньшие потери, чем применение синхронной топологии (полумост на транзисторах). Это касается решений с выходом от 200В и более, а синхронный вариант топологии в основном актуален лишь до напряжения около 100В; - Напряжение конденсаторов. Вроде очевидный момент, но на всякий случай уточню — выходной конденсатор должен выдерживать напряжение равное выходному, что во многих задачах, где применяют boost может составлять и 400, и 800 и даже 1500VDC.
Из выше написанного думаю вполне очевидно, что повышающий преобразователь разумно использовать, когда требуется увеличить напряжение максимум в 3…4 раза и при этом не нужна гальваническая развязка, в остальных случаях уже нужно смотреть в сторону топологий push-pull или full bridge. Мощность для boost преобразователей в принципе не имеет верхней границы, бывают и PFC на десятки киловатт и инверторы для СЭС на мегаватты, которые построены на данной топологии.
Глава 3 — Расчет силовой части преобразователя
Пришло время рассчитать основные силовые элементы для сборки прототипа. В качестве источника питания я буду использовать лабораторный блок питания с выходом 12В, т.к. если кто-то захочет повторить, а ЛБП нет, то можно использовать обычный китайский Mean Well на 12В 5А. В роли наглядной нагрузки сегодня выступит лампа накаливания на 36В и мощностью 60 Вт. Я специально так подобрал источник и нагрузку, чтобы макет можно было собрать в любой деревне, при этом дешево и выдержать соотношение 1:3. Итого имеем следующие вводные данные:
- Входное напряжение: 12 В
- Выходное напряжение: 36 В
- Номинальная мощность: 60 Вт
- Частота преобразования: 100 кГц
Расчет и изготовление дросселя
Начну с самого интересно и важного, т.к. именно с расчетом силовой индуктивности обычно у разработчиков возникают проблемы. Сразу отмечу, что значение индуктивности рассчитывать буду для режима неразрывных токов (CCM).
Для начала давайте найдем максимальное значение коэффициента заполнения при котором будет работать наш преобразователь. Данное значение будет устанавливаться ШИМ-контроллером при минимальном входном напряжение. Например, я планирую запитывать преобразователь от стабилизированного блока питания, тогда Vmin = Vnom. Если же вы выберете в качестве источника питания, например, свинцовый АКБ, то диапазон напряжения нем 10,2…14,2В и в таком случае для расчетов вам нужно брать значение 10,2В, т.к. при нем будет достигаться максимальный коэффициент заполнения. Я за минимум приму значение равное 12В. Сама формула для расчета проста и выглядит следующим образом:
Теперь нам необходимо рассчитать пульсации тока в дросселе. Кто читал мою статью про buck преобразователь наверняка запомнил, что данную величину мы выбираем сами и обычно она закладывается от 20 до 50%, я же приму размах 30% и теперь найдем самое значение тока:
Теперь рассчитаем минимальное значение индуктивности, которая потребуется, чтобы оставаться в режиме неразрывных токов:
Для изготовления дросселя я возьму дроссель R26/14/11 (R — это кольцо, а цифры — габариты) из материала Kool Mu с проницаемостью 60, скачать документацию на него и купить можно тут — Лэпкос.
Теперь давайте узнаем сколько витков нам потребуется, чтобы получить эту минимальную индуктивность:
Это минимальное количество витков при которых преобразователь останется в режиме неразрывных токов при минимальном напряжение на входе в 12В. Для надежности давайте накинем еще несколько витков чтобы наверняка и намотаем на 3 витка больше, то есть 29 витков. Давайте узнаем какую индуктивность в итоге получим с таким количеством витков:
Мы получил новое (финальное) значение индуктивности и количество витков, давайте проверим не перемахнули ли через предел индукции для данного сердечника:
Сердечник изготовлен из материала Kool Mu для которого предел индукции составляет 0,5 Тл. Как видите с данным сердечником получился пятикратный запас. Н — надежность! Из этого можно сделать косвенный вывод, что на частоте 100 кГц через данный сердечник можно прокачать около 300 Вт.
Теперь давайте определимся с обмоточным проводом. У меня на складе есть много моего любимого провода с диаметром 0,6 мм, что соответствует сечению одной жилы 0,471 мм2. Средний ток в сердечнике будет около 5А, соответственно если намотать в одну жилу, то получим плотность тока равную 5А / 0,471 мм2 = 10,61 А/мм2, что многовато и будет избыточный нагрев дросселя. Места для намотки много, сердечник большой, поэтому мотать буду в 2 жилы, что уменьшит плотность тока в 2 раза до значения 5,4 А/мм2. Это позволит получить перегрев относительно окружающей среды в пределах +20 оС.
Все параметры дросселя определили: размеры R26/14/11, материал Kool Mu, количество витков 29, обмоточный провод диаметром 0,6 мм и намотка в 2 жилы. Поехали наматывать:
Намотали, закрепили конец обмотки, лентой зафиксировали всю обмотку — готово. Осталось измерить реально значение индуктивности дросселя:
Получили требуемое значение! Теперь можно смело переходить к расчету выходной емкости. Логика в принципе простая — чем больше выходная емкость, тем ниже пульсации. Правда стоит понимать, что если емкость взять на несколько порядков больше расчетной, то постоянная времени будет слишком большой и система управления (СУ) будет работать некорректно, поэтому рассчитаем минимальное значение емкости для конденсатора (С2):
На частотах в пределах 200 кГц, где еще ставятся дешевые электролиты, я обычно умножаю данное минимальное значение на 2…3 и устанавливаю такой номинал. В текущей задаче я использую отладочный силовой модуль, а на нем уже установлены электролиты, которые играют роль выходной емкости в топологии boost о чем в следующей главе я подробнее расскажу.
Емкость электролитов суммарная 3000 мкФ, это очень много в данной задаче, т.к. плата рассчитывалась на бОльшие мощности. При такой большой выходной емкости обратной связи приходится не сладко, но для опытов пойдет.
Осталось сказать бегло о транзисторах. Именно о транзисторах! Я использую модуль полумоста, а следовательно реализую синхронный boost converter. В модулях установлены транзисторы IPP083N10N5AKSA1 с напряжением сток-исток 100В, что дает практически трехкратный запас по напряжению и следовательно покрывает задачу — по транзистору VT1 проходим, а диод VD1 заменен аналогичным транзистором и соответственно тоже проходим.
Глава 4 — Код для управления преобразователем
Так как про алгоритмы управления я расскажу в отдельной статье, то сегодня управлять преобразователем будет все та же программа, что использовалась в статье, где рассказывалось про топологию buck, почитать можно — тут. В главе код вы сможете подробно прочитать о инициализации HRPWM и АЦП, а так же о их синхронизации.
Изменения в коде произошли лишь в одном месте, а именно в обработчике прерывания с АЦП — изменился порог отсечки, т.к. я использовал другой делитель напряжения. Ну и поправил условие чтобы не было избыточного перерегулирования:
void ADC1_2_IRQHandler (void) {
ADC2->ISR |= ADC_ISR_EOC;
adcResult = ADC2->DR;
if (adcResult >= 3400) {
dutyControl = dutyControl - 10;
}
else
{
dutyControl = dutyControl + 10;
}
SetDutyTimerA(dutyControl);
}
Исходный проект для TrueSTUDIO вы найдете в конце статьи в виде архива. Теперь когда разобран принцип работы преобразователя, посчитаны все компоненты, есть управляющая программа можно приступать к сборке макета и испытывать его на работоспособность и корректность полученных результатов.
Глава 5 — Сборка макета и тестирование работы преобразователя
Приступаем к самой интересной и красочной стадии, а именно к сборке макета и проверке работоспособности. В начале статьи я упомянул о родстве buck и boost топологий, давайте сейчас это разберем, т.к. на модуле полумоста это крайне наглядно. Первым делом давайте посмотрим на схему buck преобразователя:
Зеленая рамка выделяет компоненты, которые установлены на силовом модуле полумоста, как видите тут С1 выполняет роль входной емкости, а конденсатор С2 роль выходной. Теперь давайте изобразим схему boost преобразователя:
Кто внимательный и заметил что изменилось? Да в принципе ничего не поменялось как ни странно, единственное отличие — местами поменялись вход и выход. Как видите сами топологии являются идентичными, а отсюда вытекает еще одно интересное свойство — если применена синхронная топология, то преобразователь можно работать как двунаправленный преобразователь!
Пример? Легко! Представим портативное устройство с USB и Li-ion аккумулятором. Когда USB подключен, то преобразователь работает в режиме buck и заряжает АКБ, как только отключили кабель USB преобразователь переходит в режим boost и из 4.2В поднимает в 5В от которых питается устройство. Круто же! И подобных задач, где пригодится данная особенность достаточно много.
Макет я собрал по второй схеме, а в ней конденсатор С1 это как раз выходная емкость, то есть она уже установлена и на модуль достаточно накинуть дроссель, который мы изготовили и входную емкость. В роли входной емкости С2 я применил пару электролитических конденсаторов на 4700 мкФ 25В и в итоге получился вот такой макет силовой части:
Теперь подключаем к силовой части модуль управления и источник питания, в данном случае лабораторный блок питания:
Теперь зальем прошивку в микроконтроллер, подадим питание с лабораторника, установим коэффициент заполнения 30000 из 45000, что согласно нашей формуле увеличит входное напряжение в 3 раза: Vout = 12В / (1 — 0,66) = 12/0,33 = 36,36В. После этого увидим, что лампа ярко загорелась:
Теперь подключаем осциллограф все к тем же точкам и видим следующий результат:
Как видно устройство работает корректно: напряжение действительно выросло в 3 раза, на входе потребление около 60 Вт (да, я в курсе что лампе надо 36В «переменки»), сама лампа потребляет ток 1,61 А. Для наглядности оставлю небольшое видео в работе:
Осталось выяснить насколько сильно нагревается преобразователь в данных условиях. Я предположил, что перегрев будет минимальным, т.к. все посчитано корректно, а компоненты взяты с запасом, поэтому поместил преобразователь в окружающую среду с температурой примерно +10 oС, чтобы усилить контраст температурного поля.
Методика для тестирования у меня проста и состоит из трех стадий:
- Помещаю преобразователь в среду с температурой +10 oС и жду пока он охладится и станет практически неразличимым в тепловизоре на общем фоне;
- Включаю преобразователь, даю ему поработать 5 минут и измеряю общий вид преобразователя и отдельно силовые компоненты;
- Оставляю преобразователь работать еще на 1 час и снова измеряю, смотрю насколько сильно выросли температуры компонентов.
После этого эксперимента можно будет сделать примерные выводы о возможности эксплуатации преобразователя в длительных режимах, а так же понять насколько перегревается устройство относительно температуры окружающей среды, что позволит спрогнозировать поведение устройства на более высоких температурах окружающей среды. И так приступим:
- Измерение №1 — преобразователь поместили в окружающую среду с температурой около +10 oС:
Тут видно, что платы практически полностью слились с окружающей средой, а значит можно включать и приступать к оценке температур преобразователя уже под номинальной нагрузкой.
- Измерение №2 — преобразователь работает на 100% номинальной нагрузке в течение 5 минут, температура окружающей среды около +10 oС:
После 5 минут работы картинка стала более контрастной и на ней отчетливо видно как сам преобразователь, так и основные нагревающиеся компоненты. Рекордсменами по перегреву стали изолированные dc/dc для драйверов транзисторов с температурой +29 oС, но тут ничего странного нет, т.к. температура перегрева +20…30 oС является для них номинальной о чем отражено в документации. Второе место занимается дроссель, температура которого составляет +28…29 oС, что более чем хорошо, т.к. часто рабочая дросселей вполне может достигать планки и в +80…100 oС. Температура радиатора составляет +20…21 oС, а транзисторы горячее всего на градус, а может и меньше, т.к. любой тепловизор на самом деле не самый точный на свете прибор.
- Измерение №3 — преобразователь работает на 100% номинальной нагрузке в течение 1 часа, температура окружающей среды около +10 oС:
Через час работы температуры подросли и устаканились, пробовал еще измерять через 3 часа, но результат не изменился, вернее изменения на уровне погрешности измерения, поэтому эту стадию не стал добавлять. Пока же давайте посмотрим на температуры после выхода преобразователя на крейсерскую скорость в номинальный режим.
Температура радиатора подросла на +4 oС, а транзисторы «слились» с ним, т.к. все прогрелось и тепловой поток равномерно распределился. Температура на изолированных dc/dc подросла на +9 oС и они вышли на паспортные показатели перегрева, даже запас остался в пару градусов. Температура дросселя выросла на +3 oС.
Давайте подведем итог… Температура транзисторов в норме, значит потери мизерные и сам силовой модуль работает корректно, нет сквозных токов, нет проблем с монтажом транзисторов, они, кстати, сидят на керамической подложке в капелькой термопасты MX-4, много пасты не надо добавлять — будет хуже.
Температура дросселя так же в норме, а значит индуктивность рассчитали верно и сердечник по габаритам так же применили подходящий ну да, с 5-ти кратным запасом:)), то есть он не насыщается и обмотка не перегревается с текущим значением плотности тока.
Заключение
Сегодня я разобрал очередную топологию преобразователей, надеюсь материал вам станет полезной шпаргалкой как при разработке обычных, так и управляемых с DSP, преобразователей boost. В следующий раз планирую рассказать о не менее популярной, и возможно наиболее полезной, топологии полный мост или full bridge, расскажу о расчетах трансформатора и о том, как его изготовить.
За поддержку при создании материала для статьи традиционно хотелось бы поблагодарить компанию PCBway, которая облегчает мне процесс создания макетов своими платами и трафаретами.
И самое главное — исходники силового модуля, платы управления и самого кода как обычно доступны на всеобщее обозрение. Пока, что только в виде архивов, как руки дойдут надо наконец-то сделать репозиторий на github-е.