В комментариях под моими предыдущими статьями неоднократно возникал вполне резонный вопрос: "Зачем делать dc/dc преобразователи на микроконтроллере, когда есть готовые?" и я в качестве ответа постоянно упоминал, как наиболее яркий пример, контроллер заряда с алгоритмом MPPT. Но сказать это одно, а показать… уже куда интереснее и нагляднее, поэтому сегодня расскажу о своем небольшом вялотекущем проекте такого контроллера.


Проект контроллера является открытым, все исходные файлы доступны на github. Сам контроллер является достаточно простым в реализации, построен он на топологии buck, в нем применены доступные компоненты и все это дает хорошую повторяемость даже без особых знаний. Компоновка разъемов и компонентов выполнены таким образом, чтобы данный контроллер можно было использовать и как отладочную плату для изучения силовой электроники, и как готовое устройство, останется просто изготовить корпус для него.


Фото МРРТ


Глава 1. Что такое алгоритм MPPT и зачем он нужен


Собственно MPPT — это процесс поиска точки максимальной мощности у солнечной панели. Наличие данного алгоритма в контроллере позволяет в определенных условиях значительно повысить эффективность использования солнечных панелей. Когда производитель пишет на панели мощность, например, 100...200...250...320 Вт, то имеет ввиду номинальную мощность солнечной панели при уровне инсоляции 1000 Вт/м2. Разумеется производители не выносят панели на улицу и не ждут идеальных погодных условий, поэтому данная величина принята как стандартная и "генерируется" на лабораторном стенде.


В реальных условиях при ясном небе максимальный уровень инсоляции имеет значения от 250 Вт/м2 где-нибудь в Норвегии и до 900-1000 Вт/м2 в Северной Африке. Из этого следует, что на Севере солнечная панель не выдаст своей заявленной мощности, а вот в Африке легко. НО… Как только на небе появляются тучи, которые затеняют солнечную панель, то уровень инсоляции снижается. Вспомните погоду за последний месяц, много ли идеально солнечных дней вы видели? Если вы с Краснодара, то возможно много, а вот у жителей средней полосы облаков однозначно больше.


Собственно в чем проблема… При снижение освещенности солнечной панели — изменяется расположение точки максимальной мощности (ТММ) на ВАХ реальной солнечной панели. Теперь давайте разберемся что же такое ТММ… Для этого берем солнечную панель с заявленной мощностью 200 Вт (у меня это Delta BST200-24P) и снимаем с нее вольт-амперную характеристику (ВАХ) при уровне инсоляции в 1000 Вт/м2:


ВАХ солнечной панели


ТТХ солнечной панели


Если посмотреть на график мощности, то на нем четко виден пик в котором панель отдает максимально возможную мощность — это и есть ТММ. Так же если из этой точки опустить линию вниз, то она пересечет ВАХ — координаты этой точки являются тем самым результатом, который необходимо найти. Если говорить проще: "MPPT — это процесс поиска точки на ВАХ в которой произведение тока и напряжения имеет максимальное значение"


Дополнительно стоит обратить внимание, что солнечная панель может выдавать несколько больше, это нормальное явление, т.к. эффективность ее зависит не только от уровня инсоляции, но еще и от температуры. Если поставить панель под солнце, то через несколько часов она достаточно сильно нагреется и мощность упадет примерно на 10%.


Теперь давайте разберемся что именно будет делать контроллер заряда и зачем ему МРРТ. Как ранее было сказано — уровень инсоляции будет значительно меняться в процессе эксплуатации: облака, пасмурная погода, рассвет и закат Солнца, соответственно будет изменяться и ВАХ солнечной панели:


ВАХ от инсоляции


На графике изображены ВАХ для 4-х случаев: 1000, 800, 600 и 400 Вт/м2 и соответственно для каждого случая у нас будет своя точка на ВАХ, где произведение тока и напряжения будет иметь максимальное значение. Задача контроллера заряда с MPPT — искать точку максимальной мощности для конкретных погодных условий. Например, живете вы где-нибудь в Воронеже, у вас тепло и много солнечной энергии и вы нашли ТММ и получаете максимальную отдачу мощности, но через 15 минут над вашими панелями встала туча и частично закрыла собой панели и значение инсоляции изменилось, а следовательно изменилась ВАХ панели. Чтобы контроллер заряда мог подстроиться под новые условия ему необходимо с некоторой частотой, например, раз в 5 минут, производить вычисления и поиск ТММ для новой ВАХ.


Существует множество алгоритмов поиска ТММ, начиная от простейшего "0,8*Uxx" до различных сканирующих алгоритмов с нейронными сетями, но более подробно об алгоритма и их реализации в коде я расскажу в отдельной статье. Надеюсь вам стало понятно, что такое ТММ и зачем мы ее ищем, теперь можно перейти непосредственно в железу.


Глава 2. Технические характеристики и функционал контроллера


Теперь необходимо решить что же должен уметь контроллер, чтобы обеспечить необходимый функционал. Во-первых, контроллер заряжает АКБ, а следовательно необходимо реализовать CC/CV управление (стабилизация тока и напряжения) на выходе и для этого понадобиться измерять ток и напряжение на выходе. Во-вторых, для поиска ТММ необходимо измерять ВАХ солнечной панели, а значит нужно измерять ток и напряжение на входе. В-третьих, должен быть понижающий dc/dc, который опустит входное напряжение до 12 или 24В, в данном случае это будет синхронный buck. Это все позволит реализовать основной функционал устройства, в итоге функциональная схема будет выглядеть так:


Функциональная схема


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


Технические характеристики:

  • Входное напряжение: 15...60В
  • Выходное напряжение: 12/24В
  • Номинальный выходной ток: 20А
  • Алгоритмы МРРТ: да
  • Частота преобразования: 100 кГц
  • Защита от перегрева: да
  • Защита от сквозного тока: да
  • Защита АКБ: OVP и OCP
  • Интерфейсы: USB, Modbus
  • Ресурс: не менее 50 000 часов
  • Габаритные размеры: 110х90х20 мм

Особых изысков в данном решение не предполагается, основной уклон на повышенную надежность, эффективность алгоритмов ТММ и сохранение адекватной стоимости контроллера. Из удобств было решено заложить гальванически развязанный USB для настройки и перепрошивки управляющего микроконтроллера + его можно использовать для отладки, если SWO вам не нравится. Так же для реализации удаленного управления и мониторинга заложил RS-485, который надежен, дешевый в реализации и позволяет организовать связь на расстояние до 1000 метров. От wi-fi и прочего радио отказался сразу, т.к. контроллер обычно эксплуатируется в металлическом щите и как вариант в ж/б здании.


Глава 3. Выбор компонентов


На КДПВ видно, что устройство состоит из двух печатных плат: 4-х слойных модуль управления и основная 2-х слойная плата. Внимательные могут заметить, что модуль управления похож на решение из прошлой статьи, только основательно переработанное. И действительно, после испытания предыдущей версии control board и после обсуждений в комментариях было решено внести ряд глобальных изменений:


  • Отказ от вертикального монтажа в разъем и переход к горизонтальному. Это позволило решить проблему с разъемом и обойтись обычными 2.54 мм PLS-ами, а так же значительно уменьшить высоту устройства. С вертикальной версией высота контроллера была бы 60 мм, а не 20 и был бы велик шанс отломить плату управления. Сейчас же она не выступает на фоне остальных компонентов и по-прежнему занимает мало места;
  • Размеры платы уменьшены до 90х35 мм;
  • Контроллер STM32F334R8T6 заменен на более компактный и дешевый STM32F334C8T6. Эта замена так же привела к уменьшению количества каналов для управления полумостом с 5 до 4-х. Как показала практика данный контроллер не вывозит управление разом 5-ю полумостами, разве что совсем простые алгоритмы. Исходя из этого было решено отказаться от корпус LQFP-64 в пользу LQFP-48;
  • Добавлен гальванически развязанный USB, а если быть точнее, то мост USB-UART, т.к. в самом микроконтроллере нет аппаратного USB интерфейса;
  • С платы управления убрана микросхема PHY для RS-485, т.к. нужна она не всем и не всегда, но для ее возможного использования на разъем выведен UART и дополнительный gpio для управления прием/передачей. Так же теперь на основную плату можно поставить гальванически развязанный PHY и не быть привязанным к выбранному мною решению;
  • На отладочный разъем помимо интерфейса SWD было решено вывести и SWO для более удобной отладки программы.

Плата управления


Теперь перейдем к выбору компонентов для основной (силовой) части преобразователя. В своем предыдущем рассказе о топологии Buck я поведал о выборе силовых компонентов (транзисторы, конденсаторы, дроссель) и о методике расчетов их номиналов. Сегодня хотелось бы чуть подробнее рассказать о не менее важных компонентах, а именно про драйвер управления силовыми ключами, датчики тока и прочее.


Датчик тока

Для управления зарядом АКБ и измерения ВАХ солнечной панели необходимо измерять постоянный ток в диапазоне от 0 до 20А. Вариантов измерить постоянный ток не так много, самые эффективные и простые способы — токовый шунт и датчик на эффекте Холла. В первой версии я опробовал связку "шунт + INA194", вариант в общем-то рабочий, но сам монитор оказался достаточно шумным и была проблема в измерение токов менее 3-4А. Проблема решалась увеличением номинала шунта и цифровым фильтром, но тогда повышалась мощность, выделяемая на шунте в виде тепла, чего сильно не хотелось.


Изначально вариант с применением датчиков Холла я откинул сразу, а именно серии ACS (например, ACS758 или ACS711), т.к. в прошлом уже пытался их применить, но они сильно врали и у них низка полоса измерения. Правда в одном из обсуждений человек рассказал об успешном опыте применения данных датчиков, оказалось, что относительно новые серии перестали реагировать на малейшие наводки, главное чтобы около них не было ничего железного или того, что может намагнититься. Измерять мне нужно постоянный ток в системе, где скорость изменения тока не высока, а следовательно и полосы в 100 кГц хватит. Исходя из простоты и цены решения во второй версии MPPT контроллера я поставил ACS713ELCTR-30A. У Allegro есть две версии датчиков — DC и DC/AC, мне переменку измерять не нужно, а следовательно выбор очевиден в пользу DC, которые так же обладают бОльшим значением "вольт на ампер". Это позволило достаточно точно измерять не только большие значения тока, но и малые на уровне 0,3...0,5А с реальной погрешностью ±5%. Схема включения данного датчика крайне проста:


Схема датчика тока


Включение стандартное, никакой магии в схеме нет, единственное что необходимо сделать — "согласовать" выходной диапазон датчика 0...5В с тем, что может измерить АЦП у микроконтроллера STM32, а именно с диапазоном 0...3,3В. У датчика выход напряжением, он линеен и увеличение выходного напряжения на 133 мВ означает увеличение тока, протекающего через датчик, на 1А. Исходя из этого минимальное напряжение на выходе 0В, а максимальное 30А * 133 мВ/А = 3,99В. Теоретически делитель напряжения можно было бы не ставить, т.к. максимальный ток всего 20А и следовательно напряжение на выходе будет в пределах 2,66В и никак не угрожает входу АЦП, но лучше перестраховаться. Возможно после тестирования и длительной обкатки устройства я все таки уберу делитель и поставлю повторитель напряжения на ОУ.


Драйвер управления затворами транзисторов

Еще на стадии идеи я решил сразу отказаться от полной гальванической развязки управляющей схемы от силовой, это банально дорого, хотя и избавляет от наводок и защищает цифровую часть. Введение гальванической развязки 2-х напряжений и драйвера повысило бы цену преобразователя на 40%. Поэтому от любимых драйверов Infineon серии 1ED/1EDI пришлось отказаться и выбрать что-то приличное с бутстрепным питанием верхнего ключа, мой выбор пал на достаточно новое решение — NCP5183DR2G. Драйвер показал себя в работе очень стабильным и достаточным для управления парой mosfet-ов на частоте 100 кГц. Минус в нем я нашел один — отсутствие отдельного входа, например, ShutDown или Enable для выключения драйвера в случае аварии, поэтому для реализации защиты необходимо ставить дополнительную дискретную логику или использовать аппаратный вход FAULT в самом микроконтроллера STM32F334. Я выбрал второй вариант и пока он меня не подвел, хотя изначально относился скептически к надежности такого решения. Схема управления транзисторами выглядит так:


Схема драйвера


Решение простое и понятное, единственное добавлю от себя — конденсатор С1 должен быть керамическим с диэлектриком X7R и желательно не самый поганый, оригинального Yageo/Murata/Samsung хватит всем. Вся остальная рассыпуха может быть и брендом попроще. Кстати, о "муках выбора" номинала затворных резисторов R1 и R5 вы можете прочитать в данной статье.


Выходные конденсаторы

Выше я заявил о приоритете надежности и ресурса преобразователя, а следовательно необходимо устранить все слабые места. В современных dc/dc преобразователях по моему мнению осталось одно слабое место — электролитические конденсаторы, которые так или иначе через некоторое время "сохнут" и деградируют, что приводит сначала к росту пульсаций и перегреву, а затем к выходу преобразователя из строя.


В моем контроллере заряда целых 2 таких места: конденсаторы на входе и выходе. Было решено заменить выходные электролиты на твердотельные полимерные конденсаторы (как в ваших видеокартах), которые куда легче переносят работу на токах в десятки ампер и обладают ресурсом на порядок выше, чем у самого качественного электролитического конденсатора. Минус у них один — цена, данное удовольствие от Panasonic стоит 2$/шт, но оно того стоит.


На входе устройства напряжение может достигать 60В, а это значит, что твердотельные полимерные конденсаторы уже не поставить, их просто нет, максимум 35В. Правда есть гибридные варианты, это промежуточное звено между электролитом и твердотельным конденсатором, они есть до 100В. У данного типа конденсаторов жидкий электролит заменен на пастообразный, что позволяет в разы повысить его ресурс.


Фото МРРТ


Самые внимательные могут заметить, что выходные твердотельные конденсаторы разные на двух платах. Я думаю, что все "оценили" стоимость за конденсатор 120 мкФ 35В, электролит от Wurth стоит в 10 раз дешевле. Исходя из этого я решил для тестов купить альтернативу конденсаторам 35SEK330M от Panasonic. Ну как альтернативу… есть такая азиатская компания Lelon, которая делает полный аналог (с их слов) конденсаторов от Panasonic. На одну плату я поставил оригинал, на другую аналог, сами устройства у меня уже тестируются около месяца и пока разницы действительно не замечено, посмотрим какой будет итоговый ресурс, но для желающих уронить цену в 5 раз до 0,4$/шт советую задуматься.


Общие сведения по компонентам

Хотелось бы отдельно сказать о политике выбора компонентов и решений. Так как идея предполагает использование данного контроллера не только для изучения на столе, но и работу "в поле", то было решено использовать только проверенных производителей и не использовать китайские компоненты (кроме опыта с Lelon) и различные поделки с алиэкспресс. В моем варианте исполнения и в BOM-е фигурируют оригиналы с digikey от производителей типа Infineon, TI, ON, ST, Yageo, Bourns и прочие. В принципе никто не запрещает вам поставить компоненты попроще, с того же алиэкспресс, но будьте готовы к снижению надежности и КПД контроллера.


Глава 4. О проекте и исходниках


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


  • Индуктивность силового дросселя — 30 мкГн, намотан на кольце R32/20/10 из материала Kool Mu. Кольцо откровенно с запасом выбрано, т.к. планировались эксперименты с частотой и повышением тока;


  • Емкость выходных конденсаторов — около 300 мкФ, в реальности емкость набрана существенно бОльшая, что уменьшило выходные пульсации. Я пробовал работу и с 3-мя конденсаторами, все отлично, так что если вы надумаете повторить, то смело оставляйте половину посадочных мест под выходные конденсаторы пустыми. В принципе можно попробовать впаять 6 обычных электролитических конденсаторов, если нет возможности купить твердотельные. По моим предположениям работать контроллер будет без каких-либо проблем;


  • Транзисторы (IPD053N08N3GATMA1) я выбрал те, что были у меня в запасах и достаточно легко покупаются. Если у вас уже есть ключи или не смогли купить те, что заложены у меня, то выбирайте транзистор с сопротивлением канала не более 8 мОм и затвором не более 100 нКл. В противном случае КПД достаточно сильно упадет и транзисторы будут существенно перегреваться.



Так же наверняка найдутся те, кому лень идти на github, поэтому оставлю полную схему устройства в формате PDF:



Железная часть проекта выполнена в Altium Designer 19, так же проект можно открыть в Curcuit Studio. Для тех, кто не хочет связываться с покупкой софта или пиратством, есть принципиальная схема в PDF и Gerber-файлы, этого вам будет достаточно для самостоятельного заказа печатных плат и сборки МРРТ контроллера.


Теперь что касается софта… В ближайшее время я "причешу" тестовый проект на котором сейчас работают контроллеры и так же выложу на github, все желающие смогут посмотреть реализацию тех или иных модулей, а может и помочь в его написании и поиске ошибок. Так же планирую пару статей касательно софтовой части управления dc/dc преобразователем, а именно про П-, ПИ-, ПИД-регуляторы, их реализацию, цифровые фильтры и соответственно про алгоритмы поиска ТММ.


Заключение


В дальнейшем предполагается еще одна ревизия железа, т.к. в процессе работы вылезли небольшие, но неприятные мелочи, например, с некоторой вероятностью без прошивки на выводах МК может появиться лог.1 и она откроет оба транзистора и приведет к КЗ. Данная проблема побеждается или предварительной заливкой прошивки перед первым включением контроллера или более правильный путь — установка резисторов 10 кОм, подтягивающих входы HIN и LIN на землю (GND). Хотя и в текущем состоянии контроллер работоспособен, но хочется в дальнейшем "вычистить" все потенциально проблемные места.


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


Так же у меня осталось 2 комплекта печатных плат, если кто-то захочет собрать контроллер, то отдам безвозмездно в добрые руки. От вас лишь потребуется собрать и при наличии желания потом написать мне свои замечания и предложения. Желающие пишите в личку.


Проекты на Github

Комментарии (61)


  1. vgolodyk
    31.05.2019 16:00
    +1

    Спасибо!
    Очень полезная статья, с нетерпением жду продолжения!

    Еще, думаю, стоит добавить, и может быть выделить абзац в следующей статье об управлении, что в промышленности, на СЭС бОльшей мощности в том числе, большинство MPPT построено на boost-топологии, где уже управление будет немного отличаться от понижайки. Думаю многим будет полезно для общего развития.


    1. NordicEnergy Автор
      31.05.2019 16:09
      +2

      По хорошему тут не один абзац нужен, а отдельная железка и статья по ней. Я все порываюсь попробовать многофазный boost на сборке типа DF11MR12W1M1_B11, сетевой инвертор с МРРТ как раз подходящая задача.


  1. Bedal
    31.05.2019 16:12
    +2

    1. NordicEnergy Автор
      31.05.2019 16:20
      +2

      Действительно, благодарю)) Тут я дубу дал, таблица с которой брал данные приведена для площади равной площади панели, а на для 1 м2. Циферки примерно в 2 раза скромнее получаются, сейчас поправлю.


  1. Mogwaika
    31.05.2019 16:46

    А какова примерная стоимость BOM-а, что 40% удешевления играют роль? Это же не серийное изделие, а для повышения надёжности и простоты реализации штучного для себя иногда проще доплатить эти 40%? Хотя это моё личное мнение диванного теоретика.


    1. NordicEnergy Автор
      31.05.2019 16:58

      Около 25...30$ за компоненты + платы. Изделие действительно не серийное, но большинство людей (с которыми общаюсь по своим железкам) почему-то пугаются всяких AMC1200 или UCC21520. В принципе опираясь на данную схемку можно взять IR2110 + IRF3205 по 100 рублей за ведро и сделать тоже самое, да менее пафосно, но тоже будет работать. Замену же новым драйверам под рукой не каждый может найти.


  1. DenisHW
    31.05.2019 16:52

    У вас защита транзисторов от кз выполнена на LMV321. У него полоса еденичного усиления 1MHz. У вас он усиливает в 30 раз, что дает полосу 30кГц, и постоянную времени около 5мкс. Успевает ли работать этот узел? Пробовали тестировать?


    1. NordicEnergy Автор
      31.05.2019 17:02

      В управляющих сигналах есть dt, поэтому сквозняков пока не было видно, защиту поставил «на всякий случай», но времени реакции защиты даже 50 мкс вполне хватает для спасения самых нежных mosfet-ов на низких напряжениях.


      1. DenisHW
        01.06.2019 09:13
        +1

        50 мкс вполне хватает для спасения самых нежных mosfet-ов на низких напряжениях.

        Откуда такие цифры? График SOA для вашего не самого нежного транзистора при 60В показывает близкое к 1 мкс при Т=25 градусов.


  1. truebest
    31.05.2019 17:00

    Защиты от переплюсовки по входу и выходу не хватает, обязательно перепутают!
    Делал похожую конструкцию, только панель у меня на 15-20W была, потому bulk делал асинхронный.
    Датчик тока у вас хороший получился, с хорошим запасом по напряжению, здесь все как надо.


    1. NordicEnergy Автор
      31.05.2019 17:08
      +1

      Защиты от переполюсовки по входу
      В Греции все есть :)) Хотя, если использовать цветные провода (красный/черный), то чтобы перепутать надо очень долго стараться.

      image


      1. truebest
        31.05.2019 17:27

        Вот только теперь открыл PDF )) У меня немного не так было сделано, и грубо говоря токовый шунт стоял до транзистора. ИС датчика тока мерила ток в обоих направлениях, потому схема издавала противный звуковой сигнал, о том что неправильно подключено.
        Это все равно мало помогало от гавриков, которые путали «педали». Какие бы провода не были — не поможет. Кое как помогает физическая невозможность подключить, разными моделями контактов. Путали как по входу, так и по выходу.

        Еще вот что может помешать работе, самозапит, если V12 и VOUT это посути одно и тоже, хотя у вас N-канальники, может и не будет.


        1. NordicEnergy Автор
          31.05.2019 17:41

          если V12 и VOUT это посути одно и тоже
          Не, у меня 12В идет от отдельного dc/dc, а вот выход может быть и 12 и 24В. В принципе можно так же повесить на выходную шину и получить защиту, но я хотел именно возможность со стороны МК отключать в нужный момент батарею без остановки преобразователя.

          ИС датчика тока мерила ток в обоих направлениях
          В обоих направлениях измеряют те, что ac/dc, а у них меньше вольт на ампер, поэтому я решил сделать дубовую защиту + dc датчик униполярный. Хотя с направлением тока тоже хитро :)) Быстродействия хватало чтобы достаточно быстро распознать неправильное направление тока?


          1. truebest
            31.05.2019 18:05

            Использовалась INA219. Да, по напряжению у нее размах маленький, но в характеристике используемой панели open circuit voltage 21.5V, а ток КЗ 0.96А, все что выше 22В срезалось TVS диодами. Для создания обратного тока использовался диод с резистором. В прошивке контроллера была отсечка, если считывалось с ИС ток больше -5ма то аляма-ахтунг!

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


            1. NordicEnergy Автор
              31.05.2019 18:14

              Понял, возьму на вооружение. В принципе прошивка может работать совсем шустро, встроенные в stm компараторы гарантированно тормозят управляющий сигнал и по сути не сильно зависят от «качества» кода.


              1. truebest
                31.05.2019 18:32

                Есть INA226 до 36V, у нее алерт-пин есть, можно прерывания ловить. Но вам по напряжению может не подойти.
                МPPT не требовательно к быстродействию. Инсоляция резко не меняется, потому удержать моменты MPPT нетрудно, надо очень криво код написать чтобы это медленно работало. Ну а перед включением преобразователя, сначала несколько секунд все мониторю, параметры стабильны -> запускаем MPPT и преобразователь. А при обратном подключении важно через 1-2 секунды оповестить горе-юзера, полярность за него не поменять же.


                1. NordicEnergy Автор
                  31.05.2019 18:37

                  МPPT не требовательно к быстродействию
                  Это да, что по входу процессы медленно протекают, что по выходу на стороне АКБ.

                  А при обратном подключении важно через 1-2 секунды оповестить горе-юзера
                  Я тоже для такого случая заложил пищалку, вернее для сигнала об ошибке. Правда в моем исполнение при смене полярности контроллер вообще не включится. Минус такого решения, что нет индикации переполюсовки, разве что заложить под это дело резистор+светодиод, которые включить в обратной полярности.


                  1. truebest
                    31.05.2019 18:48

                    Я про сторону панели говорил.
                    А про сторону АКБ, если здесь перепутали, то просто нужно не включать. В моем исполнении девайс целиком просто не включался.


                1. sim2q
                  01.06.2019 02:08

                  … раз в 5 минут, производить вычисления и поиск ТММ для новой ВАХ.
                  Инсоляция резко не меняется, потому удержать моменты MPPT нетрудно,
                  А на «солце вышло из за туч» — никто не ориентируется?
                  Смысла нет?


                  1. NordicEnergy Автор
                    01.06.2019 07:21

                    Немного не уловил суть вопроса… В смысле использовать датчики освещенности?


                    1. sim2q
                      01.06.2019 19:38

                      У нас в горах солнце яркое, но облака очень низкие и освещённость меняется очень быстро. За 5мин может много раз скрыться за тучкой и появиться.
                      update: habr.com/ru/post/454024/?reply_to=20230130#comment_20230304 — тут про неск секунд опрос пишут, что устраивает


                  1. truebest
                    01.06.2019 09:00

                    Цикличность опроса датчиков, и запуск алгоритма MPPT для поиска ТММ, достаточно раз или два в секунду делать, и все будет работать. Опрашивая с такой периодичностью вы точно поймаете любую тучу.
                    На практике же, частота опроса датчиков и поиск ТММ происходит гораздо чаще.


                    1. sim2q
                      01.06.2019 19:38

                      Ага, понял. Выше про 5мин смутило


  1. bisoft
    01.06.2019 07:21

    А что будет, если вначале подключить солнечную панель, а потом питание — не сгорит? Во многих контроллерах пишут, подключать вначале питание, потом солнечные панели.


    1. NordicEnergy Автор
      01.06.2019 07:23

      Во многих бюджетных решениях питание устройства происходит от АКБ, то есть действительно работает правило: сначала АКБ, потом панели. В моей же реализации питание устройства идет от панели, это чуть дороже (dc/dc с входом 60В стоит пару $), поэтому сразу можно цеплять панели и все будет работать, порядок подключения не критичен.


  1. u_235
    01.06.2019 10:52

    Не нашел в репозитории исходников для микроконтроллера.


    1. NordicEnergy Автор
      01.06.2019 11:18

      В статье же написано, что в ближайшее время появятся после "причесывания". Если нужно срочно, то напишите в личку скину бинарник для прошивки МК.


  1. QuakeMan
    01.06.2019 12:08

    А я вот не совсем понял — зачем искать точку максимальной мощности?


    1. AllexIn
      02.06.2019 13:09

      Чтобы получить лучший КПД


      1. NordicEnergy Автор
        02.06.2019 18:25

        Стоит уточнить, что КПД электростанции, а не самого преобразователя. «Удержание» панели в ТММ позволяет получить с нее максимально возможную мощность в текущий момент времени.


        1. QuakeMan
          02.06.2019 20:23

          Ага… я кажется понял — это поиск приближенно говоря оптимальной нагрузки для батареи в конкретный момент освещенности?


          1. NordicEnergy Автор
            02.06.2019 23:01

            Если под батарей понимается солнечная панель, то совершенно верно.


  1. kaSKAdik
    01.06.2019 12:15

    А вы не смотрели в сторону более надёжных и точных датчиков тока, например, от Lem? Они, конечно, подороже, но у них и характеристика линейнее и погрешность измерения меньше. Особенно хороши на эффекте Холла с закрытой петлёй.

    На входе устройства напряжение может достигать 60В, а это значит, что твердотельные полимерные конденсаторы уже не поставить, их просто нет, максимум 35В.
    Почему же? A759PY337M1JAAE042 от Kemet: 330 мкФ, 63 В, 4,5 $.
    У Wurth тоже полно полимеров на 63 В (до 56 мкФ) и даже до 100 В (до 47 мкФ), но, правда, там и цены соответствующие.


    1. NordicEnergy Автор
      01.06.2019 13:07

      LEMы я люблю в переменке, а для постоянного тока они здоровые и как вы правильно сказали — дороговато. По ТТХ они и правда топ.


      Вот у вюрта, которые 63В, уже идут гибриды, у меня они стоят по входу. Хотя и написано, что твердотельные, но самое интересное в дш мелким шрифтом))


      1. kaSKAdik
        01.06.2019 13:20

        Посмотрел пристально даташит вот на этого красавца. Не смог найти упоминание о его гибридном происхождении. Или я не так ищу?


        1. NordicEnergy Автор
          01.06.2019 14:25

          Действительно, это уже я невнимательный или искал не там, тогда надо купить попробовать. Спасибо за наводку)


  1. truebest
    01.06.2019 12:52

    NordicEnergy а можете поделиться комплектом? Кроме своего давно ничего не собирал) У меня солнечная панель есть небольшая, и в питере лето пришло.
    Хотел еще спросить, а реализованы ли алгоритмы «правильной» зарядки АКБ (свинец/гель/agm)?


    1. NordicEnergy Автор
      01.06.2019 13:08

      Конечно, я как дома вечером буду отпишусь в личку. Алгоритмы для свинца, геля и agm есть, у меня тестовый АКБ Delta GX12-100. Нет только для АКБ на основе лития.


      1. kaSKAdik
        01.06.2019 13:16

        Нет только для АКБ на основе лития.
        Тогда это уже не АКБ, а литиевый аккумулятор.


  1. DenisHW
    01.06.2019 13:01
    +1

    Как вы делали расчет входных/выходных конденсаторов? У вас топология бак, значит для входных конденсаторов ток значительно больше, чем для выходных. Для оценки при Uin=50,Uout=24, Iout=20A, заполнение 0.5, грубо:
    Iin_cap_ripple=Iout/2 =10A RMS.
    Iout_cap_ripple=Vout/L*Toff/sqrt(12)=24/30e-6*5e-6=1.1 A RMS.
    То есть для 1А рмс для выходных конденсаторов вы ставите их целых шесть. А для входных 10А рмс только два.
    Вы делали температурные измерения? Thermal image camera?


    1. NordicEnergy Автор
      01.06.2019 13:18

      В статье же написано, что достаточно 3-х конденсаторов (300 мкФ). Учитывая, что ток на входе меньше в 2 раза, то и меньше ёмкость, там стоят 2 банки.
      Тепловизором смотрел, на 20А 12В самое горячее — ключи и дроссель, до +62 градусов.


      1. DenisHW
        01.06.2019 13:29
        +1

        Учитывая, что ток на входе меньше в 2 раза, то и меньше ёмкость, там стоят 2 банки.

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


  1. andrey_ssh
    01.06.2019 15:55
    +1

    Есть мнение, что точность и линейность датчика тока не имеют особого значения для MPPT. Достаточно, чтобы на характеристике отрицательных уклонов не было.

    полосы в 100 кГц хватит
    но при этом на выходе датчика тока висит RC-цепочка 0,1 мкФ * 5,6 кОм ~ 284 Гц.
    Видится некоторая несогласованность в требованиях и реализации.


  1. SergeyMax
    01.06.2019 17:36

    PWM Channel 1 канала D перегружен стоомным R28 в цепи базы VT5.


  1. Ashton141
    02.06.2019 11:03
    +1

    Большое спасибо за статью, очень интересная тема! Илья, а что с тем контроллером, о котором ты рассказывал на ютубе? Будет ли продолжение?


    1. NordicEnergy Автор
      02.06.2019 11:35

      Пожалуйста) А этот контроллер как раз развитие проекта, что был на ютубе, только с исправлением всех недочётов + от buck-boost отказался в сторону просто buck, т.к. панель при падение напряжения ниже 13...14В можно сказать ничего особо не даёт, а КПД у buck-boost чуть хуже.
      Продолжение будет по коду, в том числе и на канале может чего наснимаю типа тесты


  1. sslobodyan
    03.06.2019 12:50

    Илья, в ваших работах я не вижу снабберов. Не могли бы Вы написать статью о том как перешагнуть киловатт, какие решения (аппаратные и/или софтовые) позволяют минимизировать динамические потери на переключение, каким образом уменьшить EMI. Интересует в применении к полномостовому преобразователю со сдвигом фаз.
    PS все статьи читаю с удовольствием, спасибо за науку.


    1. DenisHW
      03.06.2019 13:55
      +1

      У меня есть сомнения, что этот конвертор заработал стабильно на полном токе. Автор не привел никаких осциллограм или термограмм. И с EMI тут тоже могут быть проблемы, входные конденсаторы очень далеко от ключей, выбросы могут быть большими. Полигон земли очень изрезан и неоптимален. Еще конденсаторы входа соеденены через датчик тока, что еще больше увеличивает индуктивность:
      image


      1. NordicEnergy Автор
        03.06.2019 16:34

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

        входные конденсаторы очень далеко от ключей
        Тут вы абсолютно правы, в следующей ревизии поставлю пару керамик прям на ключ. Выбросы, кстати, не особо страшные, выше 16-18В не увидел.

        Полигон земли очень изрезан и неоптимален
        Если совсем красиво делать, то нужен отдельный слой под землю, чтобы минимизировать пути токов. У меня тут не получилось за вечер полностью освободить нижний слой, может в следующий раз посижу по дольше или бахну 4 слоя и ужму размеры, но опять же… страшных вещей я тут не увидел. Посмотрите на большинство публикаций на хабре и в прочих местах, аналогичные проекты у людей работают на макетных платах и проводочках китайских, не видел чтобы жаловались на стабильность :))

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


        1. DenisHW
          03.06.2019 16:42
          +1

          Просто эксперименты и тесты — это самое интересное. Пару осциллограм и фото конвертера в составе тестового стенда — это самое интересное (по моему). Например, резензируемые журналы/конференции не будут даже смотреть на статью без эксперимента.
          У вас в этой статье просто красивые картинки конвертера и все.
          Конвертер сразу заработал, не было ошибок, модификаций, особенностей?
          Спасибо.


          1. NordicEnergy Автор
            03.06.2019 20:34
            +2

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

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

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


            1. DenisHW
              03.06.2019 21:33

              Дверью ошиблись. Тут сборище хоум-блогов, в которые пишут что хотят и что считают интересным в пределах заданной тематики.

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

              Очень бы было интересно видео или картинки тест-сетапа и осциллограм. Вы ведь написали статью с какой целью? Чему-то научить и чему-то научиться, не так ли. Вот было бы интересно, как конвертор работает на практике.
              я упомянул о ряде мелких проблем и даже одну описал с подтяжками входов драйвера.

              Да, верно. Но хотелось, например, сравнения КПД расчетное и полученное, температурные измерения и т.д. Выводы по результатам тестов.
              Ну может, действительно, много хочу.


              1. NordicEnergy Автор
                03.06.2019 22:01
                +1

                Позвольте уж и мне писать, что я хочу и дверь самому выбирать.
                Дык вроде ничего не запрещал, но и требовать/хотеть ничего не надо, даже если я не оправдал ваши ожидания.

                Вы ведь написали статью с какой целью? Чему-то научить
                Я никого не учу вроде бы, вообще насильно учить людей — это задача средней школы. У меня скорее интерес поделиться своими домашними поделками, возможно кому-то что-то в них понравится или может поймут как не надо делать, и познакомиться с людьми у которых аналогичные интересы.

                Вот было бы интересно, как конвертор работает на практике
                Как было отмечено в статье, я задумываюсь написать про управление и там логично будет показать работу устройства под этим управлением с осциллограммами и прочими прелестями.

                Ну может, действительно, много хочу
                Есть такое)) Просто когда я пишу достаточно объемную статью, то много народа просят дробить на логические части и разбивать на 2-3 статьи. Как только я разбил, начинаются вопросы мол многое осталось за кадром. Увы всем не угодить, но писать небольшие статьи объективно проще.

                P.S. не переживайте, я сделаю и замеры кпд, и тепловизором гляну, вас обязательно призову :)


                1. DenisHW
                  03.06.2019 22:26
                  +1

                  Будем ждать новых статей. Успехов!


    1. NordicEnergy Автор
      03.06.2019 16:24

      Вероятно DenisHW с удовольствием напишет про это, судя по комментариям он сильно опытнее и спешит делиться знаниями с народом :)) нет, он только комменты будет строчить

      P.S. если хотите минимизировать динамические потери, то тут резонансная топология зайдет. LLC и фаз шифтед наверное самое простое, что сейчас есть и разжевано. Снабберы я использую, только на совсем здоровых платах, где большие паразитные индуктивности цепей, в остальных случаях не видел чтобы «иголки» убивали ключи с запасом 30-40% по напряжению сток-исток.


      1. sslobodyan
        03.06.2019 17:10

        Как видите по вопросам, я еще во многом не разобрался (самоучка), потому и спрашиваю. Характер моей нагрузки не очень подходит под резонанс. Мощность изменяется от 20 до 100%, частота работы автоматически подстраивается в пределах 10% от 25кГц. На докиловаттных режимах вроде работает терпимо, но хочу «перепрыгнуть в киловатты» ;) Кстати, о выборе и расчете снабберов тоже с удовольствием бы почитал ;)


        1. NordicEnergy Автор
          03.06.2019 20:39
          +1

          LLC не любит регулировку в большом интервале, а вот фаз шифтед вполне подойдет. У ti и инфинеона есть гайды с подробным описанием, расчетами и осцилограммами. В control suite вроде даже пример кода был.

          25 кГц не маловато для резонансника?) Новенькие мосфеты или sic легко работают 80-300 кГц на мощности в пару киловатт.


          1. sslobodyan
            03.06.2019 21:03

            Боюсь, забанят за флуд не по теме ;)
            25 кГц это ультразвук, так что с частотой вариантов нет. Фаз шифтед киловатик качает на старье irfp460 с GDT, ключики градусов под 60 греются и тач на рядом стоящем ноуте сходит с ума от помех. Поэтому хочу научиться переводить это все в ZVS и ZCS, а литература намекает, что это только на полной мощности и стабильной частоте возможно.


            1. NordicEnergy Автор
              03.06.2019 21:24
              +1

              Лень идти в дш с телефона, но насколько помню у 460-го ключа огромные паразитные емкости, если это так, то и потери на переключение будут большие. Тогда 60 градусов будет вполне нормальной температурой. Я бы первым делом ключи поменял на новые и взял бы интегральный драйвер, у меня с gdt как-то не сложилось, если это не хардсвитч или не умею их готовить :))

              P.S. Можем пойти в личку или телегу, если удобно или остаться тут и может другие подскажут чего дельного.


  1. siargy
    03.06.2019 15:47
    +1

    надо было делать плату в размере 10*10 — у кетайцев такие дешевше заказывать


    1. NordicEnergy Автор
      03.06.2019 16:27

      Это да, поленился пока что, в следующей (финальной) ревизии ужму для народных 5$ за 100х100 мм. Уже пара человек возмутилась :)