Comments (18)
@mariusves will implement the slack bus definition.
from etrago.
added a branch with a first coupling lopf pf example: https://github.com/openego/eTraGo/blob/features/pf_after_lopf/etrago/appl.py#L106-L138
from etrago.
Just for your info: I just did a LOPF - then - PF run for the hours 1 and 2 for Germany NEP 2035 and it solved.
from etrago.
...but the error of the PF is not "0.000", but "nan"...
from etrago.
The functionality is already merged into dev branch see here and it can be chosen in the appl.py. The feature branch is still there because there still some features (see check list above) pending.
from etrago.
What exactly do you mean by additional costs? The costs induced through transmission losses? That would be part of #23
from etrago.
Your are right. That should be it and part of #23 . I changed it but left it there as a link, to have it in mind in case I forgot an effect. But I think we do not have to consider other costs due to the non-linear pf.
from etrago.
I forgot s.th. so far. We have to consider the position and usage of the slack in the pf!
For the position we defined it in redmine #935. It is still pending to implement this into this function.
Also an evaluation of the usage of this slack should be undertaken. We have to tackle possible inbalances in an adequate way.
from etrago.
The implementation of the cosphi assumptions is trivial. all big pp are PV generator. all small pp have a cosphi=1. (assumptions see redmine #935). Therefore we do not need any q_set for generators.
We just have to be sure that the q_set from the loads are imported. That should be the fact looking at the json
from etrago.
I added a first versionof a function to find the new slack generator, that needs to be evaluated still.
In the first step of this function, the control
value of the "old" slack generator from the lopf is set back to its original state (PV or PQ) based on the rules set here.
Then, to find the new slack gen, the generator with the greatest dispatch (summarized over the whole simulation period) is determined and its control
value is set to Slack
.
Does this sound correct?
from etrago.
That is a how it is meant to be! Thx! Havent checked the code but the logic sounds like we talked about it.
@mariusves Can you work on the last checkbox?
Maybe we can close this ticket within the next release then...
from etrago.
I just checked the code. The logic is not 100% correct. The slack node will be the bus which has the maximal feed-in. Consequently you have to sum the generator_t over the buses, then select the bus with the highest feed-in over the year and take the biggest generator at that power plant which has to be a PV generator considering this condition.
Here are the original words from Rendel 2015:
Als Slack-Knoten wird derjenige Knoten gewählt, dessen Energieeinspeisung über den gesamten Simulationszeitraum gesehen am hächsten ist. Die Einspeisung muss dabei aus einem Großkraftwerk erfolgen, da dort die Annahme einer geregelten Spannung gerechtfertigt ist.
from etrago.
Testing has been moved to #63
@mariusves please close this ticket once the slack definition is finished.
from etrago.
I'm currently working on the suggested changes.
How should we deal with buses that don't have a PV generator available? I don't think that it's very likely that these buses will have the highest feed in, but I'm still wondering if I should implement a kind of "fail prove check"?
from etrago.
Yeah I think that would be good. Maybe an easy way is that you only take the buses where at least one PV generator is installed for the evaluation of the bus with the highest feed-in. That way the possibility you are talking about cannot happen.
from etrago.
with the latest commits 426e576 and 5510bf3 I improved the determination of the slack bus.
First, the dispatch of all generators are summed and grouped up per bus that they are connected to.
Then, it is verified if the bus with the highest dispatch has a PV generator. If that is not the case, the bus with the second highest dispatch is checked and so on. This repeats until a bus with a PV generator is found. Then, from this bus, the PV generator with the highest p_nom is selected to be the new slack bus.
Does that sound more reasonable?
from etrago.
For me that sounds very reasonable. Since @ulfmueller is on leave now, I think we can merge it to dev for the release tomorrow.
@mariusves could you create a PR once finished with the development on the branch?
from etrago.
Closed by a9aa595.
Further testing will be carried out in issue #63.
from etrago.
Related Issues (20)
- Dealing with other flexibility options in redispatch calculation
- Explicitly determine redispatch for electrolyzer
- incompatible python version due to pypsa restriction HOT 1
- Function "select_elec_network" can not be used for market-optimization
- Allow dynamic line rating when using SCLOPF HOT 1
- Split extended lines within sclopf
- Update path to unit commitment file HOT 1
- Dev failing when importing scenario data HOT 2
- Gas clustering is failing
- My model from the eTraGo data has many overloaded lines
- Clean up appl.py
- Gas clustering not working with status2019
- Adaptation to eGon-data's Updated Power Capacity Specification for Gas Power Plants HOT 1
- Implement adjustments based on method validation
- Define method for AP7
- Calculations in plotting functions: calc_ac_loading, calc_dc_loading, plot_grid
- Calculations in plot function: calc_dispatch_per_carrier
- Incorrect Handling of X and R Values for Transformers During LOPF HOT 4
- Misleading naming of cross border flow functions HOT 1
- ramp_up generators not dispatching
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from etrago.