Isi kandungan:

Arduino - Pengecas Suria PV MPPT: 6 Langkah (dengan Gambar)
Arduino - Pengecas Suria PV MPPT: 6 Langkah (dengan Gambar)

Video: Arduino - Pengecas Suria PV MPPT: 6 Langkah (dengan Gambar)

Video: Arduino - Pengecas Suria PV MPPT: 6 Langkah (dengan Gambar)
Video: WAJIB PUNYA !!! Alat CANGGIH ini Untuk PANEL SURYA 2024, November
Anonim
Image
Image
Penukar Buck
Penukar Buck

Terdapat banyak pengawal caj yang terdapat di pasaran. pengawal cas murah biasa tidak cekap menggunakan kuasa maksimum dari Panel solar. Yang cekap, sangat mahal.

Oleh itu, saya memutuskan untuk membuat pengawal cas saya sendiri yang cekap, dan cukup pintar untuk memahami keperluan bateri dan keadaan solar. diperlukan tindakan yang tepat untuk mendapatkan tenaga maksimum yang ada dari solar dan memasukkannya ke dalam bateri dengan sangat cekap.

JIKA ANDA MENYUKAI KEBERKESANAN SAYA SILA SILA MENGUNDI ARAHAN INI.

Langkah 1: Apa itu MPPT dan Mengapa Kita Memerlukannya?

Panel Suria kita bodoh dan tidak pandai memahami keadaan bateri. Anggaplah kita mempunyai panel solar 12v / 100 watt dan ia akan memberikan output antara 18V-21V bergantung pada pengilang, tetapi bateri dinilai untuk voltan nominal 12v, pada keadaan pengecasan penuh mereka akan 13.6v dan akan penuh 11.0v pelepasan. sekarang mari kita anggap bateri kita pada pengisian 13v, panel memberikan 18v, 5.5A pada 100% kecekapan kerja (tidak mungkin mempunyai 100% tetapi mari kita anggap). pengawal biasa mempunyai pengatur voltan PWM ckt yang menurunkan voltan ke 13.6, tetapi tidak ada kenaikan arus. ia hanya memberi perlindungan terhadap pengecasan dan arus kebocoran yang berlebihan ke panel pada waktu malam.

Oleh itu, kita mempunyai 13.6v * 5.5A = 74.8 watt.

Kami kehilangan kira-kira 25 watt.

Untuk menghadapi masalah ini saya telah menggunakan penukar smps buck. jenis penukar ini mempunyai kecekapan melebihi 90%.

Masalah kedua yang kita ada ialah output panel suria yang tidak linear. mereka perlu dikendalikan pada voltan tertentu untuk mendapatkan daya maksimum yang ada. Keluaran mereka berbeza sepanjang hari.

Untuk menyelesaikan masalah ini algoritma MPPT digunakan. MPPT (Maximum Power Point Tracking) seperti namanya algoritma ini mengesan kekuatan maksimum yang ada dari panel dan mengubah parameter output untuk mengekalkan keadaan.

Oleh itu, dengan menggunakan MPPT panel kami akan menghasilkan tenaga maksimum yang ada dan penukar buck akan memasukkan muatan ini dengan cekap ke dalam bateri.

Langkah 2: BAGAIMANA MPPT BEKERJA?

Saya, saya tidak akan membincangkannya secara terperinci. jadi jika anda ingin memahaminya lihatlah pautan ini -Apa itu MPPT?

Dalam projek ini saya telah mengesan ciri input V-I dan output V-I juga. dengan mengalikan input V-I dan output V-I, kita dapat mempunyai kuasa dalam watt.

katakan kita mempunyai 17 V, 5 A iaitu 17x5 = 85 watt pada bila-bila masa sepanjang hari. pada masa yang sama output kami adalah 13 V, 6A iaitu 13x6 = 78 Watt.

Sekarang MPPT akan meningkatkan atau menurunkan voltan output dengan membandingkan dengan daya input / output sebelumnya.

jika daya input sebelumnya tinggi dan voltan keluaran lebih rendah daripada sekarang maka voltan keluaran akan turun lagi untuk kembali ke daya tinggi dan jika voltan keluaran tinggi maka voltan sekarang akan dinaikkan ke tahap sebelumnya. sehingga ia terus berayun di sekitar titik kuasa maksimum. ayunan ini dikurangkan oleh algoritma MPPT yang cekap.

Langkah 3: Melaksanakan MPPT pada Arduino

Inilah otak pengecas ini. Berikut adalah kod Arduino untuk mengatur output dan melaksanakan MPPT dalam satu blok kod.

// Iout = arus keluaran

// Vout = voltan keluaran

// Vin = voltan masukan

