关于6月12日POA辐照度显著低于GHI的技术问询
问题背景
我从Solcast获取了时间间隔为5分钟的GHI、DNI、DHI卫星数据,并使用pvlib库编写如下函数计算POA值:
def get_irradiance(site_location, date, tilt, surface_azimuth, ghi, dni, dhi): times = pd.date_range(date, freq='5min', periods=12*24, tz=site_location.tz) solar_position = site_location.get_solarposition(times=times) POA_irradiance = irradiance.get_total_irradiance( surface_tilt=tilt, surface_azimuth=surface_azimuth, ghi=ghi, dni=dni, dhi=dhi, solar_zenith=solar_position['apparent_zenith'], solar_azimuth=solar_position['azimuth']) return pd.DataFrame({'GHI': ghi, 'DNI': dni, 'DHI': dhi, 'POA': POA_irradiance['poa_global']})
在荷兰地区(光伏组件倾角12.5°、方位角180°),对比2022年6月12日和13日6:00-20:00的逐小时数据:
6月12日数据
12 Juni 2022 GHI DNI DHI POA 6 86.750000 312.750000 40.500000 40.277034 7 224.583333 543.000000 69.750000 71.130218 8 366.833333 598.833333 113.833333 178.974322 9 406.083333 182.000000 304.000000 348.272844 10 532.166667 266.750000 346.666667 445.422584 11 725.666667 640.416667 226.500000 509.360716 12 688.500000 329.416667 409.583333 561.630762 13 701.333333 299.750000 439.333333 570.415438 14 725.416667 391.666667 387.750000 532.529676 15 753.916667 629.166667 244.333333 407.665794 16 656.750000 599.750000 215.333333 293.832376 17 381.833333 36.416667 359.416667 356.317883 18 411.750000 569.166667 144.750000 144.254438 19 269.750000 495.916667 102.500000 102.084439 20 134.583333 426.416667 51.583333 51.370738
6月13日数据
13 June 2022 GHI DNI DHI POA 6 5.666667 0.000000 5.666667 5.616296 7 113.500000 7.750000 111.416667 111.948831 8 259.500000 106.833333 208.416667 256.410392 9 509.166667 637.750000 150.583333 514.516389 10 599.333333 518.666667 240.583333 619.050821 11 745.250000 704.500000 195.583333 788.773772 12 757.250000 549.666667 292.000000 798.739403 13 742.000000 464.583333 335.000000 778.857394 14 818.250000 667.750000 243.000000 869.972769 15 800.750000 776.833333 166.916667 852.559043 16 699.000000 733.666667 167.166667 730.484502 17 582.666667 729.166667 131.916667 593.802853 18 449.166667 756.583333 83.500000 434.958210 19 290.083333 652.666667 68.666667 254.048655 20 139.833333 466.916667 48.333333 97.272684
可见6月12日POA值显著低于GHI,部分其他日期也存在类似差异。我使用该POA值进行PR(性能比)计算,但结果不可信,恳请解释该异常原因。
异常原因分析
1. 时间维度不匹配导致计算逻辑错位
函数中生成的times是当日5分钟间隔的时间序列,但传入的ghi、dni、dhi是逐小时聚合后的数据,而solar_position是5分钟精度的太阳位置数据。用5分钟的太阳位置匹配小时级的辐照度数据,会导致每个小时的辐照度被重复计算12次,最终POA结果基于错误的时间对应关系生成,必然出现偏差。
正确做法是确保辐照度数据的时间索引与太阳位置序列完全对齐:要么用5分钟原始数据计算POA后再聚合为小时值,要么先将太阳位置数据聚合为小时级再代入计算。
2. 多云天气下散射辐射占比过高
观察6月12日数据,多个时段(9点、12-14点、17点)的DNI远低于GHI,DHI占比极高,说明当天是多云/阴天为主的天气:
- GHI是水平面的总辐照度,包含直射+散射;
- POA是倾斜面上的总辐照度,直射部分贡献取决于太阳入射角,散射部分贡献由倾斜面散射接收模型决定。
当DNI极低时,POA的直射贡献几乎可以忽略,而12.5°的小倾角组件接收的散射辐照度,在各向同性散射模型下会略低于或接近水平面的散射部分,再加上直射贡献不足,就会出现POA低于GHI的情况。
对比6月13日(晴天为主,DNI占比高),直射辐射入射角匹配组件倾角,POA高于GHI是正常现象。
3. pvlib默认计算参数的局限性
irradiance.get_total_irradiance的默认参数可能放大偏差:
- 散射辐射模型:默认使用
isotropic(各向同性)模型,但多云天气下散射辐射更接近各向异性,未指定haydavies或reindl等更合适的模型,会导致散射部分POA计算偏差; - 地面反射率:默认
ground_albedo=0.2,若当地实际反射率更高(如夏季草地),会影响POA的反射贡献,但这个影响通常较小。
4. Solcast卫星数据在多云天气下的误差
卫星反演的辐照度数据在多云天气下误差会显著增大,尤其是DNI的反演难度更高。6月12日的DNI数据可能存在低估或失真,导致POA计算时直射辐射贡献被错误降低,进而拉低整体POA值。可对比同期地面气象站的实测数据验证Solcast数据的准确性。
内容的提问来源于stack exchange,提问作者Oscar

