สารบัญ:

Arduino - เครื่องชาร์จพลังงานแสงอาทิตย์ PV MPPT: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino - เครื่องชาร์จพลังงานแสงอาทิตย์ PV MPPT: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino - เครื่องชาร์จพลังงานแสงอาทิตย์ PV MPPT: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino - เครื่องชาร์จพลังงานแสงอาทิตย์ PV MPPT: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How to build an Arduino controlled solar charger 2024, กรกฎาคม
Anonim
Image
Image
ตัวแปลงบั๊ก
ตัวแปลงบั๊ก

มีตัวควบคุมการประจุจำนวนมากในตลาด ตัวควบคุมการประจุไฟฟ้าราคาถูกทั่วไปไม่มีประสิทธิภาพในการใช้พลังงานสูงสุดจากแผงโซลาร์เซลล์ สิ่งที่มีประสิทธิภาพมีราคาแพงมาก

ดังนั้นฉันจึงตัดสินใจสร้างตัวควบคุมการชาร์จของตัวเองซึ่งมีประสิทธิภาพ และฉลาดพอที่จะเข้าใจความต้องการของแบตเตอรี่และสภาพแสงอาทิตย์ ต้องใช้การดำเนินการที่เหมาะสมเพื่อดึงพลังงานสูงสุดจากพลังงานแสงอาทิตย์และใส่ไว้ในแบตเตอรี่อย่างมีประสิทธิภาพ

หากคุณต้องการความพยายามของฉันมากกว่าโปรดลงคะแนนคำแนะนำนี้

ขั้นตอนที่ 1: MPPT คืออะไรและเหตุใดเราจึงต้องการ

แผงโซลาร์ของเรานั้นโง่และไม่ฉลาดที่จะเข้าใจสภาพแบตเตอรี่ สมมติว่าเรามีแผงโซลาร์เซลล์ขนาด 12v/100 วัตต์ และจะให้เอาต์พุตระหว่าง 18V-21V ขึ้นอยู่กับผู้ผลิต แต่แบตเตอรี่ได้รับการจัดอันดับสำหรับแรงดันไฟฟ้า 12v เมื่อชาร์จเต็มในสภาวะจะเป็น 13.6v และจะเป็น 11.0v ที่เต็ม การปลดปล่อย ตอนนี้สมมติว่าแบตเตอรี่ของเราอยู่ที่การชาร์จ 13v แผงให้ 18v, 5.5A ที่ประสิทธิภาพการทำงาน 100% (ไม่สามารถมีได้ 100% แต่ให้สมมติ) ตัวควบคุมทั่วไปมีตัวควบคุมแรงดันไฟฟ้า PWM ckt ซึ่งลดแรงดันไฟฟ้าลงเหลือ 13.6 แต่ไม่มีกระแสเพิ่มขึ้น มันให้การป้องกันการชาร์จเกินและกระแสไฟรั่วไปยังแผงในช่วงกลางคืนเท่านั้น

เราจะได้ 13.6v*5.5A = 74.8 วัตต์

เราหลวมประมาณ 25 วัตต์

เพื่อพบปัญหานี้ฉันได้ใช้ตัวแปลง smps buck ตัวแปลงประเภทนี้มีประสิทธิภาพมากกว่า 90%

ปัญหาที่สองที่เรามีคือเอาต์พุตที่ไม่เป็นเชิงเส้นของแผงโซลาร์เซลล์ พวกเขาจำเป็นต้องดำเนินการที่แรงดันไฟฟ้าบางอย่างเพื่อเก็บเกี่ยวพลังงานสูงสุดที่มีอยู่ ผลผลิตแตกต่างกันไปในแต่ละวัน

เพื่อแก้ปัญหานี้ใช้อัลกอริทึม MPPT MPPT(การติดตามจุดไฟสูงสุด) ตามชื่อที่แนะนำอัลกอริธึมนี้ติดตามพลังงานสูงสุดที่มีอยู่จากแผงควบคุมและเปลี่ยนพารามิเตอร์เอาต์พุตเพื่อรักษาสภาพ

