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

  1. หน้าแรก
  2. คลังความรู้
  3. ออกแบบระบบโซลาร์เซลล์
  4. พยากรณ์ · เฝ้าติดตาม

// บทที่ 16.11 · ออกแบบระบบโซลาร์เซลล์ · PV Forecasting & Monitoring

พยากรณ์กำลังผลิตโซลาร์ล่วงหน้าและการเฝ้าติดตาม: clear-sky พยากรณ์อากาศ ML และตรวจจับความผิดปกติ

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

เขียนโดย อาจารย์มดอัปเดต
สรุปใน 30 วินาที
  • แยกส่วนแน่นอน (ดวงอาทิตย์ → clear-sky) ออกจากส่วนไม่แน่นอน (เมฆ → clear-sky index)
  • นาที: กล้องท้องฟ้า · ชั่วโมง: ดาวเทียม · วันถึงหลายวัน: แบบจำลองอากาศ NWP + ML
  • รายงานความแม่นเป็น skill score เทียบ persistence เสมอ
  • เฝ้าติดตามด้วย “พลังงานที่ควรได้” จากแสงจริง แล้วเทียบสตริงกันเอง

ใครต้องการพยากรณ์ และต้องการล่วงหน้าแค่ไหน พื้นฐาน

ผู้ใช้ใช้ทำอะไรระยะล่วงหน้า
บ้าน/อาคารที่มีแบตเตอรี่ตัดสินใจว่าคืนนี้ควรชาร์จแบตจากกริดราคาถูก (TOU off-peak) หรือรอแดดพรุ่งนี้12–36 ชั่วโมง
โรงงานตั้งเวลาโหลดยืดหยุ่น (ห้องเย็น ปั๊ม ชาร์จรถยก) ลด peak demandชั่วโมง–1 วัน
โซลาร์ฟาร์ม/ผู้รวมไฟ (VPP)แจ้งกำลังผลิตล่วงหน้าตามสัญญาหรือข้อกำหนดของผู้ควบคุมระบบวันถัดไป และปรับระหว่างวัน
ศูนย์ควบคุมระบบไฟฟ้าเตรียมกำลังสำรอง (reserve) และ ramp ของโรงไฟฟ้าอื่นนาที–หลายวัน
ระบบ hybrid ที่ microgrid/เกาะจัดการเครื่องปั่นไฟและแบต ลดน้ำมันนาที–ชั่วโมง

ระยะพยากรณ์และวิธีที่เหมาะ กลาง

ระยะวิธีข้อมูลที่ใช้
วินาที–30 นาที (nowcasting)กล้องถ่ายท้องฟ้า (all-sky imager) ติดตามการเคลื่อนของเมฆ · ข้อมูลกำลังผลิตล่าสุดภาพท้องฟ้า, SCADA
30 นาที–6 ชั่วโมงCloud motion vector จากภาพดาวเทียม (Himawari สำหรับเอเชีย ทุก 10 นาที)ดาวเทียม
6 ชั่วโมง–7 วันแบบจำลองอากาศเชิงตัวเลข (NWP) เช่น ECMWF IFS, NOAA GFS, WRF ระดับภูมิภาค + การแก้ค่าเชิงสถิติ/MLNWP, ข้อมูลย้อนหลังของโรงไฟฟ้า
เดือน–ฤดูค่าเฉลี่ยระยะยาว + ดัชนีภูมิอากาศ (ENSO)ภูมิอากาศวิทยา

ในประเทศไทย ความยากอยู่ที่เมฆก่อตัวเร็ว (convective clouds) ช่วงบ่ายในฤดูฝน และหมอกควันในภาคเหนือช่วงต้นปี ส่วนฤดูแล้งท้องฟ้าค่อนข้างคงที่ พยากรณ์แม่นกว่า

แยกส่วนแน่นอนออกด้วย clear-sky กลาง

A1 Clear-sky index ดัชนีท้องฟ้าแจ่มใส

k∗(t)=G(t)Gcs(t)P^(t+h)=k^∗(t+h) Pcs(t+h)k^*(t) = \frac{G(t)}{G_{cs}(t)} \qquad \hat P(t+h) = \hat k^*(t+h)\,P_{cs}(t+h)

A2 Haurwitz clear-sky model แบบจำลองท้องฟ้าแจ่มใสอย่างง่าย

GHIcs=1098 cos⁡θz exp⁡ ⁣(−0.057cos⁡θz) W/m2GHI_{cs} = 1098\,\cos\theta_z\,\exp\!\left(-\frac{0.057}{\cos\theta_z}\right)\ \text{W/m}^2

แบบจำลองนี้ใช้เพียงมุมเซนิท (R4) แบบจำลองที่แม่นกว่า (Ineichen–Perez, REST2, McClear) ใช้ความขุ่นของบรรยากาศ (Linke turbidity, aerosol, ไอน้ำ) ซึ่งสำคัญในไทยเพราะหมอกควันและความชื้นสูง

ตัวอย่าง A-1

แสงฟ้าใสตอนเที่ยงที่กรุงเทพฯ วันที่ 21 มีนาคม

  1. มุมเงย 75.8° (ตัวอย่าง R-2) → θz=14.2∘\theta_z = 14.2^\circ, cos⁡θz=0.969\cos\theta_z = 0.969

  2. GHIcs=1098(0.969)exp⁡(−0.057/0.969)=1098(0.969)(0.943)=1,004 W/m2GHI_{cs} = 1098(0.969)\exp(-0.057/0.969) = 1098(0.969)(0.943) = 1{,}004\ \text{W/m}^2

  3. ถ้าวัดได้ 650 W/m² → k∗=0.65k^* = 0.65 มีเมฆบางส่วน · ถ้าพรุ่งนี้พยากรณ์ k∗=0.8k^* = 0.8 ที่เวลาเดียวกัน → G^≈800\hat G \approx 800 W/m²

A3 (Smart) persistence baseline การพยากรณ์อ้างอิงแบบคงสภาพ

P^(t+h)=P(t)smart: k^∗(t+h)=k∗(t) ⇒ P^(t+h)=k∗(t) Pcs(t+h)\hat P(t+h) = P(t) \qquad \text{smart: } \hat k^*(t+h) = k^*(t)\ \Rightarrow\ \hat P(t+h) = k^*(t)\,P_{cs}(t+h)

Persistence คือ “พรุ่งนี้เหมือนวันนี้” หรือ “อีก 15 นาทีเหมือนตอนนี้” เป็นคู่แข่งที่เอาชนะยากในระยะสั้นมาก ทุกวิธีพยากรณ์ต้องเทียบกับมันก่อน

Machine learning และการพยากรณ์เชิงความน่าจะเป็น ขั้นสูง

แนวทางที่ใช้ได้ผลในทางปฏิบัติคือ ให้ NWP บอกสภาพอากาศ แล้วให้ ML แปลงเป็นกำลังของโรงไฟฟ้านั้น (model output statistics) เพราะ ML เรียนรู้ความลำเอียงของ NWP ในพื้นที่ และพฤติกรรมเฉพาะของระบบ (เงา clipping ฝุ่น) จากข้อมูลย้อนหลัง

  • คุณลักษณะ (features): GHI/k* จาก NWP หลายจุดรอบโรงไฟฟ้า เมฆต่ำ/กลาง/สูง อุณหภูมิ ความชื้น ลม มุมดวงอาทิตย์ ชั่วโมง วันในปี กำลังผลิตล่าสุด (สำหรับระยะสั้น)
  • แบบจำลอง: gradient boosting (XGBoost/LightGBM) ทำงานดีกับข้อมูลตาราง · LSTM/Temporal CNN/Transformer สำหรับลำดับเวลา · CNN กับภาพดาวเทียม
  • เชิงความน่าจะเป็น: พยากรณ์ quantile (P10, P50, P90) ด้วย quantile regression หรือ ensemble ของ NWP ให้ผู้ใช้ตัดสินใจด้วยความเสี่ยง เช่น สำรองแบตไว้เผื่อกรณี P10
  • ข้อควรระวัง: แบ่งข้อมูล train/test ตามเวลา (ห้ามสุ่มปน) ตรวจข้อมูลช่วงไฟดับ/ตัด export ที่ไม่ใช่สภาพอากาศ และ retrain เมื่อระบบเปลี่ยน
# พยากรณ์ day-ahead แบบย่อ: NWP + gradient boosting (scikit-learn)
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor

df = pd.read_csv("plant_hourly.csv", parse_dates=["time"])   # กำลังจริง + NWP ของวันก่อนหน้า
df = df[df.sun_elev > 0]                                      # เฉพาะกลางวัน
X = df[["nwp_ghi", "nwp_cloud_low", "nwp_cloud_mid", "nwp_temp", "sun_elev", "hour", "doy"]]
y = df["p_ac_kw"]

cut = df.time < "2026-01-01"                                   # แบ่งตามเวลา ไม่สุ่ม
model = GradientBoostingRegressor(n_estimators=400, max_depth=4, learning_rate=0.05)
model.fit(X[cut], y[cut])
pred = model.predict(X[~cut]).clip(0, df.p_ac_max.iloc[0])   # ไม่ติดลบ ไม่เกินพิกัด
nmae = (abs(pred - y[~cut])).mean() / df.p_ac_max.iloc[0]

วัดความแม่นของการพยากรณ์ กลาง

A4 Error metrics ตัวชี้วัดความคลาดเคลื่อน

MAE=1n∑∣P^i−Pi∣RMSE=1n∑(P^i−Pi)2nMAE=MAEPratedMAE = \frac{1}{n}\sum|\hat P_i - P_i| \qquad RMSE = \sqrt{\frac{1}{n}\sum(\hat P_i - P_i)^2} \qquad nMAE = \frac{MAE}{P_{rated}}

A5 Forecast skill score คะแนนทักษะเทียบ persistence

SS=1−RMSEmodelRMSEpersistenceSS = 1 - \frac{RMSE_{model}}{RMSE_{persistence}}
ตัวอย่าง A-2

พยากรณ์พลังงานรายวัน 5 วัน (MWh)

วัน12345
จริง3.24.14.63.92.1
พยากรณ์3.04.44.33.52.9
Persistence (เท่าเมื่อวาน)3.53.24.14.63.9
  1. ความคลาดเคลื่อนของพยากรณ์: −0.2, +0.3, −0.3, −0.4, +0.8 → MAE = 2.0/5 = 0.40 MWh

  2. RMSEmodel=(0.04+0.09+0.09+0.16+0.64)/5=0.45RMSE_{model} = \sqrt{(0.04+0.09+0.09+0.16+0.64)/5} = 0.45 MWh

  3. RMSEpers=(0.09+0.81+0.25+0.49+3.24)/5=0.99RMSE_{pers} = \sqrt{(0.09+0.81+0.25+0.49+3.24)/5} = 0.99 MWh

  4. A5: SS=1−0.45/0.99=0.54SS = 1 - 0.45/0.99 = 0.54 — ดีกว่า persistence 54 % · วันที่ 5 พลาดมากสุด (พายุฝนที่พยากรณ์ไม่ทัน) RMSE ลงโทษความผิดพลาดใหญ่มากกว่า MAE

ระบบเฝ้าติดตามและ KPI พื้นฐาน

  • ข้อมูล: อินเวอร์เตอร์ส่งค่าผ่าน Modbus RTU/TCP (โปรไฟล์ SunSpec) หรือคลาวด์ของผู้ผลิต: กำลัง AC/DC แรงดันและกระแสแต่ละ MPPT/สตริง อุณหภูมิ รหัสความผิดพร่อง · มิเตอร์ที่จุดต่อ · เซนเซอร์แสงบนระนาบแผง (เซลล์อ้างอิงหรือไพราโนมิเตอร์) และอุณหภูมิแผงสำหรับระบบเชิงพาณิชย์
  • KPI ตาม IEC 61724-1: พลังงาน, YfY_f, PR (และ PR ปรับอุณหภูมิ), availability, ความผิดพร่องและเวลาซ่อม
  • ระบบบ้าน: แอปของผู้ผลิตอินเวอร์เตอร์เพียงพอ ตั้งการแจ้งเตือนเมื่อพลังงานรายวันต่ำกว่าค่าคาดหมายหรือมี error
  • ระบบใหญ่: SCADA/แพลตฟอร์ม monitoring ที่รวมหลายยี่ห้อ ตรวจรายสตริงด้วยตัวเลขเชิงสถิติ และส่งงานให้ทีม O&M

A6 Expected power and performance index กำลังที่ควรได้และดัชนีสมรรถนะ

Pexp=PSTC GPOA1000[1+γ(Tc−25)]ηsysPI=PmeasPexpP_{exp} = P_{STC}\,\frac{G_{POA}}{1000}\left[1+\gamma(T_c-25)\right]\eta_{sys} \qquad PI = \frac{P_{meas}}{P_{exp}}

A7 String deviation from the median ค่าเบี่ยงเบนของสตริงจากค่ามัธยฐาน

δk=Ik−median⁡(I)median⁡(I)เตือนเมื่อ δk<−10% ต่อเนื่องในช่วงแสง>600 W/m2\delta_k = \frac{I_k - \operatorname{median}(I)}{\operatorname{median}(I)} \qquad \text{เตือนเมื่อ } \delta_k < -10\%\ \text{ต่อเนื่องในช่วงแสง} > 600\ \text{W/m}^2
ตัวอย่าง A-3

ระบบ 5.8 kWp ผลิตน้อยหรือแค่มีเมฆ

เวลา 11:00 น. เซนเซอร์วัด GPOAG_{POA} = 820 W/m² อุณหภูมิแผง 55 °C อินเวอร์เตอร์จ่าย 3.2 kW ηsys\eta_{sys} (สาย ฝุ่น อินเวอร์เตอร์) ≈ 0.92

  1. Pexp=5.8(0.82)[1−0.0029(30)](0.92)=5.8(0.82)(0.913)(0.92)=3.99P_{exp} = 5.8(0.82)\left[1 - 0.0029(30)\right](0.92) = 5.8(0.82)(0.913)(0.92) = 3.99 kW

  2. PI=3.2/3.99=0.80PI = 3.2/3.99 = 0.80 — ต่ำกว่าปกติ 20 % ทั้งที่แสงดี ไม่ใช่เพราะเมฆ

  3. ดูข้อมูลราย MPPT: MPPT1 7.6 A, MPPT2 4.9 A ขณะที่ทั้งสองทิศเดียวกัน → δ2=−35 %\delta_2 = -35\ \% (เทียบ MPPT1)

  4. แรงดัน MPPT2 ต่ำกว่าปกติราว 1/3 ของแผงหนึ่งแผง → สงสัยบายพาสไดโอดลัดหรือเงาใหม่ ส่งช่างตรวจด้วยกล้องความร้อนและวัด VocV_{oc} รายแผง (ดู ตารางอาการเสีย)

การตรวจจับความผิดปกติที่ใช้ได้จริง

  1. เทียบกันเอง: สตริงเทียบสตริง อินเวอร์เตอร์เทียบอินเวอร์เตอร์ในทิศเดียวกัน — ไม่ต้องมีเซนเซอร์แสงก็ใช้ได้
  2. เทียบกับที่ควรได้: PI จากแสงและอุณหภูมิจริง หรือจากข้อมูลดาวเทียมเมื่อไม่มีเซนเซอร์
  3. รูปร่างกราฟรายวัน: ยอดแบน = clipping หรือจำกัดกำลัง · ตกเป็นศูนย์กลางวัน = trip (แรงดันกริดเกิน ฉนวนต่ำ) · ไม่สมมาตรเช้า-บ่าย = เงาข้างเดียว
  4. แนวโน้มระยะยาว: soiling ratio ระหว่างรอบล้าง และอัตราการเสื่อมรายปีด้วยวิธี year-on-year (เช่น ไลบรารี RdTools ของ NREL)
  5. ML: isolation forest / autoencoder กับข้อมูลหลายตัวแปร สำหรับระบบใหญ่ที่มีข้อมูลมาก (และต้องมีวิศวกรตรวจสอบผล)

ประเด็นระดับปริญญาโท ขั้นสูง

  • Spatio-temporal forecasting ใช้ข้อมูลโรงไฟฟ้าข้างเคียงเป็นเซนเซอร์เมฆที่ลอยมา (graph neural networks)
  • Regional/aggregate forecasting ของ PV บนหลังคาที่ไม่มีมิเตอร์แยก (behind-the-meter) สำหรับผู้ควบคุมระบบ — upscaling จากระบบตัวอย่าง
  • Probabilistic evaluation: CRPS, pinball loss, reliability diagram
  • Forecast-driven control: MPC สำหรับแบตเตอรี่และโหลดยืดหยุ่น การเสนอราคาในตลาดไฟฟ้าภายใต้ความไม่แน่นอน
  • Physics-informed ML และ digital twin ของโรงไฟฟ้าสำหรับ O&M เชิงพยากรณ์

คำถามที่พบบ่อย

พยากรณ์กำลังผลิตโซลาร์ล่วงหน้าทำได้แม่นแค่ไหน?

ขึ้นกับระยะเวลาล่วงหน้าและสภาพอากาศ พยากรณ์ล่วงหน้า 1 วันสำหรับโรงไฟฟ้าเดี่ยวมักมีความคลาดเคลื่อนเฉลี่ยสัมบูรณ์ประมาณ 5–10 % ของกำลังติดตั้งในเวลากลางวัน ฤดูฝนที่เมฆเปลี่ยนเร็วคลาดเคลื่อนมากกว่าฤดูแล้ง การรวมหลายโรงไฟฟ้าในพื้นที่กว้างช่วยลดความคลาดเคลื่อนลงมาก

Clear-sky index คืออะไร?

คืออัตราส่วนระหว่างแสงที่วัดหรือพยากรณ์ได้กับแสงที่จะได้ถ้าท้องฟ้าแจ่มใสในเวลาเดียวกัน ค่า 1 คือฟ้าใส ค่าต่ำคือมีเมฆ การพยากรณ์ค่า clear-sky index แทนการพยากรณ์แสงโดยตรงช่วยแยกส่วนที่คำนวณได้แน่นอน (ตำแหน่งดวงอาทิตย์) ออกจากส่วนที่ไม่แน่นอน (เมฆ)

จะรู้ได้อย่างไรว่าระบบโซลาร์ผลิตไฟน้อยผิดปกติ?

เทียบพลังงานจริงกับพลังงานที่ควรผลิตได้จากแสงและอุณหภูมิจริงของช่วงเวลานั้น ไม่ใช่เทียบกับเดือนก่อน ถ้า performance index ต่ำกว่าประมาณ 0.9 ต่อเนื่องให้ตรวจ และเทียบกระแสของแต่ละสตริงกันเอง สตริงที่ต่ำกว่าค่ามัธยฐานเกินประมาณ 10 % ในวันฟ้าใสบ่งชี้แผงสกปรก เงาใหม่ ขั้วต่อเสีย หรือบายพาสไดโอดลัด