พิมพ์คำที่ต้องการค้นหา ทั้งภาษาไทยและอังกฤษ

  1. หน้าแรก
  2. คลังความรู้
  3. ออกแบบระบบโซลาร์เซลล์
  4. MPPT

// บทที่ 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 เข้ากับ บั๊ก และ บูสต์คอนเวอร์เตอร์ แล้วเขียนอัลกอริทึมจริง

เขียนโดย อาจารย์มดอัปเดต
สรุปใน 30 วินาที
  • โหลดกำหนดจุดทำงานของแผง คอนเวอร์เตอร์เปลี่ยน “ความต้านทานที่แผงมองเห็น” ได้ด้วย duty
  • MPP: dP/dV=0  ⟺  dI/dV=−I/VdP/dV = 0 \iff dI/dV = -I/V
  • P&O: ขยับแล้วดูกำลัง · InC: ดูความชัน · ขนาดก้าวและคาบคือการแลกระหว่างความเร็วกับการแกว่ง
  • เงาบังทำให้มีหลายยอด ต้องกวาดหา global MPP เป็นระยะ

ทำไมต้องมี MPPT: โหลดกำหนดจุดทำงาน พื้นฐาน

ถ้าต่อแผงตรงกับตัวต้านทาน RR จุดทำงานคือจุดตัดของเส้นโค้ง I-V กับเส้นตรง I=V/RI = V/R มีค่า RR เพียงค่าเดียวที่ทำให้จุดตัดอยู่ที่ MPP:

T1 Optimum load resistance ความต้านทานโหลดที่ทำให้ได้ MPP

Rmpp=VmpImpR_{mpp} = \frac{V_{mp}}{I_{mp}}
ตัวอย่าง T-1

แผง 580 W ต่อตรงกับตัวต้านทาน

  1. Rmpp=43.4/13.37=3.25 ΩR_{mpp} = 43.4/13.37 = 3.25\ \Omega → ได้ 580 W

  2. R=6 ΩR = 6\ \Omega: จุดตัดที่ ≈ 48.9 V, 8.15 A → 399 W (เสีย 31 %)

  3. R=2 ΩR = 2\ \Omega: จุดตัดที่ ≈ 28.2 V, 14.1 A → 398 W (เสีย 31 %)

  4. และ RmppR_{mpp} เองเปลี่ยนตลอดวันตามแสงและอุณหภูมิ — ไม่มีโหลดคงที่ใดที่ดีตลอดวัน (ค่าคำนวณจากแบบจำลองในแล็บ I-V)

คอนเวอร์เตอร์คือ “หม้อแปลงความต้านทาน”

ในสถานะคงตัวและไม่คิดการสูญเสีย คอนเวอร์เตอร์ DC-DC ทำให้แผงมองเห็นความต้านทานที่ขึ้นกับ duty DD:

T2 Input resistance seen by the panel ความต้านทานที่แผงมองเห็น

buck: Rin=RLD2boost: Rin=RL(1−D)2buck-boost: Rin=RL(1−D)2D2\text{buck: } R_{in} = \frac{R_L}{D^2} \qquad \text{boost: } R_{in} = R_L(1-D)^2 \qquad \text{buck-boost: } R_{in} = R_L\frac{(1-D)^2}{D^2}

ผลที่ตามมา: บั๊กทำได้เฉพาะ Rin≥RLR_{in} \ge R_L บูสต์ทำได้เฉพาะ Rin≤RLR_{in} \le R_L บั๊ก-บูสต์และ Ćuk ทำได้ทั้งสองทาง และ เครื่องหมายการควบคุมกลับกัน: ในบั๊ก เพิ่ม DD แล้วแรงดันแผงลด ในบูสต์ เพิ่ม DD แล้วแรงดันแผงลดเช่นกัน (เพราะดึงกระแสมากขึ้น) — ต้องตั้งทิศให้ถูกในโค้ด หรือควบคุมผ่านลูปแรงดันขาเข้า VrefV_{ref} แทนการคุม DD ตรง ๆ

เมื่อโหลดเป็นแบตเตอรี่ แรงดันขาออกเกือบคงที่ คอนเวอร์เตอร์จึงเลือกแรงดันแผงได้อิสระ: บั๊ก Vpv=Vbat/DV_{pv} = V_{bat}/D และบูสต์ Vpv=Vbat(1−D)V_{pv} = V_{bat}(1-D)

ตัวอย่าง T-2

