Tabla de contenido:

Arduino - Cargador solar PV MPPT: 6 pasos (con imágenes)
Arduino - Cargador solar PV MPPT: 6 pasos (con imágenes)

Video: Arduino - Cargador solar PV MPPT: 6 pasos (con imágenes)

Video: Arduino - Cargador solar PV MPPT: 6 pasos (con imágenes)
Video: Entiendo Energía Solar: ¿Que es el MPPT de los inversores, como extraer lo maximo del inversor? 2024, Noviembre
Anonim
Image
Image
Convertidor de moneda
Convertidor de moneda

Hay muchos controladores de carga disponibles en el mercado. Los controladores de carga baratos ordinarios no son eficientes para utilizar la máxima potencia de los paneles solares. Los que son eficientes, son muy costosos.

Así que decidí hacer mi propio controlador de carga que sea eficiente y lo suficientemente inteligente como para comprender las necesidades de la batería y las condiciones solares. toma las medidas adecuadas para extraer la máxima energía disponible de la energía solar y colocarla dentro de la batería de manera muy eficiente.

SI LE GUSTA MI ESFUERZO, POR FAVOR VOTE ESTE INSTRUCTABLE.

Paso 1: ¿Qué es MPPT y por qué lo necesitamos?

Nuestros paneles solares son tontos y no inteligentes para comprender las condiciones de la batería. Supongamos que tenemos un panel solar de 12v / 100 vatios y dará una salida entre 18V-21V dependiendo de los fabricantes, pero las baterías están clasificadas para voltaje nominal de 12v, en condiciones de carga completa serán de 13.6vy serán de 11.0v al máximo. descarga. ahora supongamos que nuestras baterías se están cargando a 13v, los paneles están dando 18v, 5.5A al 100% de eficiencia de trabajo (no es posible tener el 100%, pero supongamos). Los controladores ordinarios tienen un circuito regulador de voltaje PWM que baja el voltaje a 13,6, pero no aumenta la corriente. solo proporciona protección contra sobrecarga y fuga de corriente a los paneles durante la noche.

Así que tenemos 13,6 v * 5,5 A = 74,8 vatios.

Perdemos aproximadamente 25 vatios.

Para encontrar este problema, he usado smps buck converter. este tipo de conversos tienen una eficiencia superior al 90%.

El segundo problema que tenemos es la salida no lineal de los paneles solares. necesitan ser operados a cierto voltaje para recolectar la máxima potencia disponible. Su producción varía a lo largo del día.

Para solucionar este problema se utilizan algoritmos MPPT. MPPT (Seguimiento del punto de máxima potencia) como su nombre sugiere, este algoritmo rastrea la potencia máxima disponible de los paneles y varía los parámetros de salida para mantener la condición.

Entonces, al usar MPPT, nuestros paneles generarán la máxima potencia disponible y el convertidor reductor colocará esta carga de manera eficiente en las baterías.

Paso 2: ¿CÓMO FUNCIONA MPPT?

No voy a discutir esto en detalle. así que si quieres entenderlo, mira este enlace -¿Qué es MPPT?

En este proyecto, he realizado un seguimiento de las características de entrada V-I y también de la salida V-I. multiplicando la entrada V-I y la salida V-I podemos tener la potencia en vatios.

digamos que tenemos 17 V, 5 A, es decir, 17x5 = 85 vatios en cualquier momento del día. al mismo tiempo, nuestra salida es de 13 V, 6A, es decir, 13x6 = 78 Watt.

Ahora MPPT aumentará o disminuirá el voltaje de salida comparándolo con la potencia de entrada / salida anterior.

si la potencia de entrada anterior era alta y la tensión de salida era más baja que la actual, la tensión de salida será más baja de nuevo para volver a la potencia alta y si la tensión de salida era alta, la tensión actual aumentará al nivel anterior. por lo que sigue oscilando alrededor del punto de máxima potencia. estas oscilaciones se minimizan mediante algoritmos MPPT eficientes.

Paso 3: implementación de MPPT en Arduino

Este es el cerebro de este cargador. A continuación se muestra el código Arduino para regular la salida e implementar MPPT en un solo bloque de código.

// Iout = corriente de salida

// Vout = voltaje de salida

// Vin = voltaje de entrada

// Pin = potencia de entrada, Pin_previous = última potencia de entrada

// Vout_last = último voltaje de salida, Vout_sense = voltaje de salida actual

void regular (float Iout, float Vin, float Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_previous && Vout_sense <Vout_last) || (PinVout_last)))

{

si (ciclo_de_uso> 0)

{

ciclo_de_uso - = 1;

}

analogWrite (buck_pin, duty_cycle);

}

más si ((VoutVout_last) || (Pi

{

si (duty_cycle <240)

{ciclo_de_uso + = 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Paso 4: convertidor Buck

He usado mosfet de canal N para hacer el convertidor buck. Por lo general, las personas eligen mosfet de canal P para conmutación lateral alta y si eligen mosfet de canal N para el mismo propósito, se requerirá un controlador IC o un ckt de correas de arranque.

pero modifiqué el convertidor reductor ckt para tener una conmutación de lado bajo usando mosfet de canal N. Estoy usando el canal N porque son de bajo costo, clasificaciones de alta potencia y menor disipación de energía. Este proyecto utiliza un mosfet de nivel lógico IRFz44n, por lo que puede ser impulsado directamente por un pin arduino PWM.

para una corriente de carga más alta, se debe usar un transistor para aplicar 10 V en la puerta para que el mosfet se sature completamente y minimizar la disipación de potencia, también hice lo mismo.

como puede ver en el ckt anterior, he colocado el mosfet en voltaje -ve, por lo que uso + 12v del panel como tierra. esta configuración me permite usar un mosfet de canal N para convertidor reductor con componentes mínimos.

pero también tiene algunos inconvenientes. como tiene ambos lados -ve voltaje separados, ya no tiene una tierra de referencia común. por lo que la medición de voltajes es muy complicada.

He conectado el Arduino en los terminales de entrada Solar y usando su línea -ve como tierra para arduino. Podemos medir fácilmente la volategia de entrada en este punto utilizando un divisor de voltaje ckt según nuestro requisito. pero no podemos medir el voltaje de salida tan fácilmente porque no tenemos un terreno común.

Ahora bien, para hacer esto hay un truco. en lugar de medir el condensador de salida de voltaje accros, he medido el voltaje entre dos líneas -ve. usando solar -ve como tierra para arduino y salida -ve como la señal / voltaje a medir. El valor que ha obtenido con esta medida debe restarse del voltaje de entrada medido y obtendrá el voltaje de salida real a través del capacitor de salida.

Vout_sense_temp = Vout_sense_temp * 0.92 + float (raw_vout) * volt_factor * 0.08; // medir la volatilidad en la tierra de entrada y la tierra de salida.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // cambia la diferencia de voltaje entre dos tierras a voltaje de salida..

Para las mediciones de corriente he utilizado módulos de detección de corriente ACS-712. Han sido alimentados por arduino y conectados a la entrada gnd.

Los temporizadores internos se modifican para ganar 62,5 Khz PWM en el pin D6. que se utiliza para impulsar el mosfet. Se requerirá un diodo de bloqueo de salida para proporcionar protección contra fugas inversas y polaridad inversa. Utilice un diodo Schottky de la corriente nominal deseada para este propósito. El valor del inductor depende de los requisitos de frecuencia y corriente de salida. Puede usar calculadoras convertidores de dólar disponibles en línea o usar una carga de 100uH 5A-10A. nunca exceda la corriente de salida máxima del inductor en un 80% -90%.

Paso 5: Retoque final -

Image
Image

también puede agregar funciones adicionales a su cargador. como la mía, la pantalla LCD también muestra los parámetros y 2 interruptores para recibir información del usuario.

Actualizaré el código final y completaré el diagrama de ckt muy pronto.

Paso 6: ACTUALIZAR: - Diagrama de circuito real, lista de materiales y código

Concurso de luces 2017
Concurso de luces 2017

ACTUALIZAR:-

He subido el código, el bom y el circuito. es un poco diferente al mío, porque es más fácil hacer este.

Recomendado: