Sadržaj:

Arduino - solarni solarni punjač PV MPPT: 6 koraka (sa slikama)
Arduino - solarni solarni punjač PV MPPT: 6 koraka (sa slikama)

Video: Arduino - solarni solarni punjač PV MPPT: 6 koraka (sa slikama)

Video: Arduino - solarni solarni punjač PV MPPT: 6 koraka (sa slikama)
Video: DIY MPPT Solar Charge Controller using Arduino | 24V Solar Panel, 12V Battery, 50 Watt 2024, Srpanj
Anonim
Image
Image
Pretvarač dolara
Pretvarač dolara

Na tržištu postoji mnogo kontrolora punjenja. obični jeftini kontroleri punjenja nisu učinkoviti za korištenje maksimalne snage iz solarnih panela. Oni koji su učinkoviti, vrlo su skupi.

Stoga sam odlučio napraviti vlastiti kontroler punjenja koji je učinkovit i dovoljno pametan da razumije potrebe baterije i solarne uvjete. potrebne su odgovarajuće radnje kako bi se solarna energija izvukla iz solarne energije i stavila u bateriju vrlo učinkovito.

AKO VAM SE VOLI MOJ NASTAV OD MOLIMO VAS GLASAJTE OVE INSTRUKCIJE.

Korak 1: Što je MPPT i zašto nam je potreban?

Naši solarni paneli su glupi i nisu pametni da razumiju stanje baterije. Pretpostavimo da imamo solarnu ploču od 12V/100 W i da će dati snagu između 18V-21V, ovisno o proizvođaču, ali baterije su ocijenjene za nazivni napon od 12 V, pri uvjetima punog punjenja bit će 13,6 V i 11,0 V pri punom punjenju pražnjenje. sada pretpostavimo da su naše baterije na 13v punjenju, ploče daju 18v, 5.5A pri 100% radnoj učinkovitosti (nije moguće imati 100%, ali pretpostavimo). obični regulatori imaju PWM regulator napona ckt koji pada napon na 13,6, ali nema pojačanja u struji. pruža samo zaštitu od prekomjernog punjenja i curenja struje na pločama tijekom noći.

Dakle, imamo 13,6v*5,5A = 74,8 vata.

Gubimo oko 25 vata.

Da bih naišao na ovaj problem, koristio sam smps buck konverter. ovakvi konverti imaju učinkovitost iznad 90%.

Drugi problem koji imamo je nelinearni izlaz solarnih panela. moraju raditi na određenom naponu kako bi prikupili najveću raspoloživu snagu. Njihov učinak varira tijekom dana.

Za rješavanje ovog problema koriste se MPPT algoritmi. MPPT (Maximum Power Point Tracking), kao što naziv sugerira, ovaj algoritam prati maksimalnu raspoloživu snagu panela i mijenja izlazne parametre kako bi održao stanje.

Tako će pomoću MPPT -a naši paneli generirati maksimalnu raspoloživu snagu, a pretvarač dolara će učinkovito puniti ovo punjenje u baterije.

Korak 2: KAKO DJELUJE MPPT?

Neću o ovome detaljno raspravljati. pa ako to želite razumjeti, pogledajte ovu vezu -Što je MPPT?

U ovom projektu pratio sam ulazne karakteristike V-I i izlaz V-I. množenjem ulaza V-I i izlaza V-I možemo imati snagu u vatima.

recimo da imamo 17 V, 5 A, tj. 17x5 = 85 vata u bilo koje doba dana. u isto vrijeme naš izlaz je 13 V, 6A tj. 13x6 = 78 Watta.

Sada će MPPT povećati ili smanjiti izlazni napon na usporedbom s prethodnom ulaznom/izlaznom snagom.

ako je prethodna ulazna snaga bila velika, a izlazni napon manji od prisutnog, tada će se izlazni napon ponovno smanjiti kako bi se vratio na visoku snagu, a ako je izlazni napon bio visok, sadašnji napon će se povećati na prethodnu razinu. tako nastavlja oscilirati oko točke najveće snage. te su oscilacije minimizirane učinkovitim MPPT algoritmima.

Korak 3: Implementacija MPPT -a na Arduinu

Ovo je mozak ovog punjača. Dolje je Arduino kod za regulaciju izlaza i implementaciju MPPT -a u jednom bloku koda.

// Iout = izlazna struja

// Vout = izlazni napon

// Vin = ulazni napon

// Pin = ulazna snaga, Pin_previous = zadnja ulazna snaga

// Vout_last = zadnji izlazni napon, Vout_sense = prisutni izlazni napon

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

{

ako (radni ciklus> 0)

{

radni ciklus -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

inače ako ((VoutVout_last) || (Pi

{

if (radni_ciklus <240)

{radni_ciklus+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Korak 4: Pretvarač dolara

Koristio sam N-kanalni MOSFET za izradu pretvarača dolara. obično ljudi odabiru P-kanalni MOSFET za visoko prebacivanje sa strane, a ako za istu namjenu odaberu N-kanalni MOSFET tada će biti potreban IC upravljački program ili bokt remen za učvršćivanje.

ali sam izmijenio dolar pretvarač ckt tako da ima nisko bočno prebacivanje pomoću N-kanalnog MOSFET-a. ja koristim N-kanal jer su to niske cijene, velike snage i manje rasipanje snage. ovaj projekt koristi IRFz44n logičku razinu mosfet, tako da se može izravno pogoniti arduino PWM pinom.

za veću struju opterećenja treba koristiti tranzistor za primjenu 10V na vratima kako bi se MOSFET potpuno zasitio i minimizirao rasipanje snage, također sam učinio isto.

kao što možete vidjeti u ckt gore stavio sam MOSFET na -ve napon, pa samim tim koristio +12v s ploče kao uzemljenje. ova konfiguracija omogućuje mi korištenje N-kanalnog MOSFET-a za pretvarač dolara s minimalnim komponentama.

ali ima i nekih nedostataka. budući da su vam obje strane razdvojene -napon je odvojen, više nemate zajedničko referentno uzemljenje. pa je mjerenje napona vrlo zeznuto.

spojio sam Arduino na solarne ulazne terminale i koristio njegovu -ve liniju kao uzemljenje za arduino. možemo lako mjeriti ulazni volateg u ovom trenutku pomoću razdjelnika napona ckt prema našem zahtjevu. ali ne možemo tako lako izmjeriti izlazni napon jer nemamo zajedničku masu.

Sada za to postoji trik. Umjesto mjerenja napona preko izlaznog kondenzatora, izmjerio sam napon između dva -ve linija. pomoću solarnog -ve kao uzemljenja za arduino i izlaznog -ve kao signala/napona za mjerenje. vrijednost koju ste dobili ovim mjerenjem treba oduzeti od izmjerenog ulaznog napona i dobit ćete stvarni izlazni napon na izlaznom kondenzatoru.

Vout_sense_temp = Vout_sense_temp*0,92+float (raw_vout)*volt_factor*0,08; // mjerenje volatge na ulaznom gnd i izlaznom gnd.

Vout_sense = Vin_sense-Vout_sense_temp-dioda_volt; // promijenimo razliku napona između dvije osnove na izlazni napon..

Za mjerenje struje koristio sam ACS-712 module za mjerenje struje. Napaja ih arduino i spojeni su na ulaz gnd.

interni mjerači vremena modificirani su tako da dobiju 62,5 Khz PWM na pin D6. koji se koristi za vožnju MOSFET -om. bit će potrebna dioda za blokiranje izlaza kako bi se osiguralo obrnuto curenje i zaštita od obrnutog polariteta, u tu svrhu upotrijebite schottky diodu željene jakosti struje. Vrijednost induktora ovisi o zahtjevima frekvencije i izlazne struje. možete koristiti online dostupne kalkulatore pretvarača dolara ili koristiti opterećenje od 100uH 5A-10A. nikada ne premašujte maksimalnu izlaznu struju induktora za 80%-90%.

Korak 5: Završni dodir -

Image
Image

svom punjaču možete dodati i dodatne značajke. kao i kod mene, na LCD -u se također prikazuju parametri i 2 prekidača za unos podataka od korisnika.

Uskoro ću ažurirati konačni kod i dovršiti ckt dijagram.

Korak 6: AŽURIRANJE:- Stvarni dijagram kruga, BOM i kôd

Natjecanje svjetla 2017
Natjecanje svjetla 2017

AŽURIRANJE:-

Učitao sam kod, bom i sklop. malo se razlikuje od mene jer je lakše napraviti ovaj.

Preporučeni: