-
Notifications
You must be signed in to change notification settings - Fork 1k
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: Convert between CEC and PVsyst single diode models #2212
base: main
Are you sure you want to change the base?
Conversation
15, 25, 50, 75, 15, 25, 50, 75, 15, 25, 50, 75]]).T, | ||
dtype=np.float64) | ||
|
||
|
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 guess one might discuss whether you are converting models or sets of parameters. |
Test failure for |
@adriesse , do you have any proposal in mind? For example,
scipy=1.7.0 is the first version to support it, and is also supported in Py3.9 (taking into account upcoming drop of Py3.8 support). I would edit this requirement for future >=Py3.9 release (#2213). Source of scipy docs on nelder-mead; scipy 1.6.3 bumps to 1.7.0: |
Is the simplex solver required? Why not try Powell instead? |
|
@mikofski I used Nelder-Mead to develop and check the algorithm, but I think the optimization method would be good to have as a parameter. |
Any particular reason for choosing Simplex? Good idea to make |
For context, here's the submitted paper. The main point is determining that optimization is preferred over two other techniques (functions currently in pvlib, and an approach that equates quantities that should have the same values at the reference condition.) The optimization could certainly be tuned and improved. |
I agree 💯. I wrote a blog on using implicit methods to solve SDM system of equations with several gists comparing |
I understand now, after reading the paper. This is a method of directly obtaining parameters without generating an IEC-61853 matrix as the go between first. Very clever! So the minimization method of the objective function is secondary, and there are no variables to transform. Thanks for patiently explaining. Great job @leliadeville |
I may be misunderstanding, but generating the IEC-61853 matrix data for the source model is the first step. The target model's parameters are found by fitting the target model to the IEC-61853 matrix data. |
You are right. Sorry I misread. Looking again, this does solve each model independently from the matrix. Honestly I’m not sure what I was thinking before. However, I think it would be interesting to see by comparison a method that does use the Jacobian, similar to what I discussed in the gist linked above or in PVMismatch |
docs/sphinx/source/reference
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`
).remote-data
) and Milestone are assigned to the Pull Request and linked Issue.Primary reference is in review. Feedback on function naming and signature is welcome.