Introduction To The OpenDSS
Introduction To The OpenDSS
1600
1400
1200
1000
800
600
400
200
4
13
22
19
16
Hour
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
0
10
Month
Through the COM interface, the user is able to add other solution modes and features externally
and perform the functions of the simulator, including definition of the model data. Thus, the DSS
could be implemented entirely independently of any database or fixed text file circuit definition.
For example, it can be driven entirely from a MS Office tool through VBA, or from any other 3rd
party analysis program that can handle COM. Users commonly drive the OpenDSS with the
familiar Mathworks MATLAB program. This provides powerful external analytical capabilities as
well as excellent graphics for displaying results.
Many users find the scripting interface available with the stand-alone executable version sufficient
for nearly all their work. As users find themselves repeatedly needing a feature for their work, the
feature is implemented within the program and connected to the text-based command interface.
Introduction to the OpenDSS
April 2009
MWh
The COM interface also provides direct access to the text-based command interface as well as
numerous methods and properties for accessing many of the parameters and functions of the
simulator's models. Through the command interface, user-written programs can generate scripts
to do several desired functions in sequence. The input may be redirected to a text file to
accomplish the same effect as macros and also provide some database-like characteristics.
Many of the results can be retrieved through the COM interface as well as from various output
files. Output files are typically written in Comma-separated Value (CSV) format that imports easily
into other tools for post processing.
The experienced software developer has two additional options for using the OpenDSS tool:
1. Downloading the source code and modifying it to suit special needs.
2. Developing DLLs that plug into generic containers the OpenDSS provides [This interface
is being revised as of this writing.]. This allows developers to concentrate on the model of
the device of interest while letting the DSS executive take care of all other aspects of the
distribution system model. Such DLLs can be written in most common programming
languages.
The DSS structure is illustrated in Figure 1
Scripts
COM
Interface
Scripts,
Results
UserWritten
DLLs
April 2009
April 2009
interwinding capacitance of the transformer this was not possible in many traditional
distribution system analysis tools.
6. We wanted a tool that could seamlessly incorporate harmonics analysis into the power
flow analysis without requiring the user to laboriously enter nonlinear device models. We
also recognized that we would need at least simple dynamics analysis sufficient for DG
interconnection evaluation. Simple models are built in and this feature continues to be
developed.
7. Recognizing that distribution automation was going to become increasingly important, we
wanted a testbed upon which to evaluate control algorithms and their impact on the
operation of the system.
8. Recognizing that it was impossible to anticipate all possible user needs, we wanted a
program that would allow users to write their own models or solution procedures
commensurate with their software capabilities.
9. We wanted a program that would simulate the behavior of devices on the distribution
system as they would actually occur for changing load and system faults and other
disturbances. This is important for modeling DG interactions and it also allows the tool to
be used for many other things as well, such as energy efficiency analysis.
The present version of the OpenDSS has achieved the majority of these goals and has evolved
into an extraordinary tool that has acquired many other features not commonly found in other
distribution system analysis tools. While DG analysis continues to be one of its key uses, many
other types of analysis have been performed with the tool.
The DSS is a general-purpose frequency-domain simulation engine that has special features for
creating models of electric power distribution systems and performing many types of analysis
related to distribution planning and power quality. It does not perform electromagnetic transients
(time domain) simulations; all types of analysis are currently in the frequency domain (i.e.,
sinusoidal steady state, but not limited to 60 Hz).
Most electrical engineers learned how to write nodal admittance equations in their early University
courses, and this is basically how the DSS represents distribution circuits. Each element of the
system is represented by a primitive nodal admittance (Y) matrix. This is generally
straightforward, although it can be tricky for some power system elements such as transformers.
Each primitive Y is then coalesced into one large system Y matrix, and the system of equations
representing the distribution system is solved using sparse matrix solvers like one might also find
in MATLAB. One trick is that nonlinear behaviors of some devices (e.g., some load models) are
modeled by current source injections, which some refer to as compensation currents. That is,
the current predicted from the linear portion of the model that resides in the system Y matrix is
compensated by an external injection to iteratively obtain the correct current. This is a common
technique for representing loads in distribution system analysis tools. One advantage of this
method is that it allows for quite flexible load models, which is important for performing some
types of analysis such as done in energy efficiency studies.
The programs heritage is closer to a harmonic flow analysis program, or even a dynamics
program, than a typical power flow program. This may seem a strange place to start designing a
tool that will be used a great deal for power flow studies, but it gives the tool great modeling
flexibility particularly for accommodating all sorts of load models and unusual circuit
configurations.
April 2009