PowNet: a power systems analysis model for large-scale water-energy nexus studies
AFM Kamal Chowdhury Jordan Kern Thanh Duc Dang Stefano Galelli







PowNet: a power systems analysis model for 
large-scale water-energy nexus studies 


AFM Kamal Chowdhury1, Jordan Kern2, Thanh Duc Dang1, Stefano Galelli1
 


1 Pillar of Engineering Systems and Design, Singapore University of Technology and Design, Singapore 487372

2 Department of Forestry and Environmental Resources, North Carolina State University, Jordan Hall Addition, 2820 Faucette Dr., NC 27695




Corresponding author: AFM Kamal Chowdhury (chowdhury@sutd.edu.sg)

1pt




§ ABSTRACT


PowNet is a free modelling tool for simulating the Unit Commitment / Economic Dispatch of large-scale power systems. PowNet is specifically conceived for applications in the water-energy nexus domain, which investigate the impact of water availability on electricity supply. To this purpose, PowNet is equipped with features that guarantee accuracy, reusability, and computational efficiency over large spatial and temporal domains. Specifically, the model (i) accounts for the techno-economic constraints of both generating units and transmission networks, (ii) can be easily coupled with models that estimate the status of generating units as a function of the climatic conditions, and (iii) explicitly includes import/export nodes, which are often found in cross-border systems. PowNet is implemented in Python and runs with the help of any standard optimization solver (e.g., Gurobi, CPLEX). Its functionality is demonstrated on the Cambodian power system.




§ KEYWORDS
 Unit commitment; economic dispatch; transmission networks; water-energy nexus; energy systems; power systems; Python

1pt





§ (1) OVERVIEW








§ INTRODUCTION
 



Fuelled by economic and population growth, electricity demand is rapidly increasing in many parts of the world. At the same time, several countries are cutting carbon dioxide emissions through a larger dependance on renewable resources (e.g., hydro, wind and solar) <cit.>. Yet, electricity supply from these resources varies over multiple temporal scales—from hourly to seasonal and inter-annual—thereby requiring more flexible power grids <cit.>. These challenges have prompted the development of several modelling tools for energy and electricity systems; see <cit.> for a comprehensive review. Broadly speaking, models are used for two main tasks, long-term planning (e.g., capacity expansion, investment optimization) and short-term management (e.g., power flow analysis, unit commitment). Hereafter, we refer to these two groups as energy and power systems analysis models <cit.>. 


Importantly, modelling tools are used not only for `traditional' tasks in the energy and power domains, such as investment optimization and grid analysis, but also for interdisciplinary research spanning across multiple engineering domains. For example, models are increasingly being used in studies on the water-energy nexus, which aim to characterize the interdependencies between these two critical sectors and introduce planning and management solutions that span across coupled systems <cit.>. The strategic importance of energy and power models is thus likely to increase in the near future, as climatic changes are expected to transform both supply and demand of electricity <cit.>. 
 

An important application in the water-energy nexus domain is Unit Commitment / Economic Dispatch (UC/ED), in which a computer model is used to optimize the operations of power generating units—more precisely, UC determines when and which generating units to start-up and shut-down, while ED establishes the amount of power supplied by each unit <cit.>. The correct simulation of the UC/ED decision-making process is indeed a critical step if one seeks to decipher the effect of water availability on the performance of a power system. To this purpose, researchers and practitioners typically rely on power systems models—such as PROMOD <cit.> or GENESYS <cit.>—that account for the techno-economic constraints of the generating units, but often adopt simplified representations of the transmission networks; an assumption that may lead to a misrepresentation of power system's performance <cit.>. To explicitly account for electricity transmission in a UC/ED exercise, one can only rely on a handful of models, namely PSAT <cit.>, PyPSA <cit.>, and PLEXOS <cit.>. Yet, the latter is a proprietary software, and thereby not freely available to researchers. 


Here, we contribute to this growing field and introduce PowNet, a UC/ED modelling tool specifically conceived for applications in the water-energy nexus domain. PowNet builds on the UC/ED model first presented by <cit.>, and complements it with a comprehensive representation of the high-voltage transmission lines. As we shall see later, PowNet has a few desirable features. First, it bases the power flow calculation on a Direct Current (DC) network; a choice that strikes a reasonable balance between modelling accuracy and data and computational requirements. This is particularly important for water-energy applications, which are generally carried out over extensive spatial and temporal domains. Moreover, it should be noted that the error introduced by DC flow is generally negligible (as compared to a full-scale power system model), except for high loadings with increased reactive power <cit.>. To minimize such instances, PowNet incorporates the N-1 criterion, which leaves part of the lines' capacity unused, thereby allowing for reactive power flows <cit.>. Second, PowNet accounts for the potential effect of water availability on the UC/ED process. Specifically, the user can soft link PowNet with any model able to process climatic data and provide information on the status of renewable and non-renewable resources. Third, PowNet explicitly includes the export/import nodes—as substations and generators–which are key components of cross-borders interconnections. Fourth, PowNet is fully written in Python, a programming language that should enhance its dissemination and reusability. 


The next section describes the mathematical model on which PowNet is based, while its Python implementation and architecture are described in Section 3. Section 4 presents the quality control, along with a sample implementation for the Cambodian power system. The concluding remarks are outlined in Section 5.




§ FUNCTIONALITY


In PowNet, a power system is represented by a set of nodes (n ϵ N) that include power plants and high-voltage substations. Given a pre-defined planning horizon (e.g., 24 hours), the model (1) schedules the operating status of the dispatchable power plant units (e.g., coal, gas, oil, and biomass), and (2) determines the hourly dispatch of electricity from the committed units and variable renewable resources (e.g., hydro, solar, wind) that meets the system's demand at a minimum cost. As illustrated in Figure 1, the electricity available through the variable renewable resources is an input that can be obtained from existing data or simulated by a separate model (e.g., a hydrological-hydraulic model for the available hydropower). PowNet can also include import stations as dispatchable units. The scheduling and dispatch of hourly electricity is constrained by the design features of the power plants as well as the capacity and susceptance of the transmission lines. Overall, PowNet solves a Mixed Integer Linear Program (MILP), whose objective function, decision variables, and constraints are described next (the notation used in the following sections is summarized in Table 1). 






 §.§ Objective function and decision variables


The goal of PowNet is to meet the hourly electricity demand at the substations while minimizing the production cost over a planning horizon, say 24 hours (t ϵ T). The production cost of the dispatchable units (g ϵ G) depends on their fixed operation and maintenance (O&M) costs (FixedCost_g), start-up cost (StartCost_g), variable costs for heat rate (HeatRate_g) and fuel price (FuelPrice_g), and variable O&M costs (VarCost_g). The shut-down costs of the units are generally negligible when compared to the other costs <cit.>, and are thus not considered in our model. The cost of imported electricity depends on the import price (ImportPrice_i), which is specified for each import source (i ϵ I). The production cost of the rn-th variable renewable resource (rn ϵ RN) depends on the unit production cost (UnitCost_rn), which is typically smaller than the one of the dispatchable unit <cit.>. The objective function is thus formulated as follows:

	
    min∑_t=1^T( ∑_g^G(FixedCost_g×ON_g,t + Elec_g,t× (HeatRate_g×
       FuelPrice_g + VarCost_g) + StartCost_g×Switch_g,t) +
       ∑_i^I(Elec_i,t×ImportPrice_i) +∑_rn^RN(Elec_rn,t×UnitCost_rn) ),
	

where ON_g,t and Switch_g,t are two decision variables describing the operational status (on-line or off-line, and to be started-up or shut-down) of the g-th dispatchable unit at hour t, while Elec_g,t, Elec_i,t, and Elec_rn,t denote the hourly electricity production of the g-th dispatchable unit, i-th import source, and rn-th  variable renewable resource, respectively. At each hour t, PowNet optimizes a few additional decision variables, namely, the voltage angle VoltAngle_n,t at each node n of the network (needed to estimate the transmission through each line), and the spinning and non-spinning reserves SpinRes_g,t and NonSpinRes_g,t.







 §.§ Constraints
 
The scheduling and dispatch of hourly electricity is subject to multiple constraints accounting for the technical specifications of generating units (i.e., capacity, minimum up/down time, ramping limit), energy balance at each node (demand and supply), capacity and susceptance of the transmission lines, transmission loss and N-1 criterion, and minimum requirements of spinning and non-spinning reserves.



  
Logical constraints.

Similarly to <cit.>, we adopt a set of logical constraints to bind the operational status of the various power plant units. First of all, we introduce a constraint (equation (<ref>)) on the operational status of the dispatchable units, according to which an off-line unit can be started up but not shut down, and vice versa:

	
    Switch_g,t≥ 1 - ON_g,t-1 - (1 - ON_g,t); 
       ON_g,t ϵ {0,1}, Switch_g,t ϵ {0,1}, ∀_g, ∀_t,


where, the binary variable ON_g,t determines whether the g-th dispatchable unit is off-line (or on-line) at hour t, while Switch_g,t indicates whether an off-line unit must be started up (or not). 
	

The operational status of each unit is also constrained by the minimum up and down time (MinUpTime_g and MinDownTime_g) required to start it up or shut it down, that is:

	
    ON_g,t - ON_g,t-1≤ON_g,j; 
       ∀_g,  t ϵ {2 to (T-1)}, t<j≤min(t+MinUpTime_g-1,T),
	
	
    ON_g,t-1 - ON_g,t≤ 1- ON_g,j; 
       ∀_g,  t ϵ {2 to (T-1)}, t<j≤min(t+MinDownTime_g-1,T).
	

Over a planning horizon T, equations (<ref>) and (<ref>) thus force PowNet to account for the minimum number of hours necessary to start the g-th unit up (or to shut it down) at hour j.



  
Ramping limits.

The ramping up and down hourly limits of the g-th unit (Ramp_g) are constrained by equations (<ref>) and (<ref>):

	
    Elec_g,t - Elec_g,t-1≤Ramp_g;   ∀_g, ∀_t,
	
	
    Elec_g,t-1 - Elec_g,t≤Ramp_g;   ∀_g, ∀_t.
	

In other words, equations (<ref>) and (<ref>) ensure that the increase or decrease of the power generation during two consecutive hours (Elec_g,t and Elec_g,t-1) is below the ramping limit (Ramp_g) of the g-th unit.



  
Capacity constraints.

Equation (<ref>) accounts for the minimum and maximum capacity of the generating units. In particular, equation (<ref>) indicates that the hourly electricity production Elec_g,t from the g-th dispatchable unit is bounded by its minimum and maximum capacity (MinCap_g and MaxCap_g):  

	
    MinCap_g×ON_g,t≤Elec_g,t≤MaxCap_g×ON_g,t×DerateF_g,t;   ∀_g, ∀_t.
	


The term DerateF_g,t is used to account for the impact of droughts on freshwater-dependent dispatchable units—during a prolonged dry spell, for example, a thermo-power unit may not be able to run at full capacity because of its limited cooling capability. The default value of DerateF_g,t is one, but it can be modified to a smaller value if water availability becomes a limiting factor. Note that the value of DerateF_g,t must be supplied by the user, which can rely on a variety of methods for such task <cit.>. 


Similarly, the hourly electricity import Elec_i,t from the i-th import source is constrained by the maximum allowable import (MaxCap_i), as indicated by equation (<ref>):

	
    0≤Elec_i,t≤MaxCap_i×ON_i,t;   ∀_i, ∀_t.
	
 


Finally, the amount of electricity Elec_rn,t dispatched from the rn-th renewable resource (e.g., hydro, wind, and solar) is bounded by its availability (RenewAvail_rn,t):

	
    0≤Elec_rn,t≤RenewAvail_rn,t;   ∀_rn, ∀_t.
	


The value of RenewAvail_rn,t is generally modelled through the use of climatic data. For example, the available hydro-electricity can be estimated by feeding a hydrological-hydraulic model with rainfall and temperature data <cit.>. Similarly, the electricity available in wind and solar power plants can be simulated by harnessing data on wind speed <cit.> and solar radiation <cit.>.



  
Energy balance.	

Equation (<ref>) applies the energy balance at each node n connected to any other node k of the power system <cit.>. The left-hand side of equation (<ref>) accounts for (1) the electricity inputs (Elec_n,t) from the available power plants and/or import-sources connected to n, and (2) the electricity used to meet domestic demand or export (Demand_n,t or Export_n,t) at the node. The right-hand side indicates that the electricity transferred (in or out) between n and k is proportional to the difference of the voltage angles at these nodes (VoltAngle_n,t and VoltAngle_k,t), where the susceptance of the transmission line (LineSus_n,k) is the proportionality constant <cit.>. The voltage angle at an arbitrary reference node (usually, the node with highest demand) is set to zero, while the voltage angle at any other node can be positive or negative <cit.>. The parameter TransLoss is used to discount the energy production, or import, by a given percentage, so as to account for the transmission losses (similar to <cit.>). Equation (<ref>) is formulated as:
	
	
    (1- TransLoss) ×∑Elec_n,t - Demand_n,t (-Export_n,t) 
       = ∑_k ϵ NLineSus_n,k×(VoltAngle_n,t -VoltAngle_k,t);   ∀_n, ∀_t.

	

The hourly demand (and export) time series at the substations represent an input to the model. These data can be obtained from observed records (see Section <ref>) or modelled through relevant factors, such as population or temperature <cit.>.



  
Transmission capacity constraints.

With equation (<ref>), known as the N-1 criterion, PowNet limits the electricity transfer between any node-pair (n and k) below a certain percentage (N1Criterion) of the line-capacity (LineCap_n,k), thereby leaving the remaining fraction as a safety margin:
	
	
    -N1Criterion ×LineCap_n,k≤LineSus_n,k×(VoltAngle_n,t -VoltAngle_k,t)
       ≤ N1Criterion ×LineCap_n,k;   ∀_n, ∀_t, k ϵ N.



A common value for the parameter N1Criterion is 75% (c.f., <cit.>). As illustrated in Appendix A, the parameters LineCap_n,k and LineSus_n,k are estimated from design specifications of the transmission lines (e.g., size and length, voltage level, number of circuits and conductors, and capacity per circuit), which can be easily obtained from technical reports. 



  
Electricity reserve.

The last two equations ensure that (1) the hourly electricity reserve is larger than a predefined percentage of the system's demand at time t (e.g., ResMargin = 15%, <cit.>), and (2) the minimum spinning reserve is a predefined percentage of the total reserve (e.g., SpinMargin = 50%, <cit.>):

    ∑_g^G(SpinRes_g,t + NonSpinRes_g,t) ≥ ResMargin ×∑_n^NDemand_t;   ∀_t,
	

    ∑_g^GSpinRes_g,t≥ SpinMargin × ResMargin ×∑_n^NDemand_t;   ∀_t.
	

Two additional constraints are used to ensure that spinning and non-spinning reserves are served by on-line and off-line generators, respectively. Furthermore, users can allocate all or some specific generators (e.g., oil-fired units) for the minimum reserve requirements.



§ IMPLEMENTATION AND ARCHITECTURE




PowNet is implemented in three Python scripts, namely `PowNetModel.py', `PowNetDataSetup.py', and `PowNetSolver.ipynb'. `PowNetModel.py' contains the main model structure, with the objective function and constraints described in Section <ref>. The model structure is based on the Pyomo optimization package <cit.>. `PowNetDataSetup.py' prepares the data required to execute the model. Specifically, it outlines the input data into several .csv files that are read as DataFrame objects. Then, the script generates a .dat file in which all data are specified in a format that is executable by Pyomo. Finally, `PowNetSolver.ipynb' executes the model and solves the optimization problem using a standard solver, such as Gurobi or CPLEX. The script also generates .csv files containing the value of each decision variable. 


PowNet input data are categorized as: (i) parameters of the dispatchable units, (ii) parameters of the transmission lines, (iii) hourly time series of electricity demand at the substations, and (iv) hourly time series of electricity available from variable renewable resources. The techno-economic parameters of the dispatchable units are provided in a .csv file that also includes identification data, such as the name and type of each unit and the node to which they belong. The type of unit depends on fuel and turbine (e.g., `coal_st' stands for a coal-fired unit with steam turbine). The techno-economic parameters are considered constant over the simulation period. In addition, the .csv file contains the value of the derating factor (see Section <ref>). The data concerning the parameters of the transmission lines (i.e., susceptance and capacity), hourly electricity demand, and electricity available from renewable resources are provided in separate .csv files. The data regarding the length of the simulation period, planning horizon, transmission loss, N-1 criterion, and hourly reserve margins are provided directly by the user in the script `PowNetDataSetup.py'. 





§ QUALITY CONTROL




So far, PowNet has been tested on the Laotian <cit.> and Thai <cit.> power systems. In both cases, the model output was validated against observed statistics, such as the seasonal or annual generation mix. Here, we present an implementation of PowNet for the Cambodian power system. The data and code used for this demonstration are available in GitHub along with step-by-step instructions on how to customize them. The next section presents an overview of the model setup, followed by an evaluation of its performance.



 §.§ Setup
 

Our implementation is based on the infrastructure built and operated in 2016. The system consists of 30 nodes—including power plants and substations—connected by high-voltage transmission lines (Figure <ref>) <cit.>. The total generating capacity is 2,000 MW, with the national peak demand equal to 1,192 MW. The domestic capacity includes three coal-fired units (400 MW), 15 oil-fired units (282 MW), and six hydropower plants (930 MW). The system is also connected to two import stations (dispatchable) from Vietnam (200 MW) and Thailand (120 MW), and a hydropower plant in Laos. To set PowNet, data on the parameters of dispatchable units and transmission lines were extracted from different technical reports <cit.>. (Further details about the estimation of the transmission parameters are given in Appendix A.) We also extracted data on province-wise, monthly-varied peak electricity demand from <cit.>. Spatially, the province-wise demand data were disaggregated to substations based on their voltage-levels. For the disaggregation of monthly data to hourly resolution, we used a week-daily and a clock-hourly demand profile to incorporate the variability of demand over days in a week and hours in a day, respectively. The time series of available hydropower was simulated by a conceptual hydrologic model (see Appendix B).


The model was run with a 24 hour planning horizon, threshold for the N-1 criterion equal to 75% (of the line's capacity), and reserve margin equivalent to 15% of the system's demand. The model was calibrated against the 2016 (observed) annual generation mix by tuning the fuel price value in Equation (1). For each day (24 hours) of simulation, PowNet optimizes around 2,600 variables (continuous and binary). The model was tested with two solvers (Gurobi and CPLEX) on an Intel(R) Core(TM) i7-8700 CPU @ 3.20 GHz with 8 GB RAM running Microsoft Windows 10. They both yield the same output, with slightly different computational requirements—∼3.5 and ∼3.0 seconds per day of simulation, respectively. Further tests on a Linux operating system show similar performance.
 






 §.§ Performance


The simulation for the year of 2016 provides the following hourly time series: (1) operational status of dispatchable units, (2) generation provided by dispatchable units and variable renewable resources, (3) voltage angles at each node, and (4) spinning and non-spinning reserves. These variables represent an important information for the operation, planning, and management of power systems. For example, detailed information on the operational status can support the unit commitment and economic dispatch over the planning horizon, while statistics on the generation mix provide an overview of the system's dependance on the various energy sources. These concepts are further exemplified in Figure <ref>, which illustrates the energy generation mix. Here, we can notice the `signature' of wet and dry seasons: during the monsoon (May to November), the system heavily relies on hydropower production, while during the pre- and post-monsoon months the electricity generation is largely based on coal and import. The use of these two resources is not only controlled by economic factors—coal is cheaper than imported electricity—but also by the several techno-economic constraints described in Section <ref>. For example, there are a few days in August in which the concomitance of limited load and high fixed and start-up costs make imported electricity preferable over coal. The above analyses could be readily extended to longer simulation periods or multiple demand patterns, so as to explore the effect of different drivers on the performance of the power system (e.g., <cit.>).



		

Apart from the detailed representation of the aforementioned variables, another feature of PowNet is the explicit representation of the hourly transmission of electricity through the lines (estimated from the voltage angle at each node). This information is synthesized in Figure <ref>, which depicts the annual average usage of each line. Results indicate that usage is limited, with only a few lines showing values larger than 40% of their capacity. Unsurprisingly, these lines connect the coal plants in the Southwestern coast and import station from Vietnam to the capital (Phnom Penh), namely the area with the highest load. The radar chart indicates that the average usage of these lines is higher during the dry months, when the system heavily relies on the coal units due to the low hydropower availability. Despite the limited average usage, the maximum usage of the lines during wet months is high (∼ 70%), mainly because of the peak-hour supply from the import station. Note that the transmission of electricity through the lines can also be used to calculate the number of N-1 violations (not observed in this example), a proxy of the network's stress conditions. 
 




To further demonstrate the importance of a detailed representation of the high-voltage transmission lines, we run PowNet using a slightly altered network. In the `altered' network, we assume that the capacity of the two lines transferring electricity from the Southwestern coast and Vietnam to the capital (see Figure <ref>) is halved—these are double circuit transmission lines, so such scenario represents an instance in which one of the two circuits fails to operate. (All other parameters and input variables remain unchanged.) Figure <ref> compares the system's performance obtained with the `existing' and `altered' transmission networks. Looking at the generation mix (left panel), we note that the model with altered network dispatches less electricity from coal plants and Vietnam's import station. That is because the two lines with reduced capacity are frequently stressed (about 18% of the time), so they do not allow the coal plants and import station to run at their full capacity. The reduced dispatch from the coal plants and Vietnam's import station is partially offset by higher production from the oil-fired units and Thai import station (we also observe a shortage of electricity supply of about 25 GWh). In turn, such higher reliance on oil affects operating costs and CO_2 emissions. Overall, these results indicate that the altered functioning of just a few lines can influence the behaviour of an entire power system. Capturing such dynamics is therefore paramount to supporting effectively the operations and planning of large-scale energy systems.








§ CONCLUSIONS


PowNet is a least-cost optimization model for simulating the UC/ED of national and regional power systems. The model accounts for the techno-economic constraints of generating units and DC transmission network, thereby providing functionalities for both grid and economic analyses. In particular, PowNet is conceived for applications in the water-energy nexus domain, and it can easily incorporate information on the effect of water availability on renewable and non-renewable resources. The data requirements for the DC transmission network are limited, thereby making PowNet applicable to data-scarce regions, particularly developing countries.





§ (2) AVAILABILITY





 §.§ Operating system


Windows 10, Linux, and any other operating systems running Python and a standard solver (e.g., Gurobi, CPLEX).



 §.§ Programming language


Python 3.5



 §.§ Additional system requirements


None.



 §.§ Dependencies


PowNet is written in Python 3.5. The following Python packages are required for PowNet: (i) Pyomo, (ii) NumPy, (iii) Pandas, and (iv) Matplotlib (optional for plotting). The Jupyter Notebook (freely available as part of Anaconda Python with the aforementioned packages) is required to run the script `PowNetSolver.ipynb', which also requires an optimization solver (e.g., Gurobi, CPLEX).






 §.§ Software location:





	
  Name: Zenodo 
	
  Persistent identifier: https://doi.org/10.5281/zenodo.3462879 
	
  Licence: MIT 
	
  Publisher: AFM Kamal Chowdhury 
	
  Version published: v1.1 
	
  Date published: 27-September-2019 


Code repository 


	
  Name: GitHub 
	
  Persistent identifier: https://github.com/kamal0013/PowNet 
	
  Licence: MIT 
	
  Date published: 27-September-2019 













 §.§ Language


English





§ (3) REUSE POTENTIAL




PowNet is available on GitHub with step-by-step instructions on how to formulate and implement the model of a given power system. While the data and scripts demonstrate its use for the Cambodian power system, the user can easily build a new model or customize an existing one by modifying (or adding) dispatchable generators, renewable resources, substations, and transmission lines. The GitHub repository also includes a few additional scripts that help users perform some standard analyses on PowNet's output. Note that Pyomo is free, and that academic users can obtain a free license of state-of-the-art standard solvers (e.g., Gurobi, CPLEX) to solve the model. We also note that PowNet has been tested on Windows and Linux operating systems. Overall, the availability of a dedicated repository, instructions, and extensive examples should make PowNet easy and straightforward to reuse.



§ ACKNOWLEDGMENT/FUNDING STATEMENT





This research is supported by Singapore's Ministry of Education (MoE) through the Tier 2 project `Linking water availability to hydropower supply—an engineering systems approach' (Award No. MOE2017-T2-1-143).



§ COMPETING INTERESTS





The authors declare that they have no competing interests.









§ APPENDIX




§ A. ESTIMATION OF TRANSMISSION PARAMETERS

PowNet uses two parameters for each transmission line, namely susceptance (LineSus) and capacity (LineCap). For each transmission line, LineCap is estimated as the product between the capacity per circuit and number of circuits in the line. LineSus is estimated as the reciprocal of line reactance X, which is calculated as follows <cit.>:  

    A1   X = 4 π f L ×10^-7×ln( D_mGMR),
	
where, f and L are the line frequency (Hz) and length (km), Dm the geometric mean distance between phases, and GMR the geometric mean radius of line per phase. Assuming that the lines are in a three-phase system with symmetrically arranged conductors, the geometric mean distance D_m can be considered equal to the centre-to-centre distance D (m) between any two conductors <cit.>. D is calculated as a function of the voltage level (kV), as recommended by <cit.>:

    A2   D_m = D = 0.0348 ×(0.077 × Voltage - 3.11).
	
	
The GMR associated with line is calculated as follows <cit.>:

    A3    GMR = ( ∏_c=1^C(e^-1/4× r_j×∏_j=1,j≠ c^Cd_c,j)^1/C)^1/C,
	
where, r_j is the radius of any conductor j, and d_c,j is the centre-to-centre distance between j and each of the other conductors of a phase of C conductors.


For the Cambodian power system, we obtained data on voltage level (kV), number of circuits, line length (km), size (mm2) and number of conductors, and capacity (MW) per circuit from <cit.>.



§ B. SIMULATION OF HYDROPOWER AVAILABILITY


Table B1 shows the design specifications (collected from <cit.>) of the Cambodian hydropower reservoirs. To calculate the hydropower available in each dam, we adopted the following procedure. First, we estimated the inflow to the reservoirs (Q_t) through the use of the rational method, that is:

    B1   Q_t = c ×I_t× A,
	
where c is a runoff coefficient, I_t the rainfall intensity (mm/day), and A the drainage area of each dam (km^2). The runoff coefficient was estimated as a function of the soil type and slope of the drainage basins, while the rainfall intensity was extracted from the APHRODITE gridded rainfall dataset. 


Then, we calculated the mass balance of each reservoir, namely:

    B2   S_t+1 = S_t + Q_t - R_t,
	

    B4s.t.     0 ≤ S_t ≤S_cap,
	
where S_t, Q_t, and R_t represent the water storage, inflow, and release at time t. S_cap is the capacity of the reservoir. To calculate the release R_t, we adopted rule curves aimed to maximize the hydropower production <cit.>. 
 

Finally, we used the hydropower equation to estimate the power available at each hydropower plant:

    B5   hydropower_t = η×ρ× g ×R_t×H_t,
	
where hydropower_t is the available hydropower (MW), η a non-dimensional turbine efficiency term, ρ the water density (1,000 kg/m3), g the gravitational acceleration (9.81 m/s2), and H_t the hydraulic head at time t (calculated from the storage S_t). The daily time series of available hydropower was transformed into an hourly time series by assuming equal water availability throughout a single day.








§ REFERENCES

















