Free Simulation Tools
Free Simulation Tools
Abstract. The analysis of Power Quality issues and/or • Generation and demand planning.
the integration of renewable energy into the grid requires • Analysis of the current state of the network and possible
the use of different tools, among which the use of computer contingencies.
simulation applications stands out. The basic objective is • Data acquisition systems, monitoring, and control
to obtain a model of the electrical system under study that (SCADA).
allows for knowledge, with a reasonable degree of preci-
sion, of its behavior under different operating conditions.
The benefits of these tools are manifold, since they allow us 2. Theoretical background
to understand the response of the system, both in transient
and steady-state conditions, to situations that are difficult The field of simulation of electric power systems is classi-
to reproduce in practice: short circuits, failures in gen- cal enough that there exists a significant set of bibliographic
eration, transmission and distribution infrastructures, etc. references. Below are provided some references that can
Additionally, these tools can be used as platforms for opera- help the reader to understand the fundamentals of simulat-
tor training and network planning. Currently, a wide variety ing electric power systems, both in the time and frequency
of commercial tools that are de facto standards can be found domain.
on the market. Some of these tools have a high cost and
cannot be used by students outside the academic environ- • Time domain. [1–5]
ment. In parallel, and thanks to the efforts of the scientific • Frequency domain. [4, 5]
community, simulation tools have been developed that are
available free of cost under several licensing models. This
contribution analyzes some of the available tools, with spe- 3. Grid exchange formats
cial attention to those that are published under several open
source and academic non-commercial software licenses that Although there is no single standardized format for
are available to the academic community free of cost. exchanging information and defining networks in power
system simulators, there are some formats that are recog-
Key words. Computer Simulation Tools, Open-source nized as de facto standards:
Software, Electromagnetic Transients Program, Power Flow
Software CIM-CGMES The Common Grid Model Exchange Spec-
ification (CGMES) is a set of IEC stan-
dard based on the IEC Common Information
1. Introduction Model (CIM). This information model was
designed by TSO data exchanges in appli-
Since the appearance of the first digital computers in the cation devoted to system development and
1960s, the development of tools for simulating power elec- operation.
trical systems has experienced continuous evolution. In the UCTE-DEF The Union for the Co-ordination of Trans-
initial stage, the scarcity of computational resources moti- mission of Electricity Data Exchange Format
vated engineers and scientists to focus their efforts on the (UCTE-DEF) is an exchange format speci-
development of simple models and efficient algorithms. fied by the UCTE with the aim of facilitat-
Furthermore, the capabilities of the machines limited their ing the exchange of grid model among its
use to offline simulation tasks, that is, to design and resource members.
analysis tasks. In that sense, this initial effort has made it XIIDM The iTesla Internal Data Model (IIDM) is a
possible with the current capabilities of computers to use format designed by the iTesla project. The
these tools for real-time control of power electrical systems. aim of this format is not only the exchange
This fact has also allowed them to be used in real- of grid information but also the management
time network operation tasks, which represents a signifi- of simulation results.
cant qualitative change. In this sense, the most common PSS/E This set of formats were defined by Siemens.
management applications are: One of them is the RAW format, that
Website: https://www.pandapower.org/
The tool Python for Power System Analysis (PyPSA) is License: BSD (3-clauses)
and open source toolbox for the simulation and optimization Source Code: https://github.com/e2nIE
of both power and energy systems [11]. PyPSA is developed E/pandapower
and maintained by the Department of Digital Transfor-
mation in Energy Systems at the Technical University of
Berlin. PyPSA includes many features: PandaPower is an open source tool for power system
modeling, analysis and optimization written in Python as
• Power Flow. a package [15]. The is published under BSD (3-clauses).
• Linear and Security-constrained Linear Optimal Power PandaPower includes many features:
Flow.
• Total electricity/energy system least-cost investment • Power Flow.
optimization. • Optimal Power Flow.
• State Estimation.
4.6 GridCal • Short-Circuit Calculation.
4.9 ATP-EMTP
Website: https://github.com/SanPen/Gr
idCal
License: LGPL Website: https://atp-emtp.org/
Source Code: https://github.com/SanPe License: Proprietary license
n/GridCal Source Code: Not available for general users
GridCal is a tool developed by Santiago Peñate Vera EMTP is a transient electromagnetic simulation program
[12]. GridCal has been written in Python with a Qt GUI. It focused on power systems. Theoretical development is sup-
also has a console Python console that allows some degree ported by pioneering work such as that of H. Dommel
of automation. It is licensed under the LGPL license and [1, 16]. Both ATPDraw (GUI pre-processor) and ATPSolver
includes many features: can be used for both research and teaching free of cost. The
only requirement is to be registered at the EEUG organi-
• Power Flow. zation. In summary, the electrical system is represented by
• Optimal Power Flow and Generation Dispatch. its admittance matrix and solved using the trapezoidal rule.
• MonteCarlo stochastic Power Flow. The combined use of the method of characteristics and the
• Three-phase and unbalanced short circuit. trapezoidal rule allows solving models that integrate both
• Blackout cascading in simulation and step by step concentrated and distributed parameters. Later on, other
mode. scientists such as W. Scott Meyer joined the initial devel-
opment by Professor Dommel. Subsequently, this collective
4.7 GridLAB-D effort involved, among others, A. Ametani, V. Brandwajn,
L. Dubé, J. R. Marti, and A. Semlyen. Nowadays, it is pos-
sible to access this tool for free for academic use thanks to
the EEUG group led by Professor Hans Kr. Høidalen from
Website: https://www.gridlabd.org/ NTNU in Norway. From this original idea of trapezoidal
License: Proprietary license (BSD-style) integration, other commercial variants have been developed
Source Code: https://github.com/gridl which are not included here as they require the payment of
ab-d/gridlab-d licenses:
import p a n d a p o w e r a s pp
# c r e a t e empty n e t
n e t = pp . c r e a t e _ e m p t y _ n e t w o r k ( )
# create buses
BusMT01 = pp . c r e a t e _ b u s ( n e t , vn_kv = 1 2 . , name= " BusMT01 " )
BusBT01 = pp . c r e a t e _ b u s ( n e t , vn_kv = 0 . 4 , name= " BusBT01 " )
BusBT02 = pp . c r e a t e _ b u s ( n e t , vn_kv = 0 . 4 , name= " BusBT02 " )
BusBT03 = pp . c r e a t e _ b u s ( n e t , vn_kv = 0 . 4 , name= " BusBT03 " )
# create switches
f r o m _ b u s = pp . g e t _ e l e m e n t _ i n d e x ( n e t , " b u s " , " BusBT02 " )
t o _ b u s = pp . g e t _ e l e m e n t _ i n d e x ( n e t , " b u s " , " BusBT03 " )
S w i t c h 0 1 = pp . c r e a t e _ s w i t c h ( n e t , from_bus , t o _ b u s , e t = " b " ,
c l o s e d = F a l s e , t y p e = "DS" , name= " S w i t c h 0 1 " )
# c r e a t e bus e l e m e n t s
r e d 1 = pp . c r e a t e _ e x t _ g r i d ( n e t , b u s =BusMT01 , vm_pu = 1 . 0 0 ,
name= " G r i d C o n n e c t i o n " )
C a r g a 0 1 = pp . c r e a t e _ l o a d ( n e t , b u s =BusBT03 , p_mw = 0 . 1 2 0 , q_mvar = 0 . 0 5 ,
name= " C a r g a 0 1 " )
GeneradorFV01 = pp . c r e a t e _ s g e n ( n e t , b u s =BusBT02 , p_mw = 0 . 1 , q_mvar =0 ,
sn_mva = 0 . 1 2 , t y p e = ’PV ’ , name= ’ GeneradorFV01 ’ )
# c r e a t e branch e l e m e n t s
# T r a f o 0 1 = pp . c r e a t e _ t r a n s f o r m e r ( n e t , h v _ b u s=BusMT01 , l v _ b u s =BusBT01 ,
s t d _ t y p e = " 0 . 4 MVA 2 0 / 0 . 4 kV" , name= " T r a f o 0 1 " )
T r a f o 0 1 = pp . c r e a t e _ t r a n s f o r m e r _ f r o m _ p a r a m e t e r s ( n e t , BusMT01 , BusBT01 ,
sn_mva = . 2 5 , vn_hv_kv =12 , v n _ l v _ k v = 0 . 4 , v k r _ p e r c e n t = 1 . 4 2 5 ,
v k _ p e r c e n t =6 , pfe_kw = 1 . 3 5 , i 0 _ p e r c e n t = 0 . 2 3 7 5 , t a p _ s i d e = " hv " ,
t a p _ n e u t r a l =0 , t a p _ m i n = −2 , tap_max =2 , t a p _ s t e p _ p e r c e n t = 2 . 5 ,
t p _ p o s =0 , s h i f t _ d e g r e e =150 , name= ’ T r a f o 0 1 ’ )
Fig. 2: Time snapshot and harmonic components of a cur-
L i n e a 0 1 = pp . c r e a t e _ l i n e ( n e t , f r o m _ b u s =BusBT01 , t o _ b u s =BusBT02 ,
rent demanded by a single phase controlled rectifier . l e n g t h _ k m = 0 . 1 , s t d _ t y p e = "NAYY 4 x50 SE " , name= " L i n e a 0 1 " )
L i n e a 0 2 = pp . c r e a t e _ l i n e ( n e t , f r o m _ b u s =BusBT01 , t o _ b u s =BusBT03 ,
l e n g t h _ k m = 0 . 1 , s t d _ t y p e = "NAYY 4 x50 SE " , name= " L i n e a 0 2 " )
MATPOWER
PYPOWER♦
GridLAB-D
ATP/EMTP
OpenDSS
GridCal
PyPSA
PSAT
Graphical User Interface X4 X X X
Time-domain X X
Frequency domain X X X X X X X X
Loads (constant Z, constant I, constant P) X X X X X X
Lines X X X X X X X X X
2-Winding Transformer (π model) X X X X X X X X X
2-Winding Transformer (T model) X X X X X X
3-Winding Transformer X X X X X
DC lines X X X X X X X
Ideal Switches X X X
Votage-controlled sources X X X X X X X X X
Static Load / Generation X X X X X X X X X
Shunt impedance X X X X X X X X X
Asymmetrical Impedance X X X
Ward equivalent (Combination of impedance and PQ loads) X X X
Storage Units X X X X X
Source code: Matlab X X X
Source code: Python X X X X X
Source code: Delphi X
Source code: C and C++ X X
Source code: FORTRAN X
BSD License X X X X
GPL X
LGPL X
MIT X
Proprietary license X X X
SCOPUS references 471 11 2,132 639 33 - 179 42 2,110
IEEEXplore references 310 8 627 457 9 - 134 25 784
(♦) Python version of MATPOWER.
(4) GUI based on MATLAB & Simulink.