-
Notifications
You must be signed in to change notification settings - Fork 32
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
Fix proforma for thermal techs #434
Conversation
Bill-Becker
commented
Aug 13, 2024
•
edited
Loading
edited
- Fixes proforma calcs including "simple" payback and IRR for thermal techs/scenarios.
- The operating costs of fuel and O&M were missing for all thermal techs such as ExistingBoiler, CHP, and others; this adds those sections of code to properly calculate the operating costs.
- Adds a test to validate the simple payback calculation with CHP (and ExistingBoiler) and checks the REopt result value against a spreadsheet proforma calculation (see Bill's spreadsheet)
- Adds a couple of missing techs for the initial capital cost calculation in financial.jl
- Fixes a few bugs here and there, including the setup_boiler_inputs in reopt_inputs.jl
- Improves DRY coding by replacing multiple instances of the same chunks of code for MACRS deprecation and CHP capital cost into functions that are now in financial.jl
- Simplifies the CHP sizing test to avoid a ~30 minute solve time, by avoiding the fuel burn y-intercept binaries which come with differences between full-load and part-load efficiency
- Added two new fields to the Metrics struct to append to for any fuel-burning technologies (just Generator, ExistingBoiler, Boiler, and CHP currently): fuel_cost_series and fuel_cost_series_bau which are now only added to the offtaker cashflows and not the owner/developer cashflows for third party.
…costs, to expected improvement in metrics
Before it was using inflation (om_escalation), but should be using it's specific fuel escalation rate
… into fix-proforma-thermal
@adfarth ready for your re-review. The Solar Dataset test that is failing is unrelated to this PR, I'm pretty sure, but it seems like there's two issues with that test: 1) at least for the version of Julia I'm using, the test format of "String approximately equal to String" isn't valid anymore, and 2) the third test for Younde, Cameroon is responding with dataset=nsrdb instead of the expected "intl". I was seeing on the NSRDB website that they recently (July) made some major updates, and I'm wondering if Cameroon is now considered "nsrdb"? |
@Bill-Becker I sent a word doc summarizing open issues for 3rd party analyses |
…roforma cashflow Also add BAU O&M to offtaker BAU and Optimal cases
@adfarth see the latest commit 8f16733 for what we discussed updating for now. I think the way I removed the "BAU O&M" which should have the both fixed and variable O&M of the Generator.existing_kw, subtracted from the optimal case O&M which includes both existing_kw + new_kw, should effectively separate existing O&M from new. The variable O&M part is certainly a question because the optimal case may use the "existing" portion of the Generator more or less than the BAU case, but our default O&M cost is all in the fixed /kw/year term, so I think we should mostly be good (and I still don't know how we model BAU Generator dispatch). And then I added the om_series_bau to both offtaker cashflow terms in that commit too, as we discussed for completeness (even though they cancel). I also made an issue about removing existing O&M from the 3rd party factor in the optimization, for "when we have time": |
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.
Looks good!