-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
provide example of shorted cell in docs #101
Comments
If the substrings were in parallel, then AFAIK this would cause harmful mismatch, so IMO I don't think a manufacturer would make a panel like this, unless those 9 cells were different (different voltage) than the other cells. But if they were in series then that would be okay, and I think that the current PVMismatch bypass diode settings let you select the number of cells in each substring already - ok almost, not flexible enough for 59 cell module, because |
Thanks Mark. For sure this would not be for an intentional design. It would help us model what happens when cells are shorted and not contributing to the circuit. I guess this would be a new feature request - to handle non-rectangular configurations. Right now we are trying to do a workaround by modelling the shorted cell using the parameters available in PVMismatch (i.e. Isat1, Isat2, Rsh, Rs, etc). But it would better if we could just omit the cell entirely as you get into weird regimes trying to shoehorn a cell model into mimicking what is essentially a simple conductor |
so this is already possible to model in pvmismatch as it is right now, you basically want to get no voltage response at any current, so you can carry the module's current with zero or no voltage drop:
For example: from pvmismatch import *
from matplotlib import pyplot as plt
# make a standard 60-cell module with 3 substrings, 20 cells ea
STD60 = pvmodule.standard_cellpos_pat(10, [2, 2, 2])
pvmod = pvmodule.PVmodule(cell_pos=STD60)
ncells = len(pvmod.pvcells) # should be 60 cells
assert ncells == 60
# plot the normal module and cells
plt.ion()
pvmod.plotCell()
pvmod.plotMod() # use setSuns to make a copy of the last cell and set the irradiance to nil
pvmod.setSuns(cells=[59], Ee=0.001)
# now the last cell is a copy, we can change it's properties to short it
# set the short circuit current, saturation currents, series resistance to nil
# and set the shunt resistance to a bigger number and kill reverse breakdown
pvc_last = pvmod.pvcells[-1]
pvc_last.update(Isc0_T0=1e-16, Isat1_T0=1e-16, Isat2_T0=1e-16, Rs=1e-16, Rsh=1e16, aRBD=0, bRBD=0)
pvc_last
# <PVcell(Ee=0.001[suns], Tcell=298.15[K], Isc=1e-19[A], Voc=1.71236e-05[V])> # we need to recalculate the module again, easiest way is with setSuns:
pvmod.setSuns(cells=[59], Ee=1e-16)
pvmod.plotCell()
pvmod.plotMod() ... which is what I would expect, if you short the last cell, then you get a module that has a lower voltage and less power. |
@chetan201 I think you should close or rename this issue to something like, "provide example of shorted cell in docs " |
Thanks Mark - this makes sense. I wouldn't have expected that shorting one cell would have had such a dramatic impact on the power. Shouldn't you just lose the power of the one cell - assuming you are in an all series circuit? It looks like the diode is kicking in here which indicates reverse bias activation of the cell. |
I saw that too, you may need to fool around with it, looking at that one cell, it looks like I set the resistance so high that it can't carry any current, so perhaps try again with a more reasonable resistance and that should fix it. I spent too much time on this, but it was fun. Perhaps you can take it from here now that you understand how to set the cell properties using FYI you can also call pvm.Imod, pvm.Vmod, pvm.Pmod, pvm.Isubstr, pvm.Vsubstr = pvm.calcMod() Where The documentation needs some work, interested? |
@mikofski |
Is it possible to have multiple substrings in parallel in a module where the substrings have different number of cells in series? For example
Imagine a 59 cell module which is made of 6 strings in parallel. 5 strings have 10 cells in series and the 6th one has 9.
I think there should be a way to do this with crosstied cell position structures but not sure exactly how to execute
The text was updated successfully, but these errors were encountered: