The Open Distribution System Simulator, OpenDSS
Copyright (c) 2008-2016, Electric Power Research Institute, Inc.
All rights reserved.
The 7.6 version is the first to be delivered in both 32-bit (X86) and
64-bit (X64) versions. The OpenDSSInstaller download includes both, along
with optional documentation and examples.
If you have 64-bit Windows, you may install both the 64-bit and 32-bit
versions. The 32-bit version is required if you plan to automate OpenDSS
from Excel or any other 32-bit program. The 64-bit version is required to
automate OpenDSS from 64-bit MatLab on a 64-bit system.
The installer will give you a choice to install the executables and
optional files under a target directory of your choice, such as
c:\opendss. Files that are specific to the 32-bit version will be written
to an x86 subdirectory, such as c:\opendss\x86. Files that are specific
to the 64-bit version will be written to an x64 subdirectory, such as
c:\opendss\x64. The EXE and DLL files should not be moved after
installation, but may be updated in place with newer versions.
On a 64-bit system, you may install and use both the 32-bit and 64-bit
versions with no conflict between them.
Short-cuts to the program and manual are created under Start Menu/OpenDSS.
Please see the manual, OpenDSSManual.PDF, for an overview of the program.
The most up-to-date reference information will always be found through the
software's "Help / DSS Help" menu command.
If you have an earlier version of OpenDSS installed and registered, such as 7.4.3,
remove it completely. Otherwise, Windows may retain a registry entry to the
old 32-bit COM server when you start it up from a 32-bit program.
The COM Server in OpenDSSEngine.DLL may be automated. The installer will
register either or both versions, depending on your selection. Even
though the file names and registration commands match, they are in
separate locations and Windows will activate the correct version required
by the calling program. For example, 64-bit MatLab will call the 64-bit
OpenDSSEngine.DLL and 32-bit Microsoft Excel will call the 32-bit version.
(Note: The 64-bit version of Excel is rarely installed.)
OpenDSSDirect.DLL is a DLL that mimics the COM interface but is a standard
DLL. It can be used with programming languages that do not support COM or
in software that runs on a server. Documentation is promised the Doc folder.
The OpenDSS is a simulator specifically designed to represent electric
power distribution circuits. OpenDSS is designed to support most types of
power distribution planning analysis associated with the interconnection
of distributed generation (DG) to utility systems. It also supports many
other types of frequency-domain circuit simulations commonly performed on
utility electric power distribution systems. It represents unbalanced
conditions, stochastic processes, and other aspects of electrical power
distribution systems and equipment in far greater detail than many other
tools, including commercial products. Through COM and scripting
interfaces, other programs can drive OpenDSS in highly customized
simulations, Monte Carlo analysis, etc. Users can define their own models
through dynamic linking, scripting, or automation.
Electric Power Research Institute, Inc. (http://www.epri.com) uses
OpenDSS in its research and services work, and continues to enhance the
software. Earlier proprietary versions were used in dozens of studies for
electric utility clients, and in a Web-based wind power simulator at
http://www.uwig.org/distwind. There are several goals in making OpenDSS
an open-source project at this time:
1 - Enhance the modeling capabilities available to government
laboratories, universities, and other researchers engaged in grid
2 - Encourage interfaces between OpenDSS and complementary tools, such as
communication system simulators or model compilers.
3 - Encourage the adoption of items 1 and 2 into commercial products used
by electric utilities.
4 - Encourage collaborative efforts between industry, government, and
university researchers in power distribution system analysis for grid
5 - Provide a capable testing platform for data and object modeling
efforts currently underway in the electric utility industry, at
http://cimug.ucaiug.org and http://www.multispeak.org.
The programming language for OpenDSS is Delphi
(http://www.embarcadero.com), currently version Delphi 10 Seattle. There is also
a Free Pascal / Lazarus version of the program. Some of the supporting modules may
require a C++ compiler to build from source. OpenDSS source code is
available from the following SVN repository:
KLUSolve.DLL is open source software, available from
Other convenient Sourceforge.net Links
OpenDSS Download Files:
What is Unique About OpenDSS?
* Quasi-static solution mode (i.e., Sequential time simulations). This is a key distinguishing feature of the OpenDSS: it was designed from the beginning to perform yearly, daily, and duty cycle simulations. Each load and generator may have a unique load curve. The Monitor and EnergyMeter object can capture results. For many analyses with renewable resources, storage, electric vehicles, etc., it is difficult to get the right answer without being able to model system behavior as a function of time.
* The source code is provided so that smart grid researchers needing advanced simulation capabilities that have not already been implemented can readily modify the code to develop new capabilities. At the least, researchers can simply see how we have done something and reproduce it in their own tools. The data and the API are public.
* Easy to convert data sources to OpenDSS script. The scripting language was designed to be reasonably close to common text data formats used in distribution system analysis tools. The program was developed for a consulting and research environment in which model data is received from utilities in a variety for formats. Since OpenDSS can model transmission networks as well as distribution circuit, data for a single model often come from more than one source.
* Ability to Script the simulator behavior. It is impossible to anticipate what everyone will want to do with Smart Grid simulations, etc. OpenDSS provides the basic characteristics of a distribution system, in great detail. Several often-used solution processes are built into it. Scripting is accomplished by creating scripts in files and by driving the OpenDSS from another program using the COM interface. The COM interface allows you to write some code in Excel VBA, Matlab, Python, R, etc. and make the OpenDSS do what you want it to do.
* Dynamics mode enables the simulation of Generator swings during disturbances. A simple model is provided, but users may create special models with DLLs.
* Ability to model n-phase lines of arbitrary configuration, not just 3-phase or 1-phase lines. This enables the modeling of some difficult problems such as stray voltage from multiple feeders sharing a common neutral, transmission overbuild falling on distribution lines, and many other coupled-conductor problems.
* Ability to model n-phase, m-winding transformers rather than simple, traditional 2-winding or 3-winding models supplied with traditional power system analysis tools. Of course, the appropriate impedance matrix data must be supplied, which for higher-order transformers may have to be obtained from the manufacturer or lab tests. However, if the data are obtained, this model allows for some extraordinary simulations.
* Controllers are modeled separately from circuit elements. They are designed to operate exactly like their real physical counterparts when simulating in small time steps. Users may create their own controller models in a variety of ways.
* Controllers can be used to develop and test distribution automation algorithms.
* An extensive energy meter model. The model has numerous registers for tabulating different kinds of losses during simulations.
* The solution engine could be put underneath a GIS user interface to provide a power distribution system analysis tool if none already exists in the GIS package.
* Harmonics analysis is a native capability of OpenDSS; it is not an add-on. The heritage of the simulation methods can be traced to harmonics simulation programs dating to the late 1970's in the Systems Engineering department of McGraw-Edison Power Systems, now a part of Cooper Power Systems. Therefore, harmonics simulation on complicated circuits can be performed quite easily. OpenDSS has more of a planning mentality than other power system harmonics tools. For example, all loads have a default spectrum and one may obtain a reasonable harmonic flow solution after solving the base power flow simply by issuing the command "Solve Mode=Harmonics". With Monitor objects distributed appropriately, this will generally expose any potential harmonic resonances the present circuit model might yield.
* The program is designed with an Object oriented structure. This enables new models of power-carrying equipment and controls to be added with less concern for breaking other parts of the program.
* ''A Load has a Bus.'' This may seem a trite statement -- and the subtleties lost on the reader -- but it is one of the fundamental differences between OpenDSS and many familiar power system analysis tools for power flow and related analyses. A traditional power flow formulation would use the statement that ''A Bus has a Load'' and relatively simple ZIP model characteristics would be assigned to the bus. In the OpenDSS, a Load object is simply another instance of a power conversion element that may be connected to a bus. This concept allows for the connection of many different types of loads to the same bus, each with its own loadshape, growthshape, voltage characteristic, etc. This enables the simulation of many issues related to Smart Grid implementation that would otherwise be quite difficult.
IEEE Test Cases
Top level of Distribution area (Releases)
Use of this software is subject to a license. The terms are in:
1 - A file called "license.txt" distributed with the software,
2 - The user manual, and
3 - The executable program's Help/About dialog box