-
Notifications
You must be signed in to change notification settings - Fork 1.1k
implement multi-MPPT inverter model #1085
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
Conversation
I found these pages in the pvsyst help docs interesting:
Has anyone checked the hidden parameters? |
I don't have a Pvsyst license, I'd be interested to know what parameters are hidden that relate to multi-MPPT inverters. I've read those pages and also exchanged email with Bruno at Pvsyst. I don't feel confident that I accurately understand how inverter efficiency is modeled in Pvsyst, so am not proposing a Inverter datasheets typically list limits on DC current per MPP input, but these limits appear be related to safety (e.g. fuse ratings) rather than limits on DC-AC conversion. For this model, I had proposed a parameter 'dc_limit' which would act as a cap on DC power at each MPP input. But after some discussions, I've removed that parameter for two, related reasons:
|
Bumping this PR as I think it's ready for review, and is needed to move #1076 forward. |
pvlib/inverter.py
Outdated
for vdc, pdc in zip(v_dc, p_dc): | ||
power_ac += pdc / power_dc * _sandia_eff(vdc, power_dc, inverter) | ||
else: | ||
power_ac = _sandia_eff(v_dc, power_dc, inverter) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand why we'd include this line in the sandia_multi
function. Isn't it duplicating functionality in sandia
? Maybe I don't understand the use cases well enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking that inverter.sandia_multi(600., 1500., *params)
should work, but can't really say that's a required use.
Eventually I'd see inverter.sandia
and inverter.sandia_multi
merging, once the latter is better documented, with validation, and has broader acceptance.
@cwhanse you can decorate that failing psm test function with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, minor comments below
@pvlib/pvlib-maintainer Will merge today if no further reviews |
let's move on with it - thanks @cwhanse! |
Sorry I am a bit late to the game on this. My understanding of the multi-MPPT modeling method currently being worked on is that all arrays are operating at the same DC voltage. The focus is address clipping per MPPT. When I first brought up this question I was modeling a residential system with 2 arrays on different planes and of different sizes. My solution at the time was to average the DC voltage between the 2 arrays and feed that into the inverter efficiency loss function. Given the huge variations in insolation because of shading on a typical residential system, any accuracy loss because of the inverter efficiency was not a concern to me at the time. No suggestion here. I just wanted to circle back with the original use case. |
docs/sphinx/source/api.rst
for API changes.docs/sphinx/source/whatsnew
for all changes. Includes link to the GitHub Issue with:issue:`num`
or this Pull Request with:pull:`num`
. Includes contributor name and/or GitHub username (link with:ghuser:`user`
).An approach that leverages the existing function
pvlib.inverter.sandia
and the model parameters available in the SAM file. Conceptually, this is the same approach as in Pvsyst, although it appears that Pvsyst offers more options for adjusting the inverter's behavior (and Pvsyst uses an internally-developed inverter output model, which isn't fully documented in the public files).