Satura rādītājs:

Arduino - PV MPPT saules lādētājs: 6 soļi (ar attēliem)
Arduino - PV MPPT saules lādētājs: 6 soļi (ar attēliem)

Video: Arduino - PV MPPT saules lādētājs: 6 soļi (ar attēliem)

Video: Arduino - PV MPPT saules lādētājs: 6 soļi (ar attēliem)
Video: How To Make MPPT Solar Charge Controller #shorts 2024, Novembris
Anonim
Image
Image
Buck pārveidotājs
Buck pārveidotājs

Tirgū ir pieejami daudzi maksas kontrolieri. parastie lēti uzlādes kontrolieri nav efektīvi, lai izmantotu maksimālo saules paneļu jaudu. Tie, kas ir efektīvi, ir ļoti dārgi.

Tāpēc es nolēmu izveidot savu uzlādes kontrolieri, kas ir efektīvs un pietiekami gudrs, lai saprastu akumulatora vajadzības un saules apstākļus. nepieciešams veikt atbilstošas darbības, lai maksimāli izmantotu saules enerģiju un ļoti efektīvi ievietotu to akumulatorā.

JA PATĪK MŪSU PIEGĀDES, LŪDZU, BALSOJIET PAR ŠĪM INSTRUKCIJĀM.

1. darbība: kas ir MPPT un kāpēc mums tas ir vajadzīgs?

Mūsu saules paneļi ir mēmi un nav gudri, lai saprastu akumulatora stāvokli. Pieņemsim, ka mums ir 12v/100 vatu saules panelis, un tas dos jaudu no 18V līdz 21V, ir atkarīgs no ražotāja, bet akumulatori ir nomināli paredzēti 12v nominālajam spriegumam, pilnas uzlādes apstākļos tie būs 13,6v un pilnībā 11,0v izlāde. Tagad pieņemsim, ka mūsu baterijas tiek uzlādētas ar 13 V spriegumu, paneļi nodrošina 18 V, 5,5 A ar 100% darba efektivitāti (nav iespējams 100%, bet ļauj pieņemt). parastajiem kontrolieriem ir PWM sprieguma regulators ckt, kas pazemina spriegumu līdz 13,6, bet nesniedz strāvas pieaugumu. tas tikai nodrošina aizsardzību pret pārslodzi un paneļu noplūdes strāvu naktīs.

Tātad mums ir 13,6v*5,5A = 74,8 vati.

Mēs zaudējam aptuveni 25 vatus.

Lai saskartos ar šo problēmu, esmu izmantojis smps buck converter. Šāda veida pārveidotājiem ir lielāka efektivitāte nekā 90%.

Otra mūsu problēma ir saules paneļu nelineārā jauda. tie jādarbina ar noteiktu spriegumu, lai iegūtu maksimāli pieejamo jaudu. To izlaide mainās katru dienu.

Lai atrisinātu šo problēmu, tiek izmantoti MPPT algoritmi. MPPT (maksimālās jaudas punktu izsekošana), kā norāda nosaukums, šis algoritms izseko paneļu maksimālo pieejamo jaudu un maina izejas parametrus, lai saglabātu stāvokli.

Tātad, izmantojot MPPT, mūsu paneļi ģenerēs maksimāli pieejamo jaudu, un buks pārveidotājs efektīvi liks šo uzlādi baterijās.

2. solis: KĀ STRĀDĀ MPPT?

Es par to sīkāk nerunāšu. Tātad, ja vēlaties to saprast, apskatiet šo saiti -kas ir MPPT?

Šajā projektā es esmu izsekojis ievades V-I raksturlielumus un izejas V-I arī. reizinot ieeju V-I un izeju V-I, mēs varam iegūt jaudu vatos.

Pieņemsim, ka mums ir 17 V, 5 A, ti, 17x5 = 85 vati jebkurā diennakts laikā. tajā pašā laikā mūsu jauda ir 13 V, 6A, ti, 13x6 = 78 vati.

Tagad MPPT palielinās vai samazinās izejas spriegumu, salīdzinot ar iepriekšējo ieejas/izejas jaudu.

ja iepriekšējā ieejas jauda bija augsta un izejas spriegums bija zemāks nekā pašreizējais, tad izejas spriegums atkal būs zemāks, lai atgrieztos pie lielās jaudas, un, ja izejas spriegums bija augsts, pašreizējais spriegums tiks palielināts līdz iepriekšējam līmenim. tādējādi tas turpina svārstīties ap maksimālo jaudas punktu. šīs svārstības samazina efektīvi MPPT algoritmi.

3. darbība: MPPT ieviešana Arduino

Tās ir šī lādētāja smadzenes. Zemāk ir Arduino kods, lai regulētu izvadi un MPPT ieviešanu vienā koda blokā.

// Iout = izejas strāva

// Vout = izejas spriegums

// Vin = ieejas spriegums

// Pin = ievades jauda, Pin_previous = pēdējā ievades jauda

// Vout_last = pēdējais izejas spriegums, Vout_sense = pašreizējais izejas spriegums

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

{

ja (nodevu cikls> 0)

{

darba cikls -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

citādi, ja ((VoutVout_last) || (Pi

{

ja (darba cikls <240)

{nodevu cikls+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Piespraude;

Vin_last = Vin;

Vout_last = Vout;

}

4. solis: Buck Converter

Es esmu izmantojis N-kanālu mosfet, lai izgatavotu buck pārveidotāju. parasti cilvēki izvēlas P-kanālu mosfet augstas sānu pārslēgšanai, un, ja viņi izvēlas N-kanālu mosfet tādam pašam mērķim kā vadītāja IC, būs nepieciešama vai sāknēšanas siksna.

bet es modificēju buck pārveidotāju ckt, lai būtu zemas pārslēgšanās, izmantojot N-kanālu mosfet. Es izmantoju N-kanālu, jo tās ir zemas izmaksas, lielas jaudas un zemākas jaudas izkliedes. šis projekts izmanto IRFz44n loģikas līmeņa mosfet, tāpēc to var tieši vadīt, izmantojot arduino PWM tapu.

lielākas slodzes strāvai vajadzētu izmantot tranzistoru, lai pie vārtiem pielietotu 10V, lai pilnībā iegūtu mosfetu un samazinātu jaudas izkliedi, es arī esmu darījis to pašu.

kā jūs varat redzēt ckt iepriekš, es esmu novietojis mosfet uz -ve spriegumu, tādējādi izmantojot +12v no paneļa kā zemi. šī konfigurācija ļauj man izmantot N-kanāla mosfet buck pārveidotājam ar minimālajām sastāvdaļām.

bet tam ir arī daži trūkumi. tā kā jums ir atdalīts spriegums no abām pusēm, jums vairs nav kopējas atsauces zemes. tāpēc sprieguma mērīšana ir ļoti sarežģīta.

Es esmu pievienojis Arduino Saules ievades termināļos un izmantoju tā -ve līniju kā zemi arduino. šajā brīdī mēs varam viegli izmērīt ievades volatūru, izmantojot sprieguma dalītāju ckt atbilstoši mūsu prasībām. bet nevar tik vienkārši izmērīt izejas spriegumu, jo mums nav kopīga pamata.

Tagad, lai to izdarītu, ir triks. tā vietā, lai izmērītu sprieguma izejas kondensatoru, esmu izmērījis spriegumu starp divu līniju līnijām. izmantojot saules -ve kā zemi arduino un izeju -ve kā mērāmo signālu/spriegumu. šī mērījuma laikā iegūto vērtību vajadzētu atņemt no izmērītā ieejas sprieguma, un jūs iegūsit reālo izejas spriegumu visā izejas kondensatorā.

Vout_sense_temp = Vout_sense_temp*0,92+pludiņš (raw_vout)*volt_faktors*0,08; // mēra svārstības starp ieejas gnd un izejas gnd.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // mainīt sprieguma starpību starp diviem pamatiem uz izejas spriegumu.

Pašreizējiem mērījumiem esmu izmantojis ACS-712 strāvas uztveršanas moduļus. Tos darbina arduino un tie ir pievienoti ievades gnd.

iekšējie taimeri tiek pārveidoti, lai iegūtu 62.5 Khz PWM pie tapas D6. ko izmanto, lai vadītu mosfetu. izejas bloķēšanas diode būs nepieciešama, lai nodrošinātu pretplūsmu un pretējās polaritātes aizsardzību, šim nolūkam izmantojiet vēlamo strāvas nomaiņu. Induktora vērtība ir atkarīga no frekvences un izejas strāvas prasībām. jūs varat izmantot tiešsaistē pieejamos kalkulatora kalkulatorus vai izmantot 100uH 5A-10A slodzi. nekad nepārsniedziet induktora maksimālo izejas strāvu par 80%-90%.

5. solis: pēdējais pieskāriens -

Image
Image

lādētājam varat pievienot arī papildu funkcijas. tāpat kā manējā ir arī LCD displejs, kas parāda parametrus, un 2 slēdži, lai saņemtu ievadi no lietotāja.

Es drīz atjaunināšu galīgo kodu un pabeigšu ckt diagrammu.

6. darbība: ATJAUNINĀT:- Faktiskā shēmas diagramma, BOM un kods

Gaismas konkurss 2017
Gaismas konkurss 2017

ATJAUNINĀT:-

Esmu augšupielādējis kodu, bumbu un ķēdi. tas nedaudz atšķiras no manējā, jo šo ir vieglāk izgatavot.

Ieteicams: