(1) Overview

Introduction

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) []. 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 [, ]. These challenges have prompted the development of several modelling tools for energy and electricity systems; see [] 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 [].

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 []. 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 [, , ].

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 []. 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 [, ]. To explicitly account for electricity transmission in a UC/ED exercise, one can only rely on a handful of models, namely PSAT [], PyPSA [], and PLEXOS []. 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.

GroupSoftware/toolsFunctionalities

1MATPOWER [], pandapower [], PYPOWER [], PowerFactory [], PowerWorld []Short-term grid operations without unit commitment
2GENESYS [], UC/ED [], CAPOW [], urbs [], PROMOD []Unit commitment with no or lumped representation of transmission networks
3PSAT [], PyPSA [], PowNet, PLEXOS []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 [], 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 [, ]. 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 [, ]. 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.

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 (‘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 [], 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 []. The objective function is thus formulated as follows:

(1)
mint=1TgGFixedCostg×ONg,t+Elecg,t×(HeatRateg×FuelPriceg+VarCostg)+StartCostg×Switchg,t+iIEleci,t×ImportPricei+rnRNElecrn,t×UnitCostrn,

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.

Constraints

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 [], 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):

(2)
Switchg,t1ONg,t1(1ONg,t);ONg,tϵ{0,1},Switchg,tϵ{0,1},g,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:

(3)
ONg,tONg,t1ONg,j;g,tϵ{2to(T1)},t<jmin(t+MinUpTimeg1,T),
(4)
ONg,t1ONg,t1ONg,j;g,tϵ{2to(T1)},t<jmin(t+MinDownTimeg1,T).

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

(5)
Elecg,tElecg,t1Rampg;g,t,
(6)
Elecg,t1Elecg,tRampg;g,t.

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

(7)
MinCapg×ONg,tElecg,tMaxCapg×ONg,t×DerateFg,t;g,t.

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 [, ].

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

(8)
0Eleci,tMaxCapi×ONi,t;i,t.

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

(9)
0Elecrn,tRenewAvailrn,t;rn,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 []. Similarly, the electricity available at wind and solar power plants can be simulated by harnessing data on wind speed [] and solar radiation [].

Energy balance

Equation (10) applies the energy balance at each node n connected to any other node k of the power system []. 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 []. 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 []. 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 []). Equation (10) is formulated as:

(10)
(1TransLoss)×Elecn,tDemandn,t(Exportn,t)=kϵNLineSusn,k×VoltAnglen,tVoltAnglek,t;n,t.

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 [].

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:

(11)
N1Criterion×LineCapn,kLineSusn,k×VoltAnglen,tVoltAnglek,tN1Criterion×LineCapn,k;n,t,kϵN.

A common value for the parameter N1Criterion is 75% (c.f., []). 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%, []), and (2) the minimum spinning reserve is a predefined percentage of the total reserve (e.g., SpinMargin = 50%, []):

(12)
gGSpinResg,t+NonSpinResg,tResMargin×nNDemandt;t,
(13)
gGSpinResg,tSpinMargin×ResMargin×nNDemandt;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 2. The model structure is based on the Pyomo optimization package []. ‘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 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 ‘PowNetDataSetup.py’.

Quality control

Thus far, PowNet has been tested on the Laotian and Thai 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 2) []. 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 [, , ]. (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 []. 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

nany node in the system
Nset of all nodes in the system
gdispatchable unit
Gset of all dispatchable units
iimport node
Iset of all import nodes
rnvariable renewable resource (e.g., hydro, wind, solar)
RNset of all variable renewable resources
ksink node connected by the transmission line to any node n
ttime-step (hour, h)
Tplanning horizon (e.g., 24 h)
Parameters of the dispatchable units (g)

MaxCapgmaximum capacity (MW)
MinCapgminimum capacity (MW)
FixedCostgfixed O&M cost ($)
StartCostgstart-up cost ($/start)
HeatRategheat rate (MMBtu/MWh)
FuelPricegprice of fuel ($/MMBtu)
VarCostgvariable O&M cost ($/MWh)
Rampgramping limit (MW/h)
MinUpTimegminimum up time (h)
MinDownTimegminimum down time (h)
Parameters of the import nodes (i)

MaxCapimaximum allowable import (MW)
ImportPriceiprice of imported electricity ($/MWh)
Parameters of the transmission network

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

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

ONg,tbinary (0,1) variable indicating if unit g is online (1) or offline (0)
Switchg,tbinary (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*,telectricity (MWh) generated by dispatchable unit g (*or any other powerplant)
VoltAnglen,tvoltage angle (radian) at any node n
SpinResg,tspinning reserve (MWh) at unit g
NonSpinResg,tnon-spinning reserve (MWh) at unit g

We also extracted data on monthly peak electricity demand by province from []. 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 [] 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.

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., [, ]).

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

Conclusions

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

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.