Closed nickdiorio closed 5 years ago
Does this happen in the current release also?
Good question, I'll do some more testing!
This appears to be be due to the way the module model loss is calculated, which is:
'loss' = annual_dc_nominal - annual_dc_gross - annual_snow_loss - annual_mppt_voltage_clipping' / annual_dc_nominal
.
Issues:
annual_mppt_voltage_clipping
, as it is already accounted for in annual_dc_gross
.annual_dc_nominal
is calculated by multiplying the nominal plane-of-array irradiance by the nominal module efficiency and area. Within the calculation of annual_dc_gross
, there are time steps where the module efficiency exceeds the nominal efficiency due to the air mass modifier. This implies that the air-mass modifier can provide a boost to the overall irradiance, or that the air-mass modifier is incorrectly applied.There are several potential problems here which should be addressed. The most robust way would be to investigate why the air mass modifier is boosting the efficiency. Then, for clearer communication, these we should break the module losses into several components. This may not happen until the next release, but noting it for general interest.
Note, in case it wasn't clear, the reason the loss is positive is because annual_dc_gross
exceeds annual_dc_nominal
.
I believe it is correct for the instantaneous module efficiency to increase above the nominal value at times when the spectral mismatch is greater than one.
This implies that the air-mass modifier can provide a boost to the overall irradiance, or that the air-mass modifier is incorrectly applied.
I believe a more correct interpretation is that there are times when the incident solar spectrum matches the quantum efficiency and improves the module efficiency. It's not that there's more light; it's that there's more of the color of light that the module can effectively convert to electrons.
cc @cwhanse and @jdnewmil
There are multiple ways for deviations from STC nominal performance to yield improved performance. Very cold temperatures, modules with high series resistance that implies reduced performance at STC but operated at low irradiance, spectral "match"... it is even possible for IAM to exceed 1.0 by very small amounts on textured glass. That said, I have not investigated this particular report so cannot comment on its merits. (We also give credit for the positive bias introduced by positive tolerance binning.)
@mikofski , @jdnewmil , thanks for your quick insights, that's very helpful. I'm going to investigate today to confirm that we are applying air-mass modifications correctly. I'll compare how PVLIB is applying them and verify that we are doing a similar treatment.
Currently our procedure in the CEC 6-parameter module model is to derate the effective plane-of-array irradiance by the air-mass modifier in the following way:
Where:
@nickdiorio Agree with @jdnewmil @Mikofski here. I think the error, if there is one, is calling the spectral modifier a loss. It is not like soiling or reflections which by definition only reduce irradiance reaching the cells. The spectral modifier (I don't like the 'mismatch' adjective here but it is customary) scales the photocurrent relative to AM 1.5. Photocurrent can increase or decrease as spectrum changes, as @mikofski says.
Thanks @cwhanse , that's a good point. I'll do some testing and comparison with PVLIB and see if we can more clearly communicate that this is a modifier relative to AM 1.5, not necessarily a loss.
I agree with @mikofski that instantaneous module efficiency can be greater than nominal efficiency, and the same thing for spectral modifier. However, given that the value in the graph is an annual loss term, I consider it highly unlikely for it to actually be a negative loss throughout a whole year. I would guess this is a bug. However, I would not be surprised if it's only a bug in the way that annual loss is calculated, and not in the actual way the models themselves are applied in SAM, since the calculations for those loss diagrams (the line of code @nickdiorio identified as being a problem) are not particularly robust.
@nickdiorio Thanks for identifying this issue and for doing the work to take a deeper look into it's cause.
I think it would be very interesting to see the daytime values of the 8760 calculated for airmass and for the "spectral modifier" f1
. Figure 6 in the Sandia PV Array Performance Model shows that for Si modules, this peaks at 1.05 at about 3.5 atmospheres, but for thin-film it's the opposite, f1
peaks at 1.025 at 1-atmosphere and decreases as airmass increases.
Another thing that might be interesting is to check that the coefficients of the 4th order polynomial f1
are stable in the expected range of airmass, say from 0.5 to 6.5 atmospheres. For example, if I plot Si and CdTe modules from the SAM database, I get these curves, which look like the ones from SAPM Fig 6.
@mikofski , it shouldn't be too difficult for us to output these values if we aren't currently, thanks for the suggestion. That should give us some more data to confirm that we are seeing reasonable calculations. I'm hopeful I can spend a good chunk of today continuing to investigate this and do some comparisons with pvlib. I'll post if I find anything interesting!
Update:
Judging by the discussion on air mass modification changing the effective poa irradiance reaching the module, shouldn't the module efficiency calculation use that modified poa value?
Annual_dc_nominal is calculated by as (inp_rad * mod_eff / 100), where the inp_rad is the sum of annual poa_eff and mod_eff is calculated at STC. Currently, the poa_eff values are without air mass modification. I added the second line below to account for air mass modifier effects:
ipoa_front[nn] *= out.AOIModifier;
ipoa_front[nn] *= out.airMassModifier;
...
ts_accum_poa_total_eff += ((radmode == Irradiance_IO::POA_R) ? ipoa[nn] :
(ipoa_front[nn] + ipoa_rear_after_losses[nn])) * ref_area_m2
* Subarrays[nn]->nModulesPerString * Subarrays[nn]->nStrings;
This resulted in an annual_dc_module_loss_percent of -0.94, which is an even higher module "gain". I think this supports the small contribution of sometime large air mass modifiers. Perhaps the driving factor comes from modeling far off STC assumptions?
Since we're on the topic, SAM should really adopt the FirstSolar spectral correction that also uses precipitable water, but of course that should be it's own separate issue 😉
@dguittet @mikofski for spectral response measurements, there are concepts of external and internal quantum efficiency - these are different quantities. As I understand it, external quantum efficiency is basically power / plane of array irradiance, whereas internal efficiency is power / irradiance reaching the cells. Both quantities are informative. I think it the important aspect is that SAM is clear which irradiance is being used to calculate efficiency.
@mikofski Integrating the precipitable water spectral model already is its own separate issue: #24 :)
Also, @dguittet demonstrated to me that I was comparing the wrong variables when I identified a possible bug above- I forgot that there are separate, co-existing input variables for the CEC database option versus the user-entered 6-parameter option in the LK scripts created by SAM that you have to match up between the two models. Fixed SAM file with the two cases matching within the bounds of UI rounding errors attached here. Thanks Darice! fixed.zip
@mikofski @janinefreeman Yes there are definitely improvements to the module model we'd like to get to! Thanks @cwhanse for the explanation.
Here are some plots showing the module efficiency versus ambient temperature and nominal poa (the plot with cell temperature and poa after module cover looked very similar). The gray points are where the module efficiency is less than the nominal efficiency of 15.9%.
We do not have any measured data in that region, since we do have data for 2 CdTe modules but they do not have many points in that region. In the plot below, all the points have less than nominal efficiency.
What we do know from analysis of that data is that for the 6 parameter single diode model as implemented in SAM, large errors are mostly correlated with low irradiance levels.
@dguittet I'm having a bit of trouble with the figures you just posted. Are you saying that the modeled efficiency is greater than the observed efficiency at low irradiance? Also, are the coefficients for the 6par model taken from the SAM (CEC) database, or were they developed specifically for the CdTe modules in that mPert dataset?
@cwhanse In the first plot, the colored points show where the modeled efficiency is greater than the nominal efficiency for the module in the .sam project. I believe these coefficients are not from the database. Perhaps @nickdiorio can say more on what module they describe.
The second and third plots are using the measured modules from the linked dataset. The first one shows that there are no points where the modeled efficiency exceeded the nominal. Here's a better-labeled version of the third plot. And yes it does show that the modeled efficiency tended to be higher than measured efficiency at low irradiance and temp, at least for those 2.
All this was to say, I don't have enough knowledge to say whether or not this behavior is expected.
The detailed discussion here has convinced @nickdiorio and I that as @cwhanse points out, this is not a bug, but actually an error in describing the phenomenon as a loss. We plan to break out various sources of module losses/gains in next year's release, so I'm going to close this issue and reference the great discussion here in the new issue I create for why we need to break out module performance losses separately. :)
Describe the bug There are certain instances I've seen where the reported module loss is positive. Baseline-series6.zip
To Reproduce Steps to reproduce the behavior:
Expected behavior A negative module loss
Screenshots If applicable, add screenshots to help explain your problem.![image](https://user-images.githubusercontent.com/5658281/46629477-32590980-cafe-11e8-8fce-426cc8594e6f.png)
Desktop (please complete the following information):