-
Notifications
You must be signed in to change notification settings - Fork 10
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
Explicit demand response peak load #484
base: main
Are you sure you want to change the base?
Conversation
-convert DST to classes -add residential components -add new tests -refactor code -add dst_componnets to the world -adjust notebook 10
-fix docstrings -remove unrequired dst base class
-add operationl_cost constraints to heatpump, boiler, and PV -revise all tests and add complete tests for each DST component
-remove common constraint definition outside
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
Discussion with @Manish-Khanra we used a big-M formulation to linearise the problem formulation. The second objective loop was reformulated to include the absolute values of the shift; otherwise, the objective value was forced to 0 due to the demand covering constraint, which led to arbitrary solutions. Note that there are no costs included in the second objective loop, leading to multiple possible solutions with the same absolute load shift that does not violate the cost increase constraints. Hence, different solvers will most likely result in different solutions. |
…o explicit_demand_response_peak_load
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #484 +/- ##
==========================================
+ Coverage 76.54% 77.05% +0.51%
==========================================
Files 51 51
Lines 6863 7026 +163
==========================================
+ Hits 5253 5414 +161
- Misses 1610 1612 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
…o explicit_demand_response_peak_load
…o explicit_demand_response_peak_load
-remove changes in example.py -refactor csv forecaster for better usability
-revise hinting in csvforecaster -remove unused code
-fix naming of strategies -fix tests -small changes
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.
@Manish-Khanra I have fixed several things and streamlined the code. Everything is fine, but there are some things you should address before we can merge this into main
@@ -98,15 +104,38 @@ def __init__( | |||
self.lime_price = self.forecaster.get_price("lime") | |||
self.co2_price = self.forecaster.get_price("co2") | |||
|
|||
# Calculate congestion forecast and set it as a forecast column in the forecaster | |||
self.congestion_signal = self.forecaster["east_congestion_severity"] |
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.
these ones are hard coded into the steel plant, which is not ideal. This should not be the case for a general class
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.
Please check the whole code for such hard coded parts
"log_to_console": False, | ||
"LogToConsole": 0, | ||
} | ||
# Apply the flexibility function based on flexibility measure |
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.
this has been adapted, please check if correct
"LogToConsole": 0, | ||
} | ||
# Apply the flexibility function based on flexibility measure | ||
if self.flexibility_measure in DSMFlex.flexibility_map: |
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.
this has been adapted, please check if correct
@@ -91,6 +91,7 @@ | |||
}, | |||
"large_2019_rl": {"scenario": "example_03a", "study_case": "base_case_2019"}, | |||
"large_2021_rl": {"scenario": "example_03b", "study_case": "base_case_2021"}, | |||
"experiment": {"scenario": "experiment", "study_case": "dst_flexibility_case"}, |
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.
experiment is not the best name for the example. maybe use the example_01 form or add the data to one of the existing examples? for example from your tutorial? I believe we don't need this extra folder
@Manish-Khanra also please complete the PR form above |
Pull Request
Related Issue
Closes #[issue number] (if applicable)
Description
Changes Proposed
Implementation of Flexibility Measures:
Testing
Individual test fixtures for each flexibility measure.
Checklist
Please check all applicable items:
doc
folder updates)pyproject.toml
doc/release_notes.rst
of the upcoming release is includedAdditional Notes (if applicable)
[Any additional information, concerns, or areas you want reviewers to focus on]
Screenshots (if applicable)
[Add screenshots to demonstrate visual changes]