bifacial_radiance
bifacial_radiance copied to clipboard
Adding the ability to modify PVcell inputs when running PVMismatch
Currently, the function which runs PVMismatch assumes default values for cell characteristics of the module. It would be good to add a feature to modify these inputs and run the simulation for different module types. One important factor is the reverse breakdown voltage (VRBD). The default value for this parameter is -5.5 volts which seems to be correct for SunPower modules as they are n-type back contact modules. Quoting @mikofski
Typically front contact p-type c-Si cells breakdown in reverse bias somewhere between -17.0-volts to -25.0-volts.
We probably need to change the default VRBD to capture the larger range of modules.
We have done a PVMismatch model validation at NEXTracker for some partial-cell shading scenarios on a regular 72 cell p-type module and got a very good match between measured (I-V measurements) and modeled values considering -18 V for VRBD. However, assuming -5.5 V for VRBD caused high discrepancy between modeled and measured data. This validation was for hard shadows on the front side of the module. However, I think this parameter will impact the backside mismatch factor as well. @cdeline and @shirubana, do you think changing the VRBD will impact the results shown here:
http://bifipvworkshop.com/fileadmin/layout/images/bifiPV/presentations2019/bifiPV2019_POSTER_NREL_Ayala.pdf
ICYMI @chetan201 & @cwhanse
Yes it would be awesome to be able to modify the parameters more easily. For our electrical mismatch paper I had to manually go and change the series resistance and shunt resistance to the cell file to modify our fill factor. It works, but it's not streamlined.
Sorry, maybe should be clearer in the documentation, create an issue on PVMismatch maybe? @chetan201 may have feedback?
Yes it would be awesome to be able to modify the parameters more easily.
Just set it and cells are updated automatically. If you are setting them all, do it first before changing any irradiance or temperature, because all the cells reference the same Python object, otherwise you will create a lot of unnecessary Python objects.
from PVMismatch import *
# create a 5 x 10 system
pvsys = pvsystem.PVsystem(
numberStrs=5, numberMods=10)
# only 3 Python objects
# because uniform conditions
# 1 string, 1 module, 1 cell
# So setting one cell
# actually sets all cells
pvstr = pysys.pvstrs[0]
pvmod = pvstr.pvmods[0]
pvcell = pvmod.pvcells[0]
pvcell.Rs = 12.3 # ohms
# cell IV curve instantly recalculated
# but modules, strings, and system
# *not* recalculated yet
pvsys.setSuns(0.678) # suns
# setSuns & setTemps calculates
# modules, strings, and system
For our electrical mismatch paper I had to manually go and change the series resistance and shunt resistance to the cell file to modify our fill factor.
Always good to get feedback! You shouldn't have to hardcore any changes. Use PVcell.update()
to change multiple cell parameters together:
from PVMismatch import *
# update cell parameters first
pvsys = pvsystem.PVsystem(
numberStrs=5, numberMods=10)
pvstr = pysys.pvstrs[0]
pvmod = pvstr.pvmods[0]
pvcell = pvmod.pvcells[0]
# update() recalculates
# cell IV curve instantly
pvcell.update(Rs=12.3, Rsh=456.7) # ohms
# recalculate modules, strings, system
pvsys.setSuns(0.678) # suns
Does this help? I think PVMismatch needs some tutorials, Jupyter notebooks.
this is awesome! Thanks for sharing. Yes, some more tutorials/documentation would be great ~ I learned most of what I know of PVMismatch from your presentation on 2017 PVPMC ~ that's like the most complete examples I could find early this year to learn :) https://www.slideshare.net/sandiaecis/09-mikoski-pvmismatchpvpmc820170509r5