ObjectID Field for use in Auxiliary Files

Concept Link IconSee Also

 

There are many places in an Auxiliary File where a particular object may be referenced. Simulator offers the ability to reference objects using either primary keys, secondary keys, or labels. In some places you want a single field for an object which you can use as an identifier string that can take as an input any of these potential keys. This special field is available with most objects and is called the ObjectID field. When loading an AUX file or when copying/pasting from a spreadsheet, Simulator will look for identifiers using the following precedence

  1. ObjectID
  2. Label
  3. Primary Keys
  4. Secondary Keys

In this way, if the ObjectID is found it will be used as the identifier always. When loading by either ObjectID or Label, you can not create a new object. These fields are only used to refer to existing objects.

 

The ObjectID returns a string that is space delimited with the first string representing the object type. Following the object type string there will be identification information for the object. This can either be the label for the object, the primary keys listed in order (with a single quote character used to enclose strings that have spaces), or the secondary keys listed in order (again with the single quote character used to unify). Example ObjectID strings are as follows.

Object Type

Primary Keys

Secondary Keys

Label

Gen

"GEN 23 '12'"

"GEN 'Bus 23_138.00' '12'"

"GEN 'GrandCoule12'"

Bus

"BUS 33"

"BUS 'Bus 33_500.00'"

"BUS 'Coulee_N56'"

Branch

"BRANCH 23 29 'AB'"

"BRANCH 'Bus 23_138.00' 'Bus 29_138.00' 'AB'"

"BRANCH 'CaptJackGrizzly_56"

Branch

(multi-section line)

"BRANCH 23 29 'AB' 4"

"BRANCH 'Bus 23_138.00' 'Bus 29_138.00' 'AB' 4"

 

Branch

(winding 3WXFormer)

"BRANCH 23 29 66 'AB'"

"BRANCH 'Bus45_345.00' 'Bus29_138.00' 'Bus28_69.00' 'AB'"

 

3WXFormer

"3WXFORMER 23 29 66 'AB'"

 

 

Area

"AREA 51"

"AREA 'Fifty One'"

 

Zone

"ZONE 93"

"ZONE 'Ninety Three'"

 

Substation

"SUBSTATION 37"

"SUBSTATION 'Thirty Seven'"

 

Special Note on FixedNumBus Added in Version 24

For objects that use bus numbers in their identifying string, the an FixedNumBus designations for the bus will also impact this string as described in FixedNumBus Uses in AUX and other Text Files. In the locations where bus integer numbers are used, the ObjectID may also be specified using all the FixedNumBus integers instead. In those situations then all integers in a string must be specified as FixedNumBus integers. Not also then when writing out an AUX file, if FixedNumBus integers are specified, then they will be used

Special Note on Branch and LineShunt objects and Multi-Section Lines

In PowerWorld Simulator as well as PSS/E RAW files, branch records have 3 unique identifiers: “from bus”, “to bus”, and “circuit ID”. There is also a concept of a multi-section line, but this is purely an aggregation object that groups together a series of branches whose statuses are coordinated. Thus within a multi-section line, when one branch changes status, then all branches within the multi-section line group change status to stay coordinated with other branches. The unique identifiers within the various branches in the multi-section line include the intermediate bus numbers or name/kv combinations.

Within a PSLF EPC file format however, the concept of a multi-section line is fundamentally embedded within the concept of the EPC format’s branch record. Thus instead of only 3 identifiers, there are 4 identifiers for a branch within the EPC format: “from bus”, “to bus”, “circuit ID”, and “section number”. There can then be a number of sections that traverse the from bus toward the to bus.

As an example, consider the multi-section line shown below which has 7 sections in series that traverse from bus 40489 to 40687. Normally within PowerWorld Simulator (and a PSS/E RAW file) the 4th section would be identified as "Branch 40704 40706 2". Within GE PSLF however, this branch would instead be identified as "Branch 40489 40687 2 4". Both of these have the same meaning but there are fundamental differences in the identifiers used.

When writing to the Concise Contingency and RAS format we provide an option to write out ObjectID strings that are consistent with those used in the EPC format. The intermediate bus numbers 40700 through 40710 above would not appear in the EPC file format at all and thus are not part of EPC data files. This can be done because the Contingency and RAS format does not create any branch objects, but only refers to branches to define contingency events, model conditions, and so forth.

Therefore, for the branch object ID string with primary or secondary keys as described above, if the branch is part of a multi-section line, then 4 identifiers must be used and parsed accordingly. For branches that are not part of a multi-section line then only 3 identifiers are used. When reading in the AUX file and using the ObjectID as the identifier, Simulator will handle the omission of the identifier if it’s not needed. In addition we will ignore this 4th identifier in a file if it’s not needed. When identifying branches using labels this is not relevant and the object ID string is simply "Branch 'My Label'".

A similar convention will be used for the LineShunt object. If a line shunt exists with Shunt ID “A” at bus 40706 at Section 6 of the multi-section line as shown in the picture above, then normally PowerWorld Simulator would refer to this Line Shunt as "LineShunt 40708 40710 40708 2 A". To maintain compatibility with the treatment of multi-section lines in the EPC file format then when using this special option it will instead by expressed as "LineShunt 40489 40687 40489 2 A 6". The Section ID has been appended to the end of the key field lists. Also note that the 3rd identifier shows the terminal bus identifier for the multi-section line record which is on the same side as the line shunt relative to its branch.

Again, anywhere that a LineShunt is referred to using the object ID string with primary or secondary keys as described above, if the branch to which the LineShunt is connected is part of a multi-section line, then 6 identifiers must be used and parsed accordingly instead of 5. Note that when identifying line shunts using labels this is not relevant and the object ID string would be simply "LineShunt 'My Label String'".

Special Note on Branch objects and Three-Winding Transformers

In PowerWorld Simulator as well as EPC files, when referring to a particular winding of a three-winding transformer, the unique identifiers include the bus identifier for the internal bus (also called the star bus). Within a PSS/E RAW file however, the identifying information for these internal buses is not persistent (for example, in a RAW file the internal buses of three-winding transformers do not exist in the bus table). This is similar to the previous concept in the EPC format where the intermediate buses of multi-section lines do not exist. As a result, to help allow PSS/E support when reading or writing a particular winding of a terminal of a three-winding transformer we will allow an alternate way to describe the branch. This will effect situations such as defining interface definitions, or when monitoring the flow on a winding branch of a three-winding transformer in a Model Condition.

Consider a three-winding transformer which has terminals at buses 10001, 10002 and 10003 and has a circuit of AB and an internal bus number of 10004. In the past in Simulator and PSLF one would refer to one of the windings using the internal star bus number. Instead we will now identify the branch using 4 unique identifiers that include the three terminal buses and the circuit ID. The branch will then be interpreted to represent the winding associated with the first terminal bus listed. This means that the order of the second and third buses lists does not matter. As a result our three windings would be represented as follows.

Winding

Traditional Identifying String

in PSLF and Simulator

Modified Method which will not

use the Internal Bus Number

Primary

"BRANCH 10001 10004 'AB'"

"BRANCH 10001 10002 10003 'AB'" or

"BRANCH 10001 10003 10002 'AB'"

Secondary

"BRANCH 10002 10004 'AB'"

"BRANCH 10002 10001 10003 'AB'" or

"BRANCH 10002 10003 10001 'AB'"

Tertiary

"BRANCH 10003 10004 'AB'"

"BRANCH 10003 10001 10002 'AB'" or

"BRANCH 10003 10002 10001 'AB'"