Os comentários nos meus artigos anteriores repetidamente levantaram a questão bastante razoável: "Por que fazer conversores dc / dc em um microcontrolador quando existem produtos prontos?" e, como resposta, mencionei constantemente, como o exemplo mais impressionante, um controlador de carregamento com algoritmo MPPT. Mas dizer uma coisa e mostrar ... é muito mais interessante e claro, então hoje vou falar sobre meu pequeno projeto lento de um controlador desse tipo.
O projeto do controlador está aberto, todos os arquivos de origem estão disponíveis no github . O controlador em si é bastante simples de implementar, é construído com base na topologia do buck, usa os componentes disponíveis e tudo isso fornece boa repetibilidade, mesmo sem muito conhecimento. O layout dos conectores e componentes foi projetado para que esse controlador possa ser usado como uma placa de depuração para o estudo da eletrônica de potência e como um dispositivo final, resta apenas justificá-lo.

Capítulo 1. O que é o algoritmo MPPT e por que é necessário
O próprio MPPT é o processo de encontrar o ponto de potência máxima de um painel solar. A presença desse algoritmo no controlador permite, sob certas condições, aumentar significativamente a eficiência do uso de painéis solares. Quando um fabricante grava energia no painel, por exemplo, 100 ... 200 ... 250 ... 320 W, significa a potência nominal do painel solar em um nível de insolação de 1000 W / m 2 . Obviamente, os fabricantes não levam os painéis para fora e não esperam pelas condições climáticas ideais; portanto, esse valor é aceito como padrão e é "gerado" na bancada do laboratório.
Em condições reais, com céu claro, o nível máximo de insolação varia de 250 W / m 2 em algum lugar da Noruega a 900-1000 W / m 2 no norte da África. Segue-se que no norte o painel solar não distribuirá sua energia declarada, mas na África é fácil. MAS ... Assim que as nuvens aparecem no céu que obscurecem o painel solar, o nível de insolação diminui. Lembre-se do clima do último mês, quantos dias ensolarados ideais você viu? Se você é de Krasnodar, então talvez muito, mas os habitantes da faixa intermediária de nuvens são definitivamente mais.
Na verdade, qual é o problema ... Com uma diminuição na iluminação do painel solar, a localização do ponto de potência máxima (TMM) no CVC do painel solar real muda. Agora vamos descobrir o que é TMM ... Para isso, pegamos um painel solar com a potência declarada de 200 W (eu tenho Delta BST200-24P) e removemos dele a característica de tensão de corrente (I-V) em um nível de insolação de 1000 W / m 2 :


Se você olhar para o gráfico de potência, ele mostra claramente o pico em que o painel fornece a máxima potência possível - este é o TMM. Além disso, se você abaixar a linha a partir deste ponto, ele cruzará o CVC - as coordenadas deste ponto são o próprio resultado que você precisa encontrar. Simplificando: "MPPT é o processo de encontrar um ponto na característica I-V no qual o produto de corrente e tensão tem um valor máximo"
Além disso, vale a pena prestar atenção que o painel solar pode dar um pouco mais, isso é normal, porque sua eficácia depende não apenas do nível de insolação, mas também da temperatura. Se você colocar o painel ao sol, depois de algumas horas ele esquentará bastante e a energia cairá cerca de 10%.
Agora vamos descobrir o que exatamente o controlador de carregamento fará e por que ele precisa de ressonância magnética. Como mencionado anteriormente, o nível de insolação mudará significativamente durante a operação: nuvens, tempo nublado, amanhecer e pôr do sol, respectivamente, e a característica I-V do painel solar também mudará:

O gráfico mostra a característica I-V para 4 casos: 1000, 800, 600 e 400 W / m 2 e, portanto, para cada caso, teremos nosso próprio ponto na característica I-V, onde o produto de corrente e tensão terá um valor máximo. A tarefa do controlador de carregamento com MPPT é procurar o ponto de potência máximo para condições climáticas específicas. Por exemplo, você mora em algum lugar de Voronezh, possui calor e muita energia solar, encontra TMM e aproveita ao máximo a energia, mas após 15 minutos uma nuvem subiu acima dos painéis e fechou parcialmente os painéis e o valor da insolação mudou e, portanto, a característica I-V mudou painéis. Para que o controlador de carregamento possa se adaptar às novas condições, ele precisa, com uma certa frequência, por exemplo, uma vez a cada 5 minutos, executar cálculos e procurar TMM para um novo CVC.
Existem muitos algoritmos de pesquisa no TMM, variando dos mais simples "0,8 * U xx " a vários algoritmos de varredura com redes neurais, mas descreverei em mais detalhes sobre os algoritmos e sua implementação no código em um artigo separado. Espero que você entenda o que é TMM e por que estamos procurando; agora você pode ir diretamente para a glândula.
Capítulo 2. Especificações e Funcionalidade do Controlador
Agora é necessário decidir o que o controlador deve fornecer a funcionalidade necessária. Em primeiro lugar, o controlador carrega a bateria e, portanto, é necessário implementar o controle CC / CV (estabilização de corrente e tensão) na saída e, para isso, é necessário medir a corrente e a tensão na saída. Em segundo lugar, para procurar TMM, é necessário medir a característica I-V do painel solar, o que significa que é necessário medir a corrente e a tensão na entrada. Em terceiro lugar, deve haver uma redução de tensão CC / CC, que reduzirá a tensão de entrada para 12 ou 24V; nesse caso, haverá um retorno síncrono. Tudo isso permitirá que você implemente a funcionalidade básica do dispositivo, como resultado, o diagrama funcional ficará assim:

Como você pode ver, não há nada complicado, o circuito é muito semelhante ao exemplo deste artigo e as únicas diferenças estão nos circuitos de feedback adicionais para implementar o algoritmo de busca TMM e o processo de carregamento. Além disso, é necessário implementar proteção contra superaquecimento, através de correntes, adicionar algumas interfaces para se comunicar com o mundo exterior e atualizar convenientemente o firmware.
Especificações:
- Tensão de entrada: 15 ... 60V
- Tensão de saída: 12 / 24V
- Corrente nominal de saída: 20A
- Algoritmos de ressonância magnética: Sim
- Frequência de conversão: 100 kHz
- Proteção contra superaquecimento: Sim
- Através da proteção atual: Sim
- Proteção da bateria: OVP e OCP
- Interfaces: USB, Modbus
- Recurso: pelo menos 50.000 horas
- Dimensões totais: 1109020 mm
Não há detalhes especiais nesta solução, o principal viés é o aumento da confiabilidade, a eficácia dos algoritmos TMM e a manutenção de um custo adequado do controlador. Das comodidades, foi decidido colocar USB isolado galvanicamente para configurar e piscar o microcontrolador de controle + ele pode ser usado para depuração se você não gostar do SWO. Além disso, para a implementação do controle remoto e monitoramento, foi instalado o RS-485, que é confiável, barato de implementar e permite organizar a comunicação a uma distância de 1000 metros. De wi-fi e outras coisas, o rádio recusou imediatamente, porque o controlador geralmente é operado em um painel de metal e como opção em um edifício de concreto armado.
Capítulo 3. Seleção de Componentes
No KDPV, é visível que o dispositivo consiste em duas placas de circuito impresso: módulo de controle de 4 camadas e a placa principal de 2 camadas. Os atentos podem perceber que o módulo de controle é semelhante à solução do último artigo , apenas completamente redesenhado. De fato, depois de testar a versão anterior do painel de controle e depois das discussões nos comentários, foi decidido fazer várias alterações globais:
- Recusa de instalação vertical no conector e a transição para horizontal. Isso nos permitiu resolver o problema com o conector e dispensar os PLSs normais de 2,54 mm, além de reduzir significativamente a altura do dispositivo. Com a versão vertical, a altura do controlador seria de 60 mm, e não 20, e haveria uma grande chance de interromper o painel de controle. Agora, ele não se destaca contra os outros componentes e ainda ocupa pouco espaço;
- Dimensões da placa reduzidas para 90x35 mm;
- O controlador STM32F334R8T6 foi substituído por um STM32F334C8T6, mais compacto e mais barato. Essa substituição também levou a uma diminuição no número de canais para controlar a meia ponte de 5 para 4. Como a prática demonstrou, este controlador não assume o controle de uma só vez por 5 meias-pontes, a menos que algoritmos muito simples. Com base nisso, foi decidido abandonar o pacote LQFP-64 em favor do LQFP-48;
- Adicionado USB isolado galvanicamente, ou mais precisamente, a ponte USB-UART, porque o microcontrolador em si não possui uma interface de hardware USB;
- Removido o chip PHY para RS-485 do painel de controle, conforme nem todo mundo precisa e nem sempre, mas para seu possível uso, um UART e um gpio adicional para controle de recepção / transmissão são enviados para o conector. Também agora, na placa principal, você pode colocar PHY galvanicamente isolado e não ficar vinculado à minha decisão;
- Além da interface SWD, foi decidido enviar SWO para o conector de depuração para uma depuração mais conveniente do programa.

Agora, vamos à seleção de componentes para a parte principal (de potência) do conversor. Na minha história anterior sobre a topologia Buck, falei sobre a escolha de componentes de potência (transistores, capacitores, indutor) e o método de calcular suas classificações. Hoje eu gostaria de falar um pouco mais sobre componentes igualmente importantes, a saber, sobre o driver de gerenciamento de teclas de força, sensores de corrente e muito mais.
Sensor de corrente
Para controlar a carga da bateria e medir a característica de tensão de corrente do painel solar, é necessário medir uma corrente direta na faixa de 0 a 20A. Não existem muitas opções para medir corrente contínua; os métodos mais eficazes e mais simples são um desvio de corrente e um sensor de efeito Hall. Na primeira versão, tentei um monte de "shunt + INA194", a opção geralmente está funcionando, mas o monitor em si era bastante barulhento e havia um problema ao medir correntes menores que 3-4A. O problema foi resolvido aumentando o valor nominal da derivação e o filtro digital, mas a potência liberada na derivação na forma de calor aumentou, o que eu não queria muito.
Inicialmente, joguei a opção com o uso de sensores Hall imediatamente, a saber, a série ACS (por exemplo, ACS758 ou ACS711), porque Eu já tentei aplicá-los no passado, mas eles mentiram muito e seu alcance de medição é baixo. É verdade que, em uma das discussões, um homem falou sobre a experiência bem-sucedida do uso desses sensores, descobriu-se que séries relativamente novas pararam de responder à menor interferência, o principal é que não havia nada de ferro ou algo que pudesse ser magnetizado perto deles. Preciso medir a corrente direta em um sistema em que a taxa de mudança de corrente não seja alta e, portanto, uma banda de 100 kHz é suficiente. Com base na simplicidade e preço da solução, na segunda versão do controlador MPPT, instalei o ACS713ELCTR-30A. O Allegro possui duas versões de sensores - CC e CC / CA, não preciso medir a alteração e, portanto, a escolha é óbvia a favor da CC, que também possui um grande valor de "volts por ampere". Isso possibilitou medir com precisão não apenas grandes correntes, mas também pequenas no nível de 0,3 ... 0,5A com um erro real de ± 5%. O circuito para ligar este sensor é extremamente simples:

A inclusão é padrão, não há mágica no circuito, a única coisa que precisa ser feita é "coordenar" a faixa de saída do sensor de 0 ... 5V com o que ele pode medir o ADC do microcontrolador STM32, ou seja, com a faixa de 0 ... 3,3V. O sensor possui saída de tensão, é linear e um aumento na tensão de saída em 133 mV significa um aumento na corrente que flui através do sensor em 1A. Com base nisso, a tensão mínima de saída é 0V e a máxima 30A * 133 mV / A = 3,99V. Teoricamente, o divisor de tensão não pôde ser configurado, porque a corrente máxima é de apenas 20A e, portanto, a tensão de saída estará dentro de 2,66V e não ameaça a entrada ADC de forma alguma, mas é melhor jogar com segurança. Talvez após o teste e uma interrupção prolongada do dispositivo, eu ainda remova o divisor e coloquei um seguidor de tensão no amplificador operacional.
Driver da porta do transistor
Mesmo no estágio da idéia, decidi abandonar imediatamente o isolamento galvânico completo do circuito de controle do circuito de potência, é banal caro, embora elimine a interferência e proteja a parte digital. A introdução do isolamento galvânico de 2 tensões e um driver aumentaria o preço do conversor em 40%. Portanto, tive que recusar meus drivers favoritos da série Infineon 1ED / 1EDI e escolher algo decente com o poder de bootstrap para a chave superior, minha escolha caiu em uma solução relativamente nova - NCP5183DR2G. O driver provou ser muito estável em operação e suficiente para controlar um par de mosfets a uma frequência de 100 kHz. Eu encontrei um menos nele - a falta de uma entrada separada, por exemplo, ShutDown ou Enable para desligar o driver em caso de acidente; portanto, para implementar proteção, você precisa instalar uma lógica discreta adicional ou usar a entrada de hardware FAULT no próprio microcontrolador STM32F334. Eu escolhi a segunda opção e até agora ela não me falhou, embora inicialmente eu estivesse cético sobre a confiabilidade de uma solução desse tipo. O circuito de controle do transistor é assim:

A solução é simples e clara, a única coisa que vou acrescentar é que o capacitor C1 deve ser cerâmico com um dielétrico X7R e, de preferência, não o mais podre, o Yageo / Murata / Samsung original é suficiente para todos. O restante do pó solto pode ser uma marca mais simples. A propósito, você pode ler sobre a "agonia de escolha" do valor nominal dos resistores de porta R1 e R5 neste artigo .
Capacitores de saída
Afirmei acima a prioridade da confiabilidade e dos recursos do conversor e, portanto, é necessário eliminar todas as fraquezas. Na minha opinião, existe apenas um ponto fraco nos modernos conversores dc / dc - capacitores eletrolíticos, que de alguma forma "secam" e se degradam depois de um tempo, o que primeiro leva a um aumento na ondulação e superaquecimento e depois à falha do conversor.
No meu controlador de carregamento, existem dois locais: capacitores na entrada e na saída. Foi decidido substituir os eletrólitos de saída por capacitores de polímero de estado sólido (como em suas placas de vídeo), que são muito mais fáceis de realizar trabalhos em correntes de dezenas de amperes e têm um recurso em uma ordem de magnitude superior à do capacitor eletrolítico de mais alta qualidade. Eles têm um menos - o preço, esse prazer da Panasonic custa US $ 2 / pc, mas vale a pena.
Na entrada do dispositivo, a tensão pode chegar a 60V, o que significa que os capacitores de polímero de estado sólido não podem mais ser fornecidos, eles simplesmente não existem, no máximo 35V. É verdade que existem opções híbridas, este é um elo intermediário entre o eletrólito e um capacitor de estado sólido, eles são de até 100V. Para esse tipo de capacitor, o eletrólito líquido é substituído por um pasta, que permite várias vezes aumentar seu recurso.

Os mais atentos podem perceber que os capacitores de estado sólido de saída são diferentes em duas placas. Acho que todo mundo "apreciou" o custo de um capacitor de 120 uF 35V, o eletrólito de Wurth custa 10 vezes mais barato. Com base nisso, decidi fazer testes para comprar uma alternativa aos capacitores 35SEK330M da Panasonic. Bem, como alternativa ... existe uma empresa asiática Lelon , que faz um analógico completo (em suas palavras) de capacitores Panasonic. Coloquei o original em uma placa, em outra analógica, os próprios dispositivos já foram testados por cerca de um mês e até que a diferença seja realmente notada, vamos ver qual será o recurso final, mas para aqueles que querem reduzir o preço 5 vezes para US $ 0,4 / peça, aconselho que você pense sobre isso.
Visão geral do componente
Eu gostaria de dizer separadamente sobre a política de escolha de componentes e soluções. Como a idéia envolve o uso desse controlador não apenas para estudar em cima da mesa, mas também para trabalhar “em campo”, foi decidido usar apenas fabricantes confiáveis e não usar componentes chineses (exceto a experiência com Lelon ) e vários artesanatos com aliexpress. Na minha versão e na BOM, aparecem originais com digikey de fabricantes como Infineon, TI, ON, ST, Yageo, Bourns e outros. Em princípio, ninguém proíbe que você facilite os componentes, com o mesmo aliexpress, mas esteja preparado para reduzir a confiabilidade e a eficiência do controlador.
Capítulo 4. Sobre o Projeto e os códigos-fonte
Eu já escrevi sobre componentes de potência e métodos de cálculo no meu artigo sobre buck , você pode ler aqui. Vou apenas dar os resultados que obtive:
A indutância do indutor de potência é de 30 μH, enrolada em um anel R32 / 20/10 de material Kool Mu. O anel é francamente selecionado com uma margem, porque experimentos com aumento de frequência e corrente foram planejados;
A capacitância dos capacitores de saída é de cerca de 300 microfarads; na realidade, a capacitância é significativamente maior, o que reduz a ondulação da saída. Tentei trabalhar com 3 capacitores, está tudo bem, por isso, se você decidir repeti-lo, fique à vontade para deixar metade dos assentos dos capacitores de saída vazios. Em princípio, você pode tentar soldar 6 capacitores eletrolíticos comuns, se não for possível comprar capacitores de estado sólido. De acordo com minhas suposições, o controlador funcionará sem problemas;
Transistores ( IPD053N08N3GATMA1 ) Escolhi aqueles que estavam em minhas ações e eram fáceis de comprar. Se você já possui as chaves ou não pode comprar as que eu tenho, escolha um transistor com uma resistência de canal não superior a 8 mOhm e um portão não superior a 100 nC. .
, github, PDF:
Altium Designer 19, Curcuit Studio. , , PDF Gerber-, .
… "" github, , . dc/dc , -, -, -, , .
Conclusão
, .. , , , .1 . — 10 , HIN LIN (GND). , "" .
PCBway , . , , Seu suporte será gasto em hardware e isso resultará em algum artigo interessante.
Também tenho 2 conjuntos de placas de circuito impresso, se alguém quiser montar um controlador, darei gratuitamente a boas mãos. Você só precisa coletar e, se desejar, me escrever seus comentários e sugestões. Aqueles que desejam escrever em um pessoal.
Projetos Github