Skip to content

Add GTI DIRINT model #396

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

Closed
wholmgren opened this issue Nov 13, 2017 · 4 comments · Fixed by #400
Closed

Add GTI DIRINT model #396

wholmgren opened this issue Nov 13, 2017 · 4 comments · Fixed by #400
Milestone

Comments

@wholmgren
Copy link
Member

We should consider adding an implementation of the GTI DIRINT model described in Marion 2015:

https://www.sciencedirect.com/science/article/pii/S0038092X15005757

In short, the GTI DIRINT model converts plane of array irradiance to DNI, DHI, and GHI.

I have a partial implementation that I've been sitting on for a few months. I'll try to get it into a PR soon.

@wholmgren wholmgren added this to the 0.5.2 milestone Nov 13, 2017
@jforbess
Copy link
Contributor

Trying to implement this myself for a quick and dirty prototype. Any hint as to whether the iteration can be performed over the entire time series of POA or whether each time stamp has to be iterated? I am torn on how to evaluate the min D if evaluating over the entire timeseries at once.

@wholmgren
Copy link
Member Author

Real quick... here's my implementation:

https://github.com/wholmgren/pvlib-python/blob/gtidirint/pvlib/irradiance.py#L1408

Off the top of my head I don't remember. I'll try to come back to this in the next few days.

@cwhanse
Copy link
Member

cwhanse commented Nov 30, 2017

The iteration removes the error introduced by approximating GHI/cos(zenith) by GTI/cos(AOI). The difference lies in the diffuse sky and ground irradiance received by a horizontal vs. tilted module. It appears that Bill applies iteration separately for each hourly value (Fig 2 in his paper), which I think is appropriate, because AOI changes with time.

I believe also that the convergence method in his paper could be improved, but I haven't got an alternate method to propose.

@adriesse
Copy link
Member

I'm sure you could do the iteration in parallel. You would then have the same number of iterations for each time step, and your termination condition would have to be based on all time steps.

I have no experience with this algorithm, but suspect that if you just iterate a small fixed number of times you would be adequate, or you could keep going until the biggest error for the year falls below some threshold. Probably still way faster than looping through hour by hour.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants