An ODM Tutorial

Introduction

An Open Model for Exchanging Power System Simulation Data, Open Data Model (ODM) for short, sponsored by the IEEE PES OSS Task Force, is under development, using XML technology. This tutorial is for those who might be new to XML and associated concepts. A simple 5-bus system is used to show how step-by-step to manually create a XML document, governed by the ODM XML Schema.

InterPSS has just released a DEV package (download Here), which would cover the function of reading a XML document and perform loadflow calculation. So one can create a XML document to represent a power network, and then use the latest InterPSS to perform loadflow to test the new function.

Please Note:

    1. This document is based on ODM Version 0.7. The latest ODM schema can be download from Here.
    2. In practice, ODM XML documents, representing real-world power system simulation cases, are generated by software. The step-by-step manual process outlined in this article is only for the tutorial purpose.

Contributors:

  1. Yixin Zhuo(卓毅鑫)- currently is a undergraduate student at Huazhong University of Science and Technology(华中科技大学), Hubei, China, under Professor Xiangning Lin(林湘宁).
  2. Stephen Hau (侯冠基) currently is a graduate student at South China University of Technology (华南理工大学), Guangdong, China, under Professor Yao Zhang (张尧) and Zhigang Wu (武志刚).

Introduction to Eclipse and XML

In this part, we will introduce some basic description about Eclipse and XML, with the purpose to let people who are outside the IT field to get a basic knowledge about the update IT tool and concepts.

Eclipse

Basic introduction to Eclipse

The InterPSS develop team use Eclipse to maintain the ODM dev project. First you need to know some basic concept about Eclipse Platform: The Eclipse Platform provides the core frameworks and services upon which all plug-in extensions are created. It also provides the runtime in which plug-ins are loaded, integrated, and executed. The primary purpose of the Platform is to enable other tool developers to easily build and deliver integrated tools. For short, with the Eclipse Platform, programming becomes much easier. Please download and install Eclipse form Here.

Eclipse now is open software, which means you can download freely. The downloaded file is a zipped document, unzip it to any location in you computer. For the first time follow the steps below to start Eclipse

1. Click the eclipse.exe to run the software.

2. Click Workbench to go to the main window of Eclipse to create or editor your workspace, where you save or load a project files. See below:

Get the ODM Schema:

The latest ODM schema is hosted at InterPSS Google Code repository. Currently (V0.7), the schema is consist of 13 xsd files. The root schema file is ODM_StudyCase.xsd. After you have download the schema files, use eclipse to load the schema by file-->open file-->, then select the schema files just downloaed to load in.

View the Schema with graphic mode

InterPSS development team uses Eclipse XML editor to maintain the schema. Please note that Eclipse XML schema editor is a part of the Eclipse EMF Project. Therefore, you need to add EMF to your Eclipse installation to use the schema editor to view schema in the graphic mode, as shown below:

Important Notes: There are two Ways to setup Eclipse EMF project: on-line update or download to install.

    1. Download site: downloadthe EMF project and install.
    2. ON-LINE UPDATE (recommended): Follow steps to complete the update process.

XML—Extensible Markup Language

In this part, we will first introduce some basic concepts about XML, and then show how to create and edit an XML document in Eclipse.

What is XML?

XML stands for Extensible Markup Language, which is much like HTML. And it is designed to describe and display data and focus on what data is and what data looks like. Remember, XML does not do anything, it is created to structure, store, and to send information. For example, the following is simplified branch record, stored in XML:

<branch>

<frombus>1</frombus>

<tobus>2</tobus>

<branchutype>transformer</branchtype>

</branch>

This simple XML code describes a branch, connecting from bus 1 to bus 2, and it is a transformer branch. But still, this XML document does not DO anything. It is just pure information wrapped in XML tags. Someone must write a piece of software to send, receive or display it. Again, XML is just created to structure, store and to send information.

Work on an xml document in Eclipse:

As mentioned above, we use Eclipse to work with xml. In this section, we will show how to create/edit an XML document in Eclipse.

Create an XML Document:

Follow the following steps to create an XML document:

1. Right-click a folder, select New->Other... to add a new XML document

2. Then select XML/XML as the file type.

Again, if you do not see the option, you are missing the Eclipse EMF package. You need to install the Eclipse EMF package .

3.Enter a file name for your XML document, then Select Create XML file from a XML schema file. Select the ieee.odm_pss/schema/ODM_StudyCase.xsd as your document schema to create an xml document governed by the ODM schema.

4. Accept the defaults and click Finish to create a new XML document.

Edit the XML document:

After the xml document is created, you should see the following screen:

There are two views, design and source, in the editor window. With design view, you can easily add or editor elements by right kick a parent element see below. We are going to use this design view to add/remove elements into/from the network in this tutorial.

With Source view, you can see the corresponding Xml codes:

A 5-Bus Sample System

The following is a 5-Bus sample system to show how to represent a power network in DOM xml document.

Sample System Data

BaseVolt Voltage Gen Load

Bus1 PQ 138000 1.0 0.0 0.0 0.0 1.6 0.8

Bus2 PQ 138000 1.0 0.0 0.0 0.0 2.0 1.0

Bus3 PQ 138000 1.0 0.0 0.0 0.0 3.7 1.3

Bus4 PV 1000 1.05 0.0 5.0 0.0 0.0 0.0

Bus5 Swing 4000 1.05 0.0 0.0 0.0 0.0 0.0

R X 1/2B TurnRatio

Bus1 Bus2 0.04 0.25 -0.25

Bus1 Bus3 0.1 0.35 0.0

Bus2 Bus3 0.08 0.3 -0.25

Bus4 Bus2 0.0 0.015 1.05

Bus5 Bus3 0.0 0.03 1.05

Enter the basic information about your study case

To make your current study case more readable and concrete, you can edit the id, schemaversion, originalformat, analysiscategory, networkcategory of the StudyCase directly. See below for example, here we use InterPss-5Bus-Sample-System as the id (Note: You can do this modification by changing the value of pss:id). Also, we know that this is a transmission network intended for loadflow analysis.

Enter Bus Information

Through this, we can add the bus INFO into the network.

Step-1: By right kick pss:busList->add child->pss:bus, you can add a bus to the base bus record, see below:

Step-2: Under pss:bus, there is an attribute--id, and an element--baseVoltage. In order to make the bus information suitable for loadflow analysis, one need to add additional elements by right kick pss:bus. For example, here we add an attribute: name, and an element: pss:loadflowData:

Step-3: Similar to above, one need to add more elements Under pss:loadflowData, voltage for example, to represent the bus information for loadflow. Especially, when the bus is load type bus, we add a loadData element, after that, add an equivLoad element under pss:loadData to represent the information of the load in this bus, see below:

If the bus is a generation type, we need to add a genData element to represent the information of the generation of this bus, see below:

Step-4: Repeat the steps above to add all buses. For the sample system, there are 5 buses in the network, so we need to add 5 buses, including three constant-P type load buses and one PV bus and one Swing bus.

Enter Branch Information

Follow the following steps, we can add the branch INFO into the network.

Step-1:By right kick pss:branchList->add child->pss:branch, you can add a branch to the base branch record, see below:

Step-2: In order to make the branch information suitable for loadflow analysis, one need to add additional elements Under pss:branch by right kick pss:branch. For example, here we add an element: pss:loadflowData and an attribute: circuitId:

Step-3: Under pss:loadflowData, there is one basic attribute pss:code, which presents the type of the branch. Similar to above, one need to add more element to represent the branch information when calculating loadflow. Especially, When the branch is a transformer type, we choose Transformer from the code list and we need to add two elements: pss:z and pss:fromTurnRatio to represent the information of the transformer, see below:

When the branch is of the line type, choose Line from code list and we need to add two elements: pss:z and pss:totalShuntY to represent the information of the line in this branch, see below:

Step-4: Repeat the steps above to add all branches. For the sample system, there are 5 branches in the network, so we need to add 5 branches, including two transformer branches and three line branches.

Browse XML Document

You can also use other tools to browse the XML document. For example, using Internet Explorer, you can easily navigate the document, as shown in following figure:

The sample system XML document created in the tutorial can be downloaded from Here.