-
Notifications
You must be signed in to change notification settings - Fork 30
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
Just making sure I'm not barking up the wrong tree ... #137
Comments
Hi @abooda1981 , If these are currents in a single PV module in which all cells are in series (as in a standard Si module) then there seems to me to be something fishy going on. AFAIK all currents should be identical at a given module operating point. Without seeing what Python code you are using, it would be difficult to trouble shoot. Sorry. Also as Kevin commented there are some pvmismatch questions & answers on StackOverflow, you may get a wider audience there. If I use your irradiance distribution here's what I get:
So the current of all cells in the module at the max power point would be 1.006[A]. Here's the IV & power-voltage curves for the 1-sun module And here's the IV & power-voltage curves for the module with your irradiance distribution Remember! PVMismatch returns a full trace of the IV curve for cells, modules, and strings. So it's up to the user to select the operating point that they want from the curve. If you want functions that describe the max power point, you should use |
Thanks @mikofski for your response. Actually, the module contains 10 series-connected groups. Perhaps the following codes might clear things up. The following is the code I use to draw the PV module pattern. This is from a previous discussion with @adambgnr
The next bit of code is the function which I access in R, which takes a module with the given structure and sets the shading for each sun to be the same as the value of the irradiance (in suns) after it is shaded by the required amount.
Finally, after I have created a module, and shaded it, I want to know what the photo-induced current is at each cell. My assumption--and I could be implementing this incorrectly, I guess--is that if each of the 60 cells has a different level of shading, then they should produce a different current. The following bit of code is what gives the output I reproduced above:
I wonder: would it not make more sense for me to take the shading level cell by cell, and then use the PVLIB function for single diodes? In other words, use pvlib.pvsystem.calcparams_cec for each cell and then just vary the irradiance parameter? Thanks again for your help. I will follow this up with a question on the StackOverflow as you suggest if you still think there's something wrong with this. |
Hi @abooda1981 ,
Is this current what you really want? Not the An other thing about the shading: Please @mikofski correct me if I am wrong, but I think if we set the suns with a 60 long 1 dimensional array, then the cell irradiances will be set in the order of the PV cell indexes (0-59), which can mess up the layout of the shadow on the PV module. I think what @abooda1981 wants is to fill the irradiances like this: Where on the left are the cell irradiances and on the right the cell indexes. (As far as I know, PVMM sets the cell indexes like this by default, please correct me if I'm wrong.) Thus if the irradiance input of @abooda1981 is in such form (the irradiance input array looks like how the shadow looks like in real life) then he/she can use the |
Hi @adambgnr , thanks for your input. Without wanting to spoil your Star Wars meme, I'm fairly sure that the Igen is what I want--in a later part of the code, I take all of the cells in a given string and define the current of the string to be the lowest current in that string. I am assuming that this lowest current is the one which is actually contributed to the module. (If this sounds off, please let me know.) Going back and forth with the PVLIB email list here: I'm wondering if it's more sensible to just PVLIB to calculate the photo-induced current for each cell individually using a single diode equation. For one thing, this would avoid my having to worry about the way cell indexing works in PVMM. |
Hello all. I've received a lot of help from @mikofski and @adambgnr for which I'm very grateful. I will need to run this kind of calculation for roughly ~ 1 year worth of data, I just wanted to make sure this isn't some weird mistake on my part. My codes below should be more or less self explanatory, but I will also offer some commentary.
FWIW (and I don't think it changes much), I'm using Python in R through the reticulate package and just trying to limit the routines that are actually written in Python. The only reason I'll mention this is you might notice some indexes are strange (eg, 60 elements start with 1 and end with 60 and not 0 and 59).
Here's where I begin, it's a set of irradiances which have been attenuated for each cell in a 60-cell module. Expressed in W/m^2.
Next, two python scripts which I can call from R. The first takes a module and a set of shades, as above, and applies "setSuns" to the module using the shades. The second takes a shaded module and returns a list of currents for each cell.
And the next bit, in R, ties it all together and produces a vector which holds the current generated by each cell.
The text was updated successfully, but these errors were encountered: