问题标签 [pvlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
127 浏览

python - 如何使用非跟踪 CECMod 计算能量输出

我正在尝试使用 CECMod 光伏模块上的 pvlib 库计算能量输出。我发现的唯一实现(感谢 Mark 和 Cliff)假设模块安装在全天跟随太阳的单轴跟踪器上。这对我来说是个问题,因为我的模块将被修复并且不会跟踪太阳。

有没有一种方法可以计算 CECMod 模块的能量输出而不假设它们会跟踪太阳?

作为参考,我在下面包含了使用单轴跟踪器的实现。

0 投票
1 回答
217 浏览

python-3.x - 使用总辐照度计算紫外线指数

我正在使用pvlib计算表面的漫射和直接入射太阳辐射,这很好用。在计算表面的总入射短波辐射时,我考虑了云、反照率、海冰等。

现在,使用直接 (sw_dr) 和漫射 (sw_df) 短波辐射,我想通过 1) 计算入射太阳辐射的光谱分布乘以太阳能光谱 2) 仅考虑来自波长 280-400 nm (sw_dr_λ_280-400) 的辐照度。

每个波长间隔 dλ 对直接和漫射短波辐射的贡献由其在标准太阳光谱 ASTM E-490 AM0( Shanmugam 和 Ahn,2007 )下的太阳能量加权,该表可在塞费里安等人。2018 年适用于 200-4000 nm 波长。我的理解是,这给了我直接和漫射短波辐射,它是 10 nm 间隔波长的函数。为了计算紫外线指数,我使用了这里的公式:

其中 erythema_spectrum 是每个波段 (10 nm) 对红斑影响的加权。

当我使用这种方法计算 UVI 值时,这些值太高了,我想知道我的方法是否有缺陷,或者我在这里做错了什么。有没有其他人使用 pvlib 计算过 UVI?

我感谢您的帮助。干杯,特隆德

更新:我修复了上面的功能更正确。当我计算 1 月 15 日 30N (0-360E) 以北的 UVI 时,我得到的平均 UVI 为 14,但最大值为 264。这就是它的样子: 在此处输入图像描述

更新 2:根据下面@Cliff H 的评论,我将我的值除以 25。新值在 UVI 的范围内,所以这似乎是正确的。请参阅 2015 年 6 月的 UVI 图表。 在此处输入图像描述

0 投票
1 回答
30 浏览

pvlib - PVMismatch 中 gen_coeffs.gen_two_diode 的输出是什么意思?

我不明白 gen_coeffs.gen_two_diode 的输出,即:

我可以在这个输出中找到我需要的值(Isat1、Isat2、Rs 和 Rs)吗?或者在使用 gen_coeffs.gen_two_diode 之后,我在哪里可以找到 2 个二极管模型所需的参数?

0 投票
1 回答
161 浏览

python - 为什么 pvlib 中能源生产的最佳表面方位角不在北半球 180° 或附近?

我正在使用开源 pvlib 软件(和 CEC 模块)构建一个模型来估计每年的光伏发电量。我在模型中遇到了一些不一致的地方,如果社区可以提供任何故障排除,我将不胜感激。

我的主要问题是:该模型告诉我,用于能源生产的理想北半球表面方位角(即具有最高能量输出的表面方位角)约为 76°(就在正东以北),而用于能源生产的最差表面方位角约为270°(正西)。但是,我知道北半球理想的表面方位角应该是大约 180°(正南),最差的表面方位角在 0°(正北)。

我已经包含了这个图表,以帮助可视化基于 surface_azimuth 的能量产生的变化。 这也是在附加代码的末尾生成的。

谁能帮我纠正这个问题或纠正我的理解?

复制下面的代码以供参考

0 投票
1 回答
40 浏览

pvlib - 使用 pv.solarposition.spa_python 获取天顶角

我试图得到天顶角:pv.solarposition.spa_python(date_range, latitude, longitude)但我得到的一些角度超过 90 度 - 为什么会这样?

0 投票
1 回答
74 浏览

pvlib - bifacial.pvfactors_timeseries() TypeError: += 不支持的操作数类型: 'NoneType' 和 'str'

我正在尝试运行函数:bifacial.pvfactors_timeseries(),并得到错误:

类型错误:+= 不支持的操作数类型:“NoneType”和“str”。

我不确定我的哪个输入值是错误的。下面你可以看到我是如何编写它的函数,然后是所有输入值。

输入结构截图:

输入太阳方位角,输入太阳天顶,输入surface_azimuth输入surface_tilt输入时间戳输入dni输入dhi

所有其他输入都是浮点数和整数。

我还尝试只使用单个数值作为输入而不使用 DataFrame,如下所示。我仍然遇到同样的错误。

python 版本:3.8.5 pvlib 版本:0.8.0 pv 因子版本:1.5.0 pandas 版本:1.2.1

有谁知道该错误的解决方案?非常感谢您的帮助!

0 投票
0 回答
67 浏览

pvlib - pvlib.inverter.fit_sandia 返回零 C1、C2、C3 系数

因此,我尝试使用sandia_fit 函数将功率逆变器模型拟合为多项式函数。

我每小时都有来自逆变器的 ac_power、dc_power、dc_voltage 读数。这三个参数以及 dc_voltage_level 是 fit_sandia 函数的类数组输入,该函数将逆变器模型多项式逼近到给定数据。

分析了 pvlib.pvsystem.retrieve_sam 各种数据库后,很明显 C0、C1、C2 和 C3 应该是非零值,但是,无论我从时间序列数据中尝试什么输入,sandia_fit 只返回 C0 作为非零值并且C1、C2、C3 为 0。

一个例子会很方便,如何正确使用这个功能。谢谢!

编辑:

dc_power = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,396.75,1150.56,1426.36,1577.72,1566.14,1842.39,877.96,415.15,307.07,0.0,0.0,0.0,0.0,0.0,0.0.0. ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,229.16,927.67,2059.07,2914.16,4288.43,4224.21,2477.9,1548.42,874.56,226.03,0.0,0.0,0.0,0.0,0.0,0.0. ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,524.2,1131.62,2999.88,5863.7,4969.04,4334.98,2033.0,862.03,346.04,0.0,0.0,0.0,0.0,0.0,00.0,0.0,0. ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,600.61,675.67,941.0,629.99,1119.77,692.0,347.6,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

ac_power=[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,195.92,1017.58,1353.08,1493.0,1336.58,1693.58,793.27,286.75,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.33,875.83,1971.25,2796.25,4218.42,4006.58,2280.08,1429.25,718.25,21.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0. ,0.0,0.0,0.0,0.0,0.0,0.0,0.0,270.25,1088.67,3178.67,6553.92,4798.25,3962.08,1854.5,720.92,59.3,0.0,0.0,0.0,0.0,0.0,00.0,0.0,0.0. ,0.0,0.0,0.0,0.0,0.0,0.0,4.42,483.75,595.08,829.67,527.42,1031.0,540.5,178.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

dc_voltage=[25.06,25.06,25.06,25.06,25.06,25.06,25.06,73.12,658.29,747.35,747.42,747.72,747.75,747.73,747.81,747.59,290.79,25.11,25.08,25.07,25.06,25.06,25.06,25.06 ,25.06,25.06,25.05,25.06,25.05,25.05,25.05,229.67,747.51,747.46,747.3,747.6,747.51,747.48,747.58,747.63,339.99,25.07,25.06,25.06,25.07,25.06,25.06,25.06,25.06 ,25.06,25.06,25.06,25.07,25.07,25.07,113.24,611.16,747.81,747.66,747.23,747.34,747.68,747.57,747.31,417.04,25.15,25.12,25.12,25.11,25.12,25.12,25.1,25.12,25.11 ,25.12,25.11,25.12,25.12,25.12,53.7,297.61,747.57,747.38,747.68,747.66,747.62,747.3,726.89,93.88,25.14,25.12,25.12,251.12,25.12]

0 投票
1 回答
88 浏览

python - pvlib.irradiance.disc 在某些日子返回看似不正确的值

我正在尝试使用 DISC 模型从 GHI 计算 DNI。它似乎在某些日子返回了合乎逻辑的值,但在其他日子里,它似乎大大偏离了标准。之后我使用 GHI - DNI * cos(θ) 的标准公式计算 DHI。

这是我的数据框示例以供参考:

压力 天顶 dni
2021-02-21 09:00:00+02:00 1022 79.611284 148.975472 632.731814 34.877836
2021-02-21 10:00:00+02:00 1022 73.237092 322.780190 792.803789 94.126078
2021-02-21 11:00:00+02:00 1022 68.484954 501.550757 763.726566 221.457448
2021-02-21 12:00:00+02:00 1022 65.795320 521.414153 865.344120 166.625191
2021-02-21 13:00:00+02:00 1022 65.466171 516.448304 878.623028 151.617274
2021-02-21 14:00:00+02:00 1022 67.536285 412.165474 866.599138 81.039446
2021-02-21 15:00:00+02:00 1021 71.767697 292.985096 778.455371 49.429408
2021-02-21 16:00:00+02:00 1021 77.744154 124.146227 223.897390 76.617876
2021-02-22 09:00:00+02:00 1022 79.276500 114.214529 277.318106 62.614056
2021-02-22 10:00:00+02:00 1023 72.888793 248.292454 634.777628 61.523563
2021-02-22 11:00:00+02:00 1023 68.124958 387.336228 855.994144 68.406867
2021-02-22 12:00:00+02:00 1023 65.429755 516.448304 878.656364 151.095472
2021-02-22 13:00:00+02:00 1023 65.104368 511.482455 887.843374 137.729993
2021-02-22 14:00:00+02:00 1023 67.187466 407.199624 866.444561 71.264128
2021-02-22 15:00:00+02:00 1023 71.437557 218.497359 329.880024 113.484015
2021-02-22 16:00:00+02:00 1023 77.433660 99.316982 74.722948 83.059519
2021-02-23 09:00:00+02:00 1028 78.938277 49.658491 0.000000 49.658491
2021-02-23 10:00:00+02:00 1028 72.537193 99.316982 0.000000 99.316982
2021-02-23 11:00:00+02:00 1028 67.761859 153.941321 25.383509 144.334754
2021-02-23 12:00:00+02:00 1028 65.061403 238.360756 135.501848 181.226844
2021-02-23 13:00:00+02:00 1028 64.740241 233.394907 116.897570 183.512050
2021-02-23 14:00:00+02:00 1028 66.836873 188.702265 67.331661 162.217334
2021-02-23 15:00:00+02:00 1028 71.106160 168.838869 113.359190 132.131384
2021-02-23 16:00:00+02:00 1028 77.122298 79.453585 3.785011 78.610017
2021-02-24 09:00:00+02:00 1029 78.596748 84.419434 53.955268 73.751777
2021-02-24 10:00:00+02:00 1028 72.182423 168.838869 150.012792 122.936847
2021-02-24 11:00:00+02:00 1028 67.395784 263.190001 299.151463 148.207170
2021-02-24 12:00:00+02:00 1028 64.690387 327.746039 415.466900 150.129973
2021-02-24 13:00:00+02:00 1028 64.373905 322.780190 377.550453 159.490967

如您所见,在第 21 天和第 22 天,它可以轻松找到 DNI。然而在 23 日,它似乎返回了不合逻辑的值。此外,我通过将其乘以 100 来校正压力输入。

这是实际 irradiance.disc 调用的相关代码行:

之后,即使它不那么相关,我也这样计算 DHI:

我还没有找到这个问题的根源,我只是怀疑它可能与 DISC 模型的输入压力限制有关。

有任何想法吗?

0 投票
1 回答
147 浏览

python - 我必须使用哪个 pvlib 函数来获得每年的平面内照射,就像我使用 PVGIS 中的界面获得的那样?

在给定纬度、经度、表面倾斜度和方位角的情况下,我只需要一个每年平面照射irradiance的示例,以便以后使我的过程自动化。

我需要进行此计算以计算欧盟中部时区某些工厂的实际与理论生产率。

我的目标是获得图形用户界面提供的相同数字: PVG 性能工具的摘要部分,因此我假设它们提供“典型”年度辐照,关心阴天的影响。

非常感谢!任何形式的帮助将非常感激。

0 投票
1 回答
40 浏览

python - pvlib 未校正 calcparams_desoto 中的串联电阻和校正分流电阻,与参考不一致

我正在与我一起工作,pvlib.singlediode.calcparams_desoto但我对以下内容感到困惑。

在他最初的硕士论文中,De Soto 提出了方程 4.21(第 46 页)来校正给定辐照和温度的串联电阻。然而,在 calcparams_desoto 的中,串联电阻没有被修改,尽管辐照和温度会对串联电阻产生显着影响(参见第 49 页的图 4.18 和 4.19)。

此外,在实施 pf pvlib 中,针对不同的有效辐照校正了分流电阻。然而,De Soto 建议,辐照对分流电阻没有显着影响(参见公式 4.33,第 73 页)。在搜索了一段时间后,我无法找到另一个解释这一点的地方。

这两件事被这样实施的原因是什么?

非常感谢您的回答!

引用的页码是论文的实际页码,而不是 pdf 的页码。