Skip to content
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

WIP: ENH: infinite sheds #717

Draft
wants to merge 32 commits into
base: master
from
Draft

WIP: ENH: infinite sheds #717

wants to merge 32 commits into from

Conversation

@mikofski
Copy link
Member

@mikofski mikofski commented May 10, 2019

Begin work on infinite sheds for pv arrays

  • including monofacial and bifacial
  • assuming constant GCR
  • currently assuming flat ground, sloped tbd

guidelines

  • Closes issue #xxxx
  • I am familiar with the contributing guidelines.
  • Fully tested. Added and/or modified tests to ensure correct behavior for all reasonable inputs. Tests (usually) must pass on the TravisCI and Appveyor testing services.
  • Updates entries to docs/sphinx/source/api.rst for API changes.
  • Adds description and name entries in the appropriate docs/sphinx/source/whatsnew file for all changes.
  • Code quality and style is sufficient. Passes LGTM and SticklerCI checks.
  • New code is fully documented. Includes sphinx/numpydoc compliant docstrings and comments in the code where necessary.
  • Pull request is nearly complete and ready for detailed review.

Brief description of the problem and proposed solution (if not already fully described in the issue linked to above):

mikofski added 5 commits May 10, 2019
* add _to_radians and is_rad to convert only if necessary
* prefix all functions with get_
* add get_f_sky_pv, get_poa_sky_pv, get_ground_angle_tangent,
get_f_gnd_pv, get_f_gnd_pv, get_poa_gnd_pv, etc.
* update API ui

Signed-off-by: Mark Mikofski <bwana.marko@yahoo.com>
docs/sphinx/source/api.rst Outdated Show resolved Hide resolved
mikofski added 15 commits May 19, 2019
* get_irradiance, output ordered dict or dataframe
* finish updating get_poa_global_bifacial to transpose beam and diffuse
for each side separately
…ion"

- use tan(zenith) in solar projection math latex
- implement gcr_prime and ground-sky-angles calculations
- add stub for ground-diffuse view factor

Signed-off-by: Mark Mikofski <bwana.marko@yahoo.com>
- calculate ground-sky angles to previous and next rows, assuming height
 is nonzero
- calculate limits on ground where it can see the sky
- calculate the view factor as a function of z on the ground to the sky
- fix places where it still says degrees, bad, no!
- add fixme for pv-sky view factor, still has wrong formula
- add tests for angles from point z on the ground to tops of current
 row, and limits of previous and next rows
- add a script to make the plot of ground-sky view factor versus z
@mikofski
Copy link
Member Author

@mikofski mikofski commented Jul 4, 2019

Sorry for the delay. Getting closer! Here's the view factor of the sky diffuse from the ground between rows as a function of point z on the ground between rows, starting where the line from the panel intersects the ground:
pvlib_infinite_sheds_fgroundz-sky
this is generated by a script in pvlib/tests/test_infinite_sheds.py

@mikofski
Copy link
Member Author

@mikofski mikofski commented Jul 4, 2019

mikofski added 3 commits Jul 4, 2019
- add comments, change names x->z
- add TODO's to limit number of rows, and set row-type: 'first', 'last',
or 'middle'
- was difference of angles, should be difference of cosines
- also add TODO's to return VF versus point x on panel, and don't use
averages
@wholmgren
Copy link
Member

@wholmgren wholmgren commented Jul 4, 2019

mikofski added 3 commits Jul 10, 2019
- change calc_fx_sky to calc_fz_sky since z is for ground and x is for
pv surface
- add docstring to calc_fz_sky and for ground_sky_diffuse_view_factor
mikofski added 2 commits Jul 15, 2019
* change _bigz() to just return bigz
* create a test figure of integrated vslue
@mikofski mikofski force-pushed the mikofski:infinite_sheds branch from 01e66d4 to c87148a Sep 20, 2019
@mikofski
Copy link
Member Author

@mikofski mikofski commented Aug 21, 2020

@cwhanse & @kanderso-nrel I think the best way to wrap this up is to separate it from Bill Marion's implementation and submit that separately, in fact I think I can improve https://GitHub.Com/nrel/bifacialvf enough that we can use it directly. That way I can just reference the 2019 SolarFarmer bifacial PVSC paper, and be done.

Kevin, the approach here is kind of halfway between the diffuse sky PR you just merged & Bill Marion's approach, except that this method developed by Jeff Newmiller was to plot the view factor from Bill's method across the receiver width and observe that it is roughly linear so that a linear average of VF is used, although Jeff's approach splits the receiver into shaded and unshaded regions (if needed) and supplies average view factors for each (shaded & unshaded). So, different from Marion who provides view factors as a function of location on the receiver, and different from Passias (#1017) who averages the making angle, and instead this PR averages the view factor given by Marion. Sound good? This is like 90% done just needs a tiny push to finish. Two validation papers will be presented in September at EUPVSEC

Signed-off-by: Mark Mikofski <bwana.marko@yahoo.com>
@stephenjkaplan
Copy link

@stephenjkaplan stephenjkaplan commented Oct 16, 2020

Important Note: #1082 addresses a more immediate need for view factor functions (#1080). As a result, the module to sky and module to ground view factor calculations drafted in this PR will most likely already exist in pvlib.bifacial by the time this PR is merged.

@mikofski
Copy link
Member Author

@mikofski mikofski commented Oct 16, 2020

Important Note: #1082 addresses a more immediate need for view factor functions (#1080). As a result, the module to sky and module to ground view factor calculations drafted in this PR will most likely already exist in pvlib.bifacial by the time this PR is merged.

As I commented, this approach seems backwards to me and would create extra work. Why not move the ground-sky and specific bifacial stuff out of this PR to a new PR for pvlib.bifacial and merge this infinite sheds PR now, since it already has tests is documented and so it just needs review, and they voila you will have your VFs for module-sky and module-ground.

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

Successfully merging this pull request may close these issues.

None yet

4 participants
You can’t perform that action at this time.