GTI-DIRINT seems a bit like magic!

103 views
Skip to first unread message

Mark Campanelli

unread,
May 13, 2024, 1:44:10 AMMay 13
to pvlib-python
Greetings all,

  I have been pondering the "inverse problem" that GTI-DIRINT apparently solves, namely, inferring GHI, DNI, and DHI from POA global. I think there are only two degrees of freedom between GHI, DNI, and DHI, but that still leaves (potentially) the inference of two degrees of freedom from one measured value. Thus, at least on the face of it, the problem seems ill posed.

  I intend to go back and read Marion's GTI-DIRINT paper again with this specific question at hand, and perhaps I'm missing a second degree of freedom that constrains the inverse problem. In any case, I'm wondering if anyone in the community might have a good understanding as to if there is some form of "regularization" being used that can be readily identified with a physical assumption or some such?

  The reason I ask is because GTI-DIRINT is very temping to use to solve various inference problems that start with a single POA-based value. However, if there is, say, some fundamental non-uniqueness that is being regularized, then this can be an important limitation on such inferences.

Thanks,

Anton Driesse

unread,
May 13, 2024, 5:32:50 AMMay 13
to pvlib-...@googlegroups.com

Hi Mark,

You might enjoy reading the section on reverse transposition in:

Driesse, A., Jensen, A., Perez, R., 2024. A Continuous form of the Perez diffuse sky model for forward and reverse transposition. Solar Energy vol. 267. DOI: 10.1016/j.solener.2023.112093

See also:

https://pvlib-python.readthedocs.io/en/stable/reference/generated/pvlib.irradiance.ghi_from_poa_driesse_2023.html

For the hairy details, of course, there is no substitute for Marion's original report/paper.

Best,

Anton

--
You received this message because you are subscribed to the Google Groups "pvlib-python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pvlib-python/282b36dd-ebc6-49df-a943-313f14f41f9fn%40googlegroups.com.
-- 
PV Performance Labs
Emmy-Noether-Str. 2
79110 Freiburg
Germany

+49-761-8973-5603 (Office, daytime)
+49-174-532-7677 (Mobile)

www.pvperformancelabs.com

Mark Campanelli

unread,
May 13, 2024, 11:33:34 PMMay 13
to Anton Driesse, pvlib-...@googlegroups.com
Hi Anton,

  I will definitely check out your recent contribution here. Thanks. I just found your example in the pvlib documentation that shows how non-uniqueness of the reverse transposition is indeed possible. I’m still sorting thru how one solution from many is selected in practice. 

In more formal language,
apparently the inverse problem is ill posed, and some regularization is applied. My masters advisor ate this stuff up and wrote a book on it: 

Kenneth J. Sauer

unread,
May 14, 2024, 2:37:27 PMMay 14
to pvlib-...@googlegroups.com
I'm not sure if reverse transposition is meant to be accurate or if
it's just meant to generate GHI, DNI, & DHI irradiance component
values for a given measured GTI (global tilted irradiance) which, for
the same global clearness index Kt, will reproduce the same GTI.
Different reverse transposition algorithms will have a different way
of calculating/optimizing Kt, DNI, and DHI (and, in the case of
GTI-DIRINT, optimizing measured GTI). The interesting aspect of
GTI-DIRINT, from my understanding/interpretation, is that the measured
GTI is not taken as "truth" (or rather, held constant) unlike with
certain other reverse transposition algorithms. If you see the flow
chart in Marion's paper [1], you iteratively calculate the Kt, then
calculate DNI from that Kt, then calculate DHI from that Kt & DNI, and
then check the residuals between modeled and measured GTI. If
residuals are not <=1 W/m^2 (or unless a loop limit of 30 is
reached!), then GTI-DIRINT changes the measured GTI, which is
interesting. So, measured GTI is actually a variable that's iterated
over in order to obtain a close match between modeled and measured
GTI. (It sounds a bit strange when writing that, that you change a
measured value to minimize residuals between the modeled and measured
value rather than assessing some other reason why they don't match
[2].) In other words, it allows measured GTI to change such that it's
not actually the measured value anymore (thus negating its own
definition). Again, not all reverse transposition algorithms work this
way, e.g., see PVsyst's.

Measuring the irradiance components (GHI, DNI, DHI or some combination
of two or more of these) will result in more accurate energy
simulations than starting with GTI only (assuming all are measured
accurately).

Plane-of-array irradiance is what ultimately flows through the PV
module model (e.g., diode model), but the component values (GHI, DHI,
DNI) are used in ancillary model calculations, e.g., of shading
losses, etc., so they're needed for the energy simulation and will
have some impact on the results.

[1] https://www.sciencedirect.com/science/article/pii/S0038092X15005757

[2] https://forum.pvsyst.com/topic/38-my-transposed-poa-values-dont-match-the-imported-values/
> To view this discussion on the web visit https://groups.google.com/d/msgid/pvlib-python/52bd1613-db5b-eae3-46ff-a766fc0553c9%40pvperformancelabs.com.

Kenneth J. Sauer

unread,
May 14, 2024, 2:37:31 PMMay 14
to pvlib-...@googlegroups.com
P.S. Regarding my statement on energy simulation accuracy, I actually
think it's going to depend on the details & particularities of the PV
system design & irradiance measurements (e.g., shadings, fields of
view, etc.). In fact, it might indeed often be more accurate to
measure POA irradiance accurately and accept the ancillary errors from
the calculated irradiance components (& related calcs which use these
data) - after all, accurate POA irradiance is of primary (first-order)
importance while accurate shade modeling, etc. are secondary
(second-order). But then you need to consider the details of the POA
measurements (e.g., fields of view w.r.t. the PV modules in the
array), esp. whether any biases are introduced. It's complicated/it
depends...

One more comment is I believe there may be some assumption of a
zero-tilt field of view baked somewhere into GTI-DIRINT (?), or
something like that, which might relate to your "ill-posed"
link/question, hence the statements in the Marion paper that the
method is most accurate at low tilt angles, but I'm not really sure,
and I must defer to other experts for now!

Mark Campanelli

unread,
May 14, 2024, 2:57:26 PMMay 14
to Kenneth J. Sauer, pvlib-...@googlegroups.com
Thanks for your perspective and further references on this, Kenneth. Your point is well taken about if the measured POA irradiance value is held invariant or not in any given inverse method.

Indeed, a use case I have in mind is for computing the effective irradiance from a POA (aka GTI) irradiance measurement using the standard direct-component IAM correction and Marion’s diffuse-component IAM corrections. A related use case of interest to me is to transform an Isc measured by a fixed-tilt reference PV device to a new angle (say to apply the measurement series to a SAT simulation).

I will also point out this SAM-related reference:

Mark Campanelli

unread,
May 15, 2024, 11:13:46 AMMay 15
to Kenneth J. Sauer, pvlib-...@googlegroups.com
First, thanks Anton for all your work making these inverse problems more mathematically tractable by ensuring continuity.

My latest question concerns iterating the forward problem to solve the inverse problem: Why start all the way back at the GHI separation/decomposition (e.g., Erbs-Driesse) instead of starting at the transposition using DNI and DHI Inputs (e.g., Perez-Driesse)?

Anton Driesse

unread,
May 16, 2024, 7:17:39 AMMay 16
to pvlib-...@googlegroups.com

Glad you found the paper useful, Mark!

I'm not sure whether I fully understood your question.  If we had DNI available as input, then we could do things a little differently...but usually if you have DNI, GHI is available too so this is an unlikely scenario.

Anton


On 2024-05-15 17:13, Mark Campanelli wrote:
First, thanks Anton for all your work making these inverse problems more mathematically tractable by ensuring continuity.

My latest question concerns iterating the forward problem to solve the inverse problem: Why start all the way back at the GHI separation/decomposition (e.g., Erbs-Driesse) instead of starting at the transposition using DNI and DHI Inputs (e.g., Perez-Driesse)?

Mark Campanelli

Mark Campanelli

unread,
May 20, 2024, 10:10:23 AMMay 20
to pvlib-python
This is a plot of total POA irradiance vs. DNI and DHI inputs for a given solar position and surface orientation (calculated by totaling the output of pvlib.irradiance.beam_component,  pvlib.irradiance.perez_driesse, and pvlib.irradiance.get_ground_diffuse). The fact that this function is not injective makes the reverse transposition fundamentally not unique, i.e., the inverse problem is ill-posed. (Continuity of pvlib.irradiance.perez_driesse helps ensure existence, however 🎉.) What additional information would nail down a unique and accurate inversion of POA -> (DNI, DHI)? (GHI is an obvious candidate, but commonly not available.)

poa_output.png

Anton Driesse

unread,
May 20, 2024, 2:45:12 PMMay 20
to pvlib-...@googlegroups.com

Hi Mark,

The separation/decomposition model imposes an additional constraint on DNI and DHI so that at least most of the time you get a unique solution, or otherwise a small number of potential solutions.  I think perhaps that is the answer to your earlier question as well.

Anton


On 2024-05-20 16:10, Mark Campanelli wrote:
This is a plot of total POA irradiance vs. DNI and DHI inputs for a given solar position and surface orientation (calculated by totaling the output of pvlib.irradiance.beam_component,  pvlib.irradiance.perez_driesse, and pvlib.irradiance.get_ground_diffuse). The fact that this function is not injective makes the reverse transposition fundamentally not unique, i.e., the inverse problem is ill-posed. (Continuity of pvlib.irradiance.perez_driesse helps ensure existence, however 🎉.) What additional information would nail down a unique and accurate inversion of POA -> (DNI, DHI)? (GHI is an obvious candidate, but commonly not available.)



On Thursday, May 16, 2024 at 5:17:39 AM UTC-6 anton....@pvperformancelabs.com wrote:

Glad you found the paper useful, Mark!

I'm not sure whether I fully understood your question.  If we had DNI available as input, then we could do things a little differently...but usually if you have DNI, GHI is available too so this is an unlikely scenario.

Anton


On 2024-05-15 17:13, Mark Campanelli wrote:
First, thanks Anton for all your work making these inverse problems more mathematically tractable by ensuring continuity.

My latest question concerns iterating the forward problem to solve the inverse problem: Why start all the way back at the GHI separation/decomposition (e.g., Erbs-Driesse) instead of starting at the transposition using DNI and DHI Inputs (e.g., Perez-Driesse)?

Mark Campanelli

-- 
PV Performance Labs
Emmy-Noether-Str. 2
79110 Freiburg
Germany

+49-761-8973-5603 (Office, daytime)
+49-174-532-7677 (Mobile)

www.pvperformancelabs.com
--
You received this message because you are subscribed to the Google Groups "pvlib-python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pvlib-python...@googlegroups.com.
-- 
PV Performance Labs
Emmy-Noether-Str. 2
79110 Freiburg
Germany

Reply all
Reply to author
Forward
0 new messages