// Pin = kuasa input, Pin_pre sebelumnya = daya input terakhir

// Vout_last = voltan keluaran terakhir, Vout_sense = voltan keluaran sekarang

kekosongan mengatur (float Iout, float Vin, float Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_pre sebelumnya && Vout_sense <Vout_last) || (PinVout_last)))

{

jika (kitaran_ tugas> 0)

{

duty_cycle - = 1;

}

analogWrite (buck_pin, duty_cycle);

}

lain jika ((VoutVout_last) || (Pi

{

jika (kitaran_ tugas <240)

{duty_cycle + = 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_pre sebelumnya = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Langkah 4: Penukar Buck

Saya telah menggunakan mosfet N-channel untuk membuat penukar wang. biasanya orang memilih mosfet saluran-P untuk pertukaran sisi tinggi dan jika mereka memilih mosfet saluran-N untuk tujuan yang sama daripada IC pemandu diperlukan atau boot capping strapping.

tetapi saya mengubah suai ckt penukar buck untuk menukar sisi rendah menggunakan mosfet saluran-N. i, saya menggunakan saluran N kerana ini adalah kos rendah, penarafan daya tinggi dan penurunan daya yang lebih rendah. projek ini menggunakan mosfet tahap logik IRFz44n, sehingga dapat dipacu secara langsung oleh pin PWM arduino.

untuk arus beban yang lebih tinggi, seseorang harus menggunakan transistor untuk menggunakan 10V di pintu masuk agar mosfet menjadi tepu sepenuhnya dan meminimumkan pelesapan daya, saya juga melakukan perkara yang sama.

seperti yang anda lihat di ckt di atas saya telah meletakkan voltan mosfet on -ve, dengan itu menggunakan + 12v dari panel sebagai tanah. konfigurasi ini membolehkan saya menggunakan mosfet saluran-N untuk penukar buck dengan komponen minimum.

tetapi ia juga mempunyai beberapa kekurangan. kerana anda mempunyai voltan kedua-dua sisi, anda tidak mempunyai asas rujukan yang sama lagi. jadi pengukuran voltan sangat sukar.

Saya telah menghubungkan terminal input Arduino at Solar dan menggunakan garis -ve sebagai landasan untuk arduino. kita dapat mengukur volategi input dengan mudah pada tahap ini dengan menggunakan ckt pembahagi voltan mengikut keperluan kita. tetapi tidak dapat mengukur voltan output dengan mudah kerana kita tidak mempunyai persamaan.

Sekarang untuk melakukan ini ada muslihat. alih-alih mengukur kapasitor output voltan, saya telah mengukur voltan antara dua garis dua. menggunakan solar -ve sebagai tanah untuk arduino dan output -ve sebagai isyarat / voltan yang akan diukur. nilai yang anda dapat dengan pengukuran ini harus dikurangkan daripada voltan input yang diukur dan anda akan mendapat voltan output sebenar merentasi kapasitor output.

Vout_sense_temp = Vout_sense_temp * 0.92 + float (raw_vout) * volt_factor * 0.08; // ukur turun naik merentas input gnd dan output gnd.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // ubah perbezaan voltan antara dua aras ke voltan keluaran..

Untuk pengukuran semasa, saya telah menggunakan modul penginderaan semasa ACS-712. Mereka telah dikuasakan oleh arduino dan disambungkan ke input gnd.

pemasa dalaman diubah untuk memperoleh 62.5 Khz PWM pada pin D6. yang digunakan untuk menggerakkan mosfet. dioda penyekat output akan diperlukan untuk memberikan kebocoran terbalik dan perlindungan polariti terbalik menggunakan dioda schottky dengan penarafan semasa yang diinginkan untuk tujuan ini. Nilai induktor bergantung pada keperluan arus dan frekuensi dan output. anda boleh menggunakan kalkulator penukar buck yang ada dalam talian atau menggunakan muatan 100uH 5A-10A. tidak pernah melebihi arus keluaran maksimum induktor sebanyak 80% -90%.

Langkah 5: Sentuhan Akhir -

Image
Image

anda juga boleh menambahkan ciri tambahan pada pengecas anda. seperti LCD saya juga memaparkan parameter dan 2 suis untuk mengambil input dari pengguna.

Saya akan mengemas kini kod akhir dan melengkapkan rajah ckt tidak lama lagi.

Langkah 6: KEMASKINI: - Diagram Litar Sebenar, BOM & Kod

Peraduan Lampu 2017
Peraduan Lampu 2017

KEMASKINI: -

Saya telah memuat naik kod, bom dan litar. agak berbeza dengan milik saya, kerana lebih senang membuatnya.

Disyorkan: