2017-06-04 141 views
0

我試圖讓從pvlib IV曲線關係,但我得到的錯誤:pvlib IV曲線 - 類型錯誤:必須海峽,不是int

TypeError: must be str, not int.

上運行的Spyder。 你能提醒一下嗎?這個例子來自網絡。

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)') 
+0

問題尋求幫助調試(「爲什麼不是這個代碼的工作?」)必須包括所期望的行爲,一個具體問題或錯誤和在問題本身中重現它所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。 – ImportanceOfBeingErnest

回答

1

從(Docs

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

first parametersinglediode()不正確。如果我刪除它想:

fivepnts = singlediode(
    photocurrent, saturation_current, resistance_series, 
    resistance_shunt, nNsVth) 

我得到:

enter image description here

相關問題