// บทที่ 16.12 · ออกแบบระบบโซลาร์เซลล์ · Maximum Power Point Tracking
MPPT ติดตามจุดกำลังสูงสุด: P&O Incremental Conductance เงาบังบางส่วน และ Global MPPT
แผงโซลาร์ไม่ได้ “จ่าย 580 W” เสมอ มันจ่ายกำลังตามจุดที่โหลดดึงให้ทำงานบนเส้นโค้ง I-V ถ้าจุดนั้นไม่ใช่ MPP กำลังหายไปทันที 20–40 % MPPT คือหัวใจด้านอิเล็กทรอนิกส์กำลังของระบบโซลาร์ทุกระบบ ตั้งแต่ชาร์จคอนโทรลเลอร์ 12 V จนถึงอินเวอร์เตอร์ 3 MW หน้านี้เชื่อมเส้นโค้ง I-V เข้ากับ บั๊ก และ บูสต์คอนเวอร์เตอร์ แล้วเขียนอัลกอริทึมจริง
- โหลดกำหนดจุดทำงานของแผง คอนเวอร์เตอร์เปลี่ยน “ความต้านทานที่แผงมองเห็น” ได้ด้วย duty
- MPP:
- P&O: ขยับแล้วดูกำลัง · InC: ดูความชัน · ขนาดก้าวและคาบคือการแลกระหว่างความเร็วกับการแกว่ง
- เงาบังทำให้มีหลายยอด ต้องกวาดหา global MPP เป็นระยะ
ทำไมต้องมี MPPT: โหลดกำหนดจุดทำงาน พื้นฐาน
ถ้าต่อแผงตรงกับตัวต้านทาน จุดทำงานคือจุดตัดของเส้นโค้ง I-V กับเส้นตรง มีค่า เพียงค่าเดียวที่ทำให้จุดตัดอยู่ที่ MPP:
T1 Optimum load resistance ความต้านทานโหลดที่ทำให้ได้ MPP
แผง 580 W ต่อตรงกับตัวต้านทาน
→ ได้ 580 W
: จุดตัดที่ ≈ 48.9 V, 8.15 A → 399 W (เสีย 31 %)
: จุดตัดที่ ≈ 28.2 V, 14.1 A → 398 W (เสีย 31 %)
และ เองเปลี่ยนตลอดวันตามแสงและอุณหภูมิ — ไม่มีโหลดคงที่ใดที่ดีตลอดวัน (ค่าคำนวณจากแบบจำลองในแล็บ I-V)
คอนเวอร์เตอร์คือ “หม้อแปลงความต้านทาน”
ในสถานะคงตัวและไม่คิดการสูญเสีย คอนเวอร์เตอร์ DC-DC ทำให้แผงมองเห็นความต้านทานที่ขึ้นกับ duty :
T2 Input resistance seen by the panel ความต้านทานที่แผงมองเห็น
ผลที่ตามมา: บั๊กทำได้เฉพาะ บูสต์ทำได้เฉพาะ บั๊ก-บูสต์และ Ćuk ทำได้ทั้งสองทาง และ เครื่องหมายการควบคุมกลับกัน: ในบั๊ก เพิ่ม แล้วแรงดันแผงลด ในบูสต์ เพิ่ม แล้วแรงดันแผงลดเช่นกัน (เพราะดึงกระแสมากขึ้น) — ต้องตั้งทิศให้ถูกในโค้ด หรือควบคุมผ่านลูปแรงดันขาเข้า แทนการคุม ตรง ๆ
เมื่อโหลดเป็นแบตเตอรี่ แรงดันขาออกเกือบคงที่ คอนเวอร์เตอร์จึงเลือกแรงดันแผงได้อิสระ: บั๊ก และบูสต์
ชาร์จแบต 24 V (LFP 25.6 V): PWM กับ MPPT
PWM (สวิตช์ต่อตรง): แผงถูกดึงลงไปที่แรงดันชาร์จ ≈ 27.6 V → กระแส ≈ = 14.1 A → 389 W ที่ 25 °C (67 % ของ 580 W) · ตอนเซลล์ 60 °C ได้ ≈ 396 W เทียบ MPP 517 W (77 %)
MPPT (บั๊ก): แผงทำงานที่ = 43.4 V → → 580 W × ประสิทธิภาพคอนเวอร์เตอร์ 97 % = 563 W
กำลังเพิ่มขึ้น 30–45 % → สำหรับแผงขนาดใหญ่ MPPT คุ้มเสมอ PWM เหมาะเฉพาะแผงเล็กที่ ≈ 17–18 V คู่กับแบต 12 V
อัลกอริทึม P&O และ Incremental Conductance กลาง
T3 MPP condition เงื่อนไขของจุดกำลังสูงสุด
T4 Perturb & Observe update กฎของ P&O
| Perturb & Observe (P&O, hill climbing) | Incremental Conductance (InC) | |
|---|---|---|
| หลักการ | ขยับแรงดัน ดูว่ากำลังเพิ่มหรือลด | เทียบ กับ |
| ที่ MPP | แกว่งรอบ MPP ตลอด (3 ระดับ) | หยุดได้เมื่อ |
| แสงเปลี่ยนเร็ว | อาจเดินผิดทาง (สับสนระหว่างผลของการขยับกับผลของเมฆ) | ดีกว่าเล็กน้อย |
| การคำนวณ | คูณ เปรียบเทียบ | หาร (หรือคูณไขว้) เพิ่มเล็กน้อย |
| ใช้จริง | แพร่หลายที่สุด มักเพิ่ม dP-P&O / ก้าวปรับได้ | ใช้มากในอินเวอร์เตอร์ |
ในทางปฏิบัติทั้งสองวิธีให้ประสิทธิภาพใกล้กันมากเมื่อปรับพารามิเตอร์ดี ความต่างอยู่ที่ ขนาดก้าว และ คาบการขยับ:
T5 Steady-state oscillation loss การสูญเสียจากการแกว่งรอบ MPP
T6 Perturbation period คาบการขยับ
- ก้าวใหญ่: ตามแสงที่เปลี่ยนเร็วทัน แต่แกว่งรอบ MPP มาก (สูญเสียตาม )
- ก้าวเล็ก: แม่นในสภาวะคงที่ แต่ตามไม่ทันเมฆ ต้องเลือกก้าวไม่เล็กกว่าความละเอียดของ PWM และ ADC (มิฉะนั้นขยับแล้วไม่มีอะไรเปลี่ยน)
- คาบสั้นเกินไป: วัดก่อนคอนเวอร์เตอร์เข้าที่ (โดยเฉพาะตัวเก็บประจุขาเข้าใหญ่และลูปแรงดันช้า) อัลกอริทึมจะตัดสินใจผิด ต้องรอให้ เข้าที่ก่อนเสมอ
- ก้าวแปรผัน: ก้าวใหญ่เมื่อไกล MPP ก้าวเล็กเมื่อใกล้
T7 MPPT efficiency (EN 50530) ประสิทธิภาพการติดตาม
T8 Fractional Voc / Isc methods วิธีประมาณจากสัดส่วน
วิธีสัดส่วนง่ายมาก (หยุดจ่ายสั้น ๆ วัด แล้วตั้ง ) แต่ไม่ใช่ MPP จริงและเสียพลังงานตอนหยุดวัด ใช้เป็นจุดเริ่มต้นของ P&O หรือในวงจรราคาถูก
เงาบังบางส่วนและ Global MPPT กลาง
เมื่อบางกลุ่มเซลล์ถูกบัง บายพาสไดโอดนำ เส้น P-V มีหลายยอด (ดูหน้าเซลล์) P&O และ InC เป็นวิธีไต่เขา จึงหยุดที่ยอดใกล้ที่สุด ซึ่งอาจไม่ใช่ยอดสูงสุด ลองในแล็บด้านล่าง: กด “ใบไม้บัง 1 ช่อง” — P&O ที่เริ่มจากฝั่ง ติดที่ ≈ 150 W ขณะที่ global MPP ≈ 340 W
วิธีหา global MPP
- Periodic scan ทุก 5–15 นาที กวาด จากประมาณ ลงมาถึงขอบล่างของช่วง MPPT บันทึกยอดที่ดีที่สุด แล้วกลับไปทำ P&O รอบยอดนั้น เสียพลังงานระหว่างกวาด 0.1–0.3 %
- Event-triggered scan กวาดเมื่อกำลังเปลี่ยนเกินเกณฑ์ หรือเมื่อแรงดันที่ MPP ต่ำผิดสัดส่วนจาก
- ใช้ความรู้โครงสร้าง ยอดของสตริงที่มีบายพาสไดโอดมักอยู่ใกล้ จึงตรวจเฉพาะจุดเหล่านั้น (ลดเวลากวาด)
- Metaheuristics (PSO, GWO, ฯลฯ) ในงานวิจัย — ต้องเทียบกับ scan อย่างง่ายอย่างเป็นธรรม เพราะ scan ก็ทำได้ดีในอินเวอร์เตอร์จริง
- แก้ที่ระดับฮาร์ดแวร์ optimizer/micro-inverter ทำ MPPT ระดับแผง ไม่มีปัญหาหลายยอดระดับสตริง
โค้ด C สำหรับไมโครคอนโทรลเลอร์ กลาง
โครงสร้างที่แนะนำ: ลูปเร็ว (ทุกคาบ PWM หรือทุก 10–50 µs) คุมแรงดันแผงให้เท่ากับ ด้วย PI (ดู ควบคุมดิจิทัล) และลูป MPPT ช้า (ทุก ) ปรับ ค่าที่วัดต้องกรองเฉลี่ยตลอดคาบ
/* MPPT: เรียกทุก Tp (เช่น 100 ms) ด้วยค่าเฉลี่ยของ v, i ในคาบนั้น */
#define STEP 0.5f /* V ต่อก้าว (≥ ความละเอียดของลูปแรงดัน) */
#define VMIN (0.55f * VOC_STC)
#define VMAX (0.95f * VOC_STC)
static float v_prev, p_prev, i_prev, vref = 0.80f * VOC_STC;
void mppt_po(float v, float i) /* Perturb & Observe (T4) */
{
float p = v * i, dv = v - v_prev, dp = p - p_prev;
if (dp != 0.0f) {
if ((dp > 0.0f) == (dv > 0.0f)) vref += STEP; /* dP/dV > 0: ซ้าย MPP */
else vref -= STEP; /* dP/dV < 0: ขวา MPP */
}
vref = fminf(fmaxf(vref, VMIN), VMAX);
v_prev = v; p_prev = p;
}
void mppt_inc(float v, float i) /* Incremental Conductance (T3) */
{
float dv = v - v_prev, di = i - i_prev;
if (fabsf(dv) < 1e-3f) { /* แรงดันไม่เปลี่ยน: ดูกระแส (แสงเปลี่ยน) */
if (di > 0.0f) vref += STEP; else if (di < 0.0f) vref -= STEP;
} else {
float g = di * v + i * dv; /* = v·dv·(dI/dV + I/V) คูณไขว้ ไม่ต้องหาร */
g = (dv > 0.0f) ? g : -g;
if (g > EPS) vref += STEP; else if (g < -EPS) vref -= STEP;
}
vref = fminf(fmaxf(vref, VMIN), VMAX);
v_prev = v; i_prev = i;
}
- ป้องกันเพิ่มเติม: ถ้าแบตเต็มหรือโหลดรับไม่ได้ ให้เปลี่ยนจากโหมด MPPT เป็นโหมดคุมแรงดัน/กระแสขาออก (curtail) โดยเลื่อน ไปทางขวาของ MPP (ฝั่ง ) ซึ่งเสถียรกว่าฝั่งซ้าย
- ตอนเริ่มต้น: เริ่มที่ ที่วัดได้จริง (T8) และใช้ soft-start
- ทดสอบด้วยแหล่งจ่ายจำลองแผง (PV simulator / solar array simulator) หรือแหล่งจ่ายต่อตัวต้านทานอนุกรม ก่อนใช้แผงจริง (ดู แหล่งจ่ายทดสอบ)
ทดลองในซิมูเลเตอร์คอนเวอร์เตอร์
แล็บด้านล่างจำลองแผง 36 เซลล์ต่อบั๊กคอนเวอร์เตอร์ที่มี P&O MPPT ระดับการสวิตช์จริง ดูช่อง 1 (แรงดันแผง) และช่อง 2 (กระแสแผง) ไต่ขึ้นหา MPP แล้วแกว่งรอบจุดนั้น ลองเปลี่ยนแสง G ระหว่างจำลอง หรือเปลี่ยนโหลด แล้วดูว่า MPPT ตามได้เร็วแค่ไหน ฉบับเต็มอยู่ที่ แล็บจำลองคอนเวอร์เตอร์
ประเด็นระดับปริญญาโท ขั้นสูง
- Drift ของ P&O เมื่อแสงเพิ่มต่อเนื่อง (ramp) — แก้ด้วย dP-P&O ที่แยกผลของแสงด้วยการวัดกลางคาบ
- Model-based / extremum seeking control ใช้ ripple ของการสวิตช์เป็นสัญญาณขยับเอง (ripple correlation control) ตอบสนองระดับ kHz
- MPPT ในอินเวอร์เตอร์เฟสเดียว: กำลังกระเพื่อม 100 Hz บน DC-link ทำให้ กระเพื่อม — ต้องเลือกช่วงวัดและ C ให้เหมาะ (ดู อินเวอร์เตอร์)
- เสถียรภาพของลูปแรงดันขาเข้า: ความต้านทานพลวัตของแผงเปลี่ยนจากบวกมากใกล้ ไปเป็นค่าน้อยใกล้ — gain ของ plant เปลี่ยนตามจุดทำงาน ตัวชดเชยต้องเสถียรทั้งช่วง (ดู ออกแบบตัวชดเชย)
- ทดสอบตาม EN 50530 ด้วยโปรไฟล์แสงขึ้นลงแบบ ramp ที่กำหนด วัด static และ dynamic MPPT efficiency
คำถามที่พบบ่อย
MPPT ทำงานอย่างไร?
MPPT คือการควบคุมคอนเวอร์เตอร์ DC-DC ระหว่างแผงกับโหลดให้แผงทำงานที่แรงดันซึ่งให้กำลังสูงสุดเสมอ ตัวควบคุมวัดแรงดันและกระแสของแผง ขยับแรงดันอ้างอิงทีละน้อย ถ้ากำลังเพิ่มก็ขยับต่อในทิศเดิม ถ้ากำลังลดก็กลับทิศ (Perturb and Observe) หรือใช้เงื่อนไขความชัน dI/dV = −I/V (Incremental Conductance) จุดทำงานจึงวนอยู่รอบจุดกำลังสูงสุดเมื่อแสงและอุณหภูมิเปลี่ยน
ชาร์จคอนโทรลเลอร์ PWM กับ MPPT ต่างกันเท่าไร?
แบบ PWM ต่อแผงกับแบตเตอรี่ผ่านสวิตช์ แผงจึงถูกบังคับให้ทำงานที่แรงดันแบตเตอรี่ซึ่งต่ำกว่า Vmp มาก เช่น แผง 580 W ที่ Vmp 43 V ต่อกับแบต 24 V ได้ไม่ถึง 400 W แบบ MPPT ใช้บั๊กคอนเวอร์เตอร์ให้แผงทำงานที่ Vmp แล้วแปลงลงมาเป็นแรงดันแบต ได้กำลังมากกว่า 20–40 % สำหรับแผงขนาดใหญ่ แบบ PWM เหมาะเฉพาะแผงเล็กที่ออกแบบมาคู่กับแบต 12 V
ทำไมอินเวอร์เตอร์ผลิตไฟน้อยเมื่อมีเงาบังแผงบางส่วน แม้เงาจะเล็ก?
เงาบังทำให้บายพาสไดโอดนำ เส้นกำลัง P-V ของสตริงมีหลายยอด อัลกอริทึม MPPT แบบไต่เขาอาจติดอยู่ที่ยอดเล็ก (local maximum) และไม่หาเจอยอดใหญ่ (global maximum) อินเวอร์เตอร์ที่มีฟังก์ชัน global MPPT หรือ shade scan จะกวาดแรงดันทั้งช่วงเป็นระยะเพื่อหายอดที่ดีที่สุด