You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PVLib的光伏逆变器出力预测实现及相关技术问题咨询

PVLib光伏逆变器出力预测实现及问题咨询

实现说明

我一周前开始使用PVLib,已成功实现光伏电站逆变器出力预测,对应代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import datetime
import pvlib
from pvlib import pvsystem
from pvlib.forecast import GFS, NAM, NDFD, HRRR
import numpy as np
from pvlib.pvsystem import PVSystem, retrieve_sam
from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS
from pvlib.tracking import SingleAxisTracker
from pvlib.modelchain import ModelChain


if __name__ == '__main__':
    # latitude, longitude, name, altitude, timezone
    timeZone = "Europe/Brussels"
    location = pvlib.location.Location(latitude=50.874, longitude=5.274, tz=timeZone, altitude=43+6, name='Alken')

    # import the database
    module_database = pvlib.pvsystem.retrieve_sam(name='CECMod')
    module = module_database["Seraphim_Solar_USA_Manufacturing_Inc__SRP_365_6QA_WS_50"]
    inverter_database = pvlib.pvsystem.retrieve_sam(name="cecinverter")
    inverter = inverter_database["Huawei_Technologies_Co___Ltd___SUN2000_7_6KTL_USL0__240V_"]
    temperature_model_parameters = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass'] # check
    mount_east = pvsystem.Array(pvsystem.FixedMount(surface_tilt=20, surface_azimuth=-83), module_parameters=module, modules_per_string=13, strings=1, temperature_model_parameters=temperature_model_parameters)
    mount_south = pvsystem.Array(pvsystem.FixedMount(surface_tilt=20, surface_azimuth=97), module_parameters=module, modules_per_string=13, strings=1, temperature_model_parameters=temperature_model_parameters)
    system_multi_array = pvsystem.PVSystem(arrays=[mount_east, mount_south], inverter_parameters=inverter)

    weatherForecastModel = GFS(resolution="quarter", set_type="best") # Global Forecast System (GFS) (27-28km)
    start = pd.Timestamp(datetime.date.today(), tz=timeZone)
    end = start + datetime.timedelta(days=1)
    raw_data = weatherForecastModel.get_data(location.latitude, location.longitude, start, end)
    data =raw_data
    irrad_vars = ['ghi', 'dni', 'dhi']
    data = weatherForecastModel.rename(data)
    data['temp_air'] = weatherForecastModel.kelvin_to_celsius(data['temp_air'])
    data['wind_speed'] = weatherForecastModel.uv_to_speed(data)

    irrad_data = weatherForecastModel.cloud_cover_to_irradiance(data['total_clouds'])
    data = data.join(irrad_data, how='outer')
    data = data[weatherForecastModel.output_variables]
    data = weatherForecastModel.process_data(raw_data)
    data['precipitable_water'] = 0.1
    print(data.columns)

    PVSystemModel = ModelChain(system_multi_array, weatherForecastModel.location, aoi_model="no_loss")
    print(system_multi_array)
    print(PVSystemModel)

    PVSystemModel.run_model(data)
    PVSystemModel.results.ac.fillna(0).plot()
    plt.ylim(0, None)
    plt.ylabel('AC Power (W)')

    plt.show()

待咨询技术问题

  • 我因所需设备可在CEC数据库中查询到而选用该数据库,但CEC模块和逆变器的使用便捷性低于de scandia设备,请问除自定义模块与逆变器参数外,是否有其他收录欧洲地区设备的数据库可选用?
  • 目前我暂对precipitable_water参数做了固定赋值处理,官方文档说明可通过gueymard94_pw模型计算该参数,但该模型所需的相对湿度数据无法从GFS模型的预报结果中获取,请问有哪些渠道可以获取该类气象数据?
  • 请问有哪些适用于欧洲地区的优质气象预报服务可用于光伏出力预测?

问题解答

欧洲地区光伏设备数据库选择

可以选用欧盟联合研究中心(JRC)发布的光伏设备数据库,该库收录了绝大多数在欧洲市场流通的光伏组件、逆变器的完整性能参数,原生适配PVLib调用规则,无需手动自定义全部参数即可直接使用。另外PVsyst的标准导出参数库也覆盖大量欧洲流通设备,可通过PVLib的第三方导入工具直接读取使用。

相对湿度/可降水量数据获取渠道

可以更换使用欧洲中期天气预报中心的公开数值预报产品,其输出字段直接包含多层相对湿度、总可降水量数据,无需通过gueymard94_pw模型自行计算。此外欧洲各国官方气象机构的公开预报接口也大多提供相对湿度、可降水量等相关参数输出,可直接调用获取对应数据。

欧洲地区光伏预测气象服务推荐

  • 欧洲中期天气预报中心数值预报产品:最高9公里空间分辨率,最长10天预报时效,辐射和气象参数精度较高,适配全欧洲范围的中长期光伏出力预测需求。
  • 欧盟哥白尼大气监测服务的专用辐射预报产品:针对太阳辐射参数做了专项校准,比通用气象预报的辐射精度提升10%以上,适合对辐射精度要求高的预测场景。
  • 欧洲各国本土官方气象机构的精细化预报服务:比如比利时皇家气象研究所、德国气象局的局地预报产品,在本国范围内分辨率可达1公里以内,短时效(0-72小时)预测精度表现更优。

内容的提问来源于stack exchange,提问作者WiZarD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:45:04