Skip to content

PV example and LCOE Test#210

Closed
elenya-grant wants to merge 7 commits into
NatLabRockies:developfrom
elenya-grant:dev/pv_lcoe_test
Closed

PV example and LCOE Test#210
elenya-grant wants to merge 7 commits into
NatLabRockies:developfrom
elenya-grant:dev/pv_lcoe_test

Conversation

@elenya-grant
Copy link
Copy Markdown
Collaborator

PV example and LCOE Test

New example and LCOE test for utility-scale PV using cost and performance data from the 2024 ATB workbook. The tests allow for more than usual error to account for possible differences in the pv model parameters, LCOE financial parameters (compared to the ATB), PV capacity factor due to differences in the PV model, differences in reflecting lifetime performance (from H2I model compared to how it was used in ATB), etc.

The new example utilizes the following new models/features:

PR Checklist

  • CHANGELOG.md has been updated to describe the changes made in this PR
  • Documentation
    • [-] Docstrings are up-to-date
    • [-] Related docs/ files are up-to-date, or added when necessary
    • Documentation has been rebuilt successfully
    • Examples have been updated
  • Tests pass (If not, and this is expected, please elaborate in the tests section)
  • PR description thoroughly describes the new feature, bug fix, etc.

Related issues

Impacted areas of the software

  • tests/h2integrate/test_all_examples.py
    • test_pv_example(): test LCOE and capacity factor for Example 15. The output values are tested against values from the 2024 ATB Workbook for Utility-PV - Class 2, using 2030 as the year and "Moderate" technology advancement scenario.
  • examples/15_solar_pv/
    • plant_config.yaml: plant file that uses the same solar resource as Example 11
    • driver_config.yaml: driver config file, nothing too exciting here
    • tech_config.yaml: technology config file that aims to replicate the representative technology for utility-scale PV described in the ATB but somewhat modified given that this example is based on 2030 technology and the ATB gives more detail on the 2035 technology
    • profast_params.yaml: profast params input file (alternative method to specify finance parameters)
    • run_solar_pv.py: python run script for example

Additional supporting information

Test results, if applicable

Copy link
Copy Markdown
Collaborator

@johnjasa johnjasa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea of this PR -- comparing the results we're getting and the ATB seems worthwhile! I want to get a better idea of your goals with this and that can help shape my further feedback.

Is your main goal to show that we're relatively close to the ATB results, but they're slightly different? If so, I'd suggest a doc page that goes through the results, shows the differences, and links to the ATB numbers. This way users could see and understand the similarities and differences more clearly. I would suggest removing the example test then.

If the main goal is to ensure that results do not change in the solar cost model, then I don't think the example test is necessarily capturing that because of the large tolerance on the asserts. There's also already the test_pysam_with_atb_costs.py file ensure values do not change coming out of the model.

In summary, thank you for this! But I think some iteration on the goal and how we're achieving that would be helpful.

@kbrunik
Copy link
Copy Markdown
Collaborator

kbrunik commented Aug 20, 2025

I like the idea of this PR -- comparing the results we're getting and the ATB seems worthwhile! I want to get a better idea of your goals with this and that can help shape my further feedback.

Is your main goal to show that we're relatively close to the ATB results, but they're slightly different? If so, I'd suggest a doc page that goes through the results, shows the differences, and links to the ATB numbers. This way users could see and understand the similarities and differences more clearly. I would suggest removing the example test then.

If the main goal is to ensure that results do not change in the solar cost model, then I don't think the example test is necessarily capturing that because of the large tolerance on the asserts. There's also already the test_pysam_with_atb_costs.py file ensure values do not change coming out of the model.

In summary, thank you for this! But I think some iteration on the goal and how we're achieving that would be helpful.

Since Jared mentioned that almost all financial models will return different results I've been trying to ponder the best way to approach validating our financial methods. I'm not sure that I have cracked the code on the best way to approach this. I think I agree with John, given the large tolerances on the tests and differences that aggregate from the performance modeling and financial models I'm not sure this PR makes it clearer that everything is implemented correctly.

I appreciate you being willing to work on this cryptic issue but I'm wondering if we move this back into the rumination phase on how to approach the issue.

@elenya-grant
Copy link
Copy Markdown
Collaborator Author

will go back to the drawing board on this one and will open a new PR in the future once it's determined what this example should accomplish.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants