0% found this document useful (0 votes)
75 views7 pages

Internet, Open-Source and Power System Simulation

The document presents an overview of InterPSS, an open-source power system simulation software developed using Internet technologies. InterPSS has a plugin architecture that allows additional modules to be added. It currently has loadflow analysis, short circuit, and transient stability simulation modules implemented. The software is developed collaboratively online using tools like Google services and open-source projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views7 pages

Internet, Open-Source and Power System Simulation

The document presents an overview of InterPSS, an open-source power system simulation software developed using Internet technologies. InterPSS has a plugin architecture that allows additional modules to be added. It currently has loadflow analysis, short circuit, and transient stability simulation modules implemented. The software is developed collaboratively online using tools like Google services and open-source projects.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Internet, Open-Source and Power System Simulation

www.interpss.org

This article presents an overview of the InterPSS project – an Internet technology


based open-source power system simulation software system, and discusses its
architecture, development and testing process. InterPSS currently is a fully functional
software system. It has been released under an open-source license, which means
the user can download, use it for any purpose and redistribute it freely. InterPSS has
an open architecture allowing the advanced user to plugin additional modules to
augment its functionality and/or change its behavior.

1. Introduction
Over the last 10 years, the Internet has become the most far-reaching and extensive
medium for exchange information and collaboration. Internet based economy has
enjoyed explosive growth. Large corporations around the world have been quietly
using the Internet and related technologies, such JAVA and XML, to transform their
information infrastructure to be more agile. Internet technology has been used in
solving a tradition power-engineering problem – power system simulation software
development. InterPSS - an Internet technology based open-source power system
simulation software system has been developed and released by the InterPSS
development team (www.interpss.org).

It is our observation that power system simulation programs used in production today
are largely written in the procedure languages, such FORTRAN or C. It has been
known that software systems developed using such approaches are expensive to
maintain, difficult to be extended and integrated into other systems. It is our belief that
sooner or later these systems will become obsolete and be replaced by new systems
based on modern software technology - object-oriented programming languages and
component-based development approaches.

Adapting new information technology to power systems has been relative slow as
compared to other industries, such banking and telecommunication. We believe that
open-source with participation by universities, research institutes and power
companies could be a promising way to speed up the process. The basic idea behind
open-source is very simple: when user can read, redistribute, and modify the source
code of a piece of software, the software evolves. User participates, contributes,
improves it, adapts it, and fixes bugs. This can happen at a speed that, if one is used
to the slow pace of conventional software development, seems astonishing. The
InterPSS team used the Internet technology and the open-source approach,
developed a power system simulation software system and offered it free to the
power engineering community.
2. InterPSS Project Overview
InterPSS is an open-source development project aimed to develop an Internet
technology based software system for design, analysis, and simulation of power
systems. The project goal is to develop a high quality software system using the
open-source approach. InterPSS has an open and loosely coupled plugin
architecture, which allows components developed by others to be easily plugged into
the system to augment its functionality, and equally important, allows its components
to be integrated into other systems to provide certain power system simulation
functionality or services. It is our hope that InterPSS will become a platform for user
participation, collaboration and further innovation.

InterPSS has a graphic editor, as shown in Fig.1. It features a workspace with a


project explorer where multiple study projects could be managed. User can work on
multiple projects in parallel, for example, editing a Loadflow study project while
performing a transient stability simulation, which may take a long time to run. User
can create a project by drawing a power system one-line diagram and entering data
while drawing. After an analysis run, for example a Loadflow calculation, the results
(Bus voltage, branch P+jQ) could be annotated onto the one-line diagram. InterPSS
also has an integrated reporting system, as shown in Fig.2, where you can generate
different types of analysis reports on-demand.

Fig.1 InterPSS Graphic Editor

InterPSS currently has implemented Loadflow analysis, Short Circuit calculation for
transmission systems and distribution systems, transient stability simulation for
transmission systems. The InterPSS team is working with the user community to
develop a future development roadmap. Harmonic analysis, Protective Device
Coordination, reliability calculation and other analysis modules are expected to be
added soon. InterPSS is written in JAVA. Therefore, it can run on any platform,
including Linux, where there is a JAVA runtime environment.

Fig.2 InterPSS Reporting

3. InterPSS Architecture
InterPSS is designed to be open, flexible and extensible with a plugin architecture.
From the very beginning, our assumption is that InterPSS will be extended by others
to do things that we never had imagined. In this architecture, things which are
common to power system simulation and less likely to change are packaged into the
InterPSS power system simulation framework as the foundation and for reuse. The
rest are implemented as InterPSS plugins, which could be customized or replaced
easily. Fig.3 shows a high-level view of the InterPSS architecture.

Fig.3 InterPSS High-level Architecture View


At the center is the InterPSS power system simulation framework, which is based on
an object-oriented power system simulation model (see future reading for details).
UML – Unified Modeling Language is used to model power systems for simulation
purpose. Eclipse EMF is then used to generate the framework code (see more
discussion in Section-4). Simulation algorithms, user interfaces, input/output modules,
and integration interface implementations are InterPSS plugins. InterPSS
Components and plugins are configured and integrated together by using the Spring
Framework. The InterPSS team uses Eclipse IDE and NetBeans IDE to do their
development.

InterPSS uses JAVA as its programming language. JAVA was born for the Internet
and networked computers. It is especially suitable for building loosely coupled
complex software systems. The Eclipse project (www.eclipse.org), which is the world
largest, the most innovative and successful open-source project with hundreds of
participating companies and millions of users, is developed in Java. InterPSS uses
XML heavily to configure its components, for information exchange between these
components, and for persisting information to database for late retrieval.

4. InterPSS Development Process


