Controlador de carga MPPT en STM32F334C8T6

Los comentarios en mis artículos anteriores plantearon en repetidas ocasiones la pregunta bastante razonable: "¿Por qué hacer convertidores de CC / CC en un microcontrolador cuando hay uno ya hecho?" y como respuesta mencioné constantemente, como el ejemplo más llamativo, un controlador de carga con algoritmo MPPT. Pero decir esto y mostrar ... es mucho más interesante y claro, así que hoy les contaré sobre mi pequeño y lento proyecto de tal controlador.


El proyecto del controlador está abierto, todos los archivos de origen están disponibles en github . El controlador en sí es bastante simple de implementar, está construido sobre la topología de Buck, utiliza los componentes disponibles y todo esto brinda una buena repetibilidad incluso sin mucho conocimiento. El diseño de los conectores y componentes está diseñado para que este controlador se pueda usar como una placa de depuración para estudiar la electrónica de potencia, y como un dispositivo terminado, queda solo para justificarlo.


Fotos de resonancia magnética


Capítulo 1. ¿Qué es el algoritmo MPPT y por qué es necesario?


El MPPT en sí mismo es el proceso de encontrar el punto de máxima potencia de un panel solar. La presencia de este algoritmo en el controlador permite bajo ciertas condiciones aumentar significativamente la eficiencia del uso de paneles solares. Cuando un fabricante escribe potencia en el panel, por ejemplo, 100 ... 200 ... 250 ... 320 W, significa la potencia nominal del panel solar a un nivel de insolación de 1000 W / m 2 . Por supuesto, los fabricantes no llevan los paneles al exterior y no esperan condiciones climáticas ideales, por lo tanto, este valor se acepta como estándar y se "genera" en el banco de laboratorio.


En condiciones reales, con un cielo despejado, el nivel máximo de insolación varía de 250 W / m 2 en algún lugar de Noruega a 900-1000 W / m 2 en el norte de África. De ello se deduce que en el norte el panel solar no dará su potencia declarada, pero en África es fácil. PERO ... Tan pronto como aparecen nubes en el cielo que oscurecen el panel solar, el nivel de insolación disminuye. Recuerde el clima del último mes, ¿cuántos días soleados ideales ha visto? Si eres de Krasnodar, entonces quizás mucho, pero los habitantes de la franja central de nubes son definitivamente más.


En realidad, cuál es el problema ... Con una disminución en la iluminación del panel solar, cambia la ubicación del punto de máxima potencia (TMM) en el CVC del panel solar real. Ahora veamos qué es TMM ... Para esto, tomamos un panel solar con la potencia declarada de 200 W (tengo Delta BST200-24P) y eliminamos la característica de voltaje de corriente (I-V) a un nivel de insolación de 1000 W / m 2 :


VAC del panel solar


Panel solar TTX


Si observa el gráfico de potencia, entonces muestra claramente el pico en el que el panel proporciona la máxima potencia posible: esto es TMM. Además, si baja la línea hacia abajo desde este punto, se intersectará con el CVC: las coordenadas de este punto son el resultado que necesita encontrar. En pocas palabras: "MPPT es el proceso de encontrar un punto en la característica I-V en el que el producto de corriente y voltaje tiene un valor máximo"


Además, vale la pena prestar atención a que el panel solar puede dar un poco más, esto es normal, porque su efectividad depende no solo del nivel de insolación, sino también de la temperatura. Si coloca el panel al sol, luego de unas horas se calentará bastante y la potencia caerá aproximadamente un 10%.


Ahora veamos qué hará exactamente el controlador de carga y por qué necesita resonancia magnética. Como se mencionó anteriormente, el nivel de insolación cambiará significativamente durante la operación: nubes, clima nublado, amanecer y atardecer, respectivamente, y la característica I-V del panel solar también cambiará:


CVC de insolación


El gráfico muestra la característica I - V para 4 casos: 1000, 800, 600 y 400 W / m 2 y, en consecuencia, para cada caso tendremos nuestro propio punto en la característica I - V, donde el producto de corriente y voltaje tendrá un valor máximo. La tarea del controlador de carga con MPPT es buscar el punto de máxima potencia para condiciones climáticas específicas. Por ejemplo, usted vive en algún lugar de Vorónezh, tiene calor y mucha energía solar y ha encontrado TMM y saca el máximo provecho de la energía, pero después de 15 minutos una nube se elevó por encima de sus paneles y cerró parcialmente los paneles y el valor de la insolación ha cambiado, y por lo tanto, el CVC ha cambiado paneles. Para que el controlador de carga pueda adaptarse a las nuevas condiciones, necesita, con cierta frecuencia, por ejemplo, una vez cada 5 minutos, realizar cálculos y buscar TMM para un nuevo CVC.


Hay muchos algoritmos de búsqueda de TMM, que van desde el más simple "0.8 * U xx " hasta varios algoritmos de escaneo con redes neuronales, pero describiré con más detalle acerca de los algoritmos y su implementación en el código en un artículo separado. Espero que comprenda qué es TMM y por qué lo estamos buscando; ahora puede ir directamente a la glándula.


Capítulo 2. Especificaciones y funcionalidad del controlador


Ahora es necesario decidir qué controlador debe poder proporcionar la funcionalidad necesaria. En primer lugar, el controlador carga la batería y, por lo tanto, es necesario implementar el control CC / CV (estabilización de corriente y voltaje) en la salida, y para ello debe medir la corriente y el voltaje en la salida. En segundo lugar, para buscar TMM, es necesario medir la característica I - V del panel solar, lo que significa que es necesario medir la corriente y el voltaje en la entrada. En tercer lugar, debe haber un CC / CC reductor, que reducirá el voltaje de entrada a 12 o 24 V, en este caso será un dólar sincrónico. Todo esto le permitirá implementar la funcionalidad básica del dispositivo, como resultado, el diagrama funcional se verá así:


Diagrama funcional


Como puede ver, no hay nada complicado, el circuito es muy similar al ejemplo de este artículo y las únicas diferencias están en los circuitos de retroalimentación adicionales para implementar el algoritmo de búsqueda TMM y el proceso de carga. Además, es necesario implementar protección contra el sobrecalentamiento, a través de corrientes, agregar un par de interfaces para comunicarse con el mundo exterior y actualizar convenientemente el firmware.


Especificaciones:

  • Voltaje de entrada: 15 ... 60V
  • Voltaje de salida: 12/24 V
  • Corriente nominal de salida: 20A
  • Algoritmos de resonancia magnética: sí
  • Frecuencia de conversión: 100 kHz
  • Protección contra sobrecalentamiento: sí
  • A través de la protección actual: sí
  • Protección de batería: OVP y OCP
  • Interfaces: USB, Modbus
  • Recurso: al menos 50,000 horas
  • Dimensiones totales: 1109020 mm

No hay lujos especiales en esta solución, el sesgo principal es la mayor confiabilidad, la efectividad de los algoritmos TMM y el mantenimiento de un costo adecuado del controlador. De las comodidades, se decidió colocar un USB aislado galvánicamente para configurar y flashear el microcontrolador de control + se puede usar para depurar si no le gusta SWO. Además, para la implementación de control remoto y monitoreo, se instaló el RS-485, que es confiable, económico de implementar y le permite organizar la comunicación a una distancia de 1000 metros. Por wi-fi y otras cosas, la radio se negó de inmediato, porque El controlador generalmente se opera en un panel de metal y como opción en un edificio de hormigón armado.


Capítulo 3. Selección de componentes


En KDPV es visible que el dispositivo consta de dos placas de circuito impreso: módulo de control de 4 capas y la placa principal de 2 capas. Atento puede notar que el módulo de control es similar a la solución del último artículo , solo completamente rediseñado. De hecho, después de probar la versión anterior del panel de control y después de las discusiones en los comentarios, se decidió realizar una serie de cambios globales:


  • Denegación de instalación vertical en el conector y la transición a horizontal. Esto nos permitió resolver el problema con el conector y prescindir de los PLS habituales de 2,54 mm, así como reducir significativamente la altura del dispositivo. Con la versión vertical, la altura del controlador sería de 60 mm, no de 20, y habría una gran oportunidad de romper el tablero de control. Ahora no se destaca en el contexto de los otros componentes y todavía ocupa poco espacio;
  • Dimensiones del tablero reducidas a 90x35 mm;
  • El controlador STM32F334R8T6 reemplazado por un STM32F334C8T6 más compacto y económico. Este reemplazo también condujo a una disminución en el número de canales para controlar el medio puente de 5 a 4. Como ha demostrado la práctica, este controlador no quita el control de una vez por 5 medios puentes, a menos que sean algoritmos muy simples. En base a esto, se decidió abandonar el paquete LQFP-64 en favor del LQFP-48;
  • Se agregó USB aislado galvánicamente, o más precisamente, el puente USB-UART, porque el microcontrolador en sí no tiene una interfaz de hardware USB;
  • Se eliminó el chip PHY para RS-485 de la placa de control, como no todo el mundo lo necesita y no siempre, pero para su posible uso, un conector UART y un gpio adicional para recibir / transmitir control se envían al conector. También ahora, en el tablero principal, puede poner PHY aislado galvánicamente y no estar atado a mi decisión;
  • Además de la interfaz SWD, se decidió enviar SWO al conector de depuración para una depuración más conveniente del programa.

Consejo de administración


Ahora pasemos a la selección de componentes para la parte principal (potencia) del convertidor. En mi historia anterior sobre la topología de Buck, hablé sobre la elección de los componentes de potencia (transistores, condensadores, inductor) y el método para calcular sus clasificaciones. Hoy me gustaría hablar un poco más sobre componentes igualmente importantes, es decir, sobre el controlador de administración de la llave de encendido, los sensores de corriente y más.


Sensor de corriente

Para controlar la carga de la batería y medir la característica de voltaje de corriente del panel solar, es necesario medir una corriente continua en el rango de 0 a 20A. No hay muchas opciones para medir la corriente continua; los métodos más efectivos y simples son una derivación de corriente y un sensor de efecto Hall. En la primera versión, probé un montón de "shunt + INA194", la opción generalmente funciona, pero el monitor en sí era bastante ruidoso y había un problema al medir corrientes de menos de 3-4A. El problema se resolvió aumentando el valor nominal de la derivación y el filtro digital, pero luego aumentó la potencia liberada en la derivación en forma de calor, lo que no quería mucho.


Inicialmente, lancé la opción con el uso de sensores Hall de inmediato, es decir, la serie ACS (por ejemplo, ACS758 o ACS711), porque Ya intenté aplicarlos en el pasado, pero mintieron mucho y su rango de medición es bajo. Es cierto que en una de las discusiones, un hombre habló sobre la experiencia exitosa de usar estos sensores, resultó que la serie relativamente nueva dejó de responder a la más mínima interferencia, lo principal es que no había nada de hierro o algo que pudiera magnetizarse cerca de ellos. Necesito medir la corriente continua en un sistema donde la tasa de cambio de corriente no es alta y, por lo tanto, una banda de 100 kHz es suficiente. Basado en la simplicidad y el precio de la solución, en la segunda versión del controlador MPPT instalé ACS713ELCTR-30A. Allegro tiene dos versiones de sensores: CC y CC / CA, no necesito medir el cambio y, por lo tanto, la elección es obvia a favor de CC, que también tiene un gran valor de "voltios por amperio". Esto permitió medir con precisión no solo las corrientes grandes, sino también las pequeñas al nivel de 0.3 ... 0.5A con un error real de ± 5%. El circuito para encender este sensor es extremadamente simple:


Circuito del sensor de corriente


La inclusión es estándar, no hay magia en el circuito, lo único que debe hacerse es "coordinar" el rango de salida del sensor de 0 ... 5V con lo que puede medir el ADC del microcontrolador STM32, es decir, con el rango de 0 ... 3.3V. El sensor tiene salida de voltaje, es lineal y un aumento en el voltaje de salida en 133 mV significa un aumento en la corriente que fluye a través del sensor en 1A. En base a esto, el voltaje de salida mínimo es 0V, y el máximo 30A * 133 mV / A = 3.99V. Teóricamente, el divisor de voltaje no se pudo configurar porque la corriente máxima es de solo 20 A y, por lo tanto, el voltaje de salida estará dentro de 2.66 V y no amenaza la entrada del ADC de ninguna manera, pero es mejor hacerlo de forma segura. Quizás después de la prueba y un largo robo del dispositivo, todavía quito el divisor y pongo un seguidor de voltaje en el amplificador operacional.


Transistor Gate Driver

Incluso en la etapa de la idea, decidí abandonar inmediatamente el aislamiento galvánico completo del circuito de control del circuito de alimentación, es muy costoso, aunque elimina la interferencia y protege la parte digital. La introducción del aislamiento galvánico de 2 voltajes y un controlador aumentaría el precio del convertidor en un 40%. Por lo tanto, tuve que rechazar mis controladores favoritos de la serie Infineon 1ED / 1EDI y elegir algo decente con potencia de arranque para la clave superior, mi elección recayó en una solución bastante nueva: NCP5183DR2G. El controlador demostró ser muy estable en operación y suficiente para controlar un par de mosfets a una frecuencia de 100 kHz. Encontré una desventaja: la falta de una entrada separada, por ejemplo, ShutDown o Enable para apagar el controlador en caso de accidente, por lo tanto, para implementar la protección, debe instalar una lógica discreta adicional o usar la entrada de hardware FALLO en el microcontrolador STM32F334. Elegí la segunda opción y hasta ahora no me ha fallado, aunque inicialmente era escéptico sobre la fiabilidad de dicha solución. El circuito de control del transistor se ve así:


Circuito conductor


La solución es simple y clara, lo único que agregaré de mí mismo es que el capacitor C1 debe ser de cerámica con un dieléctrico X7R y preferiblemente no el más podrido, el Yageo / Murata / Samsung original es suficiente para todos. El resto del polvo suelto puede ser una marca más simple. Por cierto, puede leer sobre la "agonía de elección" del valor nominal de las resistencias de compuerta R1 y R5 en este artículo .


Condensadores de salida

Indiqué anteriormente la prioridad de la confiabilidad y los recursos del convertidor y, por lo tanto, es necesario eliminar todas las debilidades. En mi opinión, solo hay un punto débil en los convertidores de CC / CC modernos: los condensadores electrolíticos, que de alguna manera se "secan" y se degradan después de un tiempo, lo que primero conduce a un aumento de la ondulación y el sobrecalentamiento, y luego al fallo del convertidor.


En mi controlador de carga hay hasta 2 de esos lugares: condensadores en la entrada y salida. Se decidió reemplazar los electrolitos de salida con condensadores de polímero de estado sólido (como en sus tarjetas de video), que son mucho más fáciles de transportar en corrientes de decenas de amperios y tienen un recurso de un orden de magnitud mayor que el del condensador electrolítico de la más alta calidad. Tienen una desventaja: el precio, este placer de Panasonic cuesta $ 2 / pc, pero vale la pena.


En la entrada del dispositivo, el voltaje puede alcanzar 60 V, lo que significa que los condensadores de polímero de estado sólido ya no se pueden suministrar, simplemente no existen, un máximo de 35 V. Es cierto que hay opciones híbridas, este es un enlace intermedio entre el electrolito y un condensador de estado sólido, son de hasta 100V. Para este tipo de condensador, el electrolito líquido se reemplaza por uno en forma de pasta, lo que permite varias veces aumentar su recurso.


Fotos de resonancia magnética


Los más atentos pueden notar que los condensadores de estado sólido de salida son diferentes en dos placas. Creo que todos "apreciaron" el costo de un condensador de 120 uF 35V, el electrolito de Wurth cuesta 10 veces más barato. En base a esto, decidí realizar pruebas para comprar una alternativa a los condensadores 35SEK330M de Panasonic. Bueno, como alternativa ... existe una compañía asiática de este tipo , Lelon , que fabrica un análogo completo (en sus palabras) de condensadores Panasonic. Puse el original en una placa, en otro análogo, los dispositivos en sí ya han sido probados durante aproximadamente un mes y hasta que se note realmente la diferencia, veamos cuál será el recurso final, pero para aquellos que quieran bajar el precio 5 veces a $ 0.4 / pieza, les aconsejo que piensen en ello.


Resumen de componentes

Me gustaría decir por separado sobre la política de elegir componentes y soluciones. Dado que la idea implica el uso de este controlador no solo para estudiar en la mesa, sino también para trabajar "en el campo", se decidió usar solo fabricantes de confianza y no usar componentes chinos (excepto por la experiencia con Lelon ) y varias artesanías con aliexpress. En mi versión y en la lista de materiales, aparecen originales con digikey de fabricantes como Infineon, TI, ON, ST, Yageo, Bourns y otros. En principio, nadie le prohíbe colocar componentes con mayor facilidad, con el mismo aliexpress, pero esté preparado para reducir la confiabilidad y eficiencia del controlador.


Capítulo 4. Sobre el proyecto y los códigos fuente


Ya escribí sobre componentes de energía y métodos de cálculo en mi artículo sobre Buck , puedes leerlo aquí. Solo daré los resultados que obtuve:


  • La inductancia del inductor de potencia es de 30 μH, enrollada en un anillo R32 / 20/10 de material Kool Mu. El anillo se selecciona francamente con un margen, porque se planificaron experimentos con frecuencia y aumento actual;


  • La capacitancia de los capacitores de salida es de aproximadamente 300 microfaradios, en realidad, la capacitancia es significativamente mayor, lo que reduce la ondulación de salida. Intenté trabajar con 3 condensadores, todo está bien, así que si decides repetirlo, no dudes en dejar la mitad de los asientos para los condensadores de salida vacíos. En principio, puede intentar soldar 6 condensadores electrolíticos ordinarios, si no es posible comprar los de estado sólido. Según mis suposiciones, el controlador funcionará sin ningún problema;


  • Transistores ( IPD053N08N3GATMA1 ) Elegí los que estaban en mis existencias y bastante fáciles de comprar. Si ya tiene las llaves o no pudo comprar las que yo tengo, elija un transistor con una resistencia de canal de no más de 8 mOhm y una puerta de no más de 100 nC. De lo contrario, la eficiencia disminuirá lo suficiente y los transistores se sobrecalentarán significativamente.



También es probable que haya quienes sean demasiado vagos para ir a Github, por lo que dejaré el diagrama completo del dispositivo en formato PDF:



La parte de hierro del proyecto se completó en Altium Designer 19, y el proyecto también se puede abrir en Curcuit Studio. Para aquellos que no quieren involucrarse en la compra de software o piratería, hay un diagrama esquemático en archivos PDF y Gerber, esto será suficiente para que ordene placas de circuito impreso y construya un controlador MRPT usted mismo.


… "" github, , . dc/dc , -, -, -, , .


Conclusión


, .. , , , .1 . — 10 , HIN LIN (GND). , "" .


PCBway , . , , Su apoyo se gastará en hardware y esto dará como resultado un artículo interesante.


También me quedan 2 juegos de placas de circuito impreso, si alguien quiere ensamblar un controlador, entonces se lo daré sin cargo a buenas manos. Solo necesita recolectar y, si lo desea, escríbame sus comentarios y sugerencias. Aquellos que deseen escribir en un personal.


Proyectos Github

Source: https://habr.com/ru/post/454024/


All Articles