Add Wind+PEM tracking and stochastic bidding documentation#1090
Add Wind+PEM tracking and stochastic bidding documentation#1090Xinhe-Chen wants to merge 10 commits intoIDAES:mainfrom
Conversation
Codecov ReportBase: 70.32% // Head: 70.26% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #1090 +/- ##
==========================================
- Coverage 70.32% 70.26% -0.06%
==========================================
Files 405 405
Lines 66342 66266 -76
Branches 12342 12320 -22
==========================================
- Hits 46653 46564 -89
- Misses 17319 17328 +9
- Partials 2370 2374 +4
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
|
@adowling2 @dguittet This is ready to review. |
|
I'll review this later tonight. |
|
@radhakrishnatg could be another good reviewer |
|
@adowling2 Note however that we hope to cut a release candidate today (pending a Pyomo release), so you might need to work with @ksbeattie and @lbianchi-lbl if this needs to be part of the February release. |
|
adding @bknueven also for his input |
|
I'm confused as to why this is being merged into the documentation at this point in time. Where is the actual code? There is already an existing Bidder.py in IDAES but it isn't specific for Wind + PEM. Is the Wind + PEM feature going to be a modification of the existing Bidder.py, or is there supposed to be another piece of code in addition? Is there going to be in IDAES many different Bidders for different technology use cases? |
@dguittet I think this is what we are going to implement next stage and we will have the docs in advance. |
|
I am also a bit confused. It would seem like this documentation should also exist in dispatches. If IDAES were to document an example shouldn't it start with the one already included? https://github.com/IDAES/idaes-pse/tree/main/idaes/apps/grid_integration/examples. |
|
@Xinhe-Chen I also find it strange that you are adding documentation for something that does not exist yet. It is fine to work on it ahead of time, but it generally shouldn't be added to the actual docs until the code that goes with it is ready. Otherwise, users reading the docs will expect these features to be there, and then be confused when they are not. |
|
|
||
| Some wind, battery, PEM models and the double-loop simulation example can be found in Dispatches GitHub repository. | ||
|
|
||
| https://dispatches.readthedocs.io/en/main/models/renewables/index.html |
There was a problem hiding this comment.
The fact that this is referring out to models in DISPATCHES makes me think that this documentation does not belong in IDAES. The IDAES docs should only cover things that can be run using IDAES code - we cannot be dependent on DISPATCHES as that creates a recursive loop.
| Real-time Bidding Problem for Wind+PEM IES | ||
| ------------------------------------------ | ||
|
|
||
| .. math:: \max \quad \sum_{t \in T_{DA}}\hat{\pi}_{t}^{DA}\hat{P}_{t}^{DA}\Delta t + \sum_{t\in T_{RT}, s\in S}\omega_{s}[\pi_{t,s}^{RT}(P_{t,s}^{RT} -\hat{P}_{t}^{DA})\Delta t + Pr^{H}m_{t,s}^{H} - c_{t,s} - \omega_{t}^{RT} P_{t,s}^{underbid}] - C_{fix} |
There was a problem hiding this comment.
This all looks like an example problem, not a reference to the details of specific functions. The Reference Guides section should focus only on the technical specs of functionality in IDAES.
Examples should go in the Examples repository, where we would want corresponding code meaning that this further reinforces my feeling that this belongs in DISPATCHES.
There was a problem hiding this comment.
Thanks, Andrew. I will talk to Prof. Dowling about this PR!
| .. math:: P_{t,s}^{DA} \leq P_{t,s}^{wind} \quad \forall t, s \quad \quad (4) | ||
| .. math:: P_{t,s}^{RT} \leq P_{t,s}^{wind} \quad \forall t, s \quad \quad (5) | ||
| .. math:: P_{t,s}^{wind} \leq f_{t} P_{max}^{wind} \quad \forall t, s \quad \quad (6) | ||
| .. math:: P_{t,s}^{DA} + P_{t,s}^{PEM} \leq P_{max}^{wind} \quad \forall t, s \quad \quad (7) |
There was a problem hiding this comment.
Shouldn't the DA + PEM powers be less than the the available power at that time, and not the absolute PMax?
There was a problem hiding this comment.
This constraint makes sense but I'm wondering if this constraint (combined also with 17) is flexible enough to allow for the use case where the PEM is used in RT when the plant's DA bid is accepted but in RT the grid doesn't actually take the option of that DA power. Or perhaps other cases... @bknueven any thoughts?
There was a problem hiding this comment.
Yes, eqn 7 has an typo. I will fix that.
I think we may increase the weight of the hydrogen revenue at the DA bidding so that the electricity bid will be more conservative. In such case, we can reduce the underbidding. But the cost is we will lose some revenue from DA market.
|
|
||
| :math:`P_{max}^{PEM}`: PEM max capacity, MW. | ||
|
|
||
| :math:`f_{t}`: Wind power generation capacity factor at hour t, MW/MW. |
There was a problem hiding this comment.
Is this the RT or DA capacity factor?
There was a problem hiding this comment.
In the manuscript of RE paper, we only have one f_t. IMO, in DA we use DA cf and in RT we use RT cf.
| .. math:: P_{t,s}^{DA} \leq P_{t,s}^{RT} \quad \forall t, s \quad \quad (1) | ||
| .. math:: P_{t,s} = P^{RT}_{t,s} \quad \forall t, s \quad \quad (2) | ||
| .. math:: (\pi_{t,s'}^{DA} - \pi_{t,s}^{DA})(P_{t,s'}^{DA} - P_{t,s}^{DA}) \geq 0 \quad \forall s \in S, \forall s' \in S \backslash s, \forall t \in T^{DA} \quad \quad (3) | ||
| .. math:: P_{t,s}^{DA} \leq P_{t,s}^{wind} \quad \forall t, s \quad \quad (4) |
There was a problem hiding this comment.
is P_{t,s}^{wind} DA or RT?
There was a problem hiding this comment.
P_{t,s}^{wind} is bounded by the f_{t}P_{wind}^{max}. Here we can use DA cf in DA problem and RT cf in RT problem.
| .. math:: P_{t,s} = P^{RT}_{t,s} \quad \forall t, s \quad \quad (2) | ||
| .. math:: (\pi_{t,s'}^{DA} - \pi_{t,s}^{DA})(P_{t,s'}^{DA} - P_{t,s}^{DA}) \geq 0 \quad \forall s \in S, \forall s' \in S \backslash s, \forall t \in T^{DA} \quad \quad (3) | ||
| .. math:: P_{t,s}^{DA} \leq P_{t,s}^{wind} \quad \forall t, s \quad \quad (4) | ||
| .. math:: P_{t,s}^{RT} \leq P_{t,s}^{wind} \quad \forall t, s \quad \quad (5) |
There was a problem hiding this comment.
is P_{t,s}^{wind} DA or RT?
I think we need this PR for a milestone regarding hydrogen co-production. |
|
Decision on Feb 16: Merge this PR after the codes are merged. |
|
I've converted this to a draft PR since it appears that this won't be part of the Feb (2.0) release. Please let me know if that's not going to be the case. |
|
Update (Apr 17th): This is waiting on code that is in @dguittet branch. This is not required for the June release of DISPATCHES but will be included afterwards. |
|
@Xinhe-Chen, @dguittet, @adowling2 is this still going to be done (in idaes)? |
|
Yes. |
I've added this to the Nov release board and updated the branch since it's been quite a while. Let me know if Nov is not a practical timeline for this. |
|
@adowling2, the Nov release is coming up. Is this going to happen in the next few weeks? |
|
No, push to Feb. |
|
@Xinhe-Chen & @adowling2 can this be updated, reviewed and merge for this Feb 2024 release? |
|
@ksbeattie @adowling2 Sorry for the late reply. The wind + PEM bidder has been done in dispatches. I will clean up the codes and add tests to merge them into IDAES. |
I've taken this off the Feb release board. When we create the next release board, please come to the dev call to have this added back to that board. |
|
@adowling2 , @Xinhe-Chen: Might this now be a candidate for a May release? |
Yes. I am still working on this PR and it will be good to put it on May release. |
|
The documentation is moved to #1407 |
|
@Xinhe-Chen Seeing as the documentation has been moved, can we close this PR? |
Yes I think we can close this PR. |
Fixes
Summary/Motivation:
Add documentation for wind+pem renewable IES tracking and stochastic bidding.
Changes proposed in this PR:
Legal Acknowledgement
By contributing to this software project, I agree to the following terms and conditions for my contribution: