Internet, Open-source and
Power System Simulation
Mike Zhou
InterPSS Project Architect
2
Agenda
• InterPSS Project• What is it? (demo)
• A Real-world Story
• Power System Simulation• The InterPSS Approach
• Open-Source• InterPSS – open-source, free
• Built on open-source
• Internet• Distribution, development and collaboration
• Summary
3
InterPSS Project
• InterPSS – An Internet Technology based Power System
Simulation Software (demo)
• Research Work Started 1995
E.Z. Zhou, ‘Object-oriented Programming, C++ and Power System Simulation’,
IEEE Transactions on Power Systems, Feb. 1996
• Formal Development Started 1/2005• No full-time developer
• Java - programming language
• No legacy code
• Current Release V1.2.01• Free usage for any purpose
• Most of source code are open
• 3000+ downloads
4
A Success Story
• The Problem• Unexpected Trip of 500MW Combined cycle plant caused by lost
of a large generation station in the network
• All standard tests failed to explain the problem
• InterPSS Simulation• Controller modeling - Controller Modeling Language
• Machine modeling - Dynamic bus device scripting
• Problem identified - Load angle limiter <-> PSS
• Proposed prevention solution verified by simulation
• Plant hardware changed and tested
• Actual field test• Simulation results convinced the network operator
• System-wide drop load test
• InterPSS used to determine reserve capacity
• The field test verified that the problem has been solved and the
accuracy of InterPSS simulation results
5
InterPSS Design Goal
“InterPSS’ open and loosely coupled system
architecture will allow components developed by
others to be easily plugged/integrated into the system
to augment its functionality, and equally important,
allow its components to be integrated into other
systems to provide certain power system simulation
functionality or service.”
• Software Engineering Approach
• Flexibility and Extensibility
• Usability
6
The Plugin Approach
Strongly Coupled
Application Suite
Other Approaches
A monolithic application with
a few things added
Plugins
InterPSS Core lib (<1M)
InterPSS Approach
A tiny little library to which
many things are contributed
and added
7
Power System Simulation Model
• InterPSS – Node/Branch object model for simulation purpose
• Automatic Code Generation
9
CML – InterPSS Controller Modelling Language
Σ
v
v
v
x efd
ref
pss
t
+
-+
K
1 + Ts
v
v rmin
rmax
@AnController(
input="this.refPoint + pss.vs - mach.vt",
output="this.delayBlock.y",
refPoint="this.delayBlock.u0-pss.vs + mach.vt",
display= {"str.ExciterState, this.delayBlock.state"}
)
public double k = 50.0, t = 0.05, vmax = 10.0, vmin = 0.0;
@AnControllerField(
type= CMLFieldType.ControlBlock,
input="this.refPoint + pss.vs - mach.vt",
parameter={"type.Limit", "this.k", "this.t", "this.vmax", this.vmin"},
y0="mach.efd" )
DelayControlBlock delayBlock;
DSL – Domain
Specific Language
-> Compile to Java Bytecode on-fly
10
Open-source Tools and Libraries
• Eclipse and NetBeans IDE• Project development environment
• Eclipse EMF - Automatic code generation
• JGraph - InterPSS graphic editor
• Spring Framework – integration and extension
• JasperReport - InterPSS reporting
• JFreeChart - Charts and plots
• Castor - Java object <-> Xml document binding
• Apache Derby Database• User and reference data
• Simulation results
• Apache iBatis - Object Database persistence• …
11
Internet & InterPSS
• Desktop Edition
• Web Edition
• JSP Front-end
• Applet for One-line diagram
• New trand• Adobe Flex
• Microsoft SiverLight
12
Manage Complexity - Virtual Development Workplace
Internet
Home.interpss.org
Google Services
US
Canada
Wuhan
Changsha
Sourceforge.net
InterPSS Wiki
InterPSS User Acceptance Testing
InterPSS File Service
InterPSS Web Site
InterPSS Code Repository
InterPSS Email service
InterPSS Issue Reporting
InterPSS Discussion Group
InterPSS Download
China
China
13
Collaboration - InterPSS Wiki
1. A Wiki site for InterPSS user community
2. User can create documents, tutorials
3. Also serves as InterPSS project portal
14
FitNesse Based User Acceptance Testing
1. User can create test cases
2. User can participate in the acceptance testing.
3. User can upload components to test against InterPSS library
4. User can run regression tests against any new development