pvlib IV curve TypeError:必须是str,而不是in

2024-04-20 08:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从pvlib绘制一条IV曲线,但得到的错误是:

TypeError: must be str, not int.

在斯派德身上跑。 你能给我个建议吗?这个例子取自网络。在

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
rom pvlib.pvsystem import singlediode, v_from_i, i_from_v, retrieve_sam

def fivepoints_to_frame(pnt):
    """
    Converts a 1 dimensional, dict-like singlediode or sapm result
    to a 5 row DataFrame with columns current and voltage.
    Users can iterate over the rows of a multidimensional
    singlediode or sapm result, if necessary.
    """
    ivframe = {'i_sc': (pnt['i_sc'], 0),
               'p_mp': (pnt['i_mp'], pnt['v_mp']),
               'i_x': (pnt['i_x'], 0.5*pnt['v_oc']),
               'i_xx': (pnt['i_xx'], 0.5*(pnt['v_oc']+pnt['v_mp'])),
               'v_oc': (0, pnt['v_oc'])}
    ivframe = pd.DataFrame(ivframe, index=['current', 'voltage']).T
    ivframe = ivframe.sort_values(by='voltage')

    return ivframe

resistance_shunt = 16
resistance_series = 0.094
nNsVth = 0.473
saturation_current = 1.943e-09
photocurrent = 7
module_parameters = retrieve_sam('cecmod')['Example_Module']

v_oc = v_from_i(resistance_shunt, resistance_series, nNsVth, 0, 
saturation_current, photocurrent)
voltage = np.linspace(0, v_oc, 100)

current = i_from_v(resistance_shunt, resistance_series, nNsVth, 
voltage,saturation_current, photocurrent)

fivepnts = singlediode(
    module_parameters, photocurrent, saturation_current, resistance_series, 
resistance_shunt, nNsVth)
ivframe = fivepoints_to_frame(fivepnts)

fig, ax = plt.subplots()
ax.plot(voltage, current)
ax.scatter(ivframe['voltage'], ivframe['current'], c='k', s=36, zorder=10)
ax.set_xlim(0, None)
ax.set_ylim(0, None)
ax.set_ylabel('current (A)')
ax.set_xlabel('voltage (V)')

Tags: fromimportmpcurrentaxseriesocvoltage
1条回答
网友
1楼 · 发布于 2024-04-20 08:34:39

来自(Docs

pvlib.pvsystem.singlediode(photocurrent, saturation_current, resistance_series, 
                           resistance_shunt, nNsVth, ivcurve_pnts=None)

first parameter到{}不正确。如果我把它取下来像:

^{pr2}$

我得到:

enter image description here

相关问题 更多 >