ชาร์จแบต 24 V (LFP 25.6 V): PWM กับ MPPT

  1. PWM (สวิตช์ต่อตรง): แผงถูกดึงลงไปที่แรงดันชาร์จ ≈ 27.6 V → กระแส ≈ IscI_{sc} = 14.1 A → 389 W ที่ 25 °C (67 % ของ 580 W) · ตอนเซลล์ 60 °C ได้ ≈ 396 W เทียบ MPP 517 W (77 %)

  2. MPPT (บั๊ก): แผงทำงานที่ VmpV_{mp} = 43.4 V → D=27.6/43.4≈0.64D = 27.6/43.4 \approx 0.64 → 580 W × ประสิทธิภาพคอนเวอร์เตอร์ 97 % = 563 W

  3. กำลังเพิ่มขึ้น 30–45 % → สำหรับแผงขนาดใหญ่ MPPT คุ้มเสมอ PWM เหมาะเฉพาะแผงเล็กที่ VmpV_{mp} ≈ 17–18 V คู่กับแบต 12 V

อัลกอริทึม P&O และ Incremental Conductance กลาง

T3 MPP condition เงื่อนไขของจุดกำลังสูงสุด

dPdV=I+VdIdV=0  ⟺  dIdV=−IV{dP/dV>0อยู่ซ้าย MPP → เพิ่ม VdP/dV<0อยู่ขวา MPP → ลด V\frac{dP}{dV} = I + V\frac{dI}{dV} = 0 \iff \frac{dI}{dV} = -\frac{I}{V} \qquad \begin{cases} dP/dV > 0 & \text{อยู่ซ้าย MPP → เพิ่ม } V \\ dP/dV < 0 & \text{อยู่ขวา MPP → ลด } V \end{cases}

T4 Perturb & Observe update กฎของ P&O

Vref[k+1]=Vref[k]+ΔV⋅sign⁡ ⁣(ΔP[k]⋅ΔV[k])V_{ref}[k+1] = V_{ref}[k] + \Delta V\cdot\operatorname{sign}\!\big(\Delta P[k]\cdot\Delta V[k]\big)
Perturb & Observe (P&O, hill climbing)Incremental Conductance (InC)
หลักการขยับแรงดัน ดูว่ากำลังเพิ่มหรือลดเทียบ dI/dVdI/dV กับ −I/V-I/V
ที่ MPPแกว่งรอบ MPP ตลอด (3 ระดับ)หยุดได้เมื่อ ∣dI/dV+I/V∣<ε|dI/dV + I/V| < \varepsilon
แสงเปลี่ยนเร็วอาจเดินผิดทาง (สับสนระหว่างผลของการขยับกับผลของเมฆ)ดีกว่าเล็กน้อย
การคำนวณคูณ เปรียบเทียบหาร (หรือคูณไขว้) เพิ่มเล็กน้อย
ใช้จริงแพร่หลายที่สุด มักเพิ่ม dP-P&O / ก้าวปรับได้ใช้มากในอินเวอร์เตอร์

ในทางปฏิบัติทั้งสองวิธีให้ประสิทธิภาพใกล้กันมากเมื่อปรับพารามิเตอร์ดี ความต่างอยู่ที่ ขนาดก้าว และ คาบการขยับ:

T5 Steady-state oscillation loss การสูญเสียจากการแกว่งรอบ MPP

ΔPloss≈12∣d2PdV2∣mpp(V−Vmp)2‾  ∝  ΔV2\Delta P_{loss} \approx \frac{1}{2}\left|\frac{d^2P}{dV^2}\right|_{mpp}\overline{(V - V_{mp})^2} \;\propto\; \Delta V^2

T6 Perturbation period คาบการขยับ

Tp>tsettle+tfilter(มักเลือก Tp=20–200 ms)T_p > t_{settle} + t_{filter} \qquad (\text{มักเลือก } T_p = 20\text{–}200\ \text{ms})
  • ก้าวใหญ่: ตามแสงที่เปลี่ยนเร็วทัน แต่แกว่งรอบ MPP มาก (สูญเสียตาม ΔV2\Delta V^2)
  • ก้าวเล็ก: แม่นในสภาวะคงที่ แต่ตามไม่ทันเมฆ ต้องเลือกก้าวไม่เล็กกว่าความละเอียดของ PWM และ ADC (มิฉะนั้นขยับแล้วไม่มีอะไรเปลี่ยน)
  • คาบสั้นเกินไป: วัดก่อนคอนเวอร์เตอร์เข้าที่ (โดยเฉพาะตัวเก็บประจุขาเข้าใหญ่และลูปแรงดันช้า) อัลกอริทึมจะตัดสินใจผิด ต้องรอให้ VpvV_{pv} เข้าที่ก่อนเสมอ
  • ก้าวแปรผัน: ΔV=k ∣ΔP/ΔV∣\Delta V = k\,|\Delta P/\Delta V| ก้าวใหญ่เมื่อไกล MPP ก้าวเล็กเมื่อใกล้

T7 MPPT efficiency (EN 50530) ประสิทธิภาพการติดตาม

ηMPPT=∫Ppv(t) dt∫Pmpp(t) dt(static>99.5 %, dynamic>99 % สำหรับอินเวอร์เตอร์ที่ดี)\eta_{MPPT} = \frac{\int P_{pv}(t)\,dt}{\int P_{mpp}(t)\,dt} \qquad (\text{static} > 99.5\ \%,\ \text{dynamic} > 99\ \%\ \text{สำหรับอินเวอร์เตอร์ที่ดี})

T8 Fractional Voc / Isc methods วิธีประมาณจากสัดส่วน

Vmp≈kV Voc (kV≈0.76–0.84)Imp≈kI Isc (kI≈0.90–0.95)V_{mp} \approx k_V\,V_{oc}\ (k_V \approx 0.76\text{–}0.84) \qquad I_{mp} \approx k_I\,I_{sc}\ (k_I \approx 0.90\text{–}0.95)

วิธีสัดส่วนง่ายมาก (หยุดจ่ายสั้น ๆ วัด VocV_{oc} แล้วตั้ง VrefV_{ref}) แต่ไม่ใช่ MPP จริงและเสียพลังงานตอนหยุดวัด ใช้เป็นจุดเริ่มต้นของ P&O หรือในวงจรราคาถูก

เงาบังบางส่วนและ Global MPPT กลาง

เมื่อบางกลุ่มเซลล์ถูกบัง บายพาสไดโอดนำ เส้น P-V มีหลายยอด (ดูหน้าเซลล์) P&O และ InC เป็นวิธีไต่เขา จึงหยุดที่ยอดใกล้ที่สุด ซึ่งอาจไม่ใช่ยอดสูงสุด ลองในแล็บด้านล่าง: กด “ใบไม้บัง 1 ช่อง” — P&O ที่เริ่มจากฝั่ง VocV_{oc} ติดที่ ≈ 150 W ขณะที่ global MPP ≈ 340 W

วิธีหา global MPP

  1. Periodic scan ทุก 5–15 นาที กวาด VrefV_{ref} จากประมาณ 0.95Voc0.95V_{oc} ลงมาถึงขอบล่างของช่วง MPPT บันทึกยอดที่ดีที่สุด แล้วกลับไปทำ P&O รอบยอดนั้น เสียพลังงานระหว่างกวาด 0.1–0.3 %
  2. Event-triggered scan กวาดเมื่อกำลังเปลี่ยนเกินเกณฑ์ หรือเมื่อแรงดันที่ MPP ต่ำผิดสัดส่วนจาก Ns×0.8Voc,modN_s \times 0.8 V_{oc,mod}
  3. ใช้ความรู้โครงสร้าง ยอดของสตริงที่มีบายพาสไดโอดมักอยู่ใกล้ k×0.8 Voc,subk\times 0.8\,V_{oc,sub} จึงตรวจเฉพาะจุดเหล่านั้น (ลดเวลากวาด)
  4. Metaheuristics (PSO, GWO, ฯลฯ) ในงานวิจัย — ต้องเทียบกับ scan อย่างง่ายอย่างเป็นธรรม เพราะ scan ก็ทำได้ดีในอินเวอร์เตอร์จริง
  5. แก้ที่ระดับฮาร์ดแวร์ optimizer/micro-inverter ทำ MPPT ระดับแผง ไม่มีปัญหาหลายยอดระดับสตริง

โค้ด C สำหรับไมโครคอนโทรลเลอร์ กลาง

โครงสร้างที่แนะนำ: ลูปเร็ว (ทุกคาบ PWM หรือทุก 10–50 µs) คุมแรงดันแผงให้เท่ากับ VrefV_{ref} ด้วย PI (ดู ควบคุมดิจิทัล) และลูป MPPT ช้า (ทุก TpT_p) ปรับ VrefV_{ref} ค่าที่วัดต้องกรองเฉลี่ยตลอดคาบ TpT_p

/* 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) โดยเลื่อน VrefV_{ref} ไปทางขวาของ MPP (ฝั่ง VocV_{oc}) ซึ่งเสถียรกว่าฝั่งซ้าย
  • ตอนเริ่มต้น: เริ่มที่ 0.8Voc0.8V_{oc} ที่วัดได้จริง (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 ทำให้ VpvV_{pv} กระเพื่อม — ต้องเลือกช่วงวัดและ C ให้เหมาะ (ดู อินเวอร์เตอร์)
  • เสถียรภาพของลูปแรงดันขาเข้า: ความต้านทานพลวัตของแผงเปลี่ยนจากบวกมากใกล้ VocV_{oc} ไปเป็นค่าน้อยใกล้ IscI_{sc} — 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 จะกวาดแรงดันทั้งช่วงเป็นระยะเพื่อหายอดที่ดีที่สุด