-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature/outer loop migrate criterion computation 2 (#789)
follows #780 - compute outer loop criterion in Benders inner loop - new mechanism to store vars indices which are linked to patterns (PositiveUnsuppliedEnergy::\***AreaName\***) - Update Python drivers so the outer loop can be launched like other Xpansion steps - Yaml parser (yaml-cpp) ... --------- Co-authored-by: Thomas Bittar <[email protected]> Co-authored-by: Jason Maréchal <[email protected]>
- Loading branch information
1 parent
921e6a5
commit 2ed62ff
Showing
69 changed files
with
1,543 additions
and
723 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,6 +37,7 @@ _build | |
_install | ||
antares-deps | ||
include/google | ||
vcpkg_installed | ||
|
||
# Cmake generated files | ||
CMakeCache.txt | ||
|
This file was deleted.
Oops, something went wrong.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
We describe a system with 4 nodes, on 1 timestep, 2 scenarios : | ||
|
||
|
||
|------- N1 | ||
| | ||
N0 ----- N2 | ||
| | ||
|------- N3 | ||
|
||
On node 0, there is a generator with : | ||
- Initial P_max = 1 | ||
- Prod cost = 1 | ||
- Investment cost = 20 | ||
|
||
On nodes N1, N2, N3, there is a demand that differs between scenarios : | ||
- On N1 : Demand1 = [1, 3] | ||
- On N2 : Demand2 = [3, 3] | ||
- On N3 : Demand3 = [0, 3] | ||
|
||
Over the whole system we have : | ||
- Spillage cost = 1 | ||
- ENS cost = 10 | ||
|
||
There are also transmission costs on lines : | ||
- On L01 : transmission cost = 2 | ||
- On L02 : transmission cost = 1 | ||
- On L03 : transmission cost = 3 | ||
|
||
As the investment cost is higher than the ENS cost, adding 1MW of capacity would cost 20 to reduce ENS cost only by 10, hence an increased overall cost. Therefore the optimal investment is not to add any capacity beyond the existing one. Given the transmission cost, all flow will get to node 2. | ||
|
||
This use case is simple enough so that we can count the number of hours with ENS with respect to the investment. Then we could use this test to check the behavior of any heuristic that aims at reaching a given target of LOLE (not done here). | ||
|
||
We add 1 hour of ENS if there is at least 0.1 MWh of unsupplied energy, the "optimal" situation leads to 5h of ENS hours overall, hence 2.5h in expectation. | ||
|
||
Each invested capacity will first go to node 2, then to node 1 and finally to node 3 given the transmission costs. | ||
|
||
Hence we can deduce the number expected hours of ENS given the total capacity as follows (invested capacity is total capacity - 1 as P_max = 1 initially): | ||
- 0 <= P_max <= 2.9 : 2.5h (1 in area 1, 1 in area 2, 0.5 in area 3) | ||
- 2.9 <= P_max <= 3.9 : 1.5h (1 in area 1, 0 in area 2, 0.5 in area 3) | ||
- 3.9 <= P_max <= 5.9 : 1h (0.5 in area 1, 0 in area 2, 0.5 in area 3) | ||
- 5.9 <= P_max <= 8.9 : 0.5h (0 in area 1, 0 in area 2, 0.5 in area 3) | ||
- 8.9 <= P_max : 0h (0 in area 1, 0 in area 2, 0 in area 3) | ||
|
||
Now, to test the heuristic taking into account the reliability constraint we can easily deduce the expected result depending on the criterion. For the test case, we require that all areas have less than 0.5 hours with ENS, hence, the solution is to have a total capacity of 3.9 (i.e. invest 2.9 as P_max = 1 initially) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# critère d'arrêt de l'algo | ||
stopping_threshold: 1e-4 | ||
# seuil | ||
criterion_count_threshold: 1e-1 | ||
# tolerance entre seuil et valeur calculée | ||
criterion_tolerance: 1e-5 | ||
patterns: | ||
- area: "N0" | ||
criterion: 1 | ||
- area: "N1" | ||
criterion: 1 | ||
- area: "N2" | ||
criterion: 1 | ||
- area: "N3" | ||
criterion: 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.