# Outage and maintenance planning in EOPS The purpose of EOPS ("Vansimtap") is to control energy production for each individiual water plant within a single price area given certain time series (price prognoses, inflows etc.) in order to maximize profits. While a standard run of EOPS assumes a constant plant efficiency as a function of time, it may be of interest to plan for downtime of one or more plants during a pre-determined period of time -- this is what is referred to as maintenance planning ("revisjonsplanlegging"). Another closely related functionality of EOPS is the so called outage analysis ("havari-analyse"). This is a feature intended to model unforeseen downtimes of one or more plants. The difference between maintenance and outage lies in how water values for the aggregate model are computed: In maintenance planning, the downtimes are known beforehand, and one can therefore re-compute the water values in the aggregate model. Since outage models unforeseen downtimes, the water values are not recomputed. The new functionality presents the user with increases/losses in profits for each outage or maintenance time interval. We also present additional data not included in the previous versions of the files. Most importantly, a resolution of all of these data in terms of simulation scenarios is presented for outage/maintenance. For the purpose of keeping this note self-contained, we will briefly present how to run EOPS with the outage/maintenance functionality. Although more advanced options such as the simultaneous outage/maintenance of multiple modules during the planning period is possible within EOPS, we will focus on one module/plant. ## How to run outage analyses We will in the following specify some examples of input files that can be found in the user manual. As detailed in the user manual, outage analyses are run by specifying a file "HAVARI.STAS". This file is formatted as shown below ### Structure of the file "HAVARI.STAS" ``` , '' '' , , ``` Below is a concrete example for outage in two time intervals ``` 99903, 'M3' * Module number, comment I (module name) 'Aggregat 1' * Comment II 2 * Number of breakdown periods 10, 18, 250.0 * Start week, end week, MW out (I) 39, 44, 250.0 * Start week, end week, MW out (II) -1, 'End' * Stopp code, comment ``` ## How to run maintenance analyses The input file for maintenance, "REVISJON.STAS", has a very similar format. As this too is detailed in the user manual, we again refer to it for details. Below, we show a simple example ``` 1, * Version number of file 1, * Number of intervals for starting week 20,21 * Interval for starting week 1, * Number of modules undergoing maintenance 41709,'Module name', * Module number for maintenance 1, comment 1, * Number of maintenance periods 20,24,40, * start week , final week, 80 MW out 2, * Number of points on the PQ-curve 0.0, 0.0, * 1 - Break points on PQ-curve (MW, m3/s) 45.0, 6.10, * 2 - Break points on PQ-curve (MW, m3/s) 0, * Number of modules moduler with "maks rest" -1, * Stop code ``` ## Result files Versions 10.6 and earlier have provided functionalities for both types of analyses. However, around the time of 10.5, users have requested more detailed output data concerning expected profits. In R10.7.2, the following new result files are added or modified: ### havari.res The file "havari.res" displays results for outage analysis. Although this file also existed in previous releases, we will briefly explain its contents as the same type of data is present in other files as well. In the leftmost column, the first set of entries are station names while the remaining columns show results for simulations with different outage time-intervals. The leftmost of these is without any outage. The contents of the result data are as follows: * "Gj. sn. sluttmagasin" shows the end reservoir filling, "Gj.sn.flom" shows the flooding of the reservoir, and "Gj. mer flom" displays the increased overflow with respect to the reference level. * The row containing "Inntekt" shows the total income for the outage scenario described. Specifically, the income equals the product of the spot-price series with the production. * "Verdi av ekstra vann" is the difference in end reservoir storage between the outage scenario and the reference case valued by the the water value and is an average of all simulation scenarios. * As flooding can be thought of as a loss of profits, it must be accounted for in the net cost of outage. This is indicated in "Gj.sn.kost mer-flom". * "Kost flytting prod.": By defining a function $ \mathrm{flood\_cost} (r) $ representing the economical cost of flood and where $ r $ is the index for the revision, it is defined as $ \mathrm{flood\_cost} (r) - \mathrm{flood\_cost} (1) $ where $\mathrm{flood\_cost} (1)$ represents the reference case without outage. * The last row, "Nto. kostnad av havari", is the net cost of outage as obtained from the simulation and is the sum of the two rows above it. ``` u/havari uke 6- 14 uke 21- 29 uke 31- 39 uke 42- 50 HOVATN GWh 183.8 183.7 183.6 183.1 183.7 SKARJESV GWh -62.8 -62.3 -62.6 -63.2 -62.7 HOLEN 3 GWh 723.0 722.1 720.2 723.5 723.6 HOLEN GWh 1737.0 1737.8 1738.8 1739.3 1737.1 HARTEVANN GWh -89.8 -89.7 -89.8 -89.8 -89.8 BROKKE GWh 4172.8 4173.4 4170.9 4172.2 4174.0 IVELAND GWh 1064.3 1064.3 1064.2 1064.2 1064.3 NOMELAND GWh 432.5 432.5 432.5 432.5 432.5 STEINSFOSS GWh 1603.4 1603.6 1603.0 1603.5 1603.4 HUNSFOSS GWh 310.8 310.8 310.8 310.8 310.8 VIGELAND GWh 553.2 553.1 553.2 553.3 553.2 KULI GWh 69.1 69.1 69.1 69.1 69.2 OSEN GWh 51.0 50.9 51.0 51.0 50.9 FINSA GWh 392.8 392.9 392.9 392.9 392.9 DUGE GWh 720.0 719.6 718.5 718.9 719.4 TJORHOM GWh 1349.0 1349.2 1348.5 1348.6 1349.4 ROSKREPP GWh 342.3 342.3 342.4 342.4 342.4 KVINEN GWh 648.4 648.0 648.2 648.0 648.3 SOLHOM GWh 2082.4 2083.0 2083.0 2081.8 2082.4 TONSTAD GWh 10908.5 10911.2 10906.3 10909.0 10909.6 ANA-SIRA GWh 1755.2 1755.0 1754.9 1755.7 1755.7 K5B TAFJORD GWh 946.1 945.0 944.0 939.0 938.6 K4 TAFJORD GWh 1314.8 1314.1 1313.5 1310.5 1310.6 NY1 GWh 639.9 639.8 640.0 639.5 640.1 GA1 GWh 9.7 9.7 9.6 9.6 9.6 NY2 GWh 608.0 607.5 608.4 608.8 607.8 GA2 GWh 39.7 39.9 39.7 39.7 39.6 -SUM- GWh 32504.9 32506.5 32494.8 32493.8 32496.6 Gj.sn. sluttmagasin GWh 6453.5 6453.7 6459.4 6456.1 6452.6 Gj.sn. flom GWh 1051.2 1049.2 1054.2 1058.5 1059.7 Gj.sn. mer-flom GWh 0.0 -2.0 3.0 7.3 8.6 Inntekt kkr 5818647 5819023 5817133 5818094 5817362 Verdi av ekstra vann kkr 234 1746 816 -425 Gj.sn. kost mer-flom kkr -339 -121 366 1043 Kost flytting av prod kkr -271 -111 -629 667 Nto. kostnad av havari kkr -610 -232 -263 1710 Filen Havari_aar.res har samme struktur og viser økonomiske resultat fra hvert scenario. ``` [Download full file](results/havari.res) ### havari_aar.res The file "havari_aar.res" is also generated in v10.5 of EOPS, but has undergone some change in R10.7.2: In the new version, we also present values of production on a hydro module level (as in havari.res). With this addition, "havari_aar.res" presents the same data as "havari.res" but resolved in terms of simulation scenarios. The top row shows the simulation scenario (year) with the total income (production multiplied by the price series) without outage presented in the row below. The horizontal delimiters separate different outage time intervals where the data below the first delimiter displays the total income calculated from the first outage interval and so on. The results below are obtained from a simulation comprised of 30 scenarios and the number of columns have been truncated for clarity. ``` 1935; 1936; 1937; 1938; 1939; 5578074; 5147556; 3449107; 5342763; 6872120; ------------------ 191.1; 177.1; 226.8; 182.5; 191.8; -67.9; -65.1; -46.7; -47.6; -58.1; 687.4; 628.6; 609.5; 855.9; 918.9; ... 567.7; 646.6; 652.3; 676.9; 518.6; 38.2; 57.8; 66.8; 61.3; 29.2; 29446.5; 32916.5; 34527.1; 37698.4; 30212.1; 7936.8; 9267.1; 9577.0; 3541.0; 3127.8; 751.1; 1722.9; 2758.9; 2272.0; 623.0; 7.6; -7.6; -17.7; 20.8; -1.9; 5572781; 5148248; 3452931; 5339008; 6877472; 3302; -871; 0; 0; -1768; 1030; -1687; -4966; 501; -564; 960; 1867; 1141; 3254; -3021; 1991; 179; -3825; 3755; -3584; ------------------ 189.3; 178.2; 226.8; 182.5; 191.8; -67.9; -64.1; -49.6; -44.8; -59.4; 694.6; 625.3; 621.4; 852.5; 908.0; ... 569.3; 644.4; 656.3; 672.6; 520.1; 37.0; 58.8; 66.1; 61.9; 29.3; 29432.5; 32868.2; 34514.7; 37716.0; 30180.8; 7947.7; 9302.1; 9577.0; 3541.0; 3144.5; 753.3; 1735.8; 2777.3; 2251.2; 619.1; 9.9; 5.3; 0.6; 0.0; -5.9; 5568685; 5145712; 3452769; 5342763; 6865892; 5336; 3156; 0; 0; 9550; 1703; 509; -2555; 0; -2206; 2351; -1820; -1108; 0; -1117; 4053; -1312; -3663; 0; -3323; ... ``` [Download full file](results/havari_aar.res) ### revisjon.res The file "revisjon.res" also existed in previous releases, and it describes the same results as in "havari.res" but for maintenance planning. In R10.7.2 it is reformatted in order to conform to the format in "havari.res". ``` u/revisjon uke 20- 24 uke 21- 25 HOVATN GWh 183.8 182.9 183.4 SKARJESV GWh -62.8 -62.7 -62.5 HOLEN 3 GWh 723.0 722.0 722.0 ... K5B TAFJORD GWh 946.1 946.6 945.5 K4 TAFJORD GWh 1314.8 1315.1 1315.1 NY1 GWh 639.9 639.8 640.0 GA1 GWh 9.7 9.6 9.6 NY2 GWh 608.0 607.7 608.3 GA2 GWh 39.7 40.1 39.5 -SUM- GWh 32504.9 32512.0 32502.9 Gj.sn. sluttmagasin GWh 6453.5 6448.8 6454.8 Gj.sn. flom GWh 1051.2 1047.4 1052.1 Gj.sn. mer-flom GWh 0.0 -3.7 0.9 Inntekt kkr 5818647 5820017 5818627 Verdi av ekstra vann kkr -710 1602 Gj.sn. kost mer-flom kkr -1197 -315 Kost flytting av prod kkr 537 -1267 Nto. kostnad av rev. kkr -660 -1582 Filen revisjon_aar.res har samme struktur og viser økonomiske resultat fra hvert scenario. ``` [Download full file](results/revisjon.res) ### revisjon_aar.res The file "revisjon_aar.res" is similar to "havari_aar.res", but the results are for maintenance planning. ``` 1935; 1936; 1937; 1938; 1939; 5578074; 5147556; 3449107; 5342763; 6872120; ----------------- 190.3; 178.2; 225.3; 182.5; 191.8; -67.9; -64.1; -44.2; -44.7; -59.1; 687.3; 625.0; 606.0; 851.4; 913.1; ... 570.8; 645.2; 657.4; 671.0; 517.7; 36.6; 57.2; 65.8; 60.8; 30.1; 29465.7; 32879.2; 34546.6; 37686.4; 30166.1; 7903.0; 9302.1; 9576.6; 3560.1; 3152.7; 758.8; 1722.3; 2746.8; 2252.4; 624.1; 15.3; -8.2; -29.8; 1.2; -0.8; 5576460; 5146590; 3455369; 5337597; 6862851; -2988; 3156; -70; 4498; 15115; 2473; -1589; -5402; -379; -1710; 2129; -601; -790; 1047; -4136; 4602; -2190; -6192; 668; -5846; ----------------- 189.8; 177.6; 226.8; 182.5; 191.8; -67.9; -62.9; -50.4; -44.7; -59.6; 687.5; 621.4; 623.8; 851.4; 899.4; ... 569.6; 644.8; 653.8; 671.0; 516.2; 37.8; 57.2; 66.2; 60.8; 29.8; 29470.2; 32919.5; 34533.0; 37677.1; 30146.3; 7899.6; 9263.5; 9577.0; 3560.2; 3194.7; 760.2; 1722.0; 2757.5; 2261.7; 609.9; 16.8; -8.5; -19.1; 10.5; -15.0; 5577725; 5150823; 3456679; 5336030; 6849671; -3631; -1291; 0; 4521; 43536; 2732; -1121; -2379; -46; -3510; 1248; -855; -5193; 2257; -17578; 3980; -1976; -7572; 2212; -21088; ``` [Download full file](results/revisjon_aar.res) ## H5 files For the case of maintenance planning, the need for updated water value calculations on the aggregate level makes the calculations slightly more complicated as compared to outage analysis. In particular, it necessitates the temporary storage of simulation data (which were previously stored in the internal file "rev_mag.tmp"). From R10.7.2, we will store this data on a new h5-format instead. The new file, _rev_mag.h5_, serves as a temporary file and contains all the data needed to construct the files "revisjon.res" and "revisjon_aar.res" listed above. In this regard, the user might be more inclined to create h5 interfaces through a programming language with h5 support in order to interact with the data. ## Conclusions and outlook By testing the new functionality on datasets, we observe that some arrays stored in "rev_mag.h5" are quite sparse. This means that we may obtain a performance gain by storing the data in different ways. We have added extra numerical precision on many internal arrays at the expense of an increased runtime for large datasets (Usually 10%). Outage and maintenance analyses can, as explained above, be studied in terms of similar data. Therefore, it might make sense to generate a corresponding _.h5_ file for outage analysis. We welcome user feedback on whether such an additional h5 file is desired.