Start Submission Become a Reviewer

Reading: PowNet: A Network-Constrained Unit Commitment/Economic Dispatch Model for Large-Scale Power ...


A- A+
Alt. Display

Software Metapapers

PowNet: A Network-Constrained Unit Commitment/Economic Dispatch Model for Large-Scale Power Systems Analysis


A. F. M. Kamal Chowdhury ,

Pillar of Engineering Systems and Design, Singapore University of Technology and Design, SG
X close

Jordan Kern,

Department of Forestry and Environmental Resources, North Carolina State University, NC, US
X close

Thanh Duc Dang,

Pillar of Engineering Systems and Design, Singapore University of Technology and Design, SG
X close

Stefano Galelli

Pillar of Engineering Systems and Design, Singapore University of Technology and Design, SG
X close


PowNet is a free modelling tool for simulating the Unit Commitment/Economic Dispatch of large-scale power systems. PowNet is specifically conceived for systems characterized by the presence of variable renewable resources (e.g., hydropower, solar, and wind), whose penetration on the grid is strongly influenced by climatic variability and constrained by the availability of transmission capacity. To help users effectively capture the nuances of power system dynamics, PowNet is equipped with features that enable accuracy, transferability, 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 useful in representing cross-border systems. PowNet is implemented in Python and is compatible with any standard optimization solver (e.g., Gurobi, CPLEX). Its functionality is demonstrated on the Cambodian power system.


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).

How to Cite: Chowdhury, A.F.M.K., Kern, J., Dang, T.D. and Galelli, S., 2020. PowNet: A Network-Constrained Unit Commitment/Economic Dispatch Model for Large-Scale Power Systems Analysis. Journal of Open Research Software, 8(1), p.5. DOI:
  Published on 12 Mar 2020
 Accepted on 18 Feb 2020            Submitted on 27 Sep 2019

(1) Overview


Fuelled by economic expansion 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 by enhancing their reliance on variable renewable resources (e.g., hydro, wind and solar) in addition to fuel switching (coal to gas) [1]. Yet, itermittency in electricity supply from variable resources over multiple temporal scales—from hourly to seasonal and inter-annual—is increasing the need for flexible power grids, as well as the sources of uncertainty that must be accounted for in long term planning [2, 3]. These challenges have prompted the development of several modelling tools for energy and electricity systems; see [4] for a comprehensive review. Broadly speaking, existing models have been used for two main tasks: (1) long-term planning (e.g., capacity expansion, investment optimization); and (2) short-term management (e.g., power flow analysis, unit commitment). Hereafter, we refer to these two groups as energy and power systems analysis models, respectively [5].

Increasingly, there is a need for modelling tools that can perform ‘traditional’ tasks in the energy and power domains, such as investment optimization and grid analysis, while also facilitating interdisciplinary research across multiple engineering domains. For example, models are now being used in studies of the “water-energy nexus”, aiming to characterize the interdependencies between these two critical sectors and introduce planning and management solutions that improve performance and/or balance tradeoffs across coupled systems [6]. The strategic importance of energy and power models that can be used to address this class of problem is thus likely to increase in the near future, especially as climatic changes are expected to transform both supply of and demand for electricity [7, 8, 9].

A subset of power systems models are referred to as Unit Commitment/Economic Dispatch (UC/ED). In these models, optimization is used to schedule 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 [10]. The correct simulation of the UC/ED decision-making process is indeed a critical step if one seeks to understand the effects of hydroclimatic variability on the electricity supplies of hydro, solar, and wind power plants, and, in turn, on the performance of power systems. Previous research efforts in this area has relied almost exclusively on power systems models that account for the techno-economic constraints of the generating units, but often adopt simplified representations of the transmission networks (see Table 1). This assumption may lead to a misrepresentation of power systems’ performance [11, 12]. To explicitly account for electricity transmission in a UC/ED exercise, one can only rely on a handful of models, namely PSAT [13], PyPSA [5], and PLEXOS [14]. Yet, the latter is a proprietary software product, and thereby not freely available to researchers.

Table 1

A list of power/energy systems modelling tools, including PowNet. These tools are categorized based on their operational coverage and representation of the transmission networks. The tools under the first group are generally suitable for short-term grid operations; they do not consider the unit commitment problem. Commercial software is indicated in italic.

Group Software/tools Functionalities

1 MATPOWER [15], pandapower [16], PYPOWER [17], PowerFactory [18], PowerWorld [19] Short-term grid operations without unit commitment
2 GENESYS [20], UC/ED [21], CAPOW [22], urbs [23], PROMOD [24] Unit commitment with no or lumped representation of transmission networks
3 PSAT [13], PyPSA [5], PowNet, PLEXOS [25] Unit commitment with full representation of transmission networks

In this paper, we contribute to this growing field by introducing PowNet, a UC/ED modelling tool specifically designed for studying large-scale systems characterized by the presence of variable renewable resources. PowNet builds on the UC/ED model first presented by [21], and complements it with a comprehensive representation of the high-voltage transmission lines. PowNet has several desirable features. First, it bases the power flow calculation on a Direct Current (DC) network; this choice strikes a reasonable balance between modelling accuracy, data availability, and computational requirements. This is particularly important for model simulations carried out over extensive spatial and temporal domains. Moreover, it should be noted that the errors introduced by DC flow approximation of AC systems is generally negligible, except for high load periods with increased reactive power flow [26, 27]. To address the effects of these periods in the model, PowNet incorporates an N-1 criterion, which leaves part of the transmission lines’ capacity unused, allowing for any hypothetical reactive power flows [27, 28]. Second, PowNet accounts for the potential effects of hydroclimatic variability on system dynamics in the UC/ED model. Users can soft link PowNet with any model able to process hydroclimatic data and provide information on the status of renewable and non-renewable resources. Third, PowNet explicitly models export/import nodes as substations and generators, which are key components of cross-border interconnections. Fourth, PowNet is fully written in Python, a programming language that should enhance its dissemination and transferability to other systems of interest.

The next section describes the mathematical formulation of PowNet, while its Python implementation and architecture are described in Section 3. Section 4 discusses quality control and presents a sample implementation for the Cambodian power system. Concluding remarks are outlined in Section 5.


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 (‘on/off’) 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 dispatchable units and variable renewable resources (e.g., hydro, solar, wind) in a manner that meets the system’s demand at a minimum cost. As illustrated in Figure 1, the electricity available from variable renewable resources is a model input that can be obtained from existing data or simulated by a separate model (e.g., a hydrological-hydraulic model that estimates available hydropower). PowNet can also include import substations 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. The UC/ED formulation is structured as 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 2).

Figure 1 

Graphical representation of PowNet. Black and red boxes represent input and output elements, respectively. Grey boxes represent elements not included in the model.

Objective function and decision variables

The mathematical objective of the UC/ED function in PowNet is to meet hourly electricity demand at each node (substation) while minimizing production costs over a user defined operating horizon, e.g. 24 hours (t ∈ T). The production costs of the dispatchable units (g ∈ G) depend on their fixed operation and maintenance (O&M) costs (FixedCostg), start-up costs (StartCostg), variable costs from fuel consumption (a product of a plant’s heat rate (HeatRateg) and fuel price (FuelPriceg)), and variable O&M costs (VarCostg). The shut-down costs of the units are generally negligible when compared to the other costs [29], and are thus not considered in our model. The cost of imported electricity depends on the import price (ImportPricei), which is pre-specified for each import source (i ∈ I). The production costs of the rn-th variable renewable resource (rn ∈ RN) depend on the unit production cost (UnitCostrn), which is typically smaller than the one of the dispatchable unit [21]. The objective function is thus formulated as follows:


where ONg,t and Switchg,t are two decision variables describing the operational status (i.e., on/off, and whether a unit is started-up or shut-down) of the g-th dispatchable unit at hour t. Elecg,t, Eleci,t, and Elecrn,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 VoltAnglen,t at each node n of the network (needed to estimate power flows through each transmission line), and the provision of spinning and non-spinning reserves SpinResg,t and NonSpinResg,t.


The scheduling of hourly electricity production at each power plant is subject to multiple constraints, which collectively account for the technical specifications of generating units (i.e., capacity, minimum up/down time, ramping limit), energy balance at each node (approximation of Kirchoff’s Current Law), capacity and susceptance of the transmission lines, transmission line losses and N-1 criterion, and minimum requirements of spinning and non-spinning reserves.

Logical constraints

Similar to [21], we adopt a set of logical constraints to bind the operational status of the various power plant units. First, we introduce a constraint (equation (2)) on the operational status of the dispatchable units, which uses the on/off status of a generator in consecutive hours to determine the value of the Switch variable (i.e., whether a plant is started in hour t):


The binary variable ONg,t determines whether the g-th dispatchable unit is on- or off-line in hour t, while Switchg,t indicates whether an off-line unit must be started up.

The operational status of each unit is also constrained by the minimum up and down times (MinUpTimeg and MinDownTimeg) as follows:


Over a planning horizon T, equations (3) and (4) 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

After a plant has been started, its ability to ramp (increase or decrease) power production on an hour-to-hour basis is constrained by pre-specified limits. Ramping limits on the g-th unit (Rampg) are constrained by equations (5) and (6):


In other words, equations (5) and (6) ensure that the increase or decrease of the power generation during two consecutive hours (Elecg,t and Elecg,t–1) is below the ramping limit (Rampg) of the g-th unit.

Capacity constraints

Equation (7) accounts for the minimum and maximum capacity of the generating units. In particular, equation (7) indicates that the hourly electricity production Elecg,t from the g-th dispatchable unit is bounded by its minimum and maximum capacity (MinCapg and MaxCapg):


The term DerateFg,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 DerateFg,t is one, but it can be modified to a smaller value if water availability becomes a limiting factor. Note that the values of DerateFg,t must be supplied by the user; a variety of methods can be used to calculate these values [30, 31].

Similarly, the hourly electricity import Eleci,t from the i-th import source is constrained by the maximum allowable import (MaxCapi), as indicated by equation (8):


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


The value of RenewAvailrn,t is generally modelled through the use of hydroclimatic data. For example, the available hydro-electricity can be estimated by feeding a hydrological-hydraulic model with rainfall and air temperature data [32]. Similarly, the electricity available at wind and solar power plants can be simulated by harnessing data on wind speed [33] and solar radiation [34].

Energy balance

Equation (10) applies the energy balance at each node n connected to any other node k of the power system [10]. The left-hand side of equation (10) accounts for (1) the electricity inputs (Elecn,t) from the available power plants and/or import-sources connected to n, and (2) the electricity used to meet domestic demand or export (Demandn,t or Exportn,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 (VoltAnglen,t and VoltAnglek,t), where the susceptance of the transmission line (LineSusn,k) is the proportionality constant [35]. Note that the voltage angles are decision variables that are optimized by PowNet for each node and hour. 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 [10]. 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 [36]). Equation (10) is formulated as:


The hourly demand (and export) time series at the substations are direct inputs to the model. These data can be obtained from observed records (see Section 4.1) or modelled as a function of relevant factors, such as population and temperature [3].

Transmission capacity constraints

With equation (11), 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 (LineCapn,k), thereby leaving the remaining fraction as a safety margin:


A common value for the parameter N1Criterion is 75% (c.f., [28]). As illustrated in Appendix A, the parameters LineCapn,k and LineSusn,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%, [36]), and (2) the minimum spinning reserve is a predefined percentage of the total reserve (e.g., SpinMargin = 50%, [21]):


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 ‘’, ‘’, and ‘PowNetSolver.ipynb’. ‘’ contains the main model structure, with the objective function and constraints described in Section 2. The model structure is based on the Pyomo optimization package [37]. ‘’ 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 2.2). 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 ‘’.

Quality control

Thus far, PowNet has been tested on the Laotian and Thai power systems [38, 39, 40]. 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.


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 2) [41]. 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 [29, 41, 42]. (Further details about the estimation of the transmission parameters are given in Appendix A.) We also added a hypothetical ‘slack’ generator to the substation with the highest demand. Its role is to account for the shortage of electricity generation in the system by dispatching electricity as needed to prevent a shortfall (program crash), but with a very high production cost [21]. Thus, the ‘slack’ generator was arbitrarily assigned large values of capacity, ramping limits, and cost parameters, and small values of up/down time.

Figure 2 

Main generation and transmission components of the Cambodian power system, as of 2016. The dashed lines denote components that are either planned or under construction.

Table 2

Notations used to describe PowNet.

Indices and sets

n any node in the system
N set of all nodes in the system
g dispatchable unit
G set of all dispatchable units
i import node
I set of all import nodes
rn variable renewable resource (e.g., hydro, wind, solar)
RN set of all variable renewable resources
k sink node connected by the transmission line to any node n
t time-step (hour, h)
T planning horizon (e.g., 24 h)
Parameters of the dispatchable units (g)

MaxCapg maximum capacity (MW)
MinCapg minimum capacity (MW)
FixedCostg fixed O&M cost ($)
StartCostg start-up cost ($/start)
HeatRateg heat rate (MMBtu/MWh)
FuelPriceg price of fuel ($/MMBtu)
VarCostg variable O&M cost ($/MWh)
Rampg ramping limit (MW/h)
MinUpTimeg minimum up time (h)
MinDownTimeg minimum down time (h)
Parameters of the import nodes (i)

MaxCapi maximum allowable import (MW)
ImportPricei price of imported electricity ($/MWh)
Parameters of the transmission network

LineSusn,k susceptance (Siemens) of the transmission line between nodes n and k
LineCapn,k capacity (MW) of the transmission line between nodes n and k
Input time series (hourly)

RenewAvailrn,t available electricity (MWh) from the rn-th renewable resource
Demandn,t electricity demand (MWh) (or export) at any node n
Decision variables (at each hour t)

ONg,t binary (0,1) variable indicating if unit g is online (1) or offline (0)
Switchg,t binary (0,1) variable indicating if unit g must be started-up (Switchg,t =1 only when ONg,t-1 = 0 is followed by ONg,t = 1)
Elecg*,t electricity (MWh) generated by dispatchable unit g (*or any other powerplant)
VoltAnglen,t voltage angle (radian) at any node n
SpinResg,t spinning reserve (MWh) at unit g
NonSpinResg,t non-spinning reserve (MWh) at unit g

We also extracted data on monthly peak electricity demand by province from [41]. Then, the province peak 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, a threshold for the N-1 criterion equal to 75% of the line’s capacity, and a 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). Specifically, we used the price of imported electricity from Vietnam and Thailand [41] and slightly adjusted the price of coal and oil, so that the model could reproduce the 2016 annual generation mix with an error of about 5%. 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.


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 collectively represent information useful in the planning, operation, and management of power systems. For example, detailed information on plants’ operational statuses 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 3, 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 system-wide electricity generation is largely sourced from coal-fired power plants and imports. 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 2.2. 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., [3, 30]).

Figure 3 

Daily generation mix for 2016.

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 4, which depicts the annual average usage of each line. Results indicate that line 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.

Figure 4 

Annual average usage of the transmission lines, expressed as a percentage of the lines’ capacity. The radar chart shows the monthly average and maximum usage of the line connecting Kampot to Takoe (one of the lines with relatively high usage).

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 4) 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 5 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 CO2 emissions. The former are estimated from the hourly operating status and production of the generating units (simulated by PowNet), as well as the economic parameters and fuel prices. The latter are calculated by applying the rates of 1.04 tonne/MWh and 0.73 tonne/MWh to the production time series of the coal and oil units [43]. 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.

Figure 5 

Simulation results obtained with the ‘existing’ and ‘altered’ transmission networks. System’s performance is measured in terms of generation mix, electricity shortage, operating costs, and CO2 emissions.

Limitations and suggested future work

In the current version of PowNet, information about the amount of electricity available from hydropower reservoirs must be retrieved from a separate model, such as a hydrological-hydraulic model (e.g., VIC-ResOpt [44]). In these models, release decisions from dams—and, therefore, hydropower availability—are determined by bespoke operating rules that optimize long-term energy production. Such rules generally depend on water availability and environmental constraints, but do not consider external, yet potentially important, factors, such as the cost of coal and gas or the status of other generating units. Our future work will focus on coupling hydrologic-hydraulic models and PowNet, so as to condition dam operations on the entire state of the power system. This is also important for systems characterized by the presence of other renewables: for example, release from hydropower reservoirs could be informed by the real-time dispatch of wind and solar power.


PowNet is a least-cost optimization model for simulating the operations of national and regional power systems. The model formulates grid operations as a UC/ED, which 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 was conceived for studying large-scale systems characterized by the presence of variable renewable resources, and can easily incorporate information on the effect of hydroclimate variability 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



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:

Licence: MIT

Publisher: AFM Kamal Chowdhury

Version published: v1.1

Date published: 27-September-2019

Code repository

Name: GitHub

Persistent identifier:

Licence: MIT

Date published: 27-September-2019



(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.


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 [35]:


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 Dm can be considered equal to the centre-to-centre distance D (m) between any two conductors [10]. D is calculated as a function of the voltage level (kV), as recommended by [45, 46]:


The GMR associated with line is calculated as follows [10]:


where, rj is the radius of any conductor j, and dc,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 [41, 47].

B. Simulation of hydropower availability

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


where c is a runoff coefficient, It the rainfall intensity (mm/day), and A the drainage area of each dam (km2). 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.

Table B1

Design specifications of the Cambodian hydropower dams.

Name Installed capacity Dam height Storage Design discharge Hydraulic head Basin area Runoff coefficient
(MW) (m) (Mm3) (m3/s) (m) (km2)

Kamchay 194.1 110 680 163.5 122 710 0.62
Kirirom I 12 34 30 20 373.5 99 0.48
Kirirom III 18 40 30 40 271 105 0.48
L.R. Chrum 338 68 62 300 132 1,550 0.51
Stung Atay 240 45 443.8 125 216 1,157 0.75
Stung Tatay 246 77 322 150 188 1,073 0.71

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

s.t. 0StScap,

where St, Qt, and Rt represent the water storage, inflow, and release at time t. Scap is the capacity of the reservoir. To calculate the release Rt, we adopted rule curves balancing hydropower production [50] and environmental flows [51].

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


where hydropowert 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 Ht the hydraulic head at time t (calculated from the storage St). The daily time series of available hydropower was transformed into an hourly time series by assuming equal water availability throughout a single day.

Competing Interests

The authors have no competing interests to declare.


  1. Gielen, D, Boshell, F, Saygin, D, Bazilian, M D, Wagner, N and Gorini, R 2019 The role of renewable energy in the global energy transformation. Energy Strategy Reviews, 24: 38–50. DOI: 

  2. Welsch, M, Deane, P, Howells, M, Gallachóir, B Ó, Rogan, F, Bazilian, M and Rogner, H-H 2014 Incorporating flexibility requirements into long-term energy system models–A case study on high levels of renewable electricity penetration in Ireland. Applied Energy, 135: 600–615. DOI: 

  3. Su, Y, Kern, J D and Characklis, G W 2017 The impact of wind power growth and hydrological uncertainty on financial losses from oversupply events in hydropower-dominated systems. Applied Energy, 194: 172–183. DOI: 

  4. Ringkjøb, H-K, Haugan, P M and Solbrekke, I M 2018 A review of modelling tools for energy and electricity systems with large shares of variable renewables. Renewable and Sustainable Energy Reviews, 96: 440–459. DOI: 

  5. Brown, T, Hörsch, J and Schlachtberger, D 2018 PyPSA: Python for Power System Analysis. Journal of Open Research Software, 6(1). DOI: 

  6. Dai, J, Wu, S, Han, G, Weinberg, J, Xie, X, Wu, X, Song, X, Jia, B, Xue, W and Yang, Q 2018 Water-energy nexus: A review of methods and tools for macroassessment. Applied Energy, 210: 393–408. DOI: 

  7. van Vliet, M T H, Wiberg, D, Leduc, S and Riahi, K 2016 Power-generation system vulnerability and adaptation to changes in climate and water resources. Nature Climate Change, 6: 375–380. DOI: 

  8. Turner, S W D, Ng, J Y and Galelli, S 2017 Examining global electricity supply vulnerability to climate change using a high-fidelity hydropower dam model. Science of The Total Environment, 590–591: 663–675. DOI: 

  9. Turner, S W D, Voisin, N, Fazio, J, Hua, D and Jourabchi, M 2019 Compound climate events transform electrical power shortfall risk in the Pacific Northwest. Nature Communications, 10: 1–8. DOI: 

  10. Conejo, A J and Baringo, L 2018 Power system operations. Springer, 1st. edition. DOI: 

  11. Deane, J P, Chiodi, A, Gargiulo, M and Gallachóir, B P Ó 2012 Soft-linking of a power systems model to an energy systems model. Energy, 42(1): 303–312. DOI: 

  12. Savvidis, G, Siala, K, Weissbart, C, Schmidt, L, Borggrefe, F, Kumar, S, Pittel, K, Madlener, R and Hufendiek, K 2019 The gap between energy policy challenges and model capabilities. Energy Policy, 125: 503–520. DOI: 

  13. Milano, F 2005 An open source power system analysis toolbox. IEEE Transactions on Power Systems, 20(3): 1199–1206. DOI: 

  14. O’Connell, M A, Voisin, N, Macknick, J E and Fu, T 2019 Sensitivity of Western U.S. power system dynamics to droughts compounded with fuel price variability. Applied Energy, 247: 745–754. DOI: 

  15. Zimmerman, R D, Murillo-Sánchez, C E and Thomas, R J 2011 MATPOWER: Steady-state operations, planning, and analysis tools for power systems research and education. IEEE Transactions on Power Systems, 26(1): 12–19. DOI: 

  16. Thurner, L, Scheidler, A, Schäfer, F, Menke, J, Dollichon, J, Meier, F, Meinecke, S and Braun, M 2018 Pandapower–an open-source Python tool for convenient modeling, analysis, and optimization of electric power systems. IEEE Transactions on Power Systems, 33(6): 6510–6521. DOI: 

  17. Lincoln, R 2019 PYPOWER: port of MATPOWER in Python. URL:, last accessed on 25/12/2019. 

  18. DIgSILENT 2019 PowerFactory. URL:, last accessed on 25/12/2019. 

  19. PowerWorld Corporation 2019 PowerWorld. URL:, last accessed on 05/09/2019. 

  20. RWTH Aachen University 2019 GENESYS – energy system pathway optimization. URL:, last accessed on 25/12/2019. 

  21. Kern, J D and Characklis, G W 2017 Evaluating the financial vulnerability of a major electric utility in the Southeastern U.S. to drought under climate change and an evolving generation mix. Environmental Science & Technology, 51(15): 8815–8823. DOI: 

  22. Su, Y, Kern, J D, Denaro, S, Hill, J, Reed, P, Sun, Y, Cohen, J and Characklis, G W 2020 An open source model for quantifying risks in bulk electric power systems from spatially and temporally correlated hydrometeorological processes. Environmental Modelling & Software, 104667. DOI: 

  23. Dorfner, J, Dorfner, M, Candas, S, Müller, S, Özsahin, Y, Zipperle, T, Herzog, S, Icedkk and Wyaudi 2016 urbs: v0.6. Zenodo. DOI: 

  24. ABB 2019 PROMOD – fundamental electric market simulation solution. URL:, last accessed on 25/12/2019. 

  25. Energy Exemplar 2019 PLEXOS simulation software. URL:, last accessed on 25/12/2019. 

  26. Stott, B, Jardim, J and Alsac, O 2009 DC power flow revisited. IEEE Transactions on Power Systems, 24(3): 1290–1300. DOI: 

  27. Brown, T, Schierhorn, P, Tröster, E and Ackermann, T 2016 Optimising the European transmission system for 77% renewable electricity by 2030. IET Renewable Power Generation, 10(1): 3–9. DOI: 

  28. Schlecht, I and Weigt, H 2014 Swissmod – a model of the Swiss electricity market. FoNEW Discussion Paper, 31. DOI: 

  29. Truby, J 2014 Thermal power plant economics and variable renewable energies: A model-based case study for Germany. Technical report, International Energy Agency (IEA). 

  30. Voisin, N, Kintner-Meyer, M, Skaggs, R, Nguyen, T, Wu, D, Dirks, J, Xie, Y and Hejazi, M 2016 Vulnerability of the U.S. western electric grid to hydroclimatological conditions: How bad can it get? Energy, 115: 1–12. DOI: 

  31. Lubega, W N and Stillwell, A S 2018 Maintaining electric grid reliability under hydrologic drought and heat wave conditions. Applied Energy, 210: 538–549. DOI: 

  32. Dang, T D, Chowdhury, A K and Galelli, S 2020 On the representation of water reservoir storage and operations in large-scale hydrological models: Implications on model parameterization and climate change impact assessments. Hydrology and Earth System Sciences, 24: 397–416. DOI: 

  33. Papavasiliou, A, Oren, S S and Aravena, I 2015 Stochastic modeling of multiarea wind power production. In: 2015 48th Hawaii International Conference on System Sciences, 2616–2626. DOI: 

  34. Blair, N, Dobos, A, Freeman, J, Neises, T, Wagner, M, Ferguson, T, Gilman, P and Janzou, S 2014 System advisor model, SAM 2014.1.14: General description. URL:, last accessed on 05/09/2019. DOI: 

  35. Bergen, A R and Vittal, V 1999 Power systems analysis. New Jersey: Prentice Hall, Upper Saddle River, 2nd. edition. 

  36. Guerra, O J, Tejada, D A and Reklaitis, G V 2016 An optimization framework for the integrated planning of generation and transmission expansion in interconnected power systems. Applied Energy, 170: 1–21. DOI: 

  37. Hart, W E, Paul, W J and David, L W 2011 Pyomo: Modeling and solving mathematical programs in Python. Mathematical Programming Computation, 3: 219–260. DOI: 

  38. Chowdhury, A K, Dang, T D and Galelli, S 2018 Coupling hydrologic and network constrained unit commitment models to understand the water-energy nexus in Laos. Presented in AGU Fall Meeting 2018, Washington D.C. URL: 

  39. Galelli, S, Chowdhury, A K and Dang, T D 2019 A coupled water-energy model reveals key interdependencies between hydro-climatic variability, energy generation, and power distribution in the Greater Mekong Subregion. Presented in EGU General Assembly 2019, Vienna. URL: 

  40. Chowdhury, A K, Dang, T D and Galelli, S 2019 Impacts of hydro-climatic variability on the energy system of the Greater Mekong Sub-region. Presented in AOGS Annual Meeting 2019, Singapore. 

  41. EDC 2016 Annual report 2016. Technical report, Electricite Du Cambodge (EDC). 

  42. EIA 2016 Average tested heat rates by prime mover and energy source, 2007–2016 (Form EIA-860, annual electric generator report). Technical report, U.S. Energy Information Administration (EIA). 

  43. Mittal, M L, Sharma, C and Singh, R 2014 Decadal emission estimates of carbon dioxide, sulfur dioxide, and nitric oxide emissions from coal burning in electric power generation plants in India. Environmental Monitoring and Assessment, 186(10): 6857–6866. DOI: 

  44. Dang, T D, Vu, D T, Chowdhury, A K and Galelli, S 2020 A software package for the representation and optimization of water reservoir operations in the VIC hydrologic model. Environmental Modelling & Software. DOI: 

  45. Barthold, L O, Clayton, R E, Grant, I S, Longo, V J, Stewart, J R and Wilson, D D 1978 Transmission line reference book: 115–138 kV compact line design. Technical report, Palo Alto, CA: Electric Power Research Institute, Inc. 

  46. MacCarthy, D D 1968 EHV Transmission Line Reference Book. Project EHV, General Electric Company, Edison Electric Institute. 

  47. JICA 2014 Final report: Preparatory survey for Phnom Penh city transmission and distribution system expansion project phase ii in the Kingdom of Cambodia. Technical report, Japan International Cooperation Agency (JICA). 

  48. Middleton, C and Chanthy, S 2008 Cambodia’s hydropower development and China’s involvement. Technical report, International Rivers. 

  49. Men, P, Thun, V, Yin, S and Lebel, L 2014 Benefit sharing from Kamchay and Lower Sesan 2 hydropower watersheds in Cambodia. Water Resources and Rural Development, 4: 40–53. DOI: 

  50. Piman, T, Cochrane, T A, Arias, M E, Green, A and Dat, N D 2013 Assessment of ow changes from hydropower development and operations in Sekong, Sesan, and Srepok Rivers of the Mekong basin. Journal of Water Resources Planning and Management, 139(6): 723–732. DOI: 

  51. Kuriqi, A, Pinheiro, A N, Sordo-Ward, A and Garrote, L 2019 Influence of hydrologically based environmental flow methods on flow alteration and energy production in a run-of-river hydropower plant. Journal of Cleaner Production, 232: 1028–1042. DOI: 

comments powered by Disqus