ดังนั้นโดยการใช้ MPPT แผงของเราจะผลิตพลังงานสูงสุดและตัวแปลงบั๊กจะทำให้ประจุนี้มีประสิทธิภาพในแบตเตอรี่

ขั้นตอนที่ 2: MPPT ทำงานอย่างไร

ฉันจะไม่พูดถึงเรื่องนี้ในรายละเอียด ดังนั้นหากคุณต้องการทำความเข้าใจให้ดูที่ลิงค์นี้ - MPPT คืออะไร?

ในโครงการนี้ ฉันได้ติดตามลักษณะอินพุต V-I และเอาต์พุต V-I ด้วย โดยการคูณอินพุต V-I และเอาต์พุต V-I เราสามารถมีกำลังเป็นวัตต์

สมมติว่าเรากำลังมี 17 V, 5 A นั่นคือ 17x5 = 85 วัตต์ตลอดเวลาของวัน ในเวลาเดียวกันเอาต์พุตของเราคือ 13 V, 6A เช่น 13x6 = 78 Watt

ตอนนี้ MPPT จะเพิ่มหรือลดแรงดันเอาต์พุตโดยเปรียบเทียบกับกำลังอินพุต/เอาต์พุตก่อนหน้า

หากกำลังไฟฟ้าอินพุตก่อนหน้าสูงและแรงดันเอาต์พุตต่ำกว่าปัจจุบัน แรงดันเอาต์พุตจะลดลงอีกครั้งเพื่อกลับสู่กำลังสูง และหากแรงดันเอาต์พุตสูง แรงดันปัจจุบันจะเพิ่มขึ้นเป็นระดับก่อนหน้า ดังนั้นจึงยังคงแกว่งไปมารอบจุดกำลังสูงสุด ความผันผวนนี้จะลดลงโดยอัลกอริทึม MPPT ที่มีประสิทธิภาพ

ขั้นตอนที่ 3: การใช้ MPPT บน Arduino

นี่คือสมองของเครื่องชาร์จนี้ ด้านล่างนี้คือโค้ด Arduino เพื่อควบคุมเอาต์พุตและการนำ MPPT ไปใช้ในบล็อกโค้ดเดียว

// Iout = กระแสไฟขาออก

// Vout = แรงดันขาออก

// Vin = แรงดันไฟฟ้าขาเข้า

// Pin = กำลังไฟฟ้าเข้า, Pin_previous = กำลังไฟฟ้าเข้าล่าสุด

// Vout_last = แรงดันเอาต์พุตล่าสุด, Vout_sense = แรงดันเอาต์พุตปัจจุบัน

โมฆะ Regulation (float Iout, float Vin, float Vout) { if((Vout>Vout_max) || (Iout>Iout_max) || ((Pin>Pin_previous && Vout_sense<Vout_last) || (PinVout_last)))

{

ถ้า(duty_cycle>0)

{

duty_cycle -=1;

}

analogWrite (buck_pin, duty_cycle);

}

อื่นถ้า ((VoutVout_last) || (ปี่

{

ถ้า(duty_cycle<240)

{ duty_cycle+=1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = ปักหมุด;

Vin_last = วิน;

Vout_last = Vout;

}

ขั้นตอนที่ 4: ตัวแปลงบั๊ก

ฉันใช้ N-channel mosfet เพื่อสร้างตัวแปลงบั๊ก โดยปกติผู้คนจะเลือกมอสเฟต P-channel สำหรับการสลับด้านสูงและหากพวกเขาเลือกมอสเฟต N-channel เพื่อจุดประสงค์เดียวกันจะต้องใช้ IC ไดรเวอร์หรือการรัดบูต ckt

แต่ฉันแก้ไขตัวแปลงบั๊ก ckt เพื่อให้มีการสลับด้านต่ำโดยใช้ N-channel mosfet ฉันใช้ N-channel เพราะสิ่งเหล่านี้มีต้นทุนต่ำ เรตติ้งพลังงานสูงและการกระจายพลังงานที่ต่ำกว่า โปรเจ็กต์นี้ใช้มอสเฟตระดับลอจิก IRFz44n ดังนั้นจึงสามารถขับเคลื่อนด้วยพิน Arduino PWM ได้โดยตรง

สำหรับกระแสโหลดที่สูงขึ้นควรใช้ทรานซิสเตอร์เพื่อจ่าย 10V ที่เกตเพื่อให้มอสเฟตอิ่มตัวอย่างสมบูรณ์และลดการกระจายพลังงาน ฉันก็ทำเช่นเดียวกัน

อย่างที่คุณเห็นใน ckt ด้านบน ฉันได้วาง mosfet ไว้ที่ -ve แรงดัน ดังนั้นใช้ +12v จากแผงควบคุมเป็นกราวด์ การกำหนดค่านี้ทำให้ฉันสามารถใช้ N-channel mosfet สำหรับตัวแปลงบั๊กที่มีส่วนประกอบขั้นต่ำ

แต่ก็มีข้อเสียอยู่บ้าง เนื่องจากคุณมีแรงดันไฟฟ้าที่แยกจากกันทั้งสองข้าง คุณจึงไม่มีพื้นอ้างอิงทั่วไปอีกต่อไป ดังนั้นการวัดแรงดันไฟฟ้าจึงเป็นเรื่องยากมาก

ฉันได้เชื่อมต่อ Arduino ที่ขั้วอินพุต Solar และใช้บรรทัด -ve เป็นกราวด์สำหรับ Arduino เราสามารถวัดอินพุตโวลาเทกได้อย่างง่ายดาย ณ จุดนี้โดยใช้ตัวแบ่งแรงดัน ckt ตามความต้องการของเรา แต่ไม่สามารถวัดแรงดันเอาท์พุตได้ง่ายๆ เนื่องจากเราไม่มีกราวด์ร่วมกัน

ตอนนี้การทำเช่นนี้มีเคล็ดลับ แทนที่จะวัดแรงดันไฟฟ้าของตัวเก็บประจุเอาต์พุต ฉันได้วัดแรงดันไฟฟ้าระหว่างเส้นสองเส้น ใช้ solar -ve เป็นกราวด์สำหรับ arduino และ output -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

ตัวจับเวลาภายในได้รับการแก้ไขเพื่อรับ 62.5 Khz PWM ที่พิน D6 ซึ่งใช้ในการขับมอสเฟต จะต้องใช้ไดโอดบล็อกเอาต์พุตเพื่อให้มีการรั่วไหลย้อนกลับและการป้องกันขั้วย้อนกลับ ใช้ไดโอด schottky ของพิกัดกระแสที่ต้องการสำหรับจุดประสงค์นี้ ค่าของตัวเหนี่ยวนำขึ้นอยู่กับความถี่และความต้องการกระแสไฟขาออก คุณสามารถใช้เครื่องคำนวณตัวแปลงบั๊กที่มีจำหน่ายออนไลน์หรือใช้โหลด 100uH 5A-10A ไม่เกินกระแสไฟขาออกสูงสุดของตัวเหนี่ยวนำ 80%-90%

ขั้นตอนที่ 5: สัมผัสสุดท้าย -

Image
Image

คุณยังสามารถเพิ่มคุณสมบัติเพิ่มเติมให้กับที่ชาร์จของคุณได้ เช่นเดียวกับของฉันมี LCD แสดงพารามิเตอร์และสวิตช์ 2 ตัวเพื่อรับอินพุตจากผู้ใช้

ฉันจะอัปเดตรหัสสุดท้ายและทำไดอะแกรม ckt ให้เสร็จในไม่ช้า

ขั้นตอนที่ 6: อัปเดต: - ไดอะแกรมวงจรจริง BOM & Code

การประกวดไฟ 2017
การประกวดไฟ 2017

อัปเดต:-

ฉันได้อัปโหลดโค้ด บอม และวงจรแล้ว มันแตกต่างจากของฉันเล็กน้อยเพราะมันง่ายกว่าที่จะทำสิ่งนี้

แนะนำ: