使用 fit_desoto 函数时出错,由 optimize.root (SciPy) 引起
Error while using the fit_desoto function, caused by optimize.root (SciPy)
在使用 fit_desoto 函数估算进一步太阳能模块计算的参数时,我收到以下错误:
RuntimeError:参数估计失败:
迭代没有取得很好的进展,由
比最近五次雅可比计算的改进。
错误来自SciPy库的optimize.root函数,
在 fit_desoto 函数中使用。
即使我只使用 1 作为 fit_desoto 函数的初始值,我也会收到此错误。
主程序中调用函数的代码:
self.mp_desoto_fit = pvlib.ivtools.sdm.fit_desoto(v_mp=module['Vmpo'], i_mp=module['Impo'],
v_oc=module['Voco'], i_sc=module['Isco'], alpha_sc=module['Aisc'], beta_voc=module['Bvoco'],
cells_in_series=module['Cells_in_Series'], EgRef=1.121, dEgdT=-0.0002677, temp_ref=25, irrad_ref=1000,
root_kwargs={'options': {'col_deriv': 0, 'xtol': 1.49012e-05, 'maxfev': 0, 'band': None, 'eps': None, 'factor': 100, 'diag': None}})
fit_desoto 函数的函数调用中的 root_kwargs 会影响根函数的求解器,但求解器的不同属性不能解决问题。
你对这个问题有什么想法吗?
我已经尝试过的:
- 检查了 fit_desoto 函数的所有类型的初始值。
- 为根函数求解器选择了不同的选项
- 代码调试并检查了root_function中的变量。函数计算时没有 NaN 值或类似值
提前致谢
函数中的问题没有解决,但是可以通过使用与 fit desoto 函数非常相似的 fit_cec_sam 函数来绕过。
fit desoto 函数中的问题是由初始猜测引起的。
查看 Git Hub 上的答案了解详情。
在使用 fit_desoto 函数估算进一步太阳能模块计算的参数时,我收到以下错误:
RuntimeError:参数估计失败: 迭代没有取得很好的进展,由 比最近五次雅可比计算的改进。
错误来自SciPy库的optimize.root函数, 在 fit_desoto 函数中使用。
即使我只使用 1 作为 fit_desoto 函数的初始值,我也会收到此错误。
主程序中调用函数的代码:
self.mp_desoto_fit = pvlib.ivtools.sdm.fit_desoto(v_mp=module['Vmpo'], i_mp=module['Impo'],
v_oc=module['Voco'], i_sc=module['Isco'], alpha_sc=module['Aisc'], beta_voc=module['Bvoco'],
cells_in_series=module['Cells_in_Series'], EgRef=1.121, dEgdT=-0.0002677, temp_ref=25, irrad_ref=1000,
root_kwargs={'options': {'col_deriv': 0, 'xtol': 1.49012e-05, 'maxfev': 0, 'band': None, 'eps': None, 'factor': 100, 'diag': None}})
fit_desoto 函数的函数调用中的 root_kwargs 会影响根函数的求解器,但求解器的不同属性不能解决问题。
你对这个问题有什么想法吗?
我已经尝试过的:
- 检查了 fit_desoto 函数的所有类型的初始值。
- 为根函数求解器选择了不同的选项
- 代码调试并检查了root_function中的变量。函数计算时没有 NaN 值或类似值
提前致谢
函数中的问题没有解决,但是可以通过使用与 fit desoto 函数非常相似的 fit_cec_sam 函数来绕过。
fit desoto 函数中的问题是由初始猜测引起的。
查看 Git Hub 上的答案了解详情。