Агуулгын хүснэгт:

Arduino - PV MPPT нарны цэнэглэгч: 6 алхам (зурагтай)
Arduino - PV MPPT нарны цэнэглэгч: 6 алхам (зурагтай)

Видео: Arduino - PV MPPT нарны цэнэглэгч: 6 алхам (зурагтай)

Видео: Arduino - PV MPPT нарны цэнэглэгч: 6 алхам (зурагтай)
Видео: #mppt Solar Charge controller|PV Amps BOOST 2024, Арваннэгдүгээр
Anonim
Image
Image
Бак хөрвүүлэгч
Бак хөрвүүлэгч

Зах зээл дээр олон тооны цэнэг хянагч байдаг. Энгийн хямд цэнэг хянагч нарны хавтангийн хамгийн их хүчийг ашиглах нь үр дүнтэй байдаггүй. Үр ашигтай нь маш өндөр өртөгтэй байдаг.

Тиймээс би өөрийн цэнэг хянагчийг үр ашигтай, батерейны хэрэгцээ, нарны нөхцлийг ойлгохуйц ухаалаг болгохоор шийдсэн. Нарны гэрлээс авах боломжтой хамгийн их хүчийг авч, батерейны дотор маш үр ашигтайгаар оруулахын тулд зохих арга хэмжээг авдаг.

Хэрэв танд миний хүчин чармайлт таалагдаж байвал ЭНЭ ЗАВХАРГҮЙД саналаа өгөөрэй.

Алхам 1: МАНАН гэж юу вэ, бидэнд яагаад хэрэгтэй вэ?

Манай нарны хавтан нь дүлий бөгөөд батерейны нөхцлийг ойлгоход ухаалаг биш юм. Бидэнд 12V/100 ваттын нарны хавтан байгаа бөгөөд 18V-21V хооронд үйлдвэрлэх хүчин чадлаас шалтгаалан гаралт өгөх болно гэж бодъё, гэхдээ батерейг 12V нэрлэсэн хүчдэлээр цэнэглэдэг, бүрэн цэнэглэгдсэн тохиолдолд 13.6V, бүрэн 11.0V байх болно. гадагшлуулах. Одоо бидний батерейг 13V цэнэглэж байна гэж үзье, самбар нь 18V, 5.5A -ийг 100% ажлын үр ашигтайгаар өгдөг (100% байх боломжгүй, гэхдээ тооцъё). Энгийн хянагчууд нь PWM хүчдэлийн зохицуулагчтай бөгөөд энэ нь хүчдэлийг 13.6 болгож бууруулдаг боловч гүйдэлд ямар ч ашиг оруулдаггүй. Энэ нь зөвхөн шөнийн цагаар самбар дээр хэт их цэнэглэх, алдагдах гүйдлийн эсрэг хамгаалалтыг өгдөг.

Тиймээс бид 13.6v*5.5A = 74.8 ватт байна.

Бид ойролцоогоор 25 ватт алдаж байна.

Энэ асуудалтай тулгарахын тулд би smps buck хөрвүүлэгчийг ашигласан. Ийм хөрвүүлэгчид 90% -иас дээш үр ашигтай байдаг.

Бидэнд тулгарч буй хоёр дахь асуудал бол нарны хавтангийн шугаман бус гаралт юм. боломжтой хүчийг авахын тулд тэдгээрийг тодорхой хүчдэлд ажиллуулах шаардлагатай. Тэдний гаралт өдрийн турш харилцан адилгүй байдаг.

Энэ асуудлыг шийдэхийн тулд MPPT алгоритмыг ашигладаг. MPPT (Хамгийн их Power Point Tracking) нэрнээс харахад энэхүү алгоритм нь самбараас авах боломжтой хамгийн их хүчийг хянаж, нөхцлийг хадгалахын тулд гаралтын параметрүүдийг өөрчилдөг.

Тиймээс, MPPT -ийг ашигласнаар манай хавтан нь хамгийн их боломжтой эрчим хүч үйлдвэрлэх болно, мөн хөрвүүлэгч нь энэ цэнэгийг батерейнд үр ашигтай зарцуулах болно.

Алхам 2: МАНАН ХЭРХЭН АЖИЛЛАХ ВЭ?

Би энэ талаар дэлгэрэнгүй ярихгүй. Хэрэв та үүнийг ойлгохыг хүсч байвал энэ линкийг үзнэ үү -MPPT гэж юу вэ?

Энэ төсөлд би V-I оролтын шинж чанар, V-I гаралтыг хянаж үзсэн. V-I оролт ба V-I гаралтыг үржүүлснээр бид ватт чадалтай болно.

Бид өдрийн аль ч цагт 17 V, 5 A, өөрөөр хэлбэл 17x5 = 85 ватт байна гэж хэлье. Үүний зэрэгцээ бидний гаралт нь 13 В, 6А, өөрөөр хэлбэл 13x6 = 78 Ватт.

Одоо MPPT нь өмнөх оролт/гаралтын чадалтай харьцуулахад гаралтын хүчдэлийг нэмэгдүүлэх эсвэл бууруулах болно.

Хэрэв өмнөх оролтын хүч өндөр байсан ба гаралтын хүчдэл одоогийнхоос бага байсан бол гаралтын хүчдэлийг дахин бууруулж өндөр хүч рүү буцаана. Тиймээс энэ нь хамгийн их хүч чадлын эргэн тойронд хэлбэлздэг. Энэ хэлбэлзлийг MPPT -ийн үр ашигтай алгоритмуудаар багасгадаг.

Алхам 3: Arduino дээр MPPT -ийг хэрэгжүүлэх

Энэ бол энэ цэнэглэгчийн тархи юм. Доорх нь гаралтыг зохицуулах, MPPT -ийг нэг кодын блок болгон хэрэгжүүлэх Arduino код юм.

// Iout = гаралтын гүйдэл

// Vout = гаралтын хүчдэл

// Вин = оролтын хүчдэл

// Pin = оролтын хүч, Pin_previous = сүүлчийн оролтын хүч

// Vout_last = сүүлийн гаралтын хүчдэл, Vout_sense = одоогийн гаралтын хүчдэл

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

{

хэрэв (үүргийн_цикл> 0)

{

үүргийн_цикл -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

өөр бол ((VoutVout_last) || (Пи

{

хэрэв (үүргийн_цикл <240)

{үүргийн_цикл+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Алхам 4: Бак хөрвүүлэгч

Би N-суваг мосфет ашиглан бак хөрвүүлэгч хийсэн. Ихэвчлэн хүмүүс өндөр суваг солихын тулд P сувгийн мосфетийг сонгодог бөгөөд хэрэв тэд N сувгийн мосфетийг ижил зорилгоор сонговол драйвераас IC шаардлагатай болно.

гэхдээ би N-сувгийн мосфет ашиглан бага талыг сольж байхаар buck хөрвүүлэгч ckt-ийг өөрчилсөн. i, m нь N-сувгийг ашигладаг, учир нь эдгээр нь хямд өртөгтэй, өндөр чадлын зэрэглэлтэй, эрчим хүч бага зарцуулдаг. Энэ төсөл нь IRFz44n логик түвшний мосфет ашигладаг тул үүнийг arduino PWM зүүгээр шууд удирдах боломжтой.

Ачаалал ихтэй гүйдлийн хувьд транзисторыг ашиглан хаалган дээр 10В хүчдэл өгч, ханцуйвчийг бүрэн хангаж, цахилгаан алдагдлыг багасгах хэрэгтэй.

Дээрх ckt -ээс харж байгаагаар би мосфетыг хүчдэлийн хүчдэл дээр байрлуулсан тул самбараас +12v -ийг газар болгон ашигласан. Энэхүү тохиргоо нь хамгийн бага бүрэлдэхүүн хэсэгтэй бак хөрвүүлэгчийн хувьд N сувгийн мосфет ашиглах боломжийг надад олгодог.

гэхдээ энэ нь бас зарим сул талуудтай. Та хоёр талдаа хүчдэлийг тусгаарласан тул танд нэгдсэн лавлах газар байхгүй болно. Тиймээс хүчдэлийг хэмжих нь маш хэцүү байдаг.

Би Arduino -ийг Solar оролтын терминалуудтай холбож, -ve шугамыг arduino -ийн үндэс болгон ашигласан. Бид энэ үед хүчдэл хуваагч ckt ашиглан бидний хэрэгцээнд нийцүүлэн оролтын хүчийг хэмжих боломжтой. гэхдээ нийтлэг ойлголт байхгүй тул гаралтын хүчдэлийг тийм амархан хэмжиж чадахгүй.

Одоо үүнийг хийхийн тулд заль мэх байна. Би гаралтын конденсаторын хүчдэлийг хэмжихийн оронд хоёр -шугамын хоорондох хүчдэлийг хэмжсэн. нарны -ve -ийг arduino -ийн хөрс, гаралтын -ve -ийг хэмжих дохио/хүчдэл болгон ашигладаг. Энэхүү хэмжилтээр олж авсан үнэ цэнийг оролтын хүчдэлээс хасах бөгөөд гаралтын конденсатор дээрх бодит гаралтын хүчдэлийг авах болно.

Vout_sense_temp = Vout_sense_temp*0.92+float (raw_vout)*volt_factor*0.08; // gnd оролт ба гаралтын gnd дахь хэлбэлзлийг хэмжих.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // хоёр үндэслэлийн хоорондох хүчдэлийн зөрүүг гаралтын хүчдэл болгон өөрчлөх.

Одоогийн хэмжилтийн хувьд би ACS-712 гүйдэл мэдрэх модулийг ашигласан. Тэд arduino -ээр ажилладаг бөгөөд gnd оролтод холбогдсон байдаг.

дотоод таймерууд нь D6 зүү дээр 62.5 Гц -ийн ХОУХ -ийг олж авахын тулд өөрчлөгддөг. энэ нь мосфет жолоодоход хэрэглэгддэг. Урвуу алдагдал, урвуу туйлшралын хамгаалалтыг хангахын тулд гаралтын хаах диод шаардлагатай болно. Индукторын утга нь давтамж ба гаралтын гүйдлийн шаардлагаас хамаарна. Та онлайнаар бэлэн байгаа хөрвүүлэгч тооцоолуур эсвэл 100uH 5A-10A ачааллыг ашиглаж болно. ороомгийн хамгийн их гаралтын гүйдлийг 80%-90%-иас хэтрүүлж болохгүй.

Алхам 5: Эцэст нь хүрэх -

Image
Image

Та мөн цэнэглэгчдээ нэмэлт функц нэмж болно. Миний нэгэн адил LCD дэлгэц нь параметрүүдийг харуулдаг бөгөөд хэрэглэгчээс оролт авахын тулд 2 унтраалга байдаг.

Би удахгүй эцсийн кодыг шинэчилж, ckt диаграмыг дуусгах болно.

Алхам 6: ШИНЭЧЛЭХ:- Бодит хэлхээний диаграм, БОМ ба код

Гэрлийн уралдаан 2017
Гэрлийн уралдаан 2017

ШИНЭЧЛЭХ:-

Би код, bom, хэлхээг байршуулсан. Энэ нь минийхээс арай өөр юм, учир нь үүнийг хийхэд илүү хялбар байдаг.

Зөвлөмж болгож буй: