Coder Social home page Coder Social logo

matpowercases.jl's Introduction

MATPOWER transmission network data

Release status

MatpowerCases MatpowerCases MatpowerCases

Dev status

Build Status Coverage Status

My favorite MATPOWER function is loadcase(name) (where name is a string), so I made it work in Julia.

This package contains all transmission network data included in MATPOWER 5.1, plus data for the RTS-96 and RTS-79 networks. You can return a Dict containing network data using loadcase(name), just as you would with MATPOWER. No MATLAB kernel or MATPOWER installation is required.

Installation and use

To install:

Pkg.add("MatpowerCases")

To load data for, say, the IEEE 118-bus power flow test case:

using MatpowerCases
mpc = loadcase("case118")

You should see a one-line description of the network (unless you passed describe=false to loadcase()). Now mpc is a Dict containing network data in MATPOWER caseformat:

 CASE118    Power flow data for IEEE 118 bus test case.

Dict{ASCIIString,Any} with 8 entries:
  "baseMVA"   => 100.0
  "gen"       => [1.0 0.0 0.0 15.0 -5.0 0.955 100.0 1.0 100.0 0.0 0.0 0.0 0.0 0
  "branch"    => [1.0 2.0 0.0303 0.0999 0.0254 0.0 0.0 0.0 0.0 0.0 1.0 -360.0 3
  "docstring" => " CASE118    Power flow data for IEEE 118 bus test case.    …
  "bus_name"  => Any["Riversde  V2"
  "bus"       => [1.0 2.0 51.0 27.0 0.0 0.0 1.0 0.955 10.67 138.0 1.0 1.06 0.94…
  "version"   => "2"
  "gencost"   => [2.0 0.0 0.0 3.0 0.01 40.0 0.0…

You may load data for any network MATPOWER 5.1 supports, plus the RTS-96 (case96) and RTS-79 (case79) networks. You may also provide a path to any .mat file containing MATPOWER-format data to loadcase().

Detailed network information

The one-line description you see when you load a network is the first line of a docstring. Print the whole thing to see detailed network information:

print(mpc["docstring"])

This is the same docstring you would see if you ran help(caseName) in a MATLAB environment with MATPOWER installed.

Conversion to Case type

This package will also convert an mpc Dict to an instance of a type called Case. Case contains all mpc data, but is easier to navigate. Rather than referring to the caseformat documentation to figure out where, say, active power injection data might be, you can type:

c = extract_case("case9")

Then type c.<TAB> to see a list of fields. Active power injections would logically be under bus, so type c.bus.<TAB>. PD is one of the fields that appears. Typing c.bus.PD returns the vector of active power injections for all buses.

Who to credit when publishing

MATPOWER is an awesome tool for power and energy researchers. It is actively developed by Ray Zimmerman, Carlos Murillo-Sánchez and others. If you use this package in your research, please cite them:

R. D. Zimmerman, C. E. Murillo-Sánchez, and R. J. Thomas, "MATPOWER: Steady-State Operations, Planning and Analysis Tools for Power Systems Research and Education," Power Systems, IEEE Transactions on, vol. 26, no. 1, pp. 12-19, Feb. 2011.

Also, if you use any of the four recently-added European grid test networks (caseName ending in "pegase"), please cite this paper as follows:

Fliscounakis, S.; Panciatici, P.; Capitanescu, F.; Wehenkel, L., "Contingency Ranking With Respect to Overloads in Very Large Power Systems Taking Into Account Uncertainty, Preventive, and Corrective Actions," Power Systems, IEEE Transactions on , vol.28, no.4, pp.4909,4917, Nov. 2013 doi: 10.1109/TPWRS.2013.2251015

Note: The popular RTS-79 and RTS-96 networks are not included in MATPOWER, but are available in MatpowerCases thanks to Zhu Wang and Robert Green, who made their .m files freely available.

matpowercases.jl's People

Contributors

kersulis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.