Headroom/reserve rate connections - #755
Draft
cfrontin wants to merge 9 commits into
Draft
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Headroom/reserve accounting for energy generation and storage
For certain types of analyses, there is value in redundant power generation, where power that could be supplied at short notice but not currently online is valuable if not required.
One major place this becomes very important is for powering large loads like datacenters off the grid, where grid service reliability levels have to be recreated with on-site power.
This PR is an attempt to add "headroom" power outputs, which represent offline power (or other rate flow) capacity that could be used to provide redundancy, peak absorption, etc.
Headroom is different for different technologies: for a grid interconnect, say, it's simply the difference between the rated power output and the current power output.
For a natural gas plant, it's the power in excess of the current output that is limited by either the natural gas supply or the rated output of the capital equipment, whichever is less.
For storage it's a bit more complicated. The internal headroom is:
But then, this internal headroom must have the battery output subtracted (recall: discharge positive, charge negative), since, on one hand, active discharge counts against the capacity & rating that is offline-but-available and, on the other, active charge is excess power generation that could be diverted to power delivery, and therefore represents a form of headroom provided in some sense indirectly by the battery above and beyond its discharge capability.
Section 1: Type of Contribution
Section 2: Draft PR Checklist
TODO:
Type of Reviewer Feedback Requested (on Draft PR)
Structural feedback:
Implementation feedback:
_outvs._soldsuffixes ingridaren't necessarily generalizable in higher levels of abstractionheadroomto describe available but offline rate output from different technologies: is this the right terminology?Other feedback:
N/A
Section 3: General PR Checklist
docs/files are up-to-date, or added when necessaryCHANGELOG.md"A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
XYZshould be replaced with the actual number.Section 4: Related Issues
N/A.
Section 5: Impacted Areas of the Software
Section 5.1: New Files
path/to/file.extensionmethod1: What and why something was changed in one sentence or less.Section 5.2: Modified Files
path/to/file.extensionmethod1: What and why something was changed in one sentence or less.Section 6: Additional Supporting Information
Section 7: Test Results, if applicable
Section 8 (Optional): New Model Checklist
docs/developer_guide/coding_guidelines.mdattrsclass to define theConfigto load in attributes for the modelBaseConfigorCostModelBaseConfiginitialize()method,setup()method,compute()methodCostModelBaseClasssupported_models.pycreate_financial_modelinh2integrate_model.pytest_all_examples.pydocs/user_guide/model_overview.mddocs/section<model_name>.mdis added to the_toc.ymlgenerate_class_hierarchy.pyto update the class hierarchy diagram indocs/developer_guide/class_structure.md