# LFM Code example SRCL 2nd-Mar-2020 # LFM Code naming conventions # Just ISC and VOC are shown here # PREFIXES # m*** measured dimensioned (default if no prefix) W,A,V, Ohms ... # r*** reference dimensioned W,A,V, Ohms ... # n*** normalised dimensionless # SUFFIXES # ***_U uncorrected (default if no suffix) # ***_T corrected for Tmodule # STC DEFINITIONS G_STC = 1 # kW/m2 irradiance T_STC = 25 # C module temperature # EXAMPLE REFERENCE AND TEMPERATURE CORRECTION VALUES rIsc = 1.177 # A rVoc = 87.66 # V rIsc_Alpha = +0.000388 # /K rVoc_Beta = -0.00231 # /K # EXAMPLE MEASUREMENT VALUES FROM IV CURVES mGi = 0.5319 # kW/m^2 irradiance mTmod = 47.0 # C module temperature # measurements from IV curves mIsc_U = 0.5921 # A mVoc_U = 81.016 # V # CALCULATE NORMALISED LFM VALUES nIsc_U = mIsc_U/rIsc/mGi nVoc_U = mVoc_U/rVoc # CALCULATE LFM TEMPERATURE CORRECTIONS nIsc_T = nIsc_U * (1-rIsc_Alpha * (mTmod - T_STC)) nVoc_T = nVoc_U * (1-rVoc_Beta * (mTmod - T_STC)) # VALIDATE CALCULATIONS TO AT LEAST 4 FIGS print (" ref calc residual") print () print ("nIsc_U=", 0.945777, "{0:6.6f}".format(nIsc_U), "{0:6.6f}".format(nIsc_U - 0.945777)) print ("nVoc_U=", 0.924207, "{0:6.6f}".format(nVoc_U), "{0:6.6f}".format(nVoc_U - 0.924207)) print () print ("nIsc_T=", 0.937704, "{0:6.6f}".format(nIsc_T), "{0:6.6f}".format(nIsc_T - 0.937704)) print ("nVoc_T=", 0.971175, "{0:6.6f}".format(nVoc_T), "{0:6.6f}".format(nVoc_T - 0.971175))