Skip to main content

Convenient Power System Modelling and Analysis based on PYPOWER and pandas

Project description

Documentation Status

pandapower combines the data analysis library pandas and the power flow solver PYPOWER to create an easy to use network calculation program aimed at automation of analysis and optimization in power systems.

pandapower is a joint development of the research group Energy Management and Power System Operation, University of Kassel and the Department for Distribution System Operation at the Fraunhofer Institute for Wind Energy and Energy System Technology (IWES), Kassel.

Element Models

pandapower is an element based network calculation tool that supports the following components:

  • lines

  • two-winding and three-winding transformers

  • ideal bus-bus and bus-branch switches

  • static generators

  • ZIP loads

  • shunts

  • external grid connections

  • synchronous generators

  • DC lines

  • unsymmetric impedances

  • ward equivalents

Network Analysis

pandapower supports the following network analysis functions:

  • power flow

  • optimal power flow

  • state estimation

  • short-circuit calculation according to IEC 60909

  • topological graph searches

For more information, please refer to the documentation.

Installation notes can be found here, for a comfortable introduction into pandapower see the interactive tutorials.

If you are interested in getting release notes for new pandapower versions, please subscribe to the pandapower mailing list.

There is a project to develop a GUI for pandapower: - developers wanted!

Citing pandapower

We are currently working on publishing a paper about pandapower, which is available as a preprint on arxiv. Until the paper has passed peer-review, please acknowledge the usage of pandapower in your paper as follows:

   author = {{Thurner}, L. and {Scheidler}, A. and {Sch{\"a}fer}, F. and {Menke}, J.-H. and {Dollichon}, J. and {Meier}, F. and {Meinecke}, S. and {Braun}, M.},
   title = "{pandapower - an Open Source Python Tool for Convenient Modeling, Analysis and Optimization of Electric Power Systems}",
   year = 2017,
   url = {},
   note = {preprint}

Change Log

[1.4.1] - 2017-09-21

  • [FIXED] ZIP load issue that led to incorrect calculation of I part with voltage angle shifts

  • [FIXED] Bug that set voltage constraints to 0.9/1.2 if no voltage constraints was given in OPF

  • [ADDED] possibility to access J matrix after power flow

  • [ADDED] opf cost conversion and power system test cases

[1.4.0] - 2017-07-27

  • [ADDED] possibility to save networks to an sql database

  • [CAHNGED] major change in fileIO: all networks are converted to a uniform dataframe only version before they are saved as excel, json or sql. Old files can still be loaded, but all files saved with v1.4 can only be loaded with v1.4!

  • [FIXED] all tests now pass if numba is not installed (although pandapower might be slow without numba)

  • [FIXED] state estimation bug with phase shift transformers

  • [CHANGED] OPF now raises specific warning if parameters are missing instead of generic exception

  • [ADDED] geographical data for cigre and IEEE case networks

  • [ADDED] Dickert LV Networks

[1.3.1] - 2017-06-16

  • [CHANGED] to_pickle saves only python datatypes and no pickle objects

  • [ADDED] html representation of pandapower nets

  • [ADDED] collections for trafos, loads, ext_grids

  • [CHANGED] renamed create_shunt_as_condensator to create_shunt_as_capacitor

  • [FIXED] mock problem in create docstrings

  • [ADDED] Synthetic Voltage Control LV Networks

[1.3.0] - 2017-05-10

  • [ADDED] ZIP loads integrated in power flow

  • [ADDED] numba implementation of dissolving switch buses

  • [ADDED] Current source representation of full converter elements in short circuit calculations

  • [ADDED] Method C for calculation of factor kappa in short circuit calculation

  • [CHANGED] Speedup for calculation of branch short circuit currents

  • [CHANGED] Branch results for minimum short circuit calculations are calculated as minimal currents

  • [ADDED] Interactive plots with plotly

  • [CHANGED] included pypower files for power flow and index files

  • [FIXED] compatibility with numpy 1.12

  • [CHANGED] -1 is a valid value for net.bus_geodata.x

  • [CHANGED] allow transformers with negative xk to provide large scale IEEE cases (RTE, PEGASE, Polish)

  • [ADDED] large scale IEEE cases (RTE, PEGASE, Polish)

  • [ADDED] rated voltage and step variable for shunts

  • [ADDED] lagrange multiplier included in bus results after OPF

[1.2.2] - 2017-03-22

  • [CHANGED] Minor refactoring in pd2ppc

  • [ADDED] Technical Report

[1.2.1] - 2017-03-21

  • [FIXED] Readme for PyPi

[1.2.0] - 2017-03-21

  • [CHANGED] net.line.imax_ka to net.line.max_i_ka for consistency reasons

  • [ADDED] net.line.tp_st_degree for phase shift in trafo tap changers

  • [ADDED] sn_kva parameter in create_empty network for per unit system reference power

  • [ADDED] parameter parallel for trafo element

  • [ADDED] connectivity check for power flow to deal with disconnected network areas

  • [ADDED] backward/forward sweep power flow algorithm specially suited for radial and weakly-meshed networks

  • [ADDED] linear piece wise and polynomial OPF cost functions

  • [ADDED] possibility to make loads controllable in OPF

  • [ADDED] to_json and from_json functions to save/load networks with a JSON format

  • [ADDED] generator lookup to allow multiple generators at one bus

  • [CHANGED] Initialization of calculate_voltage_angles and init for high voltage networks

  • [ADDED] bad data detection for state estimation

  • [CHANGED] from_ppc: no detect_trafo anymore, several gen at each node possible

  • [CHANGED] validate_from_ppc: improved validation behaviour by means of duplicated gen and branch rearangement

  • [ADDED] networks: case33bw, case118, case300, case1354pegase, case2869pegase, case9241pegase, GBreducednetwork, GBnetwork, iceland, cigre_network_mv with_der=’all’ der

  • [ADDED] possibility to add fault impedance for short-circuit current calculation

  • [ADDED] branch results for short circuits

  • [ADDED] static generator model for short circuits

  • [ADDED] three winding transformer model for short circuits

  • [FIXED] correctly neglecting shunts and tap changer position for short-circuits

  • [ADDED] two phase short-circuit current calculation

  • [ADDED] tests for short circuit currents with validation against DIgSILENT PowerFactory

[1.1.1] - 2017-01-12

  • [ADDED] installation description and pypi files from github

  • [ADDED] automatic inversion of active power limits in convert format to account for convention change in version 1.1.0

  • [CHANGED] install_requires in

[1.1.0] - 2017-01-11

  • [ADDED] impedance element can now be used with unsymetric impedances zij != zji

  • [ADDED] dcline element that allows modelling DC lines in PF and OPF

  • [ADDED] simple plotting function: call pp.simple_plot(net) to directly plot the network

  • [ADDED] measurement table for networks. Enables the definition of measurements for real-time simulations.

  • [ADDED] estimation module, which provides state estimation functionality with weighted least squares algorithm

  • [ADDED] shortcircuit module in beta version for short-circuit calculation according to IEC-60909

  • [ADDED] documentation of model validation and tests

  • [ADDED] case14, case24_ieee_rts, case39, case57 networks

  • [ADDED] mpc and ppc converter

  • [CHANGED] convention for active power limits of generators. Generator with max. feed in of 50kW before: p_min_kw=0, p_max_kw=-50. Now p_max_kw=0, p_min_kw=50

  • [ADDED] DC power flow function pp.rundcopp

  • [FIXED] bug in create_transformer function for tp_pos parameter

  • [FIXED] bug in voltage ratio for low voltage side tap changers

  • [FIXED] bug in rated voltage calculation for opf line constraints

[1.0.2] - 2016-11-30

  • [CHANGED] changed in_service dtype from f8 to bool for shunt, ward, xward

  • [CHANGED] included i_from_ka and i_to_ka in net.res_line

  • [ADDED] recycle parameter added. ppc, Ybus, _is_elements and bus_lookup can be reused between multiple powerflows if recycle[“ppc”] == True, ppc values (P,Q,V) only get updated.

  • [FIXED] OPF bugfixes: cost scaling, correct calculation of res_bus.p_kw for sgens

  • [ADDED] loadcase added as pypower_extension since unnecessary deepcopies were removed

  • [CHANGED] supress warnings parameter removed from loadflow, casting warnings are automatically supressed

[1.0.1] - 2016-11-09

  • [CHANGED] update short introduction example to include transformer

  • [CHANGED] included pypower in requirements (only pypower, not numpy, scipy etc.)

  • [CHANGED] mpc / ppc renamed to ppci / ppc

  • [FIXED] MANIFEST.ini includes all relevant doc files and exclude report

  • [FIXED] handling of tp_pos parameter in create_trafo and create_trafo3w

  • [FIXED] init=”result” for open bus-line switches

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (21.8 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page