Mundarija:

Arduino - PV MPPT quyosh batareyasi: 6 qadam (rasmlar bilan)
Arduino - PV MPPT quyosh batareyasi: 6 qadam (rasmlar bilan)

Video: Arduino - PV MPPT quyosh batareyasi: 6 qadam (rasmlar bilan)

Video: Arduino - PV MPPT quyosh batareyasi: 6 qadam (rasmlar bilan)
Video: MPPT Solar Charge Controller 100A/80A/60A LCD 12V/24V/36V/48V Auto Controller Solar PV Regulador 2024, Noyabr
Anonim
Image
Image
Buck konvertori
Buck konvertori

Bozorda ko'plab zaryadlovchi qurilmalari mavjud. Oddiy arzon zaryad regulyatorlari quyosh panellaridan maksimal quvvatni ishlatish uchun samarali emas. Samarali bo'lganlar juda qimmatga tushadi.

Shunday qilib, men o'z zaryad boshqaruvchisini ishlab chiqarishga qaror qildim, bu batareyaning ehtiyojlari va quyosh sharoitlarini tushunadigan darajada samarali va aqlli. Quyoshdan maksimal quvvatni olish va uni batareyaning ichiga juda samarali joylashtirish uchun tegishli choralar ko'riladi.

SIZGA MENING QAYDATIM YO'Q BO'LSA, BU YO'RILGANLARGA OVOZ BERING.

1 -qadam: MPPT nima va bizga nima uchun kerak?

Bizning quyosh panellarimiz soqov va batareyaning holatini tushunish uchun aqlli emas. Faraz qilaylik, bizda 12v/100 vattli quyosh paneli bor va u 18V-21V gacha ishlab chiqarishga bog'liq, lekin batareyalar 12v nominal kuchlanish uchun baholanadi, to'liq zaryadlangan sharoitda ular 13,6v va to'liq 11,0v bo'ladi. tushirish Keling, bizning batareyalar 13v zaryadda, panellar 18V, 5.5A 100% ish samaradorligida (100% bo'lishi mumkin emas, lekin taxmin qilaylik) beradi deb taxmin qilaylik. Oddiy kontrollerlarda PWM kuchlanish regulyatori mavjud, u 13,6 ga tushadi, lekin oqim yo'q. u faqat tunda panellarni ortiqcha zaryadlash va oqish oqimidan himoya qiladi.

Shunday qilib, bizda 13,6v*5,5A = 74,8 vatt.

Biz taxminan 25 vattni yo'qotamiz.

Bu muammoni hal qilish uchun smps buck konvertoridan foydalandim. bu turdagi konvertlar samaradorligi 90% dan yuqori.

Ikkinchi muammo-quyosh panellarining chiziqli bo'lmagan chiqishi. maksimal quvvatni yig'ib olish uchun ularni ma'lum kuchlanishda ishlatish kerak. Ularning chiqishi kun davomida o'zgarib turadi.

Ushbu muammoni hal qilish uchun MPPT algoritmlaridan foydalaniladi. MPPT (Maksimal Power Point Tracking) nomidan ko'rinib turibdiki, bu algoritm panellardan mavjud bo'lgan maksimal quvvatni kuzatadi va vaziyatni saqlab turish uchun chiqish parametrlarini o'zgartiradi.

MPPT yordamida bizning panellarimiz maksimal quvvatni ishlab chiqaradi va konvertor bu zaryadni batareyalarga samarali sarflaydi.

2 -qadam: MPPT qanday ishlaydi?

Men bu haqda batafsil gaplashmayman. Agar siz tushunmoqchi bo'lsangiz, ushbu havolani ko'ring -MPPT nima?

Ushbu loyihada men V-I kirish xususiyatlarini va V-I chiqishini kuzatdim. kirish V-I va V-I chiqishlarini ko'paytirish orqali biz vatt quvvatiga ega bo'lishimiz mumkin.

Aytaylik, bizda kunning istalgan vaqtida 17 V, 5 A, ya'ni 17x5 = 85 vatt bor. bir vaqtning o'zida bizning chiqishimiz 13 V, 6A, ya'ni 13x6 = 78 Vatt.

Endi MPPT oldingi kirish/chiqish quvvati bilan solishtirganda chiqish kuchlanishini oshiradi yoki kamaytiradi.

Agar oldingi kirish quvvati yuqori bo'lsa va chiqish voltaji hozirgidan past bo'lsa, chiqish quvvati yana past bo'ladi, agar yuqori quvvatga qaytsa va chiqish voltaji yuqori bo'lsa, hozirgi kuchlanish oldingi darajaga ko'tariladi. shuning uchun u maksimal quvvat nuqtasi atrofida tebranishni davom ettiradi. bu tebranishlar MPPTning samarali algoritmlari yordamida minimallashtiriladi.

3 -qadam: Arduino -da MPPTni amalga oshirish

Bu zaryadlovchining miyasi. Quyida Arduino kodi ishlab chiqarishni tartibga solish va MPPTni bitta kod blokida amalga oshirish uchun berilgan.

// Iout = chiqish oqimi

// Vout = chiqish voltaji

// Vin = kirish voltaji

// Pin = kirish quvvati, Pin_previous = oxirgi kirish quvvati

// Vout_last = oxirgi chiqish kuchlanishi, Vout_sense = hozirgi chiqish voltaji

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

{

agar (duty_cycle> 0)

{

vazifa tsikli -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

aks holda ((VoutVout_last) || (Pi

{

agar (vazifa tsikli <240)

{duty_cycle+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

4 -qadam: Buck konverteri

Men pulni konvertor qilish uchun N-kanal mosfetidan foydalandim. Odatda odamlar yuqori burchakli o'tish uchun P-kanal mosfetini tanlaydilar va agar ular N-kanal mosfetini xuddi shu maqsadda tanlasalar, haydovchiga IC kerak bo'ladi yoki yuklash bog'lanishi ckt.

lekin men N-kanal mosfetidan foydalanib, past tomonni almashtirish uchun ckt dollar konvertorini o'zgartirdim. i, men N-kanalni ishlataman, chunki bu past narx, yuqori quvvat ko'rsatkichlari va kam quvvat sarflanishi. Ushbu loyiha IRFz44n mantiqiy darajali mosfetdan foydalanadi, shuning uchun uni to'g'ridan -to'g'ri arduino PWM pin orqali haydash mumkin.

yuqori yuk oqimi uchun, mosfetni to'yinganlikka to'liq etkazish va quvvat sarfini minimallashtirish uchun 10V kuchlanishli eshik oldida tranzistordan foydalanish kerak, men ham shunday qildim.

yuqoridagi cktda ko'rib turganingizdek, men mosfetni -ve kuchlanishiga qo'ydim, shuning uchun paneldan +12vni er sifatida ishlatardim. bu konfiguratsiya menga minimal komponentli pul konvertori uchun N-kanalli mosfetdan foydalanishga imkon beradi.

lekin u ham ba'zi kamchiliklarga ega. Ikkala tomonda ham kuchlanish bor, sizda umumiy ma'lumot yo'q. shuning uchun kuchlanishni o'lchash juda qiyin.

Men Arduino -ni Solar kirish terminallariga uladim va uning -ve chizig'ini arduino uchun asos sifatida ishlatdim. biz o'z talabimizga binoan kuchlanish taqsimlovchi ckt yordamida kirish volategini shu nuqtada osongina o'lchashimiz mumkin. lekin chiqish voltajini osonlikcha o'lchay olmaymiz, chunki bizda umumiy asos yo'q.

Endi buni qilishning hiylasi bor. Chiqish kondansatörünün kuchlanishini o'lchash o'rniga, men ikki -chiziqli chiziqlar orasidagi kuchlanishni o'lchadim. o'lchash uchun signal/kuchlanish sifatida quyosh -vedan arduino uchun zamin va chiqish -ve dan foydalanish. Ushbu o'lchov bilan siz olgan qiymat o'lchangan kirish voltajidan chiqarilishi kerak va siz chiqish kondansatörü orqali haqiqiy chiqish voltajini olasiz.

Vout_sense_temp = Vout_sense_temp*0,92+float (raw_vout)*volt_factor*0,08; // gnd kirish va chiqish gnd bo'yicha volatjani o'lchash.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // ikkita sabab o'rtasidagi kuchlanish farqini chiqish voltajiga o'zgartirish.

Hozirgi o'lchovlar uchun men ACS-712 oqim sezgich modullaridan foydalanganman. Ular arduino tomonidan quvvatlangan va gnd kirish tizimiga ulangan.

ichki taymerlar D6 pinida 62,5 kHz chastotali PWMga ega bo'lish uchun o'zgartiriladi. bu mosfetni haydash uchun ishlatiladi. teskari oqish va teskari kutupluluğun muhofazasini ta'minlash uchun chiqish blokirovka qiluvchi diod kerak bo'ladi, buning uchun kerakli oqim darajasidagi schottky diodidan foydalaning. Induktorning qiymati chastota va chiqish oqimining talablariga bog'liq. siz onlaynda mavjud bo'lgan konvertor kalkulyatorlaridan foydalanishingiz yoki 100uH 5A-10A yukidan foydalanishingiz mumkin. hech qachon induktorning maksimal chiqish oqimini 80%dan 90%gacha oshirmang.

5 -qadam: Yakuniy teginish -

Image
Image

zaryadlovchiga qo'shimcha funktsiyalarni qo'shishingiz mumkin. Men kabi LCD -da ham foydalanuvchi parametrlarini va 2 ta kalitni ko'rsatib, foydalanuvchidan ma'lumot olish mumkin.

Men tez orada yakuniy kodni yangilayman va ckt diagrammasini yakunlayman.

6-qadam: YANGILASH:- Haqiqiy elektron sxemasi, BOM va kod

Chiroqlar tanlovi 2017
Chiroqlar tanlovi 2017

YANGILASH:-

Men kodni, bom va elektronni yukladim. Bu menikidan bir oz farq qiladi, chunki buni qilish osonroq.

Tavsiya: