Делаем встраиваемый полифункциональный зарядник
Цель - создать встраиваемый зарядник для аккумуляторов произвольного типа с напряжением от 1 до 30 В и зарядным током до 10 А с пассивным охлаждением и без радиатора. И ещё надо:
выполнять диагностику аккумуляторов,
разряд аккумуляторов,
тренировку,
балансировку,
работать в составе распределённой системы,
обеспечивать резервными питанием внешние схемы,
сохранять подробные записи напряжений и токов за все время эксплуатации,
иметь графический дисплей и органы управления.
все сделать на доступных деталях.
Перед этим уже было разработано два подобных устройства:
В этой статье решил чуть подробней описать процесс разработки архитектуры и схемотехники.
На дворе бушует кризис поставок комплектации и постоянно приходится что-то переделывать. Поэтому была пересмотрена концепция контроллера резервного питания и от части функционала на плате пришлось отказаться. Остался один зарядник, но зато более продвинутый. Правда отказ от специализированных микросхем привёл к переносу ответственности за надёжность на софт микроконтроллера. Но все по порядку. Сначала о том зачем такой девайс вообще нужен.
Способы использования девайса.
Проблема с аккумуляторами в том что даже зная всю теорию никогда не скажешь точно как поведёт себя конкретный аккумулятор. Встраиваемый зарядник не может позволить себе включить алярм, написать "out of service" и самоустраниться от процесса заряда. Работай с тем что дали. Значит зарядник должен быть умнее обычных. Но сразу умным быть нельзя. Отсюда следуют два основных свойства девайса: перепрограммируемость и связь с внешними более умными системами. Как следствие этого появляется много вариантов использования.
Зарядник с балансировкой.
Выше показано как зарядник подключить к блоку из четырёх аккумуляторов. В этой схеме аккумуляторы не только заряжаются, но и балансируются. После зарядки схема может разрядить аккумуляторы током до 50 А (в зависимости от нагрузочного резистора).Можно организовать тренировку аккумуляторов или непрерывное тестирование с целью узнать предельное количество циклов заряда разряда. Температура каждого аккумулятора отслеживается отдельно сенсорами DS18S20 через интерфейс 1-wire.
UPS для холодильника или насоса или чего-то другого.
А здесь показано как использовать плату для обеспечения резервного питания. Причём обеспечивается как низковольтное питание, так и высоковольтное переменное напряжение. Трёхфазные частотные преобразователи как правило способны работать и от одной фазы хотя и не обеспечивают в таком случае максимальную мощность. Поэтому вполне законно переключать инвертор с трех фаз на одну.
Зарядник аккумуляторов одних от других
Может возникнуть ситуация, когда в наличии есть определенного вида аккумулятор, например автомобильный и надо зарядить от него некие другие аккумуляторы, например для скутера. Тогда пригодится схема ниже. Вариант подключения солнечных панелей рассматривается.
Дистанционно регулируемый источник напряжения или тока
Здесь с удалённого компьютера задаётся значение напряжения или тока на выходе платы. Поскольку интерфейс USB на плате может работать и в режиме Device и в режиме Host, то вместо компьютера можно подключить модем или WiFi модуль и работать через облака.
Выбор архитектуры
При самом обобщённом представлении архитектура может выглядеть как показано ниже. Основными компонентами архитектуры являются ключи и повышающе/понижающий преобразователь напряжения. Ключи, естественно, не механические, а полупроводниковые. У механических ключей на основе реле слишком большая задержка, габариты и непредсказуемый дребезг. Полупроводниковые ключи могут быть выполнены на транзисторах по разным схемам. Ключи должны выдерживать токи до 15 А, иметь минимальное сопротивление. Переход в положение "включено" при этом не должен происходить мгновенно, поскольку это вызовет перегрузку по току. Значит транзисторные схемы должны обладать свойством плавного включения и быстрого выключения. Тут сразу даю ссылку на хорошую статью-предупреждение про SOA (safe operation area) . Диоды в архитектуре обозначают реальные физические диоды. Они нужны для мгновенного поддержания напряжения одним из источников при спаде напряжения на другом источнике. Но чтобы на диодах в дальнейшем не рассеивалась энергия они шунтируются дополнительными ключами. За всеми процессами следит и управляет микроконтроллер.
Рассмотрено было два варианта архитектуры. Первый вариант использует для управления напряжением интегрированный повышающе/понижающий преобразователь на специализированной микросхеме (Buck/Boost DC/DC IC). Второй вариант использует отдельный микроконтроллер с цифровой обработкой сигналов (DSP) для управления симметричным H-мостом. Такой мост может повышать и понижать напряжение в обоих направлениях.
Первый вариант требует дополнительных ключей, второй вариант требует дополнительного микроконтроллера и дополнительного софта с высокой степенью надёжности. Я выбрал первый вариант. Вариант с DSP оставим до лучших времён.
Почему в качестве цели выбрано 300 Вт?
Потому что очень желательно получить максимальную мощность без радиаторов в габарите 108 мм на 100…150 мм. Это стандартная ширина для корпусных профилей устанавливаемых на DIN рейку. Отсутствие радиаторов удешевляет девайс и упрощает сборку.
При КПД 99% на плате будет выделяться 3 Вт. Согласно апноту от ST корпуса планарных транзисторов (SMD корпуса тоже выбраны по причине технологичности) типов D2PAK, DPAK, SOT-223, PowerSO8™, PowerFLAT™, PowerSO-10™ могут выделять на участке платы 200 мм^2 без радиатора приблизительно до 1,5 Вт с перегревом 100 С.
Для определённости выбираем корпус PowerFLAT™ (6x5) и получаем что на участке 200 мм^2 и с толщиной меди 36 мкм можем рассеивать на транзисторе 2 Вт. Градиент температур от кристалла до платы будет при этом 75 С.
Как покажет симуляция ниже, на самих транзисторах выделяется максимум 1.5 Вт, остальное на индуктивности и шунтах. Поэтому вправе надеяться, что при температуре окружающей среды в 25 С максимальная температура на плате вблизи транзисторов не достигнет 90 С. Это с учётом дополнительных слоёв и переходных отверстий (дают уменьшение теплового сопротивления до 15 °C/W) для лучшего теплоотвода.
Выбор схемотехники ключей
Биполярные транзисторы не рассматриваем, слишком уж большие потери они дают. Далее только про MOSFET-ы.
Самый простой способ сделать ключ - это использовать p-канальный MOSFET. Чтобы его открыть надо напряжение на затворе просто притянуть в земле. Но это дефицитные детали. На момент написания статьи в стоке Digi-Key был всего один транзистор в приемлемом корпусе с минимальным сопротивлением 33 мОм в открытом состоянии - SQJ479EP-T1_GE3. Но такое сопротивление слишком высокое. При 14А на транзисторе будет выделяться более 6 Вт. Транзисторов с меньшим сопротивлением и необходимым напряжение в стоке просто нет.
Значит остаются только n-канальные транзисторы. Тут выбор ещё широкий и сопротивления в открытом состоянии гораздо меньше. Были выбраны NTMFS5C430NT1G с сопротивление открытого канала 1.7 мОм, это 0.3 Вт потерь при токе 14А.
Но чтобы открыть n-канальный транзистор на его затвор надо подать напряжение на 5-10 В выше чем коммутируемое напряжение. Такое напряжение чем-то надо создать.
Можно использовать вот такой бустер. Он из 5 В делает 44 В. Выдаваемый ток чуть более 20 мА.
Но количество деталей здесь удручает при таком небольшом токе. Можно, конечно, сказать, что MOSFET-ы практически не требуют тока при управлении. Но дело в том, что ещё придётся делать управляющую многими затворами схему, которая и съест основную долю тока.
В прежних схемах я использовал вот такие специализированные микросхемы управления ключами:
Они внутри себя содержат бустеры, и эффективно управляли транзисторами и обладали всевозможными автономными защитами. Но они кончились в продаже.
Дешево могли бы выглядеть бустеры на SN6501, но и их уже трудно найти в продаже.
После бустера могла бы быть вот такая схема управления силовым ключом c использованием драйвера полумоста LTC7060:
Бустер на этой схеме изображён источником напряжения Vboost. Схема достаточно надёжная и простая. Бросок тока при включении не превышает 70А, а выключение происходит быстрее чем за 1 мкс. На месте LTC7060 мог бы быть любой драйвер полумоста или драйвер верхнего ключа. Здесь конкретно выбрано первое, что нашлось в библиотеке LTSpice. Единственное смущает необходимость гальванической связи земель драйвера с силовой землёй и некоторая зависимость параметров схемы от напряжения коммутируемой шины.
Рассмотрев все эти варианты пришёл к выводу, что полностью гальвано-изолированный вариант управления затворами будет наиболее надёжным и предсказуемым. Несмотря на некоторое удорожание по сравнению с самыми дешёвыми вариантами. Однако полная гальвано-изоляция сильно упростит трассировку и задачу разделения земель.
Схема Buck/Boost DC/DC была взята из предыдущих проектов. Но в ней пришлось поменять транзисторы и конденсаторы. Появилась необходимость заново провести симуляцию работы этого узла, и пользуясь случаем дополнительно поработать над повышением КПД. В результате в режиме повышения напряжения удалось достичь теоретического КПД в 99.1 % при выходном токе в 10 А и выходном напряжении 30В.
Для чипа LTC3789 существует как минимум два хороших инструмента симуляции: LTpowerCAD и LTSpice. Другие симуляторы не подойдут поскольку модель LTC3789 фирмой Analog Devices предоставляется только в бинарном виде. LTpowerCAD наиболее удобен для оптимизации КПД, переходных характеристик, и подбора компонентов. Но остаются ещё ряд неизвестных величин влияющих на надёжность схемы. Это токи через разные конденсаторы и бутстрепные диоды, перенапряжения на отдельных элементах, влияние паразитных элементов печатной платы и проч. Поэтому остаётся потребность в классическом симуляторе типа LTspice. Симуляция в LTspice сложнее, но в какой-то степени вызывает большее доверие. Но времени требует больше.Ниже приведена модель для симулятора с учетом паразитных элементов - это индуктивность измерительного шунта, емкость катушки индуктивности, индуктивности проводников управляющих затворами.
Модель транзистора и вариации модели транзистора.
Транзисторы в модели могут быть различной степени детализации. Для транзисторов фирмы Infineon предоставляется библиотека OptiMOS6_40V_LTSpice.lib с четырьмя типа моделей с разной детализацией от L0 до L4. Тип L0 самый простой, тип L4 - самый сложный и учитывает самонагрев кристалла и тепловую модель среды. Чем сложнее модель, тем медленнее идёт симуляция.
Более подробно написано в Application Note - Introduction to Infineons Simulation Models for Power MOSFETs.pdf.
Точность симуляции
Особенности моделей транзисторов требуют специальной настройки опций симулятора LTSpice. Иначе симуляция может закончиться с ошибкой или оказаться слишком медленной или неточной.
Но, к сожалению, в LTspice так и не удалось сделать настройки пригодные для транзисторов моделей выше L0.
Опции симулятора задаются на схеме строкой:
.OPTIONS reltol=.001 abstol=1nA trtol=1.0
Параметр trtol (Transient error tolerance) имеет наибольшее влияние на скорость симуляции. Если его установить в значение 7.0, то скорость симуляции увеличивается в разы.
Как влияет опция trtol на точность симуляции показано выше. Верхний график (рассчитывался 15 мин) показывает ток через бутстрепный диод D1 с trtol = 7.0 , а нижний (рассчитывался 30 мин) тот же ток с trtol = 1.0. На графике с trtol = 7.0 явно видны флуктуации тока в пределах 1 А. Нижний график более ровный. Но разница в среднеквадратическом значении тока между графиками составляет всего около 2% (240.12 мА на верхнем против 245.48 мА на нижнем)
Токи через входные и выходные конденсаторы.
В LTSpice конденсаторы на схеме содержат в себе модель с учётом всех паразитных составляющих, включая индуктивность и сопротивление. В модели учтены реальные величины ESR и ESL входных и выходных конденсаторов.
Чтобы конденсаторы не перегрелись и не взорвались надо обеспечить безопасную величину токов через них.
Расчёт ведём в самом тяжёлом режиме (30В, 10А на выходе) для электролитических конденсаторов, поскольку они выделяют тепловую мощность большую чем керамические конденсаторы в данной схеме.
Выше график тока через электролитический конденсатор CO4 на выходе . RMS = 1.26А
Допустимый ток через электролит = 2,2 А при 100 Кгц, т.е. в ограничение укладываемся. Но если бы электролит был один, то уже была бы проблема
Выше график тока через электролитический конденсатор CI1 на входе. RMS = 0.78А
Допустимый ток через электролит = 2.2 А при 100 Кгц, т.е. В ограничение тоже укладываемся.
Если допустить, что источник входного напряжения идеален, то ток через входные электролиты будет практически нулевой. Но такая идеализация не допустима. Надо учесть, как минимум сопротивление подводящих питание проводов. Поэтому в схему для симуляции вставлен резистор R12. Его сопротивление выбрано достаточно большим чтобы с гарантией перекрыть худший случай. Разумеется, может быть и хуже, но на этот счёт должна уже позаботиться схема управления. При обнаружении слишком высокого сопротивления входного источника напряжения и слишком большого тока должна сработать программная защита.
Опасные выбросы напряжения.
Интересно посмотреть график выбросов напряжения на бутстрепном диоде D1.
Ток через индуктивность.
Пик тока доходит до 19А при частоте 200 Кгц. Выбранная индуктивность допускает ток до 31 А и значит здесь все ограничения тоже соблюдены.
Самый опасный источник ЭМИ
Важно также знать какие импульсные токовые перегрузки могут появляться в данной схеме. И такие токи были найдены - это токи в стоках и истоках транзисторов Q2 и Q3 и через шунт R3. Они достигают величины 26 А с длительностью импульса 10 нс, это частота 100 МГц. Поэтому особое внимание должно быть уделено трассировке пути тока от шунта и транзисторов до ближайших керамических конденсаторов, поскольку эта петля станет основным источником помех для всей остальной схемы.
Почему ставить параллельно транзисторы бесполезно.
Как бы это не было контринтуитивно, но параллельно включённые транзисторы не увеличивают КПД, а несколько ухудшают. Причём не важно в каком из четырех плеч это реализовано. Польза от параллельного включения только в распределении тепловыделения между двумя кристаллами, это снижает тепловую нагрузку на каждом из них.
Какую выбрать частоту работы DC/DC?
Симуляция показала - уменьшение частоты приводит к увеличению КПД, хотя при этом увеличивается ток через индуктивность и через конденсаторы.
Причину этого эффекта можно увидеть в LTpowerCAD. Дело в том, что потери в транзисторах на переключение значительно превышают все остальные, и поэтому уменьшение частоты переключений имеет главное влияние на КПД.
Однако увеличение частоты в два раза пропорционально уменьшает размах пульсаций на выходе. Если минимальные пульсации важны, то придётся жертвовать либо КПД, либо ценой (надо будет ставить больше конденсаторов).
Расчёт потерь и КПД в симуляторе.
Доверяй, но проверяй. Поэтому перепроверим расчёты КПД в симуляторе.
Для того чтобы симулятор автоматически произвёл расчёт потерь и КПД добавляем опцию steady в строку .tran 20m steady. По умолчанию симулятор сам попытается определить установившийся режим чтобы в нем рассчитать потери, но как оказалось в данной схеме он это делает слишком рано. Поэтому была введена опция ststdelay=19ms в строке .OPTIONS reltol=.001 abstol=1nA trtol=1.0 ststdelay=19ms. Она указывает симулятору начать расчёт потерь через строго заданную задержку в 19 мс.
Таблица расчёта потерь в симуляторе LTspice . 24 В на входе, 30В 10А на выходе. Модель транзисторов - L0.
Как видно из таблицы, расчёты симулятора довольно точно совпадают с расчетами LTpowerCAD. Это говорит о том, что модели в симуляторе можно доверять.
Расчёт делителя в цепи обратной связи DC/DC
В схеме выходное напряжение buck-boost DC/DC преобразователя задаётся с помощью ЦАП. Для этого напряжение с выхода ЦАП подмешивается к напряжению с выхода преобразователя и подаётся на референсный вход FB микросхемы U12 LTC3789EGN. Работа микросхемы LTC3789EGN устроена так что она регулирует свой выход так чтобы на входе FB всегда оставалось стабильное напряжение 0.8 В.
ЦАП может выдавать напряжение от 0 до 2.5 В или от 0 до 5 В, а на выходе DC/DC мы хотели бы получать от 1 до 33 В.
Вопрос: какие сопротивления должны иметь резисторы делителя R28, R29, R30 чтобы корректно подмешивать напряжение ЦАП к выходному напряжению и получить желаемые выходные напряжения DC/DC?
Обычно ответ находят составлением системы уравнений на основе схемы, и решением этой системы либо аналитически, либо численно в таких пакетах как: Wolfram Mathematica, MathCAD, Matlab и прочих.
Однако с некоторых пор свободно доступен симулятор Microcap 12. И этот симулятор умеет проводить оптимизации параметров электрических цепей. Задача поиска сопротивлений в делителе сводится к задаче оптимизации поскольку поиск выполнения равенства это тоже оптимизация.
Решение: Роль двух уравнений у нас будут играть две одинаковые цепи в разных состояниях на одном листе, как показано на рисунке (файл Solver.cir). Напряжение на выходе DC/DC и на выходе ЦАП представим в виде идеальных источников напряжения. Соответствие резисторов на схеме симулятора и на реальной схеме зарядника также указано на рисунке. Резистору от выхода DC/DC на вход FB микросхемы LTC3789EGN сразу назначим номинал в 220 КОм. Это рекомендуется в даташите. Остаётся рассчитать сопротивление резисторов R28 и R30. Они представлены на схеме симулятора резисторами RH1,RH2 (имеют общий параметр RH, задающий их сопротивление) и RL1,RL2 (имеют общий параметр RL, задающий их сопротивление). Напряжение на входе FB на схеме симулятора задаётся параметром Uref. Далее по шагам:
Шаг 1. Задаём начальные значения параметров RL и RH, наугад, в пределах разумных допущений. Устанавливаем желаемые значения для выходного напряжения и напряжений на выходе ЦАП.
Шаг 2. Проводим анализ переходного процесса Alt+1. Отрезок времени для симуляции может быть очень коротким.
Шаг 3. Задаём критерии оптимизации Ctrl+F11. Ищем значения RH и RL так чтобы U1 и U2 равнялись заданному на схеме Uref .
Шаг 4. Запускаем оптимизацию (жмем Optimize) и сохраняем результат (жмём Apply). Получаем модель с откорректированными параметрами
Шаг 5. Подбираем резисторы из существующих номиналов наиболее близко соответствующие расчётным. Строим новую модель (файл Verifier.cir), чтобы узнать насколько изменяться выходные напряжения DC/DС из-за неточного совпадения номиналов.
Шаг 6. Проводим анализ переходного процесса Alt+1. Задаём критерии оптимизации Ctrl+F11. На этот раз ищем значения напряжения источников Vout1 и Vout2
Шаг 7. Получаем значения напряжения на выходе DC/DC при крайних значениях на выходе ЦАП.
Отличие полученных напряжений от желаемых в пределах допустимого.
Итак, задача решена, без формул и математики. Идеальное решение для тех кто закончил ВУЗ с тройками. Правда симулятор выдает решение не мгновенно, а через существенное время в пределах 10 сек. Если модель будет сложнее и больше состояний, то время расчёта может сильно затянуться. Поэтому Matlab стоит держать в запасе, а математику подучить.
Расчет наихудшего случая методом Monte Carlo
На схеме зарядника есть несколько измерителей напряжения выполненных по дифференциальной схеме. Дифференциальная схема хорошо подавляет синфазные помехи. Такие помехи возникают из-за наводок в цепи земли при прохождении импульсных токов большой амплитуды в DC/DC преобразователе. В идеале дифференциальная схема должна полностью подавить помехи, но неидеальность операционных усилителей и разброс реальных значений номиналов компонентов препятствует этому.
Вопрос: Какого класса точности надо выбрать компоненты чтобы уровень подавления не деградировал значительно из-за случайного разброса номиналов.
Решение: Создаём в симуляторе Microcap 12 модель схемы с указанием возможного разброса номиналов в процентах. Элемент Vsin имитирует источник синфазных помех. Запускаем вычисления методом Monte Carlo (режим Worst Case) и получаем все возможные значения уровня подавления синфазного сигнала от худшего до лучшего.
На рисунке выше представлено три варианта расчётов с разными показателями точности резисторов (с конденсаторами нет большого выбора, применяем лучшее что есть - 1%). С правой стороны графики амплитуды напряжения на выходе в зависимости от частоты. Чем меньше амплитуда, тем лучше.От верхней до нижней схемы точность резисторов увеличивается: 5%, 1%, 0.1%.
Как видно из результатов, применение обычных резисторов с точностью 5% приведёт к деградации уровня подавления приблизительно в два раза. Т.е. некоторые девайсы с такими резисторами будут в показаниях шуметь в два раза сильнее других. Резисторы в 1% более приемлемы, и 0.1% будут совсем то что надо.
Интересно, что начиная со 100 КГц точность номиналов практически не влияет на уровень подавления и определяется только свойствами операционного усилителя. Это в частности говорит и о недостатке самой схемы, ее недостаточной симметричности. Но в данном девайсе делать более сложную схему не оправдано.
Печатная плата
Принципы празработки печатной платы те же что и здесь.
Моделирование распределения токов с помощью PDN analyzer
Инструмент PDN analyzer ярко рекламируется на сайте Altium. Но в самой программе Altium Designer он выглядит куцым однооконным диалогом
Суть работы плагина PDN analyzer проста. Он может вычислить падение напряжения на заданном проводнике печатной платы при заданном постоянном токе, и показать распределение плотности тока. Никаких тепловых расчётов или расчётов электромагнитного поля в динамике PDN analyzer не делает. Честно признать, PDN analyzer хорошо вылавливает только совсем очевидные ошибки, когда, например, ток в 10А переносят на другой слой платы через одно переходное отверстие диаметром 0.3 мм. Но отдельные участки трассировки стоит проверить, поскольку PDN analyzer может показать неожиданно интересный результат.
Как и любое детализированное моделирование расчеты в PDN analyzer занимают значительное время. Это дорогое удовольствие. Поэтому я решил проверить только один самый критичный, на мой взгляд, участок. Этот участок обведен красным.
Проблема в том, что участок по площади маленький и на нём ток из стока транзистора Q8 переходит с нижнего слоя на верхний и уходит через шунт R24 на землю.
Вопрос: Сколько переходных отверстий надо ставить и какое в результате получится сопротивление этого участка
Решение: Поставим максимум переходных, сколько позволяет площадь участка. Но проверим сколько тока приходится на каждое переходное. Зададим ток 25А. Такой амплитуды максимальный ток на этом участке мы зафиксировали в симуляторе.
Результаты:
Сопротивление от истока Q8 до резистора R24 оказалось чуть большим 0.001 Ом. Но это уже больше 0.15 Вт потерь на максимальном токе. Это намекает, что теоретический КПД в 99% в реальности скорее всего не получится. Потому что около 0.2 Вт потерь следует ожидать в проводниках платы.
Здесь показана позиция переходного отверстия, через которое потечёт максимальный ток - 6.7А. Вид на верхний слой платы
Из результатов видно, что разница в токе проходящем через разные переходные отверстия превышает 300 раз!
Очень неожиданный результат. Похоже некоторые переходные совершенно бесполезны. Но я не стал уже заниматься оптимизацией переходных. Один цикл расчётов занимает что-то около 5 мин. Оставил эти переходные, может тепло лучше перенесут или внесут вклад в уменьшение общей индуктивности.
Распиновка платы
По возможности выходы сделаны с одной стороны, а входы с другой. Разъёмы аккумулятора и нагрузки штатно выдерживают 50А. Выходы OUT1...OUT4 допускают переменный и постоянный ток до 2А. Аналоговые входы допускают дифференциальное напряжение до 30В.
Весь проект и модели можно найти здесь - https://github.com/Indemsys/Multifunctional-charger-BACKPMAN30
Частный вывод. В целом, как показывает опыт, разработка на основе симуляций для индивидуальных разработчиков занятие дорогое и трудозатратное. Тут нужны суперкомьютеры, мощности домашних ПК явно недостаточно. Все еще дешевле остаётся итеративный подход к созданию устройств. Но симуляциями и моделированием все же стоит заниматься, так как они дают основу для разумных эвристик в разработке.