Përmbajtje:

Arduino - Ngarkues diellor PV MPPT: 6 hapa (me fotografi)
Arduino - Ngarkues diellor PV MPPT: 6 hapa (me fotografi)

Video: Arduino - Ngarkues diellor PV MPPT: 6 hapa (me fotografi)

Video: Arduino - Ngarkues diellor PV MPPT: 6 hapa (me fotografi)
Video: Automatic Solar Sun Tracker 2-achsig 2-6 PV Panels 2x330Wp robust Stahl Photovoltaik Limiter allside 2024, Nëntor
Anonim
Image
Image
Buck Converter
Buck Converter

Ka shumë kontrollues të tarifave në dispozicion në treg. kontrollorët e zakonshëm të ngarkimit të lirë nuk janë efikas për të përdorur fuqinë maksimale nga panelet diellore. Ato që janë efikase, janë shumë të kushtueshme.

Kështu që vendosa të bëj kontrolluesin tim të ngarkimit i cili është Efikas dhe mjaft i zgjuar për të kuptuar nevojat e baterisë dhe kushtet diellore. ndërmerr veprimet e duhura për të tërhequr fuqinë maksimale të disponueshme nga dielli dhe për ta futur atë brenda baterisë në mënyrë shumë efikase.

NFSE P LRQENI P ERPORIMIN TIM SAN JU LUTEM VOTONI KIST IN UDHZIME.

Hapi 1: Çfarë është MPPT dhe pse na nevojitet?

Panelet tona diellore janë memecë dhe jo të zgjuar për të kuptuar kushtet e baterisë. Supozoni se kemi një panel diellor 12v/100 vat dhe ai do të japë një dalje midis 18V-21V varet nga prodhuesit, por bateritë vlerësohen për tension nominal 12v, në kushte të ngarkimit të plotë ato do të jenë 13.6v dhe do të jenë 11.0v plotësisht shkarkimi tani le të supozojmë se bateritë tona janë në ngarkim 13v, panelet japin 18v, 5.5A me 100% efikasitet pune (nuk është e mundur të kemi 100%, por le të supozojmë). kontrolluesit e zakonshëm kanë një rregullator të tensionit PWM ckt i cili e ul tensionin në 13.6, por asnjë fitim në rrymë. siguron vetëm mbrojtje kundër ngarkimit të tepërt dhe rrjedhjes së rrymës në panele gjatë netëve.

Pra, ne kemi 13.6v*5.5A = 74.8 vat.

Ne humbasim afërsisht 25 vat.

Për t'u përballur me këtë çështje unë kam përdorur konvertuesin smps buck. këto lloj konvertimesh kanë efikasitet mbi 90%.

Problemi i dytë që kemi është prodhimi jo-linear i paneleve diellore. ato duhet të operohen në tension të caktuar për të mbledhur fuqinë maksimale të disponueshme. Prodhimi i tyre ndryshon gjatë ditës.

Për të zgjidhur këtë çështje përdoren algoritme MPPT. MPPT (Ndjekja e pikave maksimale të energjisë) siç sugjeron emri, ky algoritëm ndjek fuqinë maksimale të disponueshme nga panelet dhe ndryshon parametrat e daljes për të ruajtur gjendjen.

Pra, duke përdorur MPPT, panelet tona do të gjenerojnë energji maksimale në dispozicion dhe konverteri do të vendosë këtë ngarkesë në mënyrë efikase në bateri.

Hapi 2: SI PUNON MPPT?

Unë nuk do ta diskutoj këtë në detaje. kështu që nëse doni ta kuptoni, hidhini një sy kësaj lidhjeje -Çfarë është MPPT?

Në këtë projekt unë kam gjurmuar karakteristikat hyrëse V-I dhe daljen V-I gjithashtu. duke shumëzuar hyrjen V-I dhe daljen V-I mund të kemi fuqinë në vat.

le të themi se kemi 17 V, 5 A dmth 17x5 = 85 vat në çdo kohë të ditës. në të njëjtën kohë dalja jonë është 13 V, 6A dmth 13x6 = 78 Watt.

Tani MPPT do të rrisë ose zvogëlojë tensionin e daljes duke e krahasuar me fuqinë hyrëse/dalëse të mëparshme.

nëse fuqia hyrëse e mëparshme ishte e lartë dhe tensioni i daljes ishte më i ulët se ai aktual atëherë tensioni i daljes do të jetë përsëri poshtë për t'u kthyer në fuqinë e lartë dhe nëse tensioni i daljes ishte i lartë atëherë tensioni aktual do të rritet në nivelin e mëparshëm. kështu ajo vazhdon të lëkundet rreth pikës maksimale të fuqisë. këto lëkundje minimizohen nga algoritmet efikase MPPT.

Hapi 3: Zbatimi i MPPT në Arduino

Ky është truri i këtij ngarkuesi. Më poshtë është kodi Arduino për të rregulluar daljen dhe zbatimin e MPPT në një bllok të vetëm kodesh.

// Iout = rryma e daljes

// Vout = tensioni i daljes

// Vin = tensioni i hyrjes

// Pin = fuqia hyrëse, Pin_previous = fuqia e fundit hyrëse

// Vout_last = tensioni i fundit i daljes, Vout_sense = tensioni aktual i daljes

void regulate (notoj Iout, noton Vin, noton Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_precious && Vout_sense <Vout_last) || (PinVout_last)))

{

nëse (cikli i detyrës> 0)

{

cikli i detyrës -= 1;

}

analogWrite (buck_pin, cycle_cycle);

}

tjetër nëse ((VoutVout_last) || (Pi

{

nëse (cikli i detyrës <240)

{cikli i detyrës+= 1;

}

analogWrite (buck_pin, cycle_cycle);

}

Pin_prepareth = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Hapi 4: Buck Converter

Unë kam përdorur mosfet moshës N për të bërë konvertuesin. zakonisht njerëzit zgjedhin mosfetin e kanalit P për ndërrimin e anës së lartë dhe nëse zgjedhin mosfetin e kanalit N për të njëjtin qëllim sesa një IC shofer do të kërkohet ose rripin e nisjes ckt.

por e modifikova konvertuesin buck ckt për të pasur një ndërrim të anës së ulët duke përdorur mosfet të kanalit N. Unë po përdor kanalin N sepse këto janë kosto të ulët, vlerësime të larta të energjisë dhe shpërndarje më të ulët të energjisë. ky projekt përdor mosfet të nivelit logjik IRFz44n, kështu që mund të drejtohet drejtpërdrejt nga një kunj arduino PWM.

për rrymë më të lartë ngarkese duhet përdorur një transistor për të aplikuar 10V në portë për të marrë mosfetin në ngopje plotësisht dhe për të minimizuar shpërndarjen e energjisë, edhe unë kam bërë të njëjtën gjë.

siç mund ta shihni në ckt më lart, kam vendosur mosfet në tensionin -ve, duke përdorur kështu +12v nga paneli si tokë. ky konfigurim më lejon të përdor një mosfet të kanalit N për konvertuesin me komponentët minimalë.

por gjithashtu ka disa të meta. pasi i keni të dyja anët -tension i ndarë, nuk keni më një bazë referimi të përbashkët. kështu që matja e tensioneve është shumë e ndërlikuar.

Unë kam lidhur Arduino në terminalet e hyrjes diellore dhe duke përdorur vijën e tij -ve si bazë për arduino. ne mund të matim me lehtësi volategun e hyrjes në këtë pikë duke përdorur një ndarës tensioni ckt sipas kërkesës sonë. por nuk mund të masë tensionin e daljes aq lehtë pasi nuk kemi një bazë të përbashkët.

Tani për ta bërë këtë ka një truk. në vend të matjes së tensionit të kondensatorit dalës, kam matur tensionin midis dy linjave. duke përdorur -ve diellore si tokë për arduino dhe dalje -ve si sinjal/tension që do të matet. vlera që keni marrë me këtë matje duhet të zbritet nga voltazhi i matur dhe ju do të merrni tensionin real të daljes nëpër kondensatorin dalës.

Vout_sense_temp = Vout_sense_temp*0.92+noton (i papërpunuar_vout)*volt_faktor*0.08; // matni paqëndrueshmërinë në hyrjen gnd dhe daljen gnd.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // ndryshoni ndryshimin e tensionit midis dy bazave në tensionin dalës..

Për matjet aktuale kam përdorur modulet e ndjeshmërisë aktuale ACS-712. Ato janë mundësuar nga arduino dhe janë lidhur me hyrjen gnd.

kohëmatësit e brendshëm janë modifikuar për të fituar 62.5 Khz PWM në pin D6. e cila përdoret për të drejtuar mosfet. një diodë bllokuese dalëse do të kërkohet për të siguruar rrjedhje të kundërt dhe mbrojtje të polaritetit të kundërt përdorni diodën schottky të vlerësimit aktual të dëshiruar për këtë qëllim. Vlera e induktorit varet nga frekuenca dhe kërkesat e rrymës dalëse. mund të përdorni llogaritës të konvertuesit në dispozicion në internet ose të përdorni ngarkesë 100uH 5A-10A. kurrë mos e tejkaloni rrymën maksimale të daljes së induktorit me 80%-90%.

Hapi 5: Prekja përfundimtare -

Image
Image

gjithashtu mund të shtoni veçori shtesë në karikuesin tuaj. si e imja kanë LCD gjithashtu shfaqin parametrat dhe 2 ndërprerës për të marrë të dhëna nga përdoruesi.

Unë do të azhurnoj kodin përfundimtar dhe do të plotësoj skemën ckt shumë shpejt.

Hapi 6: PPRDITSIM:- Diagrami aktual i qarkut, BOM & Kodi

Konkursi i dritave 2017
Konkursi i dritave 2017

P URDITSO:-

Unë kam ngarkuar kodin, bombën dhe qarkun. është pak më ndryshe nga e imja, sepse është më e lehtë për ta bërë këtë.

Recommended: