Taula de continguts:

Arduino - Carregador solar MPPT PV: 6 passos (amb imatges)
Arduino - Carregador solar MPPT PV: 6 passos (amb imatges)

Vídeo: Arduino - Carregador solar MPPT PV: 6 passos (amb imatges)

Vídeo: Arduino - Carregador solar MPPT PV: 6 passos (amb imatges)
Vídeo: Mppt Solar Charge controller | Automatic on /off | Street Light Solar |PV input 2024, Desembre
Anonim
Image
Image
Convertidor de dòlars
Convertidor de dòlars

Hi ha molts controladors de càrrega disponibles al mercat. els controladors de càrrega econòmics normals no són eficients per utilitzar la màxima potència dels panells solars. Els que són eficients són molt costosos.

Així que vaig decidir fabricar el meu propi controlador de càrrega que sigui eficaç i prou intel·ligent per entendre les necessitats de la bateria i les condicions solars. pren les accions adequades per treure la màxima energia disponible de l'energia solar i posar-la dins de la bateria de manera molt eficient.

SI US AGRADA EL MEU ESFORÇ QUE VOTEU AQUESTS INSTRUCTABLES.

Pas 1: què és MPPT i per què el necessitem?

Els nostres panells solars no són intel·ligents i no són intel·ligents per entendre les condicions de la bateria. Suposem que tenim un panell solar de 12v / 100 watts i que donarà una sortida entre 18V-21V depèn dels fabricants, però les bateries tenen una tensió nominal de 12v, en condicions de càrrega completa seran de 13,6v i seran de 11,0v al màxim descàrrega. ara suposem que les nostres bateries es carreguen a 13 V, els panells donen 18 V, 5,5 A amb una eficiència de treball del 100% (no és possible tenir-ne el 100%, però suposem). els controladors normals tenen un regulador de tensió PWM ckt que baixa la tensió a 13,6, però no té guany de corrent. només proporciona protecció contra sobrecàrrega i corrent de fuites als panells durant les nits.

Així doncs, tenim 13,6 v * 5,5 A = 74,8 watts.

Perdem aproximadament 25 watts.

Per trobar-me amb aquest problema, he utilitzat el convertidor SMPS Buck. aquest tipus de conversions tenen una eficiència superior al 90%.

El segon problema que tenim és la producció no lineal dels panells solars. han de funcionar a una tensió determinada per obtenir la màxima potència disponible. La seva producció varia al llarg del dia.

Per resoldre aquest problema s’utilitzen algoritmes MPPT. MPPT (seguiment màxim del punt de potència), tal com el seu nom indica, aquest algorisme fa un seguiment de la potència màxima disponible dels panells i varia els paràmetres de sortida per mantenir la condició.

Així, mitjançant l’ús de MPPT, els nostres panells generaran la màxima potència disponible i el convertidor Buck posarà aquesta càrrega de manera eficient a les bateries.

Pas 2: COM FUNCIONA MPPT?

No ho parlaré en detall. doncs, si voleu entendre-ho, consulteu aquest enllaç -Què és MPPT?

En aquest projecte també he seguit les característiques d’entrada V-I i la sortida V-I. multiplicant l’entrada V-I i la sortida V-I podem tenir la potència en watts.

diguem que tenim 17 V, 5 A, és a dir, 17x5 = 85 watts en qualsevol moment del dia. al mateix temps, la nostra sortida és de 13 V, 6A, és a dir, 13x6 = 78 watts.

Ara MPPT augmentarà o disminuirà el voltatge de sortida comparant-lo amb la potència d’entrada / sortida anterior.

si la potència d’entrada anterior era alta i la tensió de sortida era inferior a l’actual, la tensió de sortida tornarà a baixar per tornar a la potència alta i si la tensió de sortida era alta, la tensió actual augmentarà fins al nivell anterior. per tant, continua oscil·lant al voltant del punt de potència màxim. aquestes oscil·lacions es minimitzen mitjançant algoritmes MPPT eficients.

Pas 3: Implementació de MPPT a Arduino

Aquest és el cervell d’aquest carregador. A continuació es mostra el codi Arduino per regular la sortida i implementar MPPT en un bloc de codi únic.

// Iout = corrent de sortida

// Vout = tensió de sortida

// Vin = tensió d’entrada

// Pin = potència d'entrada, Pin_previous = última potència d'entrada

// Vout_last = últim voltatge de sortida, Vout_sense = tensió de sortida actual

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

{

if (duty_cycle> 0)

{

cicle_deure - = 1;

}

analogWrite (buck_pin, duty_cycle);

}

else if ((VoutVout_last) || (Pi

{

if (duty_cycle <240)

{duty_cycle + = 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vota;

}

Pas 4: convertidor de dòlars

He utilitzat el mosfet de canal N per fer el convertidor de dòlars. normalment la gent tria un mosfet de canal P per a la commutació lateral alta i si escullen un mosfet de canal N amb el mateix propòsit que es necessitarà un IC de controlador o ckt strapping d’arrencada.

però he modificat el convertidor de conversió ckt per tenir una commutació lateral baixa mitjançant un mosfet de canal N. Estic fent servir un canal N perquè són de baix cost, altes potències i una menor dissipació de potència. aquest projecte utilitza un mosfet de nivell lògic IRFz44n, de manera que es pot conduir directament mitjançant un pin PWM arduino.

per a una intensitat de càrrega més alta s'hauria d'utilitzar un transistor per aplicar 10V a la porta per aconseguir que el mosfet es saturés completament i minimitzés la dissipació de potència, també he fet el mateix.

com podeu veure a ckt anterior, he posat el mosfet en tensió v, fent servir així + 12v del panell com a terra. aquesta configuració em permet utilitzar un mosfet de canal N per al convertidor de dòlars amb components mínims.

però també té alguns inconvenients. com que teniu els dos costats separats de tensió, ja no teniu una terra de referència comuna. de manera que la mesura de tensions és molt complicada.

He connectat l'Arduino als terminals d'entrada Solar i he utilitzat la seva línia -ve com a terra per a l'Arduino. podem mesurar fàcilment el volateg d'entrada en aquest punt mitjançant un divisor de tensió ckt segons el nostre requisit. però no podem mesurar la tensió de sortida tan fàcilment, ja que no tenim una base comuna.

Ara per fer-ho hi ha un truc. en lloc de mesurar el condensador de sortida de tensió accros, he mesurat la tensió entre línies de dues veus. utilitzant solar -ve com a terra per a arduino i sortida -ve com a senyal / tensió a mesurar. El valor que obtingueu amb aquesta mesura s'ha de restar de la tensió d'entrada mesurada i obtindreu la tensió de sortida real a través del condensador de sortida.

Vout_sense_temp = Vout_sense_temp * 0,92 + float (raw_vout) * volt_factor * 0,08; // mesura el volatge entre l'entrada gnd i la sortida gnd.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // canvieu la diferència de tensió entre dos motius a la tensió de sortida..

Per a mesures de corrent he utilitzat mòduls de detecció de corrent ACS-712. Han estat alimentats per arduino i connectats a l'entrada gnd.

els temporitzadors interns es modifiquen per guanyar 62,5 Khz PWM al pin D6. que s’utilitza per conduir el mosfet. es necessitarà un díode de bloqueig de sortida per proporcionar fuites inverses i protecció contra la polaritat inversa. Utilitzeu el díode schottky de la intensitat desitjada per a aquest propòsit. El valor de l’inductor depèn de la freqüència i dels requisits de corrent de sortida. podeu utilitzar calculadores de conversió de dòlars disponibles en línia o utilitzar càrrega 100uH 5A-10A. no superi mai el corrent de sortida màxim de l’inductor entre un 80% i un 90%.

Pas 5: retoc final -

Image
Image

també podeu afegir funcions addicionals al carregador. com el meu, també hi ha LCD que mostren els paràmetres i 2 commutadors per rebre l'entrada de l'usuari.

Actualitzaré el codi final i completaré el diagrama ckt ben aviat.

Pas 6: ACTUALITZACIÓ: - Diagrama de circuit real, BOM i codi

Concurs de Llums 2017
Concurs de Llums 2017

ACTUALITZACIÓ: -

He penjat el codi, el bom i el circuit. és lleugerament diferent del meu, perquè és més fàcil de fer aquest.

Recomanat: