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”

<Module number>, '<Comment I>'
'<Comment II>'
<Number of breakdowns>
<start week>, <end week>, <MW out>

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

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

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

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

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.