Java classes sub-project for Open Power Apps
Java
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
impl add 2016 BSD-3 Clause license May 18, 2016
psseraw add 2016 BSD-3 Clause license May 18, 2016
pwrflow add 2016 BSD-3 Clause license May 18, 2016
se add 2016 BSD-3 Clause license May 18, 2016
tools add 2016 BSD-3 Clause license May 18, 2016
.gitignore first (basic) cut at README for OpenPA version 2 Apr 2, 2015
ACBranch.java add 2016 BSD-3 Clause license May 18, 2016
ACBranchList.java add 2016 BSD-3 Clause license May 18, 2016
ACBranchListIfc.java add 2016 BSD-3 Clause license May 18, 2016
AbstractBaseObject.java add 2016 BSD-3 Clause license May 18, 2016
Area.java add 2016 BSD-3 Clause license May 18, 2016
AreaList.java add 2016 BSD-3 Clause license May 18, 2016
BaseList.java add 2016 BSD-3 Clause license May 18, 2016
BaseObject.java add 2016 BSD-3 Clause license May 18, 2016
BaseObjectCore.java add 2016 BSD-3 Clause license May 18, 2016
Bus.java add 2016 BSD-3 Clause license May 18, 2016
BusGrpMapBldr.java add 2016 BSD-3 Clause license May 18, 2016
BusList.java add 2016 BSD-3 Clause license May 18, 2016
BusRefIndex.java add 2016 BSD-3 Clause license May 18, 2016
CloneModelBuilder.java add 2016 BSD-3 Clause license May 18, 2016
ColChange.java add 2016 BSD-3 Clause license May 18, 2016
ColumnMeta.java add 2016 BSD-3 Clause license May 18, 2016
ElectricalIsland.java add 2016 BSD-3 Clause license May 18, 2016
ElectricalIslandList.java add 2016 BSD-3 Clause license May 18, 2016
FixedShunt.java add 2016 BSD-3 Clause license May 18, 2016
FixedShuntList.java add 2016 BSD-3 Clause license May 18, 2016
FixedShuntListIfc.java add 2016 BSD-3 Clause license May 18, 2016
Gen.java add 2016 BSD-3 Clause license May 18, 2016
GenList.java add 2016 BSD-3 Clause license May 18, 2016
Group.java add 2016 BSD-3 Clause license May 18, 2016
GroupIndex.java add 2016 BSD-3 Clause license May 18, 2016
GroupList.java add 2016 BSD-3 Clause license May 18, 2016
GroupListI.java add 2016 BSD-3 Clause license May 18, 2016
GroupListIfc.java add 2016 BSD-3 Clause license May 18, 2016
InService.java add 2016 BSD-3 Clause license May 18, 2016
InServiceList.java add 2016 BSD-3 Clause license May 18, 2016
LICENSE.md add full license to source dir May 18, 2016
Line.java add 2016 BSD-3 Clause license May 18, 2016
LineList.java add 2016 BSD-3 Clause license May 18, 2016
ListMetaType.java add 2016 BSD-3 Clause license May 18, 2016
Load.java add 2016 BSD-3 Clause license May 18, 2016
LoadList.java add 2016 BSD-3 Clause license May 18, 2016
ModelBuilder.java add 2016 BSD-3 Clause license May 18, 2016
OneTermBaseList.java add 2016 BSD-3 Clause license May 18, 2016
OneTermDev.java add 2016 BSD-3 Clause license May 18, 2016
OneTermDevList.java add 2016 BSD-3 Clause license May 18, 2016
OneTermDevListIfc.java add 2016 BSD-3 Clause license May 18, 2016
Owner.java add 2016 BSD-3 Clause license May 18, 2016
OwnerList.java add 2016 BSD-3 Clause license May 18, 2016
PALists.java add 2016 BSD-3 Clause license May 18, 2016
PAModel.java add 2016 BSD-3 Clause license May 18, 2016
PAModelException.java add 2016 BSD-3 Clause license May 18, 2016
PFlowPsmModelBldr.java add 2016 BSD-3 Clause license May 18, 2016
PflowModelBuilder.java add 2016 BSD-3 Clause license May 18, 2016
PhaseShifter.java add 2016 BSD-3 Clause license May 18, 2016
PhaseShifterList.java add 2016 BSD-3 Clause license May 18, 2016
README.md add overview slides to README Jan 18, 2016
SVC.java add 2016 BSD-3 Clause license May 18, 2016
SVCList.java add 2016 BSD-3 Clause license May 18, 2016
SeriesCap.java add 2016 BSD-3 Clause license May 18, 2016
SeriesCapList.java add 2016 BSD-3 Clause license May 18, 2016
SeriesReac.java add 2016 BSD-3 Clause license May 18, 2016
SeriesReacList.java add 2016 BSD-3 Clause license May 18, 2016
ShuntCapList.java add 2016 BSD-3 Clause license May 18, 2016
ShuntCapacitor.java add 2016 BSD-3 Clause license May 18, 2016
ShuntReacList.java add 2016 BSD-3 Clause license May 18, 2016
ShuntReactor.java add 2016 BSD-3 Clause license May 18, 2016
Station.java add 2016 BSD-3 Clause license May 18, 2016
StationList.java add 2016 BSD-3 Clause license May 18, 2016
SteamTurbine.java add 2016 BSD-3 Clause license May 18, 2016
SteamTurbineList.java add 2016 BSD-3 Clause license May 18, 2016
SubLists.java add 2016 BSD-3 Clause license May 18, 2016
Switch.java add 2016 BSD-3 Clause license May 18, 2016
SwitchList.java add 2016 BSD-3 Clause license May 18, 2016
SwitchedShunt.java add 2016 BSD-3 Clause license May 18, 2016
SwitchedShuntList.java add 2016 BSD-3 Clause license May 18, 2016
Transformer.java add 2016 BSD-3 Clause license May 18, 2016
TransformerList.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermBaseList.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermDCLine.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermDCLineList.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermDev.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermDevList.java add 2016 BSD-3 Clause license May 18, 2016
TwoTermDevListIfc.java add 2016 BSD-3 Clause license May 18, 2016
VoltageLevel.java add 2016 BSD-3 Clause license May 18, 2016
VoltageLevelList.java add 2016 BSD-3 Clause license May 18, 2016

README.md

com.powerdata.openpa

The goal of the OpenPA API is to make model access simple and fast regardless of the back-end being used, and provide some basic utilities to help operate on a model. Our aim is to help application engineers:

  • Focus development effort on core algorithm
  • Access to real-world models during development
  • Avoid dependencies with database, data formats, and proprietary systems
  • Static and real-time data packaged in simple well-defined objects
  • Consistent API promotes reduced integration effort
  • reduced application footprint

A set of overview slides can be found at https://docs.google.com/presentation/d/1_DKizCW9ad2nULGHm8U6IQ3n_LDC1RXziFQ6xcX4F2I/edit?usp=sharing

Javadoc

The Javadoc is not complete in the sense that every method and attribute has a description, but many of the descriptions are in place and the class hierarchies are easier to traverse.

[http://powerdata.github.io/com.powerdata.openpa]

Status of this README

This README file and JavaDoc both need work, but we will try to at least provide enough information to load a test model and work with the library.

Dependencies

Data source formats

OpenPA Models can be loaded from multiple sources. The primary source we use is the PowerSimulator Model and Case format.

Download PowerSimulator Model Format Specification

Download PowerSimulator Case Format Specification

A sample model is available:

24-bus model

PSS/e Files

PSS/e files for version 30 can be converted to the PowerSimulator CSV format using com.powerdata.openpa.psseraw.Psse2PsmFmt

PAModel Usage

A PAModel provides access to a transient view the power system network and equipment, which is both lightweight and fast.

Implementations of the ModelBuilder interface are used to create models appropriate to application requirements and data source.

The PFlowModelBuilder abstract class provides concrete ways to load models for power applications. The PFlowModelBuilder.Create() static method provides a way to create a builder allowing the code to be free of any data back-end dependencies.

An example of loading PowerSimulator formatted CSV files:

String uri = "psmfmt:dir=/path/to/unzipped/csv_files";
PAModel model = PflowModelBuilder.Create(uri).load();

The model object can now be used to access data both for reading and writing.

A simple example can be found in the main() method of com.powerdata.openpa.pwrflow.TestModel.java

To run it:

  1. build openpa.jar from the source
  2. unzip the model data into a directory (/home/chris/cascadia in this example)
  3. provide a directory for output files (leave blank to assume the current working dir)

java -cp openpa.jar com.powerdata.openpa.pwrflow.TestModel --uri psmfmt:dir=/home/chris/cascadia

This should output:

  1. buses.txt - a dump of all the equipment on each connectivity bus
  2. tnode.txt - a similar dump, but using a single-bus topology common for power apps.

Changes

2016-01-13. Add 24-bus model, clean up links for PSIM formats

2015-04-08. Remove OpenPA version 1 psse code. The com.powerdata.openpa.psse*.* packages have been removed.

TO-DO:

  • Cleanup JavaDoc and Generate and add link
  • Document applications and utilities (sparse matrix, power calculations, AC & DC power flows)
  • add section on performance best practices
  • Explain how to contribute