---
title: "MPPT ติดตามจุดกำลังสูงสุด: P&O Incremental Conductance เงาบังบางส่วน และ Global MPPT"
url: https://modsengineeringmath.com/learn/solar-pv/mppt/
site: "Mod's Engineering Mathematics (อาจารย์มด)"
language: th
updated: 2026-10-13
---

> MPPT ภาษาไทยแบบละเอียด: ทำไมต่อแผงตรงกับโหลดหรือแบตแล้วเสียกำลัง จุดทำงานบนเส้นโค้ง I-V คอนเวอร์เตอร์เปลี่ยนความต้านทานที่แผงมองเห็น เงื่อนไข dP/dV = 0 อัลกอริทึม Perturb & Observe และ Incremental Conductance ขนาดก้าวและคาบ ประสิทธิภาพ MPPT ตาม EN 50530 ชาร์จคอนโทรลเลอร์ PWM กับ MPPT เงาบังบางส่วนกับหลายยอด global scan โค้ด C สำหรับไมโครคอนโทรลเลอร์ และแล็บจำลองคอนเวอร์เตอร์

ฉบับ Markdown ของ https://modsengineeringmath.com/learn/solar-pv/mppt/ สำหรับผู้ช่วย AI และเครื่องมือค้นหา สูตรเขียนเป็น LaTeX ($…$ และ $$…$$) แล็บโต้ตอบและรูปมีเฉพาะในหน้าเว็บ

# MPPT ติดตามจุดกำลังสูงสุด: P&O Incremental Conductance เงาบังบางส่วน และ Global MPPT

// บทที่ 16.12 · ออกแบบระบบโซลาร์เซลล์ · Maximum Power Point Tracking


แผงโซลาร์ไม่ได้ “จ่าย 580 W” เสมอ มันจ่ายกำลังตามจุดที่โหลดดึงให้ทำงานบนเส้นโค้ง I-V ถ้าจุดนั้นไม่ใช่ MPP กำลังหายไปทันที 20–40 % MPPT คือหัวใจด้านอิเล็กทรอนิกส์กำลังของระบบโซลาร์ทุกระบบ ตั้งแต่ชาร์จคอนโทรลเลอร์ 12 V จนถึงอินเวอร์เตอร์ 3 MW หน้านี้เชื่อมเส้นโค้ง I-V เข้ากับ บั๊ก และ บูสต์คอนเวอร์เตอร์ แล้วเขียนอัลกอริทึมจริง

สรุปใน 30 วินาที

- โหลดกำหนดจุดทำงานของแผง คอนเวอร์เตอร์เปลี่ยน “ความต้านทานที่แผงมองเห็น” ได้ด้วย duty

- MPP: $dP/dV = 0 \iff dI/dV = -I/V$

- P&O: ขยับแล้วดูกำลัง · InC: ดูความชัน · ขนาดก้าวและคาบคือการแลกระหว่างความเร็วกับการแกว่ง

- เงาบังทำให้มีหลายยอด ต้องกวาดหา global MPP เป็นระยะ

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

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

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

$$R_{mpp} = \frac{V_{mp}}{I_{mp}}$$

ตัวอย่าง T-1

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

- $R_{mpp} = 43.4/13.37 = 3.25\ \Omega$ → ได้ 580 W

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

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

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

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

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

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

$$\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}$$

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

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

ตัวอย่าง T-2

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

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

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

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

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

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

$$\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 T4 Perturb & Observe update กฎของ P&O

$$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/dV$ กับ $-I/V$ |

| ที่ MPP | แกว่งรอบ MPP ตลอด (3 ระดับ) | หยุดได้เมื่อ $|dI/dV + I/V| < \varepsilon$ |

| แสงเปลี่ยนเร็ว | อาจเดินผิดทาง (สับสนระหว่างผลของการขยับกับผลของเมฆ) | ดีกว่าเล็กน้อย |

| การคำนวณ | คูณ เปรียบเทียบ | หาร (หรือคูณไขว้) เพิ่มเล็กน้อย |

| ใช้จริง | แพร่หลายที่สุด มักเพิ่ม dP-P&O / ก้าวปรับได้ | ใช้มากในอินเวอร์เตอร์ |

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

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

$$\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 คาบการขยับ

$$T_p > t_{settle} + t_{filter} \qquad (\text{มักเลือก } T_p = 20\text{–}200\ \text{ms})$$

- ก้าวใหญ่: ตามแสงที่เปลี่ยนเร็วทัน แต่แกว่งรอบ MPP มาก (สูญเสียตาม $\Delta V^2$)

- ก้าวเล็ก: แม่นในสภาวะคงที่ แต่ตามไม่ทันเมฆ ต้องเลือกก้าวไม่เล็กกว่าความละเอียดของ PWM และ ADC (มิฉะนั้นขยับแล้วไม่มีอะไรเปลี่ยน)

- คาบสั้นเกินไป: วัดก่อนคอนเวอร์เตอร์เข้าที่ (โดยเฉพาะตัวเก็บประจุขาเข้าใหญ่และลูปแรงดันช้า) อัลกอริทึมจะตัดสินใจผิด ต้องรอให้ $V_{pv}$ เข้าที่ก่อนเสมอ

- ก้าวแปรผัน: $\Delta V = k\,|\Delta P/\Delta V|$ ก้าวใหญ่เมื่อไกล MPP ก้าวเล็กเมื่อใกล้

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

$$\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 วิธีประมาณจากสัดส่วน

$$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)$$

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

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

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

### วิธีหา global MPP

- Periodic scan ทุก 5–15 นาที กวาด $V_{ref}$ จากประมาณ $0.95V_{oc}$ ลงมาถึงขอบล่างของช่วง MPPT บันทึกยอดที่ดีที่สุด แล้วกลับไปทำ P&O รอบยอดนั้น เสียพลังงานระหว่างกวาด 0.1–0.3 %

- Event-triggered scan กวาดเมื่อกำลังเปลี่ยนเกินเกณฑ์ หรือเมื่อแรงดันที่ MPP ต่ำผิดสัดส่วนจาก $N_s \times 0.8 V_{oc,mod}$

- ใช้ความรู้โครงสร้าง ยอดของสตริงที่มีบายพาสไดโอดมักอยู่ใกล้ $k\times 0.8\,V_{oc,sub}$ จึงตรวจเฉพาะจุดเหล่านั้น (ลดเวลากวาด)

- Metaheuristics (PSO, GWO, ฯลฯ) ในงานวิจัย — ต้องเทียบกับ scan อย่างง่ายอย่างเป็นธรรม เพราะ scan ก็ทำได้ดีในอินเวอร์เตอร์จริง

- แก้ที่ระดับฮาร์ดแวร์ optimizer/micro-inverter ทำ MPPT ระดับแผง ไม่มีปัญหาหลายยอดระดับสตริง

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

โครงสร้างที่แนะนำ: ลูปเร็ว (ทุกคาบ PWM หรือทุก 10–50 µs) คุมแรงดันแผงให้เท่ากับ $V_{ref}$ ด้วย PI (ดู ควบคุมดิจิทัล) และลูป MPPT ช้า (ทุก $T_p$) ปรับ $V_{ref}$ ค่าที่วัดต้องกรองเฉลี่ยตลอดคาบ $T_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) โดยเลื่อน $V_{ref}$ ไปทางขวาของ MPP (ฝั่ง $V_{oc}$) ซึ่งเสถียรกว่าฝั่งซ้าย

- ตอนเริ่มต้น: เริ่มที่ $0.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 ทำให้ $V_{pv}$ กระเพื่อม — ต้องเลือกช่วงวัดและ C ให้เหมาะ (ดู อินเวอร์เตอร์)

- เสถียรภาพของลูปแรงดันขาเข้า: ความต้านทานพลวัตของแผงเปลี่ยนจากบวกมากใกล้ $V_{oc}$ ไปเป็นค่าน้อยใกล้ $I_{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 จะกวาดแรงดันทั้งช่วงเป็นระยะเพื่อหายอดที่ดีที่สุด

## คำถามที่พบบ่อย (FAQ)

**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 จะกวาดแรงดันทั้งช่วงเป็นระยะเพื่อหายอดที่ดีที่สุด
