There is a newer version of the record available.

Published April 29, 2017 | Version 0.9.0
Software Open

Python for Power System Analysis (PyPSA) Version 0.9.0

  • 1. Frankfurt Institute for Advanced Studies (FIAS)

Description

Python for Power System Analysis (PyPSA) is a free software toolbox for simulating and optimising modern power systems that include features such as variable wind and solar generation, storage units, sector coupling and mixed alternating and direct current networks. PyPSA is designed to scale well with large networks and long time series. Find out more at:

https://pypsa.org/

and

http://github.com/FRESNA/PyPSA

This is release 0.9.0 of PyPSA. Please see https://pypsa.org/doc/release_notes.html#pypsa-0-9-0-29th-april-2017 for a hyper-linked version of these release notes. This release mostly contains new features with a few minor API changes.

  • Unit commitment as a MILP problem is now available for generators in the Linear Optimal Power Flow (LOPF). If you set committable == True for the generator, an addition binary online/offline status is created. Minimum part loads, minimum up times, minimum down times, start up costs and shut down costs are implemented. See the documentation at Generator unit commitment constraints and the unit commitment example. Note that a generator cannot currently have both unit commitment and capacity expansion optimisation.
  • Generator ramping limits have also been implemented for all generators. See the documentation at Generator ramping constraints and the unit commitment example.
  • Different mathematically-equivalent formulations for the Linear Optimal Power Flow (LOPF) are now documented in Passive branch flow formulations and the arXiv preprint paper Linear Optimal Power Flow Using Cycle Flows. The new formulations can solve up to 20 times faster than the standard angle-based formulation.
  • You can pass the network.lopf function the solver_io argument for pyomo.
  • There are some improvements to network clustering and graphing.
  • API change: The attribute network.now has been removed since it was unnecessary. Now, if you do not pass a snapshots argument to network.pf() or network.lpf(), these functions will default to network.snapshots rather than network.now.
  • API change: When reading in network data from CSV files, PyPSA will parse snapshot dates as proper datetimes rather than text strings.

João Gorenstein Dedecca has also implemented a MILP version of the transmission expansion, see https://github.com/jdedecca/MILP_PyPSA, which properly takes account of the impedance with a disjunctive relaxation. This will be pulled into the main PyPSA code base soon.

Files

PyPSA-8bf3acf07906348b82d667db7c97219d6d5fc644.zip

Files (579.4 kB)

Additional details