InterPSS uses the Internet as a virtual workspace for its development. InterPSS has
already become a rather complex software system with hundreds of
modules/components/plugins. Managing its complexity is quite challenging
considering the fact that InterPSS is currently developed by a group of developers, all
volunteers, living over the world, at their spare time. InterPSS takes full advantage of
the following services and technologies.

4.1 Google Services


The InterPSS team uses Google services to manage its development process.
InterPSS source code is currently hosted at Google Code Service. InterPSS website
and email system is based on Google Office Service. InterPSS use Google
Spreadsheet for its user testing process reporting and management.

4.2 Advanced IDE


The InterPSS team uses the Eclipse IDE (www.eclipse.org) and the NetBeans IDE
(www.netbeans.org), both open-source IDE, for their team oriented development.
Both IDE has advanced software development features, such as code re-factoring,
integrated version control, debugging, profiling and unit testing.

4.3 Open-source Project Integration


InterPSS makes heavy use of other open-source projects. Our guideline is that we
will only write a piece of code if we cannot find it in the open-source world. The
following are a partial list of the open-source projects used in InterPSS:

 Sprint Framework (www.springframework.org) - A full-stack JAVA/J2EE


application framework. It delivers significant benefits for JAVA development
projects, reducing development effort and costs while improving test coverage
and quality.
 JGraph (www.jgraph.com) - A JAVA graph drawing and layout component
library. InterPSS one-line diagram is based on JGraph.
 JasperReport (jasperforge.org/) – A JAVA reporting tool that has the ability to
deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV
and XML files.
 JFreeChart (www.jfree.org/jfreechart) – A JAVA chart library that makes it easy
for developers to display quality charts in their applications.
 Castor (castor.codehaus.org) - A data binding framework provides JAVA-to-XML
binding.
 Derby Database (db.apache.org/derby) - A relational database implemented
entirely in JAVA.
 Apache iBATIS (ibatis.apache.org) – A data mapper framework, coupling
objects with stored procedures or SQL statements using a XML descriptor to
make easier to use a database with JAVA applications.
 Apache Commons (www.apache.org/commons) – A set of JAVA libraries for
logging and complex number

4.4 Code Generation


The majority of InterPSS core library code is generated by using a technology called
Eclipse EMF (www.eclipse.org/emf), which is a modeling framework and code
generation facility for building tools and other applications based on a structured data
model. From a model specification described in XMI (XML Metadata Interchange),
EMF provides tools and runtime support to produce a set of Java classes for the
model. Models can be specified using annotated JAVA, XML documents, or UML.

Shown in Fig.4 is a UML diagram describing a simplified power system network


topology model. It states that a Bus object is a node to which a set of Branch objects
could be connected. A Network object is a container where Bus objects can be
defined, and Branch objects can be added to connect between these Bus objects to
form a network topology for power system simulation purpose. Eclipse EMF is then
be used to translate the model into JAVA classes, which are highly efficient based on
our benchmark.

Fig.4 A Simplified Power Network Model


5. InterPSS Testing Process
InterPSS uses a test-driven development approach, in which testing is an important
part of InterPSS planning and development process. InterPSS testing process also is
open and transparent to the end user. This means 1) user can examine all InterPSS
testing cases; 2) user can participate in the testing process by defining test cases,
performing testing and tracking issue-resolving process.

During the development process, InterPSS uses JUnit (www.junit.org) for the unit
testing. Hundreds of unit test cases are built to make ensures that individual software
components produce expected results. Regression testing combined the unit tests
are performed to verify that software components work together correctly after
changes are made.

InterPSS also has a FitNesse (www.fitnesse.org) based Wiki style testing site for user
acceptance testing. Any user can examine, and run the InterPSS Acceptance Test
Suite to perform the official InterPSS acceptance testing at any time. Also, the user
can build their own test cases. The user-defined test cases could be run repeatedly
against any future InterPSS release.

While InterPSS has hundreds of automated unit test cases and user acceptance test
cases with more to be added, InterPSS also relies on human to perform functional
testing using more complex use cases. InterPSS publishes the test progress and
result in a Google Spreadsheet based online report, which could be viewed and
updated on-line by any user.

6. InterPSS Wiki

Fig.5 InterPSS Wiki Site


InterPSS has a Wiki site, where InterPSS technical information, user guide, reference
manual and future development roadmap are published. The Wiki site is open to the
user, where user can participate and contribute to share user’s experience and
knowledge.

7. Call for Participation and Contribution


The InterPSS team has developed a fully functional power system simulation
software system and offered it to the power community using an open-source license.
InterPSS also can serve as a platform for user participation, collaboration and further
innovation. The InterPSS team believes that InterPSS’ future depends on the
participation and contribution from the user community. We hope a strong synergy
could be developed between the developers, power engineers and researchers from
universities, research institutes and power companies. Therefore, the InterPSS team
is calling for participation and contribution!

Fig.6 InterPSS User Community Structure

We believe everyone can participate and contribute. We envision that the InterPSS
user community will consist of the following groups, with the largest number in the
InterPSS user group, as shown in Fig.6:

 InterPSS User – Use IntePSS regularly or occasionally for certain purpose,


feedback issues and suggestions.
 InterPSS Participating User – In addition to use the software, actively
participate in InterPSS community discussion, InterPSS testing and QA –
quality assurance process, and contribute to the InterPSS Wiki to share
experience and knowledge.
 InterPSS Contributor – Develop plugins or add-ons to augment InterPSS
functionality and contribute back to the InterPSS user community.
 InterPSS Committer – Work on InterPSS plugins and/or subsystem(s) on an
on-going base as a leader developer or project coordinator.
 InterPSS Architect – Help defining the future direction of InterPSS, including
prototyping new technologies and investigating their applicability to InterPSS.
Present and promote InterPSS in technical conferences.

You might also like