You are on page 1of 913

Alternative

Transients
Program
(ATP)
Rule Book
Copyright © 1987-2015 by Canadian / American EMTP User Group

All rights reserved by ( for details contact ) :

Canadian / American EMTP User Group ; Co - Chairmen :


Dr. W . Scott Meyer / Dr. Tsu - huei Liu
3179 Oak Tree Court
West Linn , Oregon 97068
United States of America

- EEUG PDF version with partially updated chapters (2016) -


0. Table of Contents – 1

0. Table of Contents
No page numbers accompany the chapters and sections listed below because such numbers are
methodically generated from the given information. This is most easily explained by illustration.
Section I-D is seen to concern the SUBROUTINE CIMAGE, which would begin on page number
1D-1. The following page would be numbered 1D-2, etc. This assumes that there is sufficient material
to warrant two levels of independence (Chapter I, Section D). Some chapters are so short that sections
are not warranted, in which case the letter in the middle will be omitted. For example, the references
of Chapter XXV begin on page 25-1, followed by page 25-2, etc. In rare cases there may be three levels
of categorization. For example, Section IV-D-3 will begin on page 4D3-1, followed by page 4D3-2,
etc.

I. General Introductory Information About ATP Version of EMTP

A. Background of ATP; user groups; ATP education


1. History of royalty-free EMTP Development
2. Learning to use ATP; user groups; newsletters; E-mail
B. Development centers for ATP
C. Summary program capability; ways execution begins
D. $-cards of SUBROUTINE CIMAGE
E. Computer-dependent aspects and alternatives:
1. Summary of installation-dependent EMTP modules
2. STARTUP disk file for program initialization
3. STARTSPY disk file for program initialization
F. Different computer systems, specific details for all brands
G. Variable dimensioning and Dynamic Dimensioning
H. FORTRAN data format specifications
I. Structure of EMTP input data
J. EMTP data sorting by class (use of "/" cards)
K. $INCLUDE use for data modularization (including arguments)
L. Separate interactive plotting programs:
1. TPPLOT for sophisticated, single-window, plotting
2. WINDOWPLT for simpler, multiple-window, plotting

II. Cards that Begin a New Data Case

A. Special-request cards having key words


B. Miscellaneous data cards
C. Extensions to miscellaneous data cards

III. TACS and MODELS to Simulate Control Systems

A. Purpose of TACS
B. Summary of TACS capability
C. How to simulate what
D. TACS steady-state initialization rules
E. TACS elements and card formats
2 – 0. Table of Contents

1. Transfer functions or S-blocks


2. Limiters
3. Signal sources
4. Supplemental variables and devices
5. TACS output-variable specification
6. TACS user-defined initial conditions
F. Printed/Plotted Output of the TACS Variables
G. TACS User-Defined Initial Conditions
H. Use of TACS and MODELS in the Same Data Case
I. MODELS : more powerful, flexible, and newer than TACS

IV. Branch Cards to Model Linear Elements

A. Branch card for lumped, series R, L, C


B. Branch cards for Pi-circuits
C. Branch cards for mutually-coupled R-L elements
D. Branch cards for distributed-parameter transmission lines
1. Constant-parameter model with constant [T]
2. Constant-parameter, double-circuit model with special [T]
3. Rigorous, frequency-dependent model (Jose Marti)
4. 2nd-order, recursive-convolution model (Semlyen)
E Saturable transformer component
F. Branch input using "CASCADED PI" feature
G. Phasor branch [Y] input if no transient simulation
H. High-order rational admittance function

V. Branch Cards to Model Single-Phase Nonlinear Elements

A. Pseudo-nonlinear resistance R(i) (type-99 branch)


B. Pseudo-nonlinear reactor L(i) (type-98 branch)
C. Staircase time-varying resistance R(t) (type-97 branch)
D. Pseudo-nonlinear hysteretic reactor L(i) (type-96 branch)
E. Exponential ZnO surge arrester R(i) (type-92; "5555")
F. Piecewise-linear time-vary resistor R(t) (type-91; "3333")
G. True-nonlinear resistance R(i) (type-92; "4444")
H. True nonlinear inductance L(i) (type-93 branch)
I. Circuit breaker or electric arc R(t,i) (type-91; "TACS")
J. User-supplied FORTRAN for compensation (type-93; FORTRAN)
K. Corona modeling for cascaded line sections ("CORONA MODEL" )

VI. Switch Cards ( Including Thyristors and Diodes )

A. Time, voltage, current-controlled switches


B. Diode or thyristor (TACS-controlled, type-11)
C. Spark gap or triac (TACS-controlled, type-12)
D. TACS-controlled ordinary switch (type-13)
0. Table of Contents – 3

VII. Electric Network Source Cards (Other than Rotating Machinery)

A. Static electric network source functions


B. Type-16 simplified equivalent of hvdc converter

VIII. Dynamic Synchronous Machine (3-phase S.M.; Type-59) Cards

IX. Dynamic Universal Machine (U.M.; Type-19) Cards

X. EMTP Load Flow Cards (for "FIX SOURCE" Usage)

XI. Cards to Override Initial Conditions of the Electric Network

XII. Cards to Request Electric Network Output Variables

XIII. Source Type-1 Definitions (for each time step )

XIV. Batch-Mode Plotting of Resulting Simulation

XV. Request Cards for Statistical Tabulations

XVI. Interactive Execution, Observation, and Control (SPY)

A. Initiating EMTP execution that includes SPY


B. Opportunities for SPY dialogue: the keyboard interrupt
C. SPY commands explained according to general function
1. Loading and/or changing EMTP data cards via SPY
2. SPY commands to halt or resume program execution
3. SPY commands to observe EMTP tables: BUS, BRANCH, etc.
4. "PLOT" for vector or character plots during execution
5. Command files: @K, FILES, COMMENT, VERIFY, TYPE
6. EMTP variables: EXAMINE, NAMES, ROLL, LIST, FIND, DEPOSIT
7. Table dumping/restoring: SAVE, RESTORE, SLEEP, WAKE, WHEN
8. "DICE" for statistical tabulation of Monte Carlo simulations
9. Mathematics within command files: "APPEND"
10. "RAMP" & "SERIES" for continuous linear parameter variations
11. Utilities: HEADING, TIME, SIZE, LIMIT, HONK, ECHO, WAIT, $
12. "TACS" : gateway to Concurrent Sequential Processing (CSP)
13. Servicing [Y] changes: YFORM, NOY, FACTOR, NOF
D. Batch-mode execution of SPY commands: $SPY and $SPYEND
E. Use of SPY "PLOT" instead of separate program "TPLOT"

XVII. "JMARTI SETUP" Supporting Program

XVIII. "NODA SETUP" and "Armafit"


4 – 0. Table of Contents

XIX. All Fixed-Dimension Supporting Programs

A. "XFORMER" to derive [R], [L] of 1-phase transformers


B. "OBSERVE PARALLEL MONTE CARLO" for parallel "STATISTICS"
C. "BCTRAN" to derive [R], [L] of multi-phase transformers
D. "CHANGE SWITCH" to process former switch cards
E. "OLD TO NEW ZNO" to update pre-"M39." ZnO data cards
F. "DATA BASE MODULE" to modularize for $INCLUDE arguments
G. "SATURATION" for magnetic saturation calculations
H. "HYSTERESIS" to punch Type-96 branch cards
I. "ZNO FITTER" to punch Type-92 ZnO branch cards

XXI. "LINE CONSTANTS" Supporting Program

XXII. "SEMLYEN SETUP" Supporting Program

XXIII. "CABLE CONSTANTS" Supporting Program

XXIII. Appendix "CABLE PARAMETERS" Supporting Program

XXIV. "NETWORK EQUIVALENT" for Supporting Program "NETEQV"

XXV. Associated Reference Material

XXVI. Index of Alphabetically-Ordered References


I. Introductory Information About Program – 1

I. Introductory Information About Program


=====================================================================
© Copyright 1987-1995 by the Can/Am EMTP User Group. All rights reserved.
=====================================================================

No part of either this manual or the associated computer program (ATP version of the EMTP)
may be reproduced in any form, using cards, paper, microfilm, magnetic media, or any other means,
without written permission from the Canadian/American (Can/Am) EMTP User Group. Further, such
materials have restricted circulation, and their informational content shall not be released to third
parties.

The content of this manual, the associated computer program, and all other ATP EMTP
materials, are all made available for use by others without any guarantee of usefulness, accuracy,
fidelity, or completeness. No author, licensing agent, or authorized distributor will be held responsible
for any damages that might possibly result from the use or misuse of ATP EMTP materials for any
purpose. The user is solely responsibility for any damages that might possibly result from the use or
misuse of ATP EMTP materials for any purpose.

I-A. Background of ATP; User Groups; Education


The Electromagnetic Transients Program, or EMTP (pronounced by naming the four letters
sequentially), is primarily a simulation program of the electric power industry. It can predict variables
of interest within electric power networks as functions of time, typically following some disturbance
such as the switching of a circuit breaker, or a fault. It also is used by those who specialize in power
electronics.

EMTP has its roots in Portland, Oregon (USA), at the Bonneville Power Administration (BPA),
an agency of the U.S. Department of Energy. Thanks to generous contributions of both manpower and
money (the latter to support specialists working on EMTP research and development under contract),
BPA dominated EMTP development for more than a decade. This was all public-domain work, and
it was given freely to any interested party. This was prior to attempted commercialization of the EMTP
during the summer of 1984 (see Section I-A-1 below).

The present manual basically is just a complete set of rules for EMTP input and output. Except
for the Table of Contents and Introduction at the front (through the end of Section I), and the
References and Index at the back (Sections XXV and XXVI, respectively), nothing but rules of
program usage will be found. Since most EMTP data have a required order of input, the rules of this
book have been written in this same order of data input. Supporting programs (e.g., "LINE
CONSTANTS") are exceptions, and they have all been forced to the back (Chapters XVII through
XXIV) to agree with the order of appearance within the computer source file (UTPF). Details about
interactive execution, observation, and control (SPY) also have no fixed order, and they have been
placed in Chapter XVI, preceding the supporting programs.

I-A.1. History of Royalty-Free Development

Following attempted commercialization of the EMTP by certain large organizations of the North
2 – I -A. Background of ATP; User Groups; Education

American power industry ("EPRI and some friends," as explained later), all EMTP development no
longer was given to BPA by persons who had cooperated with BPA in the past. Included was the
prodigious after-hours, weekend, and vacation work of Dr. W. Scott Meyer. There evolved a distinct
EMTP version known by the acronym ATP (Alternative Transients Program). Although ATP work
remains the property of the individuals who produced it, the Can/Am user group is the licensing agent
for the use of these EMTP materials by others. For other parts of the world (England, Europe, Taiwan,
etc.), such authority has been delegated to others. ATP materials are royalty-free for those who have
not participated in "EMTP commerce" (defined by form letter LICENSE.ZIP of the Can/Am user
group), but they are not public-domain in nature (as is the case with BPA EMTP work). This
distinction is necessary in order to protect such materials from commercial exploitation.

The Can/Am user group is grateful to BPA for all of its public-domain EMTP development that
formed the basis for this newer, improved, offering of the program. The roots of ATP can be traced
to early 1984, when it became apparent to BPA EMTP developers that DCG was not working as it was
supposed to, and formed a threat to free EMTP. At that point (February or March), 12 years of "EMTP
Memoranda" were ended by Dr. Meyer, and every available hour of his free (non-BPA) time was
switched from BPA's EMTP to the creation of a viable alternative that would be denied to those having
commercial ambitions (already apparent among several DCG members). ATP, the Alternative
Transients Program, was the result during the fall of 1984. This followed Dr. Meyer's return from
Europe (the first European EMTP short course, in Leuven) and purchase of his first home computer (the
new IBM PC AT) during August of 1984.

In September of 1982, a "coordination agreement" concerning the EMTP was signed by six
large power organizations of North America: three U.S. government agencies (BPA, the Western Area
Power Administration, and the U.S. Bureau of Reclamation, with the latter two headquartered in
Denver, Colorado) and three Canadian organizations (Hydro-Quebec/IREQ, Ontario Hydro, and the
Canadian Electrical Association on behalf of the remaining Canadian utilities). Known by the acronym
DCG (for EMTP Development Coordination Group), this organization agreed during March of 1983
to keep the EMTP proper (the UTPF) in the public domain. But there followed a loose Association
with the Electric Power Research
Institute (EPRI, of Palo Alto, California) during the summer of 1984. During the fall of that year, it was
claimed by the DCG Steering Committee that BPA EMTP work would no longer be in the public
domain, and would not be given freely to others.

But such DCG/EPRI policy was nothing more than wishful thinking by those wanting to
commercialize the EMTP. During April of 1985, a U.S. Freedom of Information Act (FOIA) request
was filed with BPA, and BPA disclosed its then-latest version of the UTPF as required by that U.S.
law. Since then, strong statements from BPA indicated that both U.S. government work and money
must result only in public-domain EMTP products. This was consistent with the hopes of European
EMTP users, of course. Prior to such statements by higher management and its representatives at BPA,
LEC (the Leuven EMTP Center with headquarters on the campus of K.U. Leuven in Belgium) was
formed by Prof. Daniel Van Dommelen during the spring and summer of 1984 as a defensive measure.
This was after hearing of proposed DCG/EPRI prices during a personal visit by DCG Chairman Doug
Mader. Although LEC later had problems of mismanagement, everyone involved can be proud of
those early years, and the obvious spirit of independence ("hell no, we won't pay") that drove the
effort. The first annual meeting of LEC was held in Leuven on November 4th of 1985, and Dr. Meyer
agreed to bring ATP. About possible cooperation with those who then were trying to sell EMTP, the
official minutes of this meeting records the following:
I-A. Background of ATP; User Groups; Education – 3

"- It was unanimously agreed that the User Group wants to


influence the politics of development by making a
distinction between:
- the EMTP proper (UTPF),
which should remain free and intact.
- Preprocessors, postprocessors and data bases,
which could be things to sell.
- After this discussion, it was agreed that TA should
contact DCG in order to request EPRI not to sell the EMTP
proper (UTPF). Should this first attempt prove to be
unsuccessful, then DVD could try."

Here "TA" stands for Mr. Ture Adielson of ASEA, who at the time was the EMTP representative of
ASEA to both DCG and LEC. Finally "DVD" indicates Prof. Van Dommelen, the Chairman of LEC.
Prior to the vote authorizing this statement, Dr. Meyer had agreed to turn his ATP work into the public
domain provided DCG and EPRI would do likewise. No response from DCG or EPRI was ever
received, as far as the Can/Am user group knows.

Both K.U. Leuven and LEC operated through 1993 without any formal connection to any power
organization of North America. However, LEC did cooperate with BPA on an informal basis for
several years (most effectively from 1985 to 1989), and it remained willing to consider the
establishment of a formal tie provided non-commercial EMTP activity at K.U. Leuven could thereby
be assisted. This was the stated goal of LEC, which was supposed to be a nonprofit organization. The
Chairman did serve without pay, and decisions normally were made (or subsequently reaffirmed) by
majority vote of the members. That was through 1990, anyway. But with growth came affluence, and
with affluence seemed to come corruption as discovered by LEC's own Steering Committee. After
failing to account for all money collected from members, and failing to honor voting rights of members
in this regard (accurate accounting of money), LEC was closed at the end of 1993.

But the European EMTP User Group (EEUG) was reformed in Hannover, Germany, during
November of 1994. This followed the leadership of Dr. Mustafa Kizilcay, who was working for
Lahmeyer International as the meeting was planned, but had been named to be a Professor at the
university in Osnabrueck before the meeting was actually held. By German law, all money must be
accounted for, and voting rights of members are guaranteed by an associated charter. As this text is
being revised during the spring of 1995, operation is beginning slowly (German law is demanding),
but with considerable promise.

I-A.2. Learning to Use ATP; User Groups

By far the best way to learn about EMTP capability and usage is by working beside a competent,
experienced veteran. Those power organizations that have been using the EMTP for a broad range of
power system simulation, and which have not suffered disrupting changes of personnel, represent the
ideal learning environment. If the reader is working for such an organization, he should count his
blessings, and disregard most of what follows. In case of questions or problems, go see the local
experts. Always ask questions. Program users must adopt this habit, since they will be doing it until
the day they retire, so broad and complex is transient simulation!

For those not so blessed by local experts, the next-best alternative is a strong national or regional
4 – I-B. Development Centers for ATP

EMTP User Group to which new users can turn for help. Contact personnel of ATP-licensed
organizations that are officially recognized by the Can/Am user group are as follows:

Dr. Akihiro Ametani, Professor and


Chairman, Japanese EMTP Committee
Dr. Naoto Nagaoka, Professor and Secretary
Faculty of Electric Engineering
Doshisha University
Tanabe, Tsuzuki-gun
Kyoto 610-03
JAPAN

Prof. Dr.-Ing Mustafa Kizilcay


Chairman, European EMTP-ATP Users Group
Association
Fachhochschule Osnabrueck
Fachbereich Elektrotechnik und Informatik
Albrechtstr. 30
D-49076 Osnabrueck
GERMANY

Mr. Marco Polo Pereira


Chairman, Latin American EMTP User Group
Furnas Centrais Elétricas S.A.
Rua Real Grandeza 219, C 1608
CEP 22283-900 -- Rio de Janeiro
BRAZIL

Dr. Brian J. Elliott, Chairman


Mr. Stephen Boroczky, Secretary
Grid Planning & Development
Electricity Transmission Authority
PO Box 1000
Sydney South, NSW, 2000
AUSTRALIA

Dr. W. Scott Meyer and


Dr. Tsu-huei Liu, Co-Chairmen
Canadian/American EMTP User Group
The Fontaine, Unit 6B
1220 N.E. 17th Avenue
Portland, Oregon 97232
U.S.A.
I-A. Background of ATP; User Groups; Education – 5

JinBoo Choo, Manager


Korean EMTP Committee
Electric Power Research Department
Korea Electric Power Corporation
(KEPCO) Research Center
117-15, Yong Jeon Dong, Dong-Gu
Dae Jeon
SOUTH KOREA

Mr. Chiang-Tsung Huang, Chairman


Mr. Shui-Hsiu Lin, Secretary
Republic of China EMTP User Group
(Includes Hong Kong and Singapore)
System Planning Department
Taiwan Power Company (Taipower)
242 Roosevelt Road, Section 3
P. O. Box 171
Taipei 107
REPUBLIC OF CHINA (TAIWAN)

Dr. Warren Levy


Information Technology Dept.
Electricity Supply Commission (ESKOM)
Megawatt Park, Maxwell Drive
P. O. Box 1091
Johannesburg 2000
SOUTH AFRICA

While each group was primarily designed to serve users of its geographical region, anyone in the world
can order ATP materials directly from either Osnabrueck or Portland. Also, computer files are being
shared on a world-wide basis among ATP-licensed users by E-mail (the Internet). See later paragraph.

EMTP education is being handled separately, and materials related to it are not available through
BPA, so do not write to Portland for a copy. EMTP education began in June of 1978 with a one-week
EMTP short course at the University of Wisconsin -- Madison. This was basically an introductory
course, and it has been offered most summers since its inception. Following the switch from BPA's
EMTP to the commercial offering of DCG/EPRI in 1987 or 1988, the Madison offering has ceased to
be of much value to ATP users, however. Other universities have offered introductory courses, too,
from time to time. For ATP, this began in Leuven, Belgium, during the summer of 1987 --- the first
public exposition of ATP. Then during the summers of 1988 and 1989, Cal Poly in San Luis Obispo,
California, USA, offered the first EMTP course that used only PCs (Personal Computers). The spring
of 1989 saw the beginning of such now-famous PC-based education offered by Prof. Dennis Carroll
at the University of Florida in Gainesville. Prof. Ned Mohan began his popular 2-day, traveling (it
follows IEEE PES Summer Meetings) course in 1990 when the PES meeting was near his home
campus in Minneapolis. As for more advanced education, Europeans were first, when a high-level
course for experienced users was given during the summer of 1984 by Prof. Daniel Van Dommelen at
6 – I-B. Development Centers for ATP

K.U. Leuven in Belgium. While needed, such advanced courses have difficulty attracting adequate
numbers of students to be offered regularly.

Power electronics can be simulated using the EMTP as documented by a textbook on the subject
that first appeared in 1989. John Wiley & Sons, Inc., of New York City (USA), publish "Power
Electronics: Converters, Applications, and
Design" by Ned Mohan, Tore Undeland, and William Robbins. An associated set of 64 ATP data cases
and paper documentation of them (a separate book) can be purchased from Prof. Mohan at the
University of Minnesota. Beginning about 1993, this package was bundled with Prof. Mohan's short
course, which now specializes in ATP applied to power electronics of power systems.

The EMTP Rule Book contains almost nothing about what is happening in the world of EMTP
usage and development. For EMTP-related announcements, reports of interesting studies by program
users, corrections to the Rule Book and/or common program versions, and summaries of ongoing
EMTP research, see the newsletter of the Can/Am user group. This is Can/Am EMTP News, which
during 1994 and 1995 has consisted of 20 pages per quarterly issue (January, April, July, and October
of each year). Dating to the second half of 1988, WordPerfect 5.1 documents of the content can be
obtained by E-mail from several Anonymous FTP sites around the world (more about such E-mail
usage later).

"EMTP News" was a valuable journal about EMTP that was published by LEC for some 6 or
7 years prior to LEC's demise in 1993. Early issues of the Can/Am newsletter will refer to this, which
is an important part of the historical record of ATP usage and development. Unfortunately, no
computer storage of most of the published material is believed to exist. It is hoped that the tradition
of a journal for full-length articles about ATP use (more than development) can be resurrected during
1995 by the new EEUG, which uses the name "EEUG News" A newsletter, this was not (during its
prime, each issue of the quarterly "EMTP News" averaged about 100 pages).

E-mail (electronic mail) has become critically important to many ATP users. As WordPerfect
disk files, the newsletter and other ATP-useful things can be obtained from FTP server ftp.ee.mtu.edu
on the campus of Michigan Technological University in Houghton (USA) using Anonymous FTP
transfers of Internet. There also is a mirror in Europe, at the University of Hannover in Germany at
address 130.75.2.2 Details are summarized in the January, 1995, newsletter. Prof. Bruce Mork of
Michigan Tech in Houghton manages this material. He also established a free electronic bulletin board
atp-emtp@listserv.nodak.edu that allows ATP users to exchange messages. See the October, 1991,
issue of the newsletter for Prof. Bruce Mork's 3-page exposition about this pioneering, ATP service he
founded. That article also can be found in OCT91.DOC within disk file EMAIL.ZIP on the GIVE2
disk of Salford EMTP distribution. The service is free, and had grown to more than 200 addresses by
the end of 1994. Prof. Mork explained FTP use in the July, 1992, issue (see JUL92.DOC within
EMAIL.ZIP). ATP itself can be distributed by FTP, but not without security (a password). ATP also
can be distributed by normal E-mail using the Attach button of MS Mail within MS Windows (this
UUENCODEs an archive such as GIVE1.ZIP automatically) as described in the January, 1995,
newsletter.

I-B. Development Centers for ATP


The Can/Am EMTP User group can be reached most easily by E-mail (electronic mail) since
use of it was begun by the user group in the fall of 1993. The current Internet address used by Drs.
I-C. Summary Program Capability – 7

Meyer and Liu is: atp@agora.rain.com The non-electronic mailing address in The Fontaine was
displayed previously.

BPA personnel who are preoccupied with free EMTP development are Drs. W. Scott Meyer and
Tsu-huei Liu, who most easily can be reached by telephone using number (503) 230-4404. Dr. Liu's
telephone is -4401, but this is less useful because it has no recorder, and a secretary might answer.
If no human answers 4404, after a full four rings a personalized recording in Dr. Meyer's voice will be
heard. If the phone is in use, the recording will be heard immediately. Following Dr. Meyer's brief
greeting, a caller will be given an opportunity (after the tone) to leave a recorded message (not over
about 8 minutes). A warning is appropriate, however: Speak slowly and distinctly, since the recording
system produces distortion of its own as evidenced by the quality of the recording. When the message
is complete, a flashing red light will be seen on Dr. Meyer's telephone. For a telephone call to be
returned, be sure the name
and telephone number are slowly and clearly enunciated. Finally, the address for conventional mail,
E-mail, and also telephone facsimile (FAX) is:

Dr. W. Scott Meyer or


Dr. Tsu-huei Liu E-mail: thliu@bpa.gov
BPA, Route TEOS; Floor 4, Post S-14
P. O. Box 3621
Portland, Oregon 97208
U.S.A. FAX: (503) 230-3212

Those wanting to use a delivery service will require a street address: 905 N.E. 11th Avenue, with
different postal code 97232. Be sure to include the floor and post, since BPA's is one big building of
some 2200 workstations.

Laurent Dubé, author of MODELS (new control system modeling), also can be reached most
easily by E-mail. Use dube@peak.org (Internet address). He also has voice telephone with a
recorder: (503) 392-4551. For FAX, Mr. Dubé uses 392-4575. Located on the Oregon coast about
2 hours by car from Portland, the mailing address is: DEI Simulation Software

7000 Rowan Road Manor


P. O. Box 848
Neskowin, Oregon 97149
U.S.A.

I-C. Summary Program Capability; Ways Execution Begins; Errors


The EMTP is used to simulate transients of electrical power networks. That is, it is used to
solve the algebraic, ordinary, and/or partial differential equations that are associated with an
interconnection of the following components:

C Lumped resistance, R :

C Lumped inductance, L :

C Lumped capacitance, C :
8 – I-C. Summary Program Capability

C Multiphase Pi-equivalents, where the preceding scalar R, L, and C become symmetric, square
matrices [R], [L], and [C].

C Multiphase distributed-parameter transmission lines, wherein propagation time of the


component is represented. Both constant-parameter and frequency- dependent representations
are provided.

C Nonlinear resistors, where the v-i characteristic is single-valued.

C Nonlinear inductors, either with the conventional single-valued characteristic (see sketch at
right) or including hysteresis and residual flux.

C Time-varying resistance.

C Switches, used to simulate circuit breakers, spark gaps, or any other connection change of the
network. Diodes and thyristers (ac/dc valves) are included.

C Voltage or current sources. In addition to standard mathematical functions (sinusoids, surge


functions, steps, and ramps), the user may specify sources point by point as functions of time,
or in user-supplied FORTRAN, or via TACS control (see control system modeling below).

C Dynamic rotating electric machinery, of which the most common form is conventional, 3-phase
synchronous machines. But induction machinery and dc-machinery also can be represented,
for 1, 2, or 3 phases. Such machine models can be connected to TACS control system models
(see immediately below), thereby allowing dynamics for voltage regulators and speed
governors.

C Control system dynamics as years ago were represented by differential analyzers ("analog
computers"). This modeling has been named TACS, an acronym derived from "Transient
Analysis of Control Systems." Nonlinear and logical operations of various types are allowed.
Inputs and outputs may be interfaced with the electric network of the EMTP, thereby providing
hybrid computer capability. All TACS configurations are user-patchable, and hence
configuration-free. See Section III for details.

Trapezoidal-rule (second-order) implicit integration is used on the describing equations of most


elements that are described by ordinary differential equations. The result is the formation of an
associated set of real, simultaneous, algebraic equations that must be solved at each time step (see
Ref.#1). These equations are placed in nodal-admittance form, with new unknown voltages as
variables, and are solved by ordered triangular factorization (Ref.#4).

Program output consists of component variables (e.g., branch currents or voltages, machine
torques or speeds, etc.) as functions of time, for those variables that were requested by the user. Both
printed and plotted output is possible, with plotting available in either character or vector-graphic mode.
See Section#XIV for the batch-mode (both character and vector) plotting, and Section#XVI for the
details of interactive (SPY) usage.

Initial conditions for differential equations of the various components can be determined
automatically by the program for many if not most cases of practical interest. The most important
I-C. Summary Program Capability – 9

restriction is to linear elements (nonlinear components must generally be ignored during phasor
steady-state solutions). Yet injections of the electric network may be specified in terms of power and
voltage magnitude, thereby providing multi-phase load flow capability. Control system modeling
(TACS) allows for the superposition of an arbitary number of linear phasor solutions of different
frequencies.

An enormous discontinuity in the EMTP occurred during 1984-1985. As DCG/EPRI made


proprietary claims to BPA work (later rejected by BPA in connection with a Freedom of Information
Act request during April of 1985), the ATP (Alternative Transients Program) version was developed
outside of BPA by W.#Scott Meyer and other cooperating individuals and organizations. Because the
program was restructured in important ways, former translators had to be abandoned. A new beginning
has taken place.

As a general rule, the new EMTP (i.e., ATP) is less demanding of computers than were the older
("M39." and before) versions. However, structure is different, so successful experience gained from
"M39." and earlier versions is being omitted from this documentation. Most if not all of the two dozen
or more distinct computers that once were proven to be EMTP-compatible (for the old code) probably
remain compatible for the new code, too. Yet this is not yet known for sure. As an honest, conservative
approach, all former (pre-ATP) material is being removed. For those wanting information about the
portability of "M39." and earlier EMTP versions, refer to the Rule Book dated June, 1984.

For all computer systems, program execution begins with a one-line prompt that shows the most
important alternatives within parentheses:

$emtp
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
SPY

If the user is communicating with the operating system in real time via a keyboard (as opposed to being
home in bed while some batch-mode processor runs his job during the middle of the night), then his
next input is crucial to how the program begins execution. If the user knows nothing, he might send the
4th listed alternative ("HELP"), which results in the following universal information about the various
choices:

1) "SPY" is the gateway to interactive execution, observation, and control, as documented


in Section#XVI of the Rule Book. For details, send "SPY", "HELP" and then "ALL"
--- resulting in a total of about 500 lines of instruction.

2) "file_name". If not one of the listed key words (in capital letters), the input line is taken
as the name of a disk file of data for batch-mode solution. If this ends with a period, ".dat"
(the implied file type DATTYP of the STARTUP file) will be appended.

3) "DISK" is request for later prompt for LUNIT6 disk file name.

4) "HELP" provides the overview of options now being read.

5) "GO" is for batch solution, like 2, only for the special case of an external connection of the
data file to LUNIT5.

6) "KEY" is for use of LUNIT5#=#5 data input (no use of LUNT10 cache).
10 – I-C. Summary Program Capability

7) "STOP" will terminate execution immediately (FORTRAN STOP).

The 1st alternative, "SPY", should be used only with those computers that have the capability of
interactive EMTP execution, observation, and control. Verify availability in the installation-dependent
section applicable to the computer of interest before any such attempt. Then refer to Section#XVI for
generic instructions of usage. A disk file name may follow "SPY", separated by a blank and possibly
preceeded by the character "@" (indicating a SPY command file rather than an EMTP data file). For
further details, see the "DATA" command of SPY in Section XVI-C-1.

For non-SPY EMTP execution, it is the 2nd option ("file_name") of the initial EMTP prompt
that can always be used. Just send the name of any legal disk file that contains EMTP data to be solved.
Since such names depend upon computer system (file names were not standardized by ANSI
FORTRAN#77), any example might be misleading, so none will be given.

Arguments of the type used with $INCLUDE can follow the file name for special cases. Of
course, a special data file is required, and arguments must match the demands of the data file in both
number and type. If ".dat" is not explicitely keyed, remember to leave room for it (at least 4 blanks)
before any arguments begin, since the ".dat" will erase whatever exists at the time and place of its
application. An illustration using a single argument is provided by BENCHMARK DC-65, which
begins execution as follows. Note that there is only one argument, the end time TMAX of the study,
which is being set to 7/10 second:

$emtp
EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :
dc65. , 0.70

For more details, see "DATA BASE MODULE" of Section XIX-F. Two or more arguments require
use of a comma "," as a separator (possibly changed by variable CHRCOM on card 19 of the
STARTUP file). To continue the argument list on a second or later input line, simply key "$$"
(possibly changed by variable CHRCOM on card 19 of the STARTUP file) on the right in any
columns not exceeding 79-80. The following continuation line begins in column 2 (column 1 is
ignored, so do not begin an argument there). There is no limit to the number of such continuation lines.

The third possible beginning is "DISK", which provides a universal way of sending the EMTP's
LUNIT6 output to a disk file of the user's choice, in case of non-SPY execution. If the user is
communicating with the operating system in real time, and if his computer has windows that can be
scrolled the way Apollo's can, then usage of "DISK" is not generally recommended, since it masks
important information about how execution is progressing. For example, the user will not know how
close to termination a simulation might be. On the other hand, in cases of batch-mode solution with
the user at home and asleep in bed, this is precisely what is wanted. For such use, the "DISK" request
is sent first, followed by "file_name" (to specify the data), followed by a second file name to which
LUNIT6 is to be connected. If such commands are done in real time, the third and final input will be
in response to the prompt:

Send desired disk file name for LUNIT6 :

To over-write an existing file of the same name, append "-r" or "-R" for most computers. For
example: "dc4. -r". Without this request to replace the old file with the new one, the EMTP will
prompt for a correction.
I-C. Summary Program Capability – 11

The 5th alternative input is "GO", which is not universal, and which is not recommended for
any computer that has dynamic OPEN/CLOSE capability. It is only necessary and sufficient for those
installations that lack such capability (e.g., mainframe IBM systems) --- computers that require the user
to connect the EMTP input data file externally. For typical batch-mode IBM usage, this would be as
part of the Job Control Language that runs the program. The "GO" command then informs the
computer that data has already been connected, and that the user now wants the solution to proceed.

The 6th alternative input is "KEY", which has specialized use. One application is for program
(or data) debugging using computers with windows (see the Apollo pages). Another application is for
the production of batch-mode EMTP plots one at a time, with the user allowed to see the preceding plot
before creating the following plot card. This assumes that the user is communicating with the operating
system in real time, and that he is using a terminal that is capable of displaying the requested plots. It
also assumes that the simulation of interest has already been performed, and that raw plot data points
have been saved on disk (integer miscellaneous data parameter ICAT > 0). Consider the following
sequence of keyed input lines in response to the initial EMTP prompt:

KEY
$OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 ....(etc.)
REPLOT
144 1. 0.0 20. 18-A 18-B 18-C

The 2nd card shown connects the plot file to the program, whereas the 3rd ("REPLOT") transfers
control to batch-mode EMTP plotting. The 4th card is the 1st of an indeterminate number of
batch-mode EMTP plot cards. Since these are only read one at a time as needed, the user can request
whatever he wants in whatever quantity he wants, based of the results of previous plots. It is possible
that an extra card, "DISK PLOT DATA", might be required after "KEY" and before "REPLOT".
This is the case for those program versions (e.g., Apollo) that do not have an LUNIT4 connection to
disk by default. There may also be need of a "CALCOMP PLOT" or "PRINTER PLOT" request
before the first plot card, if the STARTUP file does not correspond to the available mode of the
terminal being used. Finally, remember that the $OPEN card is installation-dependent. For details
of this example, see BENCHMARK DC-54.

The 7th and final alternative, not suggested by the prompt, is "STOP", which represents a
generic way to terminate program execution. But since most if not all computers have vendor-specific
ways that may be more convenient and natural, it is unclear whether the average user will want to key
"STOP" just to halt the program.

Once program execution is under way, output designed for the line printer (the LUNIT6 I/O
channel) will be created at intervals, and variables of interest may be written to a disk file (typically
with file type ".PL4") for later plotting. Whether the user sees much if any of this will depend upon
whether or not he can see the LUNIT6 output on a computer monitor during this time. The "DISK"
command obviously prevents this for most systems, as might the "GO" command (if a file were
assigned externally to LUNIT6).

Formal error terminations are a special form of output with which every user should be familiar.
It is difficult to overlook any such messages, since the LUNIT6 output is marked before and after by
the following characteristic, 4-line band of printing that is a full 132 columns wide:
12 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

------------------------------------------------------------------
ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ ... etc.
ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/
------------------------------------------------------------------

Following such an introduction will be 5 lines of standard explanation ("You lose, fella ...") to which
only the beginning user need pay any attention. But then comes valuable information, beginning an
80-column card image of the last-read data card. Location of the difficulty in the EMTP source code
is provided by the numbers that are labeled as: "KILL code number", "Overlay number", and "Nearby
statement number". Finally, there is the specific error message itself, always beginning with "KILL
=XX" where "XX" is the KILL-code number (between unity and about 230). After a second printing
of the "ERROR/ERROR" band, there will be attempted recovery of execution, with the program
reading through remaining data cards until a "BEGIN NEW DATA CASE" card is found. Case
summary statistics will then separate the error termination from the following solution (if enough data
remains to be solved).

Non-fatal warning messages are usually much more inconspicuous, but should be looked for,
and understood, by the intelligent user. Usually such messages will be indented, and often they are
preceded by several special symbols. As an example, consider: "///##Warning.##Nonzero XOPT or
COPT differs from the power frequency of 6.00000000E+01 Hz. Did the user really want this?" Not
shown here is the indentation of two spaces.

I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily


An EMTP data case is made of EMTP data cards (or more formally, of 80-column card-image
records, in this day of CRT monitors). Most such cards require specific ordering (see Section I-I), so
are the subject of later sections of this manual (Section#II onward). But there is an exception -- a class
of cards called "$-cards" for which ordering is arbitary. Such cards will be explained in the remainder
of this section.

A $-card (pronounced "dollar card") consists of a dollar sign in column one, followed
immediately by some short command. All such cards are requests for operations that can be serviced
locally within installation-dependent SUBROUTINE CIMAGE. Due to the installation-dependent
character, it is true that no one can be sure of what applies to all systems. For example, a particular
computer might refuse to recognize any such card. Yet this should not happen. There should be a solid,
universal framework that applies to all computers for the following cards:

1 $OPEN 2 $CLOSE 3 $WIDTH


4 $ABORT 5 $ENABLE 6 $NEW EPSILN, EPS
7 $MONITOR 8 $LISTOFF 9 $LISTON
10 $VINTAGE,M 11 $STOP 12 $WATCH
13 $COMMENT 14 $DEBUG, M 15 $UNITS
16 $PUNCH 17 $ERASE 18 $STARTUP, file_name
19 $KEY 20 $BREAK
I-C. Summary Program Capability – 13

It is such universal rules that will be described in the remainder of the present section. For specifics
of computer- or installation-dependent exceptions or extensions, see that section of the Rule Book that
applies to the computer of interest.
14 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

I-D-1. $OPEN to connect a disk file to an I/O channel

$OPEN##is used to connect a disk file to an I/O channel of the program. Similar to the ANSI
FORTRAN#77 definitions of these statements, qualifiers are allows. While some qualifiers are
required for all computers (e.g., the I/O unit number with qualifier "UNIT="), others (e.g., the record
length specification "RECL=") may be required only for certain computers. So, although details may
vary from computer to computer, the structure is universal, and this is what will now be summarized.
First, consider sample $OPEN usage for Apollo, as drawn from BENCHMARK DC-54 (and split
into two lines only for ease of display):

$OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 FORM=UNFORMATTED


STATUS=OLD RECL=8000

Note the single comma, after the request word. All other qualifiers are separated from each other by
one or more blanks, not commas (note!). Although the display has been spread onto a second line for
convenience of presentation, this is not allowed as EMTP data, which must all fit within a single,
80-column card image. The qualifiers can appear in any order, and variations should be obvious to any
FORTRAN programmer. For example, FORM=FORMATTED would be possible, as would
STATUS=NEW, STATUS=SCRATCH, or STATUS=UNKNOWN. Yet some of this is
computer-dependent. For example, VAX can always create a NEW file (given a higher version number
by VAX/VMS), whereas Apollo only can do so if a file of the desired name does not already exists.
An unfortunate peculiarity of Apollo Aegis is the need for the "RECL=" qualifier (most systems can
dispense with this detail). Remember that using STATUS=SCRATCH conflicts with the use of
"FILE=", so these two should never be used together (see the 2nd subcase of BENCHMARK DC-24
for sample STATUS=SCRATCH usage).

An illustration of $OPEN usage is provided by BENCHMARK DC-40, which continues the


Monte Carlo simulation of DC-24 (which only performed 3 of the 6 total energizations) using
"START AGAIN". Before emtp tables can be read via I/O channel LUNIT2#=#2, the disk file storing
them must be connected. The data card interpretation for this operation is as follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Connect disk file to I/O unit. |$OPEN, UNIT=2 FILE=DC24.

Other test cases illustrating $OPEN are: 1)##DC-3, which illustrates the manual naming of the plot
file (rather than having a random name based on the date and time of day); 2)##the second subcase of
DC-24, to connect the file of user-supplied switch times, DC24LUNIT8.DAT, to unit 8; 3)##DC-32,
where the disk file of program tables (created because MEMSAV#=#1) must be connected by the user.
4)##DC-46, where the plot file created by DC-45, DC45.PL4, is connected for postprocessing using
TACS; 4)##DC-49, which is like DC-40 except for the lack of dice rolling (it provides a continuation
for the deterministic DC-32); 5)##DC-54, where the plot file created by DC-3, DC3TO54.PL4, is
connected for purposes of delayed, batch-mode plotting using REPLOT.

Should more than 80 columns be required due to a long file name, the user is advised to use a
continuation request "=$$" on the right of his $OPEN card. All partial cards begin with "$OPEN,"
in columns 1-6. For an illustration of such usage, see BENCHMARK DC-66. Interpretation will be
identical whether or not the $OPEN is contained on a single card.
I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily – 15

I-D.2. $CLOSE to disconnect a disk file from an I/O channel

$CLOSE is used to disconnect a previously-connected file. Sometimes this is done to protect


a data file from being written on after it has been used. At other times it is used to free the I/O unit for
another connection that is to follow. In any case, only the UNIT= and STATUS= qualifiers are
applicable. The first of these is self-explanatory, and the second will either be STATUS=SAVE or
STATUS=DELETE.

The addition of "SHOW CARDS" anywhere on the $CLOSE request will result in a listing
of 80-column card images of the file just as though the cards had been punched (see $PUNCH). This
is just before the file is released. For an illustration, see the second subcase of BENCHMARK DC-52.

An illustration of $CLOSE usage is provided by BENCHMARK DC-40, which continues the


simulation of DC-24 using "START AGAIN". After emtp tables have been connected and read, they
are immediately disconnected to protect them against some unplanned, stray WRITE to the I/O channel
being used (this is the extra-cautious approach). The following interpretation documents this:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Disconnect disk file from I/O unit. |$CLOSE, UNIT=2 STATUS=K

Any data case with MEMSAV#=#1, or the associated subsequent "START AGAIN", will use
$CLOSE. Other test cases are the first and third subcases of BENCHMARK DC-24, DC-32, all
subcases of DC-49, and the 2nd subcase of DC-52.

I-D.3. $WIDTH to change the LUNIT6 output width

$WIDTH,#M##allows the user to modify the LUNIT6 output width, most commonly between
80 and 132. Such $-card specification will overide the initial choice that has been built into the
STARTUP file. All output structures for simulation usage can have the width so controlled, although
little has been done for non-simulation supporting programs (e.g., "LINE CONSTANTS"), most of
which produce only 132-column output. One usage that may have nothing to do with width is to have
132-column output everywhere except for the branch flows and nodal injections of the phasor solution.
This can both speed output and save considerable paper, since no reverse flows are printed, and the
forward flows are shorter.

An illustration of $WIDTH usage is provided by BENCHMARK DC-5, which illustrates


80-column output capability of the program. The following interpretation documents this:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New KOL132 = 80 (LUNIT6 output width). |$WIDTH, 80, { Req
16 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

I-D.4. $ABORT to proceed to next data subcase

$ABORT results only in setting the error flag KILL#=#88. For most places of a data case, this
will direct control to special error message number 88, and then result in a skip to the next data subcase
of the disk file, should one exist. The location of $ABORT is not arbitrary, although it can be placed
before just about any blank terminator card as an extra record.

An illustration of $ABORT usage is provided by the second subcase of BENCHMARK


DC-42, which is to abort before the blank card ending plot cards. The following interpretation
documents this:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------

End data subcase. "CIMAGE" sets KILL = 88. |$ABORT { Illustration

I-D.5. $DISABLE to treat data cards as if they were comment cards


$ENABLE to end such implicit commenting of data cards

The $DISABLE/ENABLE feature is one trivial, universal feature. First, a $DISABLE card
tells the EMTP to treat all following data cards as if they were comment cards, until the following
appearance of a $ENABLE card. This is a very handy feature for big blocks of comments, or for the
temporary removal of components from a data case without actually throwing the records away (one
might later want to restore them, and this allows easy remembrance).

Any $INCLUDE file may contain $DISABLE and $ENABLE as a matched pair. Just be
sure that $ENABLE always appears in the same disk file as the preceding $DISABLE. For an
illustration, see BENCHMARK DC-17, which has $DISABLE and $ENABLE within
DC17INC2.DAT, which is called by DC17INC1.DAT (in turn called by DC17.DAT).

The $DISABLE/ENABLE feature is no longer actually in SUBROUTINE CIMAGE where


it began. Instead, the cards to be discarded are ignored as they are first read from disk at the beginning
of execution. Only the last card of the block will be retained, and this will be recreated to include a
count of the total number of data cards (including both $DISABLE and $ENABLE) of the extraneous
block. As an illustration, for BENCHMARK DC-17 this appears as follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
End of data to be ignored (implicit "C "). |$ENABLE, ONLY THIS ONE C
...ARD ENDING 5 CARDS OF $DISABLE/ENABLE IS RETAINED.

Another illustration can be found in BENCHMARK DC-24:

I-D.6. $NEW EPSILN to alter miscellaneous data parameter EPSILN

$NEW#EPSILN,#EPS##allows the user to redefine the floating-point miscellaneous data


parameter EPSILN at any point of the input data. The new numerical value is "EPS" --- a
I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily – 17

free-format, positive, floating-point constant. Consult Section II-B for general information about
EPSILN.

Interpretation of the $NEW#EPSILN request confirms both the old and the new value for the
tolerance. The following illustration is from BENCHMARK DC-12:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
EPSILN change. Old, new = 1.000E-08 1.000E-09 |$NEW EPSILN, 1.E-9, {

I-D.7. $MONITOR to display date and time on the computer monitor

$MONITOR was originally designed to result in the display of this interpeted card image on
the CRT monitor, which might be useful if the LUNIT6 output otherwise would be unseen (e.g., it
might be sent to disk rather than to the computer CRT monitor). The result would be a single,
132-column line: 51 columns for the interpretation on the left, 1 columns for the vertical separator, and
finally the 80-column card image (which begins with the request $MONITOR) on the right. Since the
card in question usually should serve to mark some position of special importance (e.g., the final branch
card), comment information to inform the user is appropriate. Any such arbitrary text can follow the
in-line comment marker "{", of course.

So much for the original use of $MONITOR, which was designed before the use of scientific
workstations such as Apollo. For dedicated personal computers that have scrollable windows, there is
seldom a good excuse for diverting the LUNIT6 output from the window in which the program is being
executed. So, there was little use for the $-card. When the idea of a request for the wall-clock time
came to mind, it was easy to switch to this more useful and different meaning. So, for Apollo and some
other more modern computers, $MONITOR will still produce the 132-column line of the preceding
paragraph, but this is just part of the regular LUNIT6 output. The card index for LUNT10 storage is
displayed, as shown by the following illustration:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Send time to CRT monitor. Card NUMDCD = 5492. |$MONITOR { Request t

But there also is an extra such output that includes the date and the time in the interpretation, and this
extra line goes to the CRT screen (Apollo window). An illustration follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
---- Monitor time = 10-Apr-86 14.10.30 |$MONITOR { Request t

To observe such usage, see the solution to standard test case BENCHMARK DC-3 for the computer
of interest. The preceding two examples were taken from the Apollo solution of this data.

I-D.8. $LISTOFF to cease outputing interpreted images of input cards


18 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

I-D.9. $LISTON to resume outputing interpreted images of input cards

$LISTOFF/LISTON is another universal feature. First a $LISTOFF card tells the EMTP not
to display and interpret data cards that follow. This continues until a following $LISTON card is
encountered. The purpose of such use generally is to minimize the size of the output file by omitting
the listing and interpretation of blocks of data that have been tested and used before. This is particularly
advantageous for users of slow computer terminals, in order that solution speed not be inhibited by
unneeded output (assuming that it goes to the terminal display).

An illustration of such usage is provided by BENCHMARK DC-17. The interpretation is


documented by the following two consecutive lines from the LUNIT6 output of the solution:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Turn off input data listing at card 5505 |$LISTOFF, ----- Precedi
Turn on input data listing at card 5508 |$LISTON

Note that two card images, numbered 5506 and 5507 (indices of the EMTP card cache), are invisible
in between the two that are seen in the solution.

I-D.10. $VINTAGE to choose among alternate data formats

$VINTAGE,#M allows the user to choose between old and new data formats on a component
by component basis. Here integer constant "M" characterizes the age of the data (only 0 and 1 have
meaning so far). Data options will be described later in the manual, along with the components that
allow such a choice.

Interpretation of the $VINTAGE request is simple enough. The following was drawn from
the solution to BENCHMARK DCPRINT-3:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New MOLDAT = 1 (data vintage). |$VINTAGE, 1, { Switch fr

I-D.11. $STOP to terminate the present solution

$STOP terminates the present "solution" as quickly as possible. But what exactly is meant by
"solution" in this context? As this feature was originally conceived and implemented, the EMTP
response to $STOP was the termination of program execution via an immediate, local FORTRAN
STOP statement. So much for the original idea, which rapidly was modified to rely upon an
installation-dependent module that serves this function: CALL STOPTP. Then a much bigger change
came with the concept that EMTP execution should not be restricted to a single data file. Recall that
one disk file (a collection of stacked EMTP data cases) after another can now be solved without
execution ever terminating. This is for non-SPY usage, wherein execution begins with the opening
prompt:

EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) :


I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily – 19

When data of a disk file runs out (blank card ending the last EMTP data case), execution returns to this
prompt. Well, this is the intended result of $STOP usage, too. Yet operation is necessarily less than
perfect, depending upon where execution was when the card was read. All "CIMAGE" can do is set
a flag (KILL = -9999) that will be looked for at various places in the program (e.g., the end of each
overlay). Since there are hundreds of calls to the module, it is unrealistic to burden the program with
a check after each call. So, there will be the hoped for reprompt if nothing illegal to the operating
system (e.g., a numerical decode of the character string "$STOP") occurs before the flag is observed.
For an example, see BENCHMARK DC-42, the second subcase of which uses $STOP after plot
cards. There is no problem with recognition and recovery, it will be seen.

Interpretation of the $STOP request is simple enough. The following was drawn from the
solution to BENCHMARK DC-13:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Halt execution: "CIMAGE" sets KILL = -9999. |$STOP { Illustrate im

I-D.12. $WATCH to request extra, periodic output to CRT

$WATCH,#M is used to define the frequency of special, extra output that always goes to the
CRT monitor. This really only has meaning if the LUNIT6 output would otherwise be unseen (e.g., it
might be sent to disk rather than to the computer CRT monitor). If "M" were 100, then every 100-th
input data card would be shown on the CRT monitor. This periodic output is only 80-columns in width,
and it begins with the LUNT10 index number, which leaves only 72 columns for the input card image
(to the right of a colon). As an illustration, consider the solution to BENCHMARK DC-12, of which
one of the more readily recognizable monotoring lines is the following:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
5602 :BLANK card ending branch cards

Interpretation of the $WATCH request includes confirmation of the user-specified frequency


"M". The following is an illustration drawn from BENCHMARK DC-12:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Paint input data on screen, every 25 -th card. |$WATCH, 25, { Illustrate

I-D.13. $COMMENT to toggle the suppression of comment cards

$COMMENT serves to toggle the binary flag that controls the interpreted output of comment
cards among input data. Following the first appearance of such a card, comment cards will be discarded
and not seen in the LUNIT6 file. A second such request card will return the control to its original state,
so that subsequent comment cards will be interpreted and displayed.

An example of such usage is provided by BENCHMARK DC-3. As for the interpretation, it


confirms the new status of the binary flag: zero means that comment cards are seen, whereas unity
20 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

means that comment cards are being suppressed. The first usage within BENCHMARK DC-3 is
interpreted as follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Toggle comment card destruction. New N11 = 1. |$COMMENT {

I-D.14. $DEBUG for local control of diagnostic printout

$DEBUG,#M is a request to redefine the current diagnostic printout control variable IPRSUP
(see the integer miscellaneous data card of Section II-B) to value "M" (an integer constant most often
in the range of 0 to 9). Confined to the UTPF overlay currently being executed, this allows redefinition
of the DIAGNOSTIC printout level. But when the current UTPF overlay is exited, the effect of the
$DEBUG definition is lost. Free-format is used for the ",#M" part, so imbedded blanks are optional
here. Printout can be turned off later in the same UTPF overlay using "$DEBUG,#0" (remember that
level zero implies none). Use of this $-card does not replace the "DIAGNOSTIC" special-request
card of Section II-A (for diagnostic printout control overlay by overlay). In fact, this is why the $-card
definition is local to the UTPF overlay in which it is read: because IPRSOV is used to reset IPRSUP
every time a new overlay is begun.

A somewhat artificial example of such usage is provided by BENCHMARK DCPRINT-5. The


interpretation confirms the new value of diagnostic control, of course:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New IPRSUP = 8 (DIAGNOSTIC value). |$DEBUG, 8, { Illustrativ

I-D.15. $UNITS to alter XOPT and/or COPT

$UNITS,#XOPT,#COPT is used to change the two floating-point miscellaneous data


parameters that specify the units of input inductance (millihenries vs. ohms) and capacitance
(microfarads vs. micromhos). This allows different branches to have different such choices, and it
modifies the initial choice that is read from the floating-point miscellaneous data card of Section II-B.

Interpretation of the input data confirms the new values for parameters XOPT and COPT.
An illustration is provided by BENCHMARK DC-11, from which the following line was taken:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New XOPT, COPT = 1.59154943E-01 1.59154943E-07 |$UNITS, .1591549431, .15
I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily – 21

I-D.16. $PUNCH to flush the buffer that holds punched cards

$PUNCH##is used to flush card images that have accumulated in the punched-card buffer
(originally I/O channel number LUNIT7) since the last such usage, or since the last usage of $ERASE
-- which ever is the most recent. Because $PUNCH involves installation-dependent code, details
could vary among different computers.

Of course, punched cards have just about gone the way of the dinosaur, so the first question is
about the disposition of the card images. Most systems will produce both a separate disk file and also
a labeled display of the card images on LUNIT6. For details, consult the appropriate
installation-dependent information in Section I-F, and look to established illustrations such as
BENCHMARK DC-13. It should always be legal to follow the request by a disk file name that is
separated from the preceding "$PUNCH" by a comma and an arbitrary number of blanks. See the
illustration immediately below. But be aware that there is no guarantee that all computers will actually
send the punched cards to that file. Most should, however.

Interpretation of the $PUNCH request is simple enough. The following was drawn from the
solution to BENCHMARK DC-13:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for flushing of punch buffer. |$PUNCH, dc13a.pch

Immediately after this will follow a listing of the card images being processed, below a 4-line
heading that includes an 80-column ruler. The heading will appear as follows (truncated on the right):

A listing of 80-column card images now being flushed from punch buffer follow
============================================================================
1234567890123456789012345678901234567890123456789012345678901234567890123456
============================================================================

After the last card image, there will be a single bounding record to inform the user that card
"punching" is done. This will appear as follows (truncated on the right):

=========< End of LUNIT7 punched cards as flushed by $PUNCH request >===

Rather than place the disk file name on the $PUNCH card itself, it should be possible for him
to connect the file manually using a separate, preceding $OPEN statement. Should unusual file
attributes be desired or required, this might be needed in exceptional cases.

I-D.17. $ERASE to initialize the buffer that holds punched cards

$ERASE##is used to destroy any card images that might be in the punch buffer at the time this
request is encountered. A conservative strategy is to always include $ERASE at the start of data that
is designed to result in punched cards, since it is not always clear what might be executed ahead of the
data case of interest.

Interpretation of the $ERASE request confirms the number of card images in the punch buffer
22 – I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily

at the time of usage. The following was drawn from the beginning of solution to BENCHMARK
DC-13. Note that no punched cards existed at the beginning of execution:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Erase all of 0 cards in the punch buffer. |$ERASE

I-D.18. $STARTUP to re-read the STARTUP file

$STARTUP,#file_name is used to read a STARTUP file (see Section I-E-2) immediately, at


the instant of time the $-card is read. One or more spaces following the comma after "$STARTUP"
are optional. The file name can be any complete, legal specification for the computer being used, not
to exceed 32#characters. It is the name of the STARTUP disk file that is wanted at this point of
program execution. There must not be a trailing comma (at the end of the file name).

An illustration of $STARTUP usage is provided by the first and third subcases of standard test
case BENCHMARK DC-37. The following interpretation was taken from the solution of the first
subcase, which calls for revised parameters immediately before plotting:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Reinitialize using this STARTUP file. |$STARTUP, DC37STARTUP.DAT

I-D.19. $KEY to change card input from LUNT10 channel to keyboard

$KEY##is used to provide keyboard input of EMTP data cards at some preselected location (the
position of the $KEY request) of the program. Maybe when execution begins the user is unsure of
some data, and he wants to supply that data later, based on initial program output. This is possible via
$KEY, which can be used as often as desired. Each time $KEY is encountered, input will be switched
from the normal card image storage of I/O unit LUNT10. Then input cards will be read from the
keyboard until the user terminates such interactive input with "END", at which point input will be
switched returned to the normal card image storage of LUNT10 at the record immediately following
the $KEY request. In terms of card counting, keyboard input does not affect variable NUMDCD of
the comment-card interpretation. In effect, keyboard input in extra input.

Note that $KEY is for interactive use only. It either provides no assistance at all, or will not
function properly, for batch-mode usage. Standard test cases do not illustrate such usage because, if
it were added, then the case could not be properly executed in the batch mode. So, if the user wants an
illustration, he must make his own. In any case, interpretation should appear as follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Data input next from keyboard (until "END"). |$KEY
I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily – 23

I-D.20. $BREAK to manually trigger a disaster-level SPY interrupt

$BREAK##is similar to the preceding $KEY, only here the alternate input is changed to the
SPY input channel rather than the keyboard. Of course, the two channels may be the same, for a crude,
single-window implementation. But whether or not the input medium or channel is distinct, the
destination of the input data is completely different. Whereas $KEY introduces normal EMTP data
cards, $BREAK introduces SPY data. Time-sharing has automatically been disabled, so SPY input
will continue until the user sends "GO". Of course, $BREAK can only be used with interactive
execution (SPY), and this must be selected at the beginning of execution.

$BREAK##is much more powerful than $KEY because SPY provides a new dimension of
flexibility. For example, the user can modify any EMTP variable using DEPOSIT, and this includes
the variable controlling $KEY usage. That is, if the user wants $KEY to be in effect when he leaves
SPY with a subsequent "GO", he need only change the value of binary flag KEYBRD from zero to
one.

Since the disaster-level audible warning of SPY is used by the program in other circumstances,
it is natural to employ it here, too. This alerts the user to the fact that the program is ready for
interactive input. In the case of apollo, there will be the familiar audible tones of $HONK(10), which
are terminated by a simple carriage return in the SPY window. After the last SPY input that is of
interest to the user, "GO" will end the SPY input and return control to the batch-mode input that began
the interactive operation. If the user wants to switch from SPY input to data card input, he need merely
follow the $BREAK request by $KEY of the preceding subsection. They work well together as such
an ordered pair.

Note that $BREAK is for interactive use only. It either provides no assistance at all, or will
not function properly, for batch-mode usage. Standard test cases do not illustrate such usage because,
if it were added, the case then could not be properly executed in the batch mode. So, if the user wants
an illustration, he must make his own. In any case, interpretation should appear as follows:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Data input next from SPY (until SPY "GO"). |$BREAK

I-D.21. $INCLUDE --- no longer within "CIMAGE"

$INCLUDE##is a very powerful and important command that once was honored by "CIMAGE".
But since the advent of data modularization and sorting by class (see Section I-J), the original code of
"CIMAGE" was removed. In its place, fortified and generalized service has been added at the
beginning of program execution. So, if the original data had $INCLUDE usage, all of this will have
been converted before "CIMAGE" is called for the first time.
II. Cards that begin a New Data Case

II. Cards to Begin a New Data Case ( includes miscellaneous data cards )

Each new data case that is to be processed by ATP must begin with one or more of the data types
described in the following subsections. Structurally, there is an indeterminate number (possibly zero) of the
special-request cards of Section II-A that come first, in any order (unless usage dictates an order for the
problem of interest). The miscellaneous data cards of Section II-B, followed by possible extensions to
these cards (see Section II-C), only come after the last of the special-request cards of Section II-A.

II-A. Special - Request Cards That Precede Miscellaneous Data

Free-format data options are useful for some special-request inputs. Take the FREQUENCY SCAN
declaration as an example. Using free format, a valid sample card image is as follows : "FREQUENCY
SCAN, 10., 5.0, 100., 0". Even more abbreviation is possible for the really lazy data assembler. Rather
than use the full request word, an acronym made up of the first letter of each sub-word usually can be used.
In this case, FREQUENCY SCAN can be abbreviated as FS, if desired. Nearly all special-request words
are recognized in such abbreviated, fashion. Any exceptions to regular naming will be shown within
parentheses on the right of the alphabetical list below, and in a separate tabulation following the complete
list. A final point is this: although possible, the use of abbreviations generally is not recommended because
the data that results is less readable.

All possible special-request cards that could be recognized at this point of EMTP data input will now
be listed in alphabetical order for ease of location. Before each is the number of the subsection (within the
present Section II-A) that contains an explanation of use. The ordering begins (in July of 2003)
alphabetically :

0 ABSOLUTE I.M. DIMENSIONS ( AIMD ) definition of two I.M. table sizes


1 ABSOLUTE TACS DIMENSIONS allocation of total storage among 9 TACS tables
2 ABSOLUTE U.M. DIMENSIONS ( AUMD ) allocation of total storage among 4 U.M. tables
3 ACCESS MODULE BCTRAN branch cards for multi-phase transformer
4 ALLOW EVEN PLOT FREQUENCY disable conversion of IPLOT to odd number
5 ALTERNATE DIAGNOSTIC PRINTOUT diagnostic printout within time-step loop
6 ANALYTIC SOURCES USAGE user supplied ANALYT defines Type-1 sources
7 AUTO NAME toggle choice of internal branch naming
8 AVERAGE OUTPUT average values for EMTP output variables
9 BASE CURRENT IN AMPERES normalizing factor for output current
10 BASE VOLTAGE IN VOLTS normalizing factor for output voltage
11 BEGIN NEW DATA CASE case-separation card precedes data case
12 BEGIN PEAK VALUE SEARCH time the extrema computation can begin
13 BLANK card to signal the end of stacked data cases
14 CABLE CONSTANTS cable system: calculation of constants
15 CABLE PARAMETERS Akihiro Ametani’s newer cable constants
16 CAO LOAD FLOW Unbalanced load flow by Xiang-lin Cao
17 CENTRAL STATISTICS FILE name of the OPMC file PARALLEL.LIS
18 CHANGE PLOT FREQUENCY ( CPLF ) change frequency of .PL4 file points
19 CHANGE PRINTOUT FREQUENCY ( CPRF) change frequency of the simulation printout
20 CHANGE SWITCH to convert former switched-R and L data
21 CHANGE TRANSFORMER ( CX ) to convert saturable TRANSFORMER to [Z]
22 COMPILED TACS MAKE produce FORTRAN representing TACS supplemental

2A - 1
II. Cards that begin a New Data Case

23 COMPILED TACS USE faster TACS simulation using compiled models


23a CONCATENATE MONTE CARLO PL4 unify .PL4 files if Monte Carlo simulation
23b CONNECT SECRET RELAY MODELS access vendor-supplied relay models
24 CREATE HARMONIC SOURCES build source cards to approximate harmonics
25 CUSTOM PLOT FILE double the precision of the .PL4 file (to 64 bits)
26 DATA BASE MODULE modularize data: $INCLUDE with arguments
27 DIAGNOSTIC selective diagnostic printout specified
28 DISK PLOT DATA toggle plot data storage (disk vs. RAM)
28a END RELAY CONNECTIONS termination of connections to relays
29 EXACT PHASOR EQUIVALENT toggle lumped-R to long-line formulas
29a EXTREMA OUTPUT FOR EXCEL create separate file for ATP extrema
30 FAULTS TO GROUND phasor solutions with nodes faulted
31 FILE REQUEST access to former "MIDOV1" during input
32 FIX SOURCE ( FXS ) EMTP load flow: declare intention to use
33 FREQUENCY SCAN loop over frequency for phasor solutions
34 HARMONIC FREQUENCY SCAN user-defined sources drive phasor solutions
35 HEIDLER SURGE FUNCTION find Heidler parameters for Type-15 source
36 HYSTERESIS ( HYS ) to punch Type-96 hysteresis branch cards
37 HYSTERESIS HEVIA to convert Type-98 into Type-96 inductor
38 INDUCTION MOTOR DATA derive U.M. parameters for induction motor
39 INTERPOLATE SWITCH ZERO CROSSINGS switches open at interpolated zero currents
40 JMARTI SETUP ( JMS ) derive frequency-dependent Marti line model
41 KILL CODES output a range of program error messages
42 LINE CONSTANTS calculate parameters of an overhead line
43 LINE MODEL FREQUENCY SCAN evaluate one line model vs. frequency
44 LINEAR BIAS USAGE linearly-varied (not random) switch bias
45 LOAD MORE SHOTS to combine 2 or more Monte Carlo results
46 LOSSY SATURATION ( LSAT ) extended SATURATION that includes losses
47 MINIMUM HARMONIC NUMBER beginning frequency of harmonic freq. scan
48 MINIMUM TABLE SIZES make LISTSIZE.PMC for parallel Monte Carlo
49 MISCELLANEOUS DATA CARDS miscellaneous data cards are to follow
50 MODE VOLTAGE OUTPUT modal voltage output of distributed line
51 MODELS BEFORE TACS each dT, MODELS is done before TACS
52 MODELS PROCESSES EXTREMA use MODELS on extrema, not within dT loop
53 NAMES ARE LEFT ADJUSTED halt if an A6 name begins with a blank
54 NAMES ARE RIGHT ADJUSTED halt if an A6 name ends with a blank
55 NETWORK EQUIVALENT create a constant-parameter network equivalent
56 NEW LIST SIZES redefine limits of various program tables
56a NO Y-BASED NEWTON ( NYBN ) use [Z] not [Y] for Newton iteration of N.L.
57 NODA SETUP frequency-dependent fitting by Taku Noda
58 OBSERVE PARALLEL MONTE CARLO display and manage central status file
59 OLD TO NEW TACS convert TACS data before “M39.” of July, 1984
60 OLD TO NEW ZNO convert old data of ZnO to current formats
61 OMIT BASE CASE skip base base simulation of a Monte Carlo study
62 PARTIAL TABLE DUMPING any table dumping or restoration will be partial
63 PEAK VOLTAGE MONITOR request for peak node or branch voltage output
64 POCKET CALCULATOR VARIES PARAMETERS pocket calculator loops over time or frequency
65 POSTPROCESS PLOT FILE postprocess ".PL4" plot file signals using TACS
66 POWER FREQUENCY change the synchronous power frequency
67 PRINTED NUMBER WIDTH for width and blanks of dT-loop numbers
68 RANDOM NUMBER GENERATOR SEED initialize the random number generator
69 READ PL4 HEADER REWIND LUNIT4 and then read header only
70 RELATIVE TACS DIMENSIONS relative sizing of the 9 TACS tables
71 RENUMBER WITHOUT COUPLING ignore mutual coupling for node renumbering

2A - 2
II. Cards that begin a New Data Case

72 REPEATABLE RANDOM NUMBERS make random number generator predictable


73 REPLOT batch-mode plot from connected .PL4 file
74 SATURATION produce regular and hysteretic B-H curves
75 SEMLYEN SETUP 2nd order frequency-dependent line fitter
76 SINGLE STEP IF MAKE end at T = dT if COMPILED TACS MAKE
77 SMOOTH SATURATION USING TANH hyperbolic tangent models Type-93 inductor
78 STANDLER SURGE FUNCTION find Standler parameters for Type-15 source
79 START AGAIN restart a halted, preceding simulation
80 STEP ZERO COUPLE identify subnetworks with switches closed
81 TACS POCKET CALCULATOR pocket calculator does TACS supplemental
82 TACS WARN LIMIT limit on the number of TACS warnings
83 TIME STEP LOOP transfer control to the time-step loop
84 TOGGLE EXTREMA MODE formatted vs. unform. LOAD MORE SHOTS
85 TRULY RANDOM NUMBERS seed the number generator using date and time
86 TRUNCATE OUTPUT LINES output line limit after formed using KOL132
87 TWO EXP SURGE FUNCTION parameters of Type-15 exponential surge
87a U.M. HEADER CARD ( UMHC ) define middle Class-1 U.M. data card
88 UM TO TACS U.M. output variables go to Type-92 TACS
89 UNIQUE TACS SOURCE TACS Type-91 or 93 source must be unique
90 USE SEATTLE XFORMER Xusheng Chen’s 3-phase transformer model
91 USE TPPLOT BEGIN begin data of TPPLOT for concurrent plot
92 USE TPPLOT END end data of TPPLOT for concurrent plot
93 USER IDENTIFICATION ( UID ) 6-byte label overrides USERID of STARTUP
94 USER SUPPLIED SWITCH TIMES user supplied “random” switching times
95 VERIFY U.M. COMPENSATION ( VUMC ) protect against overlap with 1-phase element
96 VOLTAGE SOURCES IN KV scale voltage sources by an arbitrary factor
97 XFORMER derive impedance matrix for transformers
98 ZERO FLUX TOLERANCE tolerance to determine if phasor excitation
99 ZINC OXIDE redefine controls of ZnO Newton iteration
100 ZNO FITTER to fit exponentials to ZnO V-I data points

Most of these (e.g. AUTO NAME) are self-contained, so the explanation that follows will be
complete. But some represent requests for the transfer to separate supporting programs, and for these
requests, there will be references to further explanation toward the back of the book. An example of the
latter is NETWORK EQUIVALENT.

Acronyms (abbreviations) generally can be used, although such use is not encouraged because the
result is less readable. Usually, the appropriate acronym is formed from the first letters of the associated
words, where a blank marks the end of each word. Take ABSOLUTE TACS DIMENSIONS as an
illustration. The acronym ATD is equivalent. This simple, uniform rule applies to most requests. The
exceptions are seen within parentheses of the preceding tabulation. For completeness, they are, in
alphabetical order :
# Acronym Long form of request word
--------------------------------------
0 AIMD ABSOLUTE I.M. DIMENSIONS
2 AUMD ABSOLUTE U.M. DIMENSIONS
13 BLANK
18 CPLF CHANGE PLOT FREQUENCY
19 CPRF CHANGE PRINTOUT FREQUENCY
21 CX CHANGE TRANSFORMER
28a END RELAY CONNECTIONS
32 FXS FIX SOURCE

2A - 3
II. Cards that begin a New Data Case

36 HYS HYSTERESIS
37 HYSTERESIS HEVIA
40 JMS JMARTI SETUP
46 LSAT LOSSY SATURATION
56a NYBN NO Y-BASED NEWTON
87a UMHC U.M. HEADER CARD
92 USE TPPLOT END
93 UID USER IDENTIFICATION
95 VUMC VERIFY U.M. COMPENSATION
Note that 4 requests have no acronyms. For each such entry, there is no alternative to the long form.

II-A-0. Request for Allocation of I. M. Storage

The induction machine (I.M.) of Section IX-B comes from TEPCO (Tokyo Electric Power Company
in Japan). This model has two limits, LIM56 and LIMTM, which can be defined by the following request :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456789012345678901234567890

ABSOLUTE I.M. DIMENSIONS LIM56 LIMTM

I8 I8

LIM56 (cols. 33-40) Maximum number of I.M. components in the data case.

LIMTM (cols. 41-48) Twice the maximum number of control signals for the data case.

Working space of VARDIM List 25 is shared by both the Type-19 Universal Machine (U.M.) of
Dr. Hian Lauw and the Type-56 Induction Machine (I.M.) of TEPCO. Both models are able to use the
storage at the same time provided the sum of the two demands does not exceed the List-25 space available.
Thus AIMD and AUMD requests must be considered together, in general. At input time of either, the
total demand is not known, so validity can not be verified. Thus interpretation of the requested sizes does
not imply usability; it merely documents the user's request.

If there is no AIMD request, default limits will be assigned when the first Type-56 source is
encountered. As of January 2006, the default limits are LIM56 = 2 and LIMTM = 10.

Source data is read in UTPF overlay 5, so this is where possible overflow will be checked. As the
first I.M. data card is recognized, if the total storage demand (including any U.M. use) is less than or equal
to the List-25 space available, execution will proceed. If not, a conventional EMTP error termination will
result : "KILL = 246. Requested TEPCO Type-56 IM dimensioning would exceed the available ..."

Interpretation of the input data confirms the two I.M. table sizes that have been requested, of course.
As an illustration, onsider the associated output line from the 6th subcase of BENCHMARK DCNEW-12 :
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
TEPCO I.M. limits LIM56, LIMTM = 3 12 |ABSOLUTE I.M. DIMENSIONS

2A - 4
II. Cards that begin a New Data Case

II-A-1. Request for Absolute Allocation of Total TACS Storage

TACS is the control-system modeling of Section III. Total working space for all TACS tables is
assigned in List 19, along with the other 29 EMTP lists (see Section I-G). But there still remains the question
of how this total working space is to be divided among the nine TACS tables. This allocation can be
performed at execution time, according to the description of the present section, thanks to the procedure of
offset subscripting (see Ref. 8, Vol. VIII, 27 January 1979, pages PROV-19 through 22 ) .

The first way to allocate total TACS storage is with a request for absolute TACS table sizing. Two
data cards are involved. ABSOLUTE TACS DIMENSIONS (ATD) is to be followed by a card that gives
the desired absolute sizes :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

ABSOLUTE TACS DIMENSIONS

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 234567890

K1 K2 K3 K4 K5 K6 K7 K8 K9

I8 I8 I8 I8 I8 I8 I8 I8 I8

The format for the sizes is 9I8, with 9 required TACS table sizes having the following meaning :

LT1 Maximum number of TACS dynamic function blocks, having Laplace transfer functions H(s).

LT2 Maximum number of nonzero factors of the triangularized TACS network matrix. This limit applies
to both the steady-state solution and the transient solution.

LT3 Maximum total number of input variables to TACS dynamic function and supplemental devices.

LT4 Maximum number of TACS sources. This includes built-in sources (e.g., "TIMEX" or "UNITY")
and variables passed from the electric network to be TACS driving functions.

LT5 Maximum number of supplemental variables and devices ( type codes 99, 98, or 88 keyed in
columns 1-2).

LT6 Maximum total number of extra INTEGER pointers which are associated with supplemental variables
and devices. There is no easy, exact formula, although sample figures can be given. Each parenthesis
requires 3 cells, as does each arithmetic operation ("+", "*", "=").

LT7 Maximum total number of extra floating-point cells that are associated with TACS variables. Each
TACS variable requires one or more such cells. Again, a simple rule is impossible to state. Each
first-order function block requires 10 cells, each intermediate variable of supplemental-variable
expression evaluation requires one, the average device might require between 3 and 5, and the most
complex device, the Type-66 RMS sensor, requires 1 / ( f * DELTAT ) where "f" is the fundamental
frequency.

LT8 Maximum number of distinct TACS variables used in the TACS data specification.

2A - 5
II. Cards that begin a New Data Case

LT9 Maximum number of Type-53 TACS devices (transport delay blocks).

Provided the total storage represented by this request is less than or equal to the List-19 space
available, execution will proceed normally. If not, the overflow will be noted before any TACS data will
actually be read. The result would be a KILL = 1 message pointing to List 19.

A second way to allocate total TACS storage is via a request for relative sizing. That is, rather than
request a specific number of function blocks, supplemental variables, etc., the user can simply request a
proportional allocation (e.g., 5% of the total storage for function blocks, etc.). Consult the appropriate
subsection for details about RELATIVE TACS DIMENSIONS ( RTD ) .

Use of FORTRAN 77 ( F77 ) is assumed in the preceding comment about possible overflow of List
19. The problem applies to any F77 version of ATP. Any newer F95 alternative avoids this potential
problem as explained in the October, 2000, newsletter. Using F95, the user-requested absolute storage
simply is created dynamically. For this reason, RTD has no meaning, and any attempt to use it with a F95
version should result in an error stop.

The interpretation of the two input data cards confirms only the first 5 of the 9 integers being
specified. The following illustration has been taken from the 2nd subcase of BENCHMARK DC-18 :
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to define new TACS allocation absolutely. |ABSOLUTE TACS DIMENSIONS
TACS table sizes. 10 90 100 20 30 | 10 90 100

II-A-2. Request for Absolute Allocation of Total U. M. Storage

The universal machine (U.M.) component of Section IX has total working space for all tables
assigned in List 25 of the overall program variable dimensioning (see Section I-G). But there still remains
the flexibility of dividing this total working space among the four U.M. tables by means of the following
request for absolute sizes :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456 78901234 5678901234567890

ABSOLUTE U.M. DIMENSIONS NCLFIX NUMFIX IOTFIX IBSFIX

I8 I8 I8 I8

NCLFIX (cols. 33-40) Maximum total number of U.M. coils in the data case. This is the total for all
U.M. components involved. It is the sum of the number of coils for each machine.

NUMFIX (cols. 41-48) Maximum number of U.M. components (machines) for the data case.

IOTFIX (cols. 49-56) Maximum number of U.M. output quantities (total for all machines).

IBSFIX (cols. 57-64) Maximum number of 6-character alphanumeric names associated with the U.M.
This is the total for all machines.

2A - 6
II. Cards that begin a New Data Case

Provided the total storage represented by this user request is less than or equal to the List-25 space
available, execution will proceed in a nominal fashion. If not, this fact will be noted in UTPF overlay 5 as
the first U.M. data component itself is ready for input, and an EMTP error message will result. In any case,
the corresponding minimum size for List 25 will be shown as part of the column 1-50 interpretation of the
Type-19 request card for U.M. modeling. This way, the user knows what fraction of the available space he
is utilizing.

If the user fails to input such a request for U.M. table sizing, then ATP allocates default dimensions
equal to (20, 3, 50, 60) within UTPF overlay 5. For computers with 32-bit integers and 64-bit floating-point
values, a List-25 size of 300 is sufficient for this usage (and it corresponds to the default allocation of
VARDIM for List 25).

Interpretation of the input data confirms the four U.M. table sizes that have been requested, of course.
As an illustration, consider the associated output line of BENCHMARK DCNEW-1 :
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
U.M. table sizes. 20 2 50 60 |ABSOLUTE U.M. DIMENSIONS

II-A-3. Calculation of Matrices to Represent Transformers

The calculation of matrices [R] and [L] or [A] and [R] to represent arbitrary transformers is described
in the separate Section XIX-C. Whereas an XFORMER request is for data limited to a single phase and
three windings, the code now being considered (supporting program BCTRAN) can be used with an
arbitrary number of phases and windings. The transfer to BCTRAN is by means of the following special-
request card :

1 2 3 4 5 6 7 8
12345678901234567890 123456789012345678901234567890123456789012345678901234567890

ACCESS MODULE BCTRAN

For an example of such usage, see any of the three subcases of BENCHMARK DCNEW-8.
Interpretation extracted from the solution to this data case appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Generate transformer [R],[L] or [A],[R]. |ACCESS MODULE BCTRAN

II-A-4. Allow Even Plot Frequency

ALLOW EVEN PLOT FREQUENCY ( AEPF ) is the request to save solution points of the time-step loop
with an even plotting frequency in the .PL4 file. This is contrary to default program logic as explained in
Section II-B.2. But the user has this flexibility if he requests :

2A - 7
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890

ALLOW EVEN PLOT FREQUENCY

An illustration of use can be found in the 4th subcase of BENCHMARK DC-22, from which the following
interpretation has been drawn. Note that there are no parameter values to be confirmed ) :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Allow IPLOT of misc. data to be even (2, 4, ...). |ALLOW EVEN PLOT FREQUENCY

II-A-5. Request for Alternative Diagnostic Printout of the dT Loop

ALTERNATE DIAGNOSTIC PRINTOUT ( ADP ) is the request that defines 4 integers to control
diagnostic printout of the 4 pieces of the time-step loop (overlays 16 through 19 ) .

If minus signs are applied to MULT(K) as part of the printout frequency changes of Section II-C (or
the equivalent CHANGE PRINTOUT FREQUENCY declaration of a later subsection), then diagnostic
printout controls of the time-step loop are to be switched. Those of the DIAGNOSTIC request (see a later
subsection) are in effect initially. Then, at the time of the first change, an alternate set of printout control
parameters IPR(1:4) is used instead. These four new variables replace IPRSOV(16:19), to control the
diagnostic output of the four pieces of the time-step loop. Upon the second such change (the second negative
MULT), there is a switch back to the original DIAGNOSTIC printout control values. Etc. (for each minus
sign, the two sets of control variables are switched).

The alternate set of printout control parameters IPR(1:4) is automatically initialized to zero at the
beginning of execution. If this is what the user wants, a declaration of the present section is not required.
This would be for the common usage that will begin with diagnostic printout for steps 0 and 1, but which has
no such output thereafter.

On the other hand, if the time-step loop is to begin without any diagnostic printout, then nonzero
IPR(K) must be defined by the user. This is done using the following special-request card :

1 2 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456 78901234 5678901234567890

ALTERNATE DIAGNOSTIC PRINTOUT IPR1 IPR2 IPR3 IPR4

I8 I8 I8 I8

Interpretation of the input data confirms the four printout controls that have been requested, of course.
As an illustration, consider the associated output line of BENCHMARK DC-53 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
DELTAT-loop printout. 9 9 9 9 |ALTERNATE DIAGNOSTIC PRIN

2A - 8
II. Cards that begin a New Data Case

II-A-6. Type -1 Sources Are Defined by User within ANALYT

As explained in Section VII, source types 1 through 9 are reserved for functions that are directly
defined in user-supplied source code. If one or more such source functions are to be defined in FORTRAN
within a special user-supplied version of SUBROUTINE ANALYT, then the following special request card
must precede input of the miscellaneous data cards for the data case in question :

1 2 3 4 5 6 7 8
1234567890123456789012 3456789012345678901234567890123456789012345678901234567890

ANALYTIC SOURCES USAGE

It is the user's responsibility to see to it that his own special SUBROUTINE ANALYT has replaced
the near-dummy module that comes with the UTPF, of course. The UTPF module is useful only for the
artificial illustration of BENCHMARK DC-6.

Do not confuse the present declaration and associated ANALYT with the analytically-defined
Type-10 source of Section VII. The Type-10 source is newer and more convenient (e.g., no FORTRAN
compiler is required), but it relies on the pocket calculator, so is limited to functions of that device. It is less
general than arbitrary FORTRAN that could be placed in ANALYT.

Interpretation of the input declaration is illustrated by BENCHMARK DC-6. Note that there is no
parameter value to be confirmed :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
User-supplied SUBROUTINE ANALYT is declared. |ANALYTIC SOURCES USAGE

II-A-7. Control of Automatic, Internal Branch and Switch Naming

The startup file initializes variable NMAUTO, which controls whether or not branches will
automatically be serialized by the program. There are only two possibilities : "0" means no such automatic
naming, whereas "1" will result in such naming. Well, whatever the STARTUP decision might be, the
following declaration will toggle (i.e., reverse) it :

1 2 3 4 5 6 7 8
123456789 01234567890123456789012345678901234567890123456789012345678901234567890

AUTO NAME

The interpretation of this request confirms the status of variable NMAUTO after the change. The 4th
subcase of BENCHMARK DC-7 illustrates a change from naming (STARTUP defines NMAUTO = 1) to
no names as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Toggle auto branch/switch name. NMAUTO = 0. |AUTO NAME

2A - 9
II. Cards that begin a New Data Case

II-A-8. Request to Average Output Signals

Successive values of EMTP output variables will be averaged prior to printing and plotting if the
following request is made :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

AVERAGE OUTPUT

The mathematics of the solution are not affected. This is just a massaging of the answers at the time
answers are printed and/or written to the plot file of LUNIT4. By averaging is meant the arithmetic mean of
the current and the preceding variable value : (V-new + V-old ) / 2 .

For studies where EMTP output variables are smooth functions of time, the AVERAGE OUTPUT
request would have negligible effect, and should not be used (it just adds a small error to the answer). But
there are problem cases such as the hanging inductor (see the two pages of discussion in Section VI about
“REMARKS ON OPENING ACTION”). There are pathological cases where the trapezoidal rule gives
answers that oscillate around the true value, so this remedy might sometimes be useful. As an example of
such usage, see BENCHMARK DC-55.

Interpretation of the input declaration appears as follows (note that there is no parameter value to be
confirmed ) :
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to average (smooth) output variables. |AVERAGE OUTPUT

II-A-9. Normalizing Factor for Output Currents

Output currents of the electric network, typically requested by1-punches in column 80 of the
associated branch cards, can be normalized uniformly by factor BASEI in amperes. In effect, the output
currents are converted to per unit with BASEI being the base current. The request for such scaling is BASE
CURRENT IN AMPERES ( BCIA ) as follows :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

BASE CURRENT IN AMPERES BASEI

E8.0

Of course, non-unity BASEI will influence printout of the phasor solution as well as that of the
time-step loop. To cancel scaling of the preceding subcase, use BASEI equal to unity. The 6th subcase of
BENCHMARK DC-37 involves a scaling factor of 1000, to produce output in kiloamps. This probably is
the most common value other than unity. Interpretation of this use follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Normalize output currents by I-base = 1000 |BASE CURRENT IN AMPERES

2A - 10
II. Cards that begin a New Data Case

II-A-10. Normalizing Factor for Output Voltages

Output voltages of the electric network, typically requested by 2-punches in column 80 of the
associated branch cards, can be normalized uniformly by factor BASEV in volts. In effect, the output
voltages are converted to per unit with BASEV being the base voltage. The request for such scaling is
BASE VOLTAGE IN VOLTS as follows :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

BASE VOLTAGE IN VOLTS BASEV

E8.0

Of course, non-unity BASEV will influence printout of the phasor solution as well as that of the
time-step loop. To cancel scaling of the preceding subcase, use BASEV equal to unity. The 6th subcase of
BENCHMARK DC-37 involves a scaling factor of 1000 to produce output in kV. This probably is the most
common value other than unity. Interpretation of this use follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Normalize output voltages by V-base = 1000 |BASE VOLTAGE IN VOLTS

II-A-11. Optional Case - Separation Card

While not mandatory, it is good practice for the user to make the very first card of each data case a
special case-separation marker :

1 2 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

BEGIN NEW DATA CASE

See any standard test case ( e.g., BENCHMARK DC-18 ) for an example.

For execution that terminates normally, or for single-data-case solutions, this just described card
serves no operational purpose. It does, of course, appear on the listing of 80-column input data, with
appropriate interpretation on the left (see below), but that's all.

On the other hand, should ATP decide to prematurely terminate execution of a particular data-case
solution with an EMTP error message, then a case-separation marker might be important. For a formal
“KILL =” error termination, ATP automatically steps over remaining input cards, discarding them one at a
time until it finds such a BEGIN NEW DATA CASE ( BNDC ) card. At that point, a new data case is
known to begin, so ATP can correctly recover to handle the just-found following case. This is referred to as
EMTP error-recovery, during execution that involves two or more stacked data subcases.

Yet suppose that it was during the solution of the final data case of program execution that a fatal
EMTP error termination occurs. In this case, there would be no following data case, so further solutions
would not be possible. To distinguish this situation, the final data case should always be followed by a
BEGIN NEW DATA CASE card and a blank card, in order to terminate execution cleanly. The blank card

2A - 11
II. Cards that begin a New Data Case

in this situation is read as the start of a new data case, and the lack of any keying on it is recognized by the
EMTP as the end of all data cases. In the absence of such usage, recovery following an EMTP error will
result in the encounter of an end to input data, which will be accompanied by a second EMTP error message
(messy, and possibly confusing).

It should be emphasized that BEGIN NEW DATA CASE cards must be properly positioned in the
data deck; they do not in any way alter the need for blank termination cards (see explanation in a later
subsection). The identity and function of these special cards is recognized by the EMTP in only two places:

1. Following an EMTP fatal error, such cards are watched for as other cards of the input data are read
and discarded.

2. Following normal completion of the solution for any particular data case, the very first non-comment
card of the following data case will be checked for BEGIN NEW DATA CASE.

Any other placement of these key cards will generally lead to error termination by the operating
system, since the alphanumeric text will be decoded numerically (which is impossible).

As any standard test case will show, interpretation of the BNDC declaration appears as follows. Note
that there is no parameter value to be confirmed :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE

II-A-12. Request for Delay in Extrema Calculation

The integer miscellaneous data parameter MAXOUT (see Section II-B) provides for the calculation
of variable extrema (maxima and minima) of program output variables. The same vectors of extrema are
used for STATISTICS and SYSTEMATIC output as well. Normally, extrema are wanted over the full time
span of the simulation. But not always. There are cases where one wants to ignore a certain initial interval
of the simulation, only considering transients after a certain minimum time. For example, in a STATISTICS
simulation, it is possible that random closing will follow the opening of breakers (the clearing of a fault), but
that the peak simulation voltage will be produced during the deterministic opening portion of the simulation.
If extrema were calculated over the entire time span of the simulation, each energization would generate
identical peaks, which is useless to the designer. So, in this case, the solution is to inhibit the calculation of
extrema until transients of the opening phase of execution have passed. This is possible, using a BEGIN
PEAK VALUE SEARCH (BPVS) request upon which the beginning time BEGMAX in seconds is to be
keyed in columns 33-40 :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

BEGIN PEAK VALUE SEARCH BEGMAX

E8.0

For examples of such use, see BENCHMARK DC-48 and DCNEW-22.

2A - 12
II. Cards that begin a New Data Case

So much for the simplest possible case, where an initial time span is simply ignored in the extrema
calculation. But more complex time ranges are possible, if the above BEGMAX is given a value of "-1.0".
In this case, an extra card is to follow, upon which monotone increasing times T1, T2, etc. are to be keyed :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10
E8.0 E8.0 E8.0 E8.0 E8.0 E8.0 E8.0 E8.0 E8.0 E8.0

1st interval 2nd interval 3rd interval 4th interval 5th interval

In this case, extrema are to be calculated only for those portions of the simulation that intersect the
sub-intervals of time (T1, T2), (T3, T4), etc. Present dimensioning of this feature has been limited to the
single card of five subintervals, as shown. In case fewer than this maximum are actually desired, the 4 or
fewer pairs should be followed by a very large time that will never be reached: the beginning time of a
bounding subinterval.

Interpretation of the input data confirms the starting time BEGMAX of the search for extrema, if this
is positive (the simple case). Using BENCHMARK DC-48 as an illustration :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Extrema lookout begins at t = 5.2500E-01 sec. |BEGIN PEAK VALUE SEARCH

On the other hand, if BEGMAX = -1.0, then the more complicated, 2-card input is involved.
BENCHMARK DC-5 provides an illustration of such usage. Note that interpretation confirms only the first
four of 10 possible times :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Extrema lookout begins at t = -1.0000E+00 sec.|BEGIN PEAK VALUE SEARCH
(T1,T2): 5.00E-01 1.50E+00 2.50E+00 3.50E+00 | 0.5 1.5 2.5

II-A-13. Blank Card to Terminate Execution

The traditional termination procedure for the solution of a disk file that contains one or more stacked
data subcases is to have the first card of the following (non-existent) data case completely blank. The use of
"BLANK " in columns 1-6 (note mandatory blank byte following the key word of 5 letters), followed by
anything for the rest of the card image, is also acceptable. By agreement, either of these tells the program that
there remain no more data cases to be handled, so that EMTP execution can return to the original opening
prompt ("EMTP begins. Send ...") if execution is interactive. For batch-mode execution using RUNTP.BAT
with initial input equal to either DISK or BOTH , program execution will end.

1 2 3 4 5 6 7 8
123456 78901234567890123456789012345678901234567890123456789012345678901234567890

BLANK <-- user may enter comments here (cols. 7-80) –->

2A - 13
II. Cards that begin a New Data Case

In order to protect against termination by the operating system after an EMTP error stop, the just-
mentioned final blank card should always be preceded by a BEGIN NEW DATA CASE ( BNDC ) card. This
is explained in the preceding BNDC subsection .

This was the situation for many years, and it remains good practice today. Yet the user is advised that
the blank terminating card at the end generally will not be read. If fewer than 5 data cards (the default value
of KASEND in STARTUP) remain when the final BEGIN NEW DATA CASE card is encountered, the
program now is smart enough to realize that data is done, so it immediately re-issues the opening prompt (if
interactive execution) or halts (if batch-mode execution). This saves a little output.

II-A-14. Calculation of Parameters of Multi - Phase Coaxial Cables

Prof. Akihiro Ametani of Doshisha University in Kyoto, Japan, is the author of cable parameter
calculations. The present CABLE CONSTANTS ( CC ) dates to the mid-'70s whereas the following
CABLE PARAMETERS ( CP ) dates to 1994. If the user has no reason to prefer the present CC, he is
referred to the following CP, which is the author's preference.

The calculation of parameters for multi-phase coaxial cables is isolated in a separate UTPF overlay.
It really is a separate, self-contained program, and all usage is described in the separate Section XXIII. To
transfer to that separate program, the following special-request card is used :

1 2 3 4 5 6 7 8
123456789012345 678901234567890123456789012345678 90123456 789012345678901234567890

CABLE CONSTANTS KTRLSW(3)

I8

Normally only the request word is required (leave columns 16 onward blank). For examples of such
usage, see BENCHMARK DC-27, 28, 60, and DCNEW-6.

The parameter KTRLSW(3) of columns 49-56 is optional. It is used to modify the number of
conductors per SC (single core) coaxial cable within the memory reserved for CABLE CONSTANTS
parameters (as explained near the top of MAIN27). As a rule of thumb, the following equation is valid :

ratio = # of conductors / SC cable = 2 + KTRLSW(3)

Of course this implies KTRLSW(3) > –2.

The following table was derived for 0.85 times default dimensioning :

KTRLSW(3) # SC # conductors ratio


----------------------------------------
–2 92 0 0
–2 42 42 1
0 22 45 2
1 15 46 3
2 11 47 4

2A - 14
II. Cards that begin a New Data Case

Interpretation of the input data will report limiting sizes of the CC tables. For example, standard test
cases are usually verified using 3 times default dimensioning and List 31 = 240K. Then the .LIS file of
BENCHMARK DC-27 will show :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Akihiro Ametani`s old code. Limits = 26 53 |CABLE CONSTANTS

The values 26 and 53 are internal parameters LDM and LDN. If a user had turned on diagnostic printout,
he would have seen LDM and LDN described as the limit on SC coaxial cables and the limit on the number
of conductors, respectively.

II-A-15. Alternative, Newer Cable Parameters from Akihiro Ametani

Prof. Akihiro Ametani of Doshisha University in Kyoto, Japan, is the author of cable parameter
calculations. The present CABLE PARAMETERS ( CP ) dates to 1994. At that time, the hope was that CP
eventually would replace the original and older CABLE CONSTANTS (CC). But as long as CC can do
something that CP can not, CC is being retained. Data is similar, so changing from one to the other
generally is not difficult for an experienced user. Finally, CC continues to have value because CC code is
largely independent of the CP code.

Access to Akihiro Ametani’s newer cable modeling is by means of the following request :

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

CABLE PARAMETERS

Illustrations of CP use can be found in standard test cases BENCHMARK DC-27, 28, 52, 60,
DCNEW-6, NEW-13, and NEW-29. Interpretation of the declaration will report the limiting number of
conductors. For example, standard test cases are usually verified using 3 times default dimensioning and List
31 = 240K. Then the .LIS file of BENCHMARK DC-27 will show the following in the 2nd subcase :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Prof. Akihiro Ametani`s 1994 code. Order = 38 |CABLE PARAMETERS

That is, the total of the number of cores, sheaths, armors, and the pipe (if any) must not exceed 38 for such
standard dimensioning.

Much larger numbers of coupled conductors have been successfully handled as reported in newsletters
of years 2002 and 2003. Produced by VARDI151.BAT is a TPBIG that will tolerate 151 coupled
conductors. The associated LISTSIZE.151 has List 31 = 3800K (storage varies approximately as the square
of the number of conductors, of course ) .

2A - 15
II. Cards that begin a New Data Case

II-A-16. Unbalanced Load Flow by Xiang - lin Cao

The unbalanced load flow within ATP comes from Xiang-lin Cao of Toden Software Inc. (TSI),
which is a subsidiary of huge Tokyo Electric Power Company (TEPCO) in Japan. Mr. Cao also is the author
of the Type-58 dynamic S.M. model (see Chapter VIII), and he seemed to believe that the original load flow
algorithm of ATP (see FIX SOURCE later in this Section II-A) was unsatisfactory for networks that involve
significant imbalance. CAO LOAD FLOW is the alternative that he has provided for such cases. The
declaration is as follows :

1 2 3 4 5 6 7 8
1234567890123 4567890123456789012345678901234567890123456789012345678901234567890

CAO LOAD FLOW

An illustration of CAO LOAD FLOW can be found in standard test case BENCHMARK
DCNEW-20. Interpretation should then appear as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New TEPCO load flow is used when unbalanced S.M. |CAO LOAD FLOW

In fact, the older and original request NEW LOAD FLOW is illustrated by the 2nd subcase of
DCNEW-20. Such old data continues to be honored, even though it is not encouraged. If used, there will
be an extra, preceding output line : "+++ Warning. The following is old. The recommended new form is
CAO LOAD FLOW, named after the author." For more about CAO LOAD FLOW, refer to newsletters
dated April and July of 1999.

II-A-17. Name the Central Status File of Parallel STATISTICS

The user of OBSERVE PARALLEL MONTE CARLO ( OPMC ) must name PARALLEL.LIS,
which is the central file of summary statistics. This name, up to 40 bytes in length, is to follow (on a separate
data card) the declaration :

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

CENTRAL STATISTICS FILE

Column one of the file name must not be a slash ("/"), since this would be mistaken by the program
as a request for data sorting by class (Section I-J). There usually are computer-dependent ways to avoid the
problem (e.g., for Apollo Aegis, begin with a backslash "\"). But for those who are either unwilling or
unable to use such tricks, precede the leading slash by an extra, leading percent sign ("%") which will be
discarded upon input. Finally, for case-sensitive computers, the file name generally should be in lower case,
followed by an exclamation point ("!") to hold that case even though STARTUP variable KINSEN has
value unity (indicating conversion of input to upper case).

An example of the just-explained declaration is provided by BENCHMARK DC-66. It was from the
solution DC66.LIS that the following interpretation was drawn :

2A - 16
II. Cards that begin a New Data Case

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Name of file for "OBSERVE PARALLEL MONTE CARLO" |CENTRAL STATISTICS FILE
File name:parallel.lis |parallel.lis ! { Actual

II-A-18. Request to Change the Frequency of Plot Points

The frequency of output to the .PL4 file, and hence the frequency for subsequent batch-mode plotting,
is nominally controlled by integer miscellaneous data parameter IPLOT of Section II-B. But this frequency
can be varied as the simulation time is advanced. The request for such variation involves 2 data cards as
follows :

1 2 3 4 5 6 7 8
123456789012345678901 23456789012345678901234567890123456789012345678901234567890

CHANGE PLOT FREQUENCY

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

KCHG MULT KCHG MULT KCHG MULT KCHG MULT KCHG MULT

I8 I8 I8 I8 I8 I8 I8 I8 I8 I8

1st change 2nd change 3rd change 4th change 5th change

The numeric card specifies at which time steps the frequency is to be changed, and to what values the
frequency is to be changed. Up to five pairs of these controls (KCHG, MULT) are permitted. The following
definitions apply :

KCHG(K): The time step number at which the K-th variation of plot frequency is to begin.

MULT(K): The modified value of IPLOT (see 2nd miscellaneous data card) that takes effect at time
step KCHG(K).

Normally KCHG will be monotone increasing, from left to right. In any case, the pairs of integers are used
in this order. As simulation begins on step 1, ATP is waiting for step KCHG(1) to be reached before the
change to output frequency MULT(1) will be made. Then ATP will wait for step KCHG(2) to be reached,
etc. There is no need for a bound as ATP will halt its consideration once the last defined pair has been used.

Interpretation confirms only the first three of the five pairs of integers that are defined. Illustrations
of use are provided by BENCHMARK DC-3 and DCNEW-25. The following interpretation is drawn from
the first of these :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request preceding 5 plot output frequency pairs. |CHANGE PLOT FREQUENCY
Plot out : 5 5 10 1 0 0 | 5 5 10

2A - 17
II. Cards that begin a New Data Case

II-A-19. Request to Change the Frequency of Time - Step Loop Printout

The frequency of LUNIT6 printout within the time-step loop is nominally controlled by integer
miscellaneous data parameter IOUT of Section II-B. But this frequency can be varied as the simulation
time is advanced. One way is to use an extension to the integer miscellaneous data card (see Section II-C).
But it is possible to accomplish identically the same control by having the same numerical card of (KCHG,
MULT) pairs preceded by the appropriate special-request card, as follows :

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890

CHANGE PRINTOUT FREQUENCY

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

KCHG MULT KCHG MULT KCHG MULT KCHG MULT KCHG MULT

I8 I8 I8 I8 I8 I8 I8 I8 I8 I8

1st change 2nd change 3rd change 4th change 5th change

The numeric card specifies at which time steps the printout frequency is to be changed, and to what
values the frequency is to be changed. Up to five pairs of these (KCHG, MULT) controls are permitted, as
per the following definitions :

KCHG(K) : The time step number at which the K-th variation of printout frequency is to begin. Printout
for this particular step number is always provided, as a beginning to the new frequency of
output.

MULT(K) : The modified value of IOUT (see 2nd miscellaneous data card) that takes effect at time
step KCHG(K).

Normally KCHG will be monotone increasing, from left to right. In any case, the pairs of integers are used
in this order. As simulation begins on step 1, ATP is waiting for step KCHG(1) to be reached before the
change to MULT(1) will be made. Next ATP will wait for step KCHG(2) to be reached, etc. There is no
need for a bound as ATP will halt its consideration once the last defined pair has been used.

If a minus sign is appended to MULT(K), then at the corresponding step number KCHG(J), the
diagnostic printout status will be changed. That is, there will be a switching of the two sets of diagnostic
printout controls : 1) IPRSOV(16:19) of a DIAGNOSTIC request and
2) IPR(1:4) of an ALTERNATE DIAGNOSTIC PRINTOUT request

If there is no minus sign, there will be no change in status of the diagnostic printout at the associated
time step. Any minus signs are merely extra flags. The absolute value of MULT still controls the production
(non-diagnostic) printout frequency as originally described.

The present usage is more self-explanatory than the alternative of Section II-C, so probably it is to
be preferred. Years ago, it was necessary. Note that the extension to the integer miscellaneous data card is
possible only if integer miscellaneous data parameter IPUN is given a value of minus one (columns 41-48).
But IPUN once had meaning when it was positive, as a request for the creation of terminal conditions. The

2A - 18
II. Cards that begin a New Data Case

user might have wanted to do both of these operations in the same data case, which previously was
impossible (since variable IPUN could not be both negative and positive at the same time).

Use of CHANGE PRINTOUT FREQUENCY is illustrated by several standard test cases :


BENCHMARK DC-22, 40, 42, 48, and 49. Program interpretation of the input data confirms only the
first three of the five possible pairs of integers, however. The following illustration is from DC-48 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request preceding 5 printout number pairs. |CHANGE PRINTOUT FREQUENCY
Printout : 5 5 10 10 0 0 | 5 5 10

II-A-20. Conversion of Former Switched-R, L Elements to Type - 99 and 98

Years ago (prior to the "M32." update of 1982), EMTP had switch components that allowed for both
resistive and inductive discontinuities : so-called switched-R and switched-L elements. Today, such
modeling can be accomplished using the more general pseudo-nonlinear elements of type codes 99 and 98.
The user who wants to convert antiquated data involving switched-R or switched-L elements into modern,
equivalent, representations can issue the following request :

1 2 3 4 5 6 7 8
1234567890123 4567890123456789012 34567890 1234567890123456789012345678901234567890

CHANGE SWITCH XOPT

E8.0

This special-request card is to be added before the first miscellaneous data card of the antiquated data
case. Conversion then will be accomplished within a special program described in Section XIX-D. Parameter
XOPT of columns 33-40 is the miscellaneous data parameter that specifies the units that are being used for
inductance (millihenries if zero or blank; ohms at frequency XOPT Hz if positive). Specification on the
request card means less intelligence inside the supporting program (no need to look for the integer
miscellaneous data card, and read it). The supporting program will then read all input data, and punch (see
$PUNCH) replacement branch cards to represent the antiquated components. It will then be the user's
responsibility to replace the old card images with the new ones.

An example of such conversion is provided by the third subcase of standard test case BENCHMARK
DC-14. The interpretation of the request then appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Convert switched-R,L cards to pseudo-nonlinear. |CHANGE SWITCH

II-A-21. Convert SATURABLE Transformer Cards to [ R ] and [ L ]

The calculation of matrices [R] and [L] to provide an alternative, linear representation for a saturable
TRANSFORMER is described in the separate Section XIX-J. The special-request word CHANGE
TRANSFORMER ( CX ) provides the transfer :

2A - 19
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
123456789012345678 90123456789012345678901234567890123456789012345678901234567890

CHANGE TRANSFORMER

Upon completion of the computation, resulting [R] and [L] are obtained in the form of Type-51, 52,
... branch cards using $PUNCH. Of course, the saturable TRANSFORMER is nonlinear, and the
nonlinearity must be ignored. More precisely, it must be linearized : it is the phasor I-steady and
PSI-steady that are used as an approximation. An illustration can be found in standard BENCHMARK
DC-67. Interpretation of the transfer has been drawn from this solution :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Convert saturable TRANSFORMER into [R], [L]. |CHANGE TRANSFORMER

II-A-22. Create FORTRAN for Compiled TACS Representation

Compiled TACS simulates faster than normal, old, interpretive TACS because the control system
modeling, which the user defines in TACS data, has been converted to FORTRAN source code. For
background, see newsletter stories entitled "Compiled TACS speeds simulation." These began in the
January, 1997, issue. The user's TACS model is built into the program by compilation and linking of the
associated FORTRAN. The first step of this process is creation of the associated FORTRAN, which is
requested by :

1 2 3 4 5 6 7 8
123456789012345678 90123456789012345678901234567890123456789012345678901234567890

COMPILED TACS MAKE

Compiled TACS should not be used casually. Typically it should be used only for simulation that is
too slow because of the TACS burden. In effect, the TACS burden can be removed because compiled
execution typically might be an order of magnitude or more faster. But note that only the TACS burden is
relieved in this way. If the electric network accounts for at least half of the total burden, note that simulation
speed could not be doubled. Compiled TACS usually makes sense only if TACS dominates.

SINGLE STEP IF MAKE ( SSIM ) is described in a later subsection. This request frequently is used
along with COMPILED TACS MAKE ( CTM ) to halt the simulation after one time step. The desired
FORTRAN to represent the TACS data is created on the first time step, so just a single step is required.

1 2 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

SINGLE STEP IF MAKE

The operating system symbol named COMPTACS provides an alternative to the declaration of
COMPILED TACS MAKE in data. For MS-DOS, the command would be SET COMPTACS =MAKE
Typically this would be placed in a batch file immediately prior to the ATP execution that would create the
associated TACS FORTRAN. Of course, once ATP execution is complete, the flag should be cancelled.
For MS-DOS, use SET COMPTACS= (i.e., nothing to the right of the equal sign ) .

2A - 20
II. Cards that begin a New Data Case

An illustration of COMPILED TACS MAKE can be found in standard BENCHMARK DCNEW-25.


The following interpretation has been extracted from the associated output :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for generation of FORTRAN for TACS data. |COMPILED TACS MAKE

II-A-23. Using Compiled TACS for Faster Simulation

COMPILED TACS USE ( CTU ) is the second step of a 2-step process. Do not use this request
unless it is preceded by the first step, which is COMPILED TACS MAKE ( CTM ) as described in the
preceding section. These two requests are paired, and must involve the same TACS data. That is, one can
USE (simulate) only what already has been made, compiled, and linked. The data must not be changed
between the MAKE and the USE phases.

Provided the ATP version being used has been linked to include the TACS modeling of interest, the
request for faster simulation using compiled TACS is as follows :

1 2 3 4 5 6 7 8
12345678901234567 890123456789012345678901234567890123456789012345678901234567890

COMPILED TACS USE

No standard test case illustrates this request because no illustrative TACS data yet is being built into
(i.e., linked with) every version of the program that is created. Also, the operating system symbol
COMPTACS provides a more convenient alternative to declaration in data. For MS-DOS, the command
would be SET COMPTACS=USE Typically this would be placed in a batch file immediately prior to the
ATP execution of interest. Of course, once execution is complete, the flag should be cancelled. For
MS-DOS, use SET COMPTACS= (i.e., nothing to the right of the equal sign ) .

For the user who does choose to embed the request for compiled TACS use in data, interpretation
should be as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for use of compiled TACS (no interpret). |COMPILED TACS USE

II-A-23a. Request for unification of all .PL4 signals

Monte Carlo simulation involves a loop over energizations, so normally it would produce either no
.pl4 file of plot points, or a family of such files, with one file for each shot. If the user wants to unify all
members of the family, producing just a single such output .PL4 file, he can make a CONCATENATE
MONTE CARLO PL4 ( CMCP ) request:

2A - 21
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456789012345678 9012345678901234567890123456789012345678901234567890

CONCATENATE MONTE CARLO PL4

Prior to introduction of this English-language form of request, the special, reserved value IPLOT =
54321 of integer miscellaneous data was used. Although this numerical form of request continues to be
honored, its use has two disadvantages: 1) Special numbers such as 54321 are harder to remember, and are
less self-explanatory, than English words; and 2) the frequency of plotting then is implied, and fixed at
unity.

The 6th subcase of BENCHMARK DC-10 illustrates use of CONCATENATE MONTE CARLO
PL4. It also illustrates the exceptional specification of a formatted .PL4 file type within data, to override the
usual assignment within STARTUP. A special comment card is required as shown near the beginning of the
1st subcase. This trickery was necessary because C-like .PL4 files are the standard for test cases, and wide08
for use in the 6th subcase is an exception to the general rule. For production use, there typically would not
be stacked data subcases, but there might well be hesitation to change STARTUP. If so, read those
comments carefully.

As originally designed, CONCATENATE MONTE CARLO PL4 use was anticipated only for
formatted (either widexx or FORMATTED) .PL4 files. This way, the user would be able to see which
energization was which. Since then, however, Orlando Hevia has modified his plotting program GTPPLOT
to handle unformatted alternatives. This demonstrates that, with appropriate software to read the file,
formatting might not be necessary. Of course, unformatted files are more efficient, so there is practical
incentive for Mr. Hevia's generalization.

Interpretation of the input data is illustrated by the following output line from the 6th subcase of
BENCHMARK DC-10 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Each shot contributes points to single .PL4 file |CONCATENATE MONTE CARLO PL4

For formatted use, the transition between one energization and the next within a .PL4 file should be
obvious by looking at the first column, which is simulation time. To illustrate, consider BENCHMARK
DC-10, which begins with 3 header lines :
Time V-bran V-bran V-bran V-bran V-node V-node V-node I-bran ...
in GENA GENC ENDA B1 ASW10 BSW10 CSW10 B1 ...
second A1 C1 A10 BSW1 BSW1 ...

These will be followed by uniform columns of numbers which begin at time zero and extend through the final
time step. After this comes an extra, repeated line having obviously illegal time T = -9999 :

.0201 7.73814 -2.8101 14.4361 274.271 117.629 192.793 -295.85 .795833 ...
-9999. 7.73814 -2.8101 14.4361 274.271 117.629 192.793 -295.85 .795833 ...

2A - 22
II. Cards that begin a New Data Case

Next come 7 lines of optional (for a plotting program) comment information, with the last of these (for
power and energy) having its own extension line of details :
017IHSPL4 = 0
017MODHFS = 0
017NENERG = 3
017LSHOT1 = 1
017JGABOR = 0
017L4FULL = 0
017NPOWER = 1
5 9

That ends the first energization. The second then begins at the time of table dumping, which is step 18 at
1.8 msec :
.0201 7.73814 -2.8101 14.4361 274.271 117.629 192.793 -295.85 .795833 ...
-9999. 7.73814 -2.8101 14.4361 274.271 117.629 192.793 -295.85 .795833 ...

Etc. The just-described pattern is repeated through the end of the 3rd of 3 energizations.

II-A-23b. Use of vendor-supplied, secret relay models.

Models of relays that are not secret typically will be represented using TACS or MODELS data
(ATP control system modeling). In this case, operation is described by the data, and can be observed by
anyone who has access to that ATP data.

Models of relays that are secret might be built into ATP by qualified vendors as first described in
E-mail of the EEUG list server dated 23 June 2008. In this case, user access begins with a CONNECT
SECRET RELAY MODELS ( CSRM ) request :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

CONNECT SECRET RELAY MODELS IRELAY

I8

IRELAY (cols. 33-40) Frequency with which relays will be fed by ATP, and with which ATP
subsequently will receive instructions from the relays. A blank or any non-positive integer will be converted
to the default value unity (which means that there will be communication with the relays at every time step).
Value two means communication every 2nd time step, etc.

This request is to precede a list of the relays being used, and their inputs and outputs. Indeterminate
in number, this list is to be terminated by an END RELAY CONNECTIONS card which is documented in
Section II-A-28a.

The list of relays and their inputs and outputs will involve at least one line per relay. Each relay is

2A - 23
II. Cards that begin a New Data Case

specified by its 10-character alphanumeric name in the middle of the line (columns 30-39). An input signal
(an ATP variable) for the relay is identified to the left of the name, and the ATP switch that is to be
controlled by the relay is identified to the right of the name:

123456789012345678901234567890123456789012345678901234567890
C Input 2A6 names Name of 2A6 names of
C class of variable relay ATP switch
C A15 >< A6 >< A6 > < A10 >< A6 >< A6 >

Each input is identified by a pair of 6-character names that is preceded by a 15-byte label that
specifies the variable type. Available types include BRANCH VOLTAGE, SWITCH CURRENT, R-L-C
CURRENT, SWITCH POWER, R-L-C POWER, TACS SIGNAL, MODELS SIGNAL, SWITCH
STATUS, and OUTPUT SIGNAL. Generally, there is a polarity that is implied by the order of the two A6
names. Clarification follows :

a) BRANCH VOLTAGE is more general than the voltage of some ATP branch. The words are merely
short, simple, and suggestive of the idea of a voltage difference. This is a request for the voltage drop from
the first-named node to the second. Note that node voltage is a special case, with the second name blank.
To conclude, BRANCH VOLTAGE covers any voltage difference; it is the voltage of the first node minus
the voltage of the second.

b) Currents are branch or switch currents that flow from the first named node to the second. SWITCH
CURRENT is for an ATP switch, obviously, and the switch must be identified by its two terminal node
names. If two or more are in parallel, beware that ATP will select the first of the multiple possibilities in
order of data input. Yes, the A6 switch name could have been honored easily enough to remove such
ambiguity, but then polarity would have been required as an additional input. It was believed that this added
complexity was not worth the effort. About the R-L-C CURRENT alternative, this is for a series R-L-C
branch --- the only branch type for which current is available, initially.

c) For a switch, power will be the flow through; for a series R-L-C branch, power will be consumption
within the branch. As with current, the only branch type that is supported is series R-L-C.

d) A TACS or MODELS signal uses only the 1st of the two A6 names. In this way, control signals are
similar to node voltage: the second of two A6 names is to be blank.

e) SWITCH STATUS will provide a binary variable that indicates whether a switch is open (value zero)
or is closed (value unity).

f) OUTPUT SIGNAL supplies a signal from the ATP output vector, with variable type assumed not to be
a voltage. Recall that batch-mode plotting accesses such variables, with request number 4 for node voltage,
8 for branch voltage, and 9 for anything else. Well, OUTPUT SIGNAL is comparable to the number 9.
While use could involve a real current, more commonly it will be for variables of rotating machinery that the
request will be made. In general, OUTPUT SIGNAL should be used only as a last resort, only if none of
the preceding variable types was applicable. OUTPUT SIGNAL has the inherent disadvantage of a possible

2A - 24
II. Cards that begin a New Data Case

loss of one time step. I.e., the associated signal generally will be stale by one time step. An exceptional
extension to the preceding is a DIAGNOSTIC request to turn on diagnostic printout that is associated with
relay operation. Although the request will be honored anywhere within the list of relay connections, it
normally will be placed first so that no relay diagnostic printout will be missed. Although it applies only to
relay output, the printout control number is read from column 22 as if this were the start of the general ATP
request having the same name (see Section II-A-27). Interpretation will mention this peculiarity: "Debug
printout control as if overlay 1 (col. 22) | ..."

Each relay controls the status of one or more ATP switches. A switch can be specified either by its
two associated terminal node names or its 6-character switch name if any. To use the latter, the first of the
two A6 names is to be "NAME: " (note the blank ending in byte number 6).

For multiple relay inputs or outputs, simply continue on a second or later data card. A blank A10
relay name is the sign of a relay continuation card, which serves to define another input for the relay, or
another output of the relay, or both. Relay inputs are ordered, so be careful of this detail. The user's order
for relay inputs must correspond to the vendor's order, obviously.

Interpretation of CONNECT SECRET RELAY MODELS input data is illustrated in considerable


generality by the artificial 8th subcase of BENCHMARK DC-30. Associated output begins with the
CONNECT SECRET RELAY MODELS request line itself, in its proper location. The frequency of use
IRELAY unfortunately is not confirmed, note :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Proprietary relays. Delay the data until dT loop. |CONNECT SECRET RELAY MODELS

As stated, following lines will be delayed. They will be seen as the time-step loop is about to be entered,
immediately before headings for variables of dT-loop printout. Such interpretation begins and ends with one
extra labeling line to provide context:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
<<<< Next, show delayed input that is associated with preceding CONN ...
Debug printout control as if overlay 1 (col. 22) |DIAGNOSTIC 9 ...
Relay 1. "DC-30H " Input # 1 Switch # 3 |Branch voltage REC ...
Continuation. Switch # 4 | ...
Relay 2. "DC-30H " Input # 2 Switch # 2 |Switch current GEN SW ...
Continuation. Input # 3 |Branch voltage GEN SE ...
Relay 3. "(A6)SIGNAL" Input # 1 Switch # 5 |Branch voltage REC ...
Continuation. Input # 4 |Switch status SEND SW ...
Continuation. Input # 5 |Output signal SEND RE ...
Continuation. Input # 6 |R-L-C current PLUS ...
Relay 4. "DC-30H " Input # 7 Switch # 1 |Switch power GEN SW ...

2A - 25
II. Cards that begin a New Data Case

Continuation. Input # 8 |R-L-C power PLUS ...


Terminator of external relay connection data. |END RELAY CONNECTIONS ...
<<<< End of insertion that is associated with delayed input of extern ...

Important aspects of this include counting of the relays (in this case, 1 through 4 in column 8), confirmation
of the A10 relay name within quotation marks, counting of the inputs (any repeated use is indicated by an
input number that is not one larger than the preceding maximum), and identification of each output by an
ATP switch number. That "(A6)SIGNAL" is not the name of the 3rd relay, obviously. Instead, this is an
indication that the relay model in question will append one of its signals to the ATP output vector. As now
coded, this only makes sense for frequency IRELAY equal to unity.

The most important and common error of CONNECT SECRET RELAY MODELS data input
probably will be ATP failure to recognize a 10-character relay name. For the code that is built into the UTPF
(for the support of standard test cases), the message will be: "Bad external relay connection data. Relay
named "..." can not be located. Halt within ..." This single line of error explanation will be followed by the
familiar impromptu halt in STOPTP. Yes, the user might misspell the A10 relay name, but more likely the
executable ATP version that is being used simply does not offer the relay that is of interest to the user. In this
case, remember that relay models generally are secret so only the vendor of the relay models might provide
assistance. Also note that program developers are unable to be sure of the existence of a helpful rejection
message such as the one just shown. All they can do is recommend such service to a relay model vendor.

The file of diagnostic output should include one line that identifies the vendor who has supplied relay
modeling that is about to be used. I.e., the vendor should produce one line of output that corresponds to the
following within DC30.DBG :
This relay modeling was coded by W. Scott Meyer.
In the UTPF, it supports only DC-30.
Once again, program developers can not be sure, however; all they can do is recommend such relay model
identification.

ATP simulation should be much faster using CONNECT SECRET RELAY MODELS data than it
would be using alternative TACS or MODELS data, the user should realize. Properly coded CONNECT
SECRET RELAY MODELS support should be faster than compiled TACS, which typically is an order of
magnitude faster than ordinary TACS, which in turn might be an order of magnitude faster than MODELS
data. Thus CONNECT SECRET RELAY MODELS service should be almost instantaneous compared with
service using MODELS data. Speed is an advantage that should not be overlooked, if associated relay logic
represents a substantial part of the total computational burden.

II-A-24. Creation of Source Cards to Approximate Harmonics

CREATE HARMONIC SOURCES ( CHS ) is the request for harmonic source estimation as first
described in the April, 2002, newsletter. Code is from Orlando Hevia of UTN in Santa Fe, Argentina, who
wrote : "I send you the source code of the routine to generate HFS sources for diode / thyristor bridges."
The request for such service is :

2A - 26
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

CREATE HARMONIC SOURCES

A couple of weeks later, author Hevia expanded his creation: "I added a new type of device ... a
TCR (Thyristor Controlled Reactor). The data are Current RMS (fundamental), frequency, phase,
conducting angle, maximum harmonics, and a key," with the last of these controlling the preservation or
deletion of triplen harmonics.

Operation is demonstrated by a new 3rd subcase of BENCHMARK DC-15 , from which the
following interpretation has been extracted :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Orlando Hevia creates harmonic sources for HFS. |CREATE HARMONIC SOURCES

II-A-25. Request for Double - Precision .PL4 Plot File

The user will normally employ whatever precision of plot file data has been decided upon by Program
Maintenance for his computer system, and not think further about the question. For plotting only, which
requires low-accuracy, any computer precision should be adequate, so the user need never worry. But there
may be more concern for other uses of the plot file data, such as POSTPROCESS PLOT FILE (where plot
file variables become TACS sources of a subsequent simulation), or FOURIER ON (to request Fourier
series decomposition of a plot file signal). In such cases, full solution precision may be desired, and this is
the motivation for the request, which takes this form :

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

CUSTOM PLOT FILE

Today (year 2002), all program versions available to the general public involve 64-bit (double-
precision) computation and 32-bit (single-precision) storage in the .PL4 file. The first use of CUSTOM
PLOT FILE thus will convert from 32-bit (REAL*4) storage to 64-bit (REAL*8) storage in the .PL4 plot
file that will be created on LUNIT4 during simulation. However, the declaration is a toggle, so any
following use would return the .PL4 storage to single precision.

Use is illustrated by standard BENCHMARK DC-3 and 54. Either should show the following
interpretation, which confirms a change from single precision ( L4FULL = 0 ) to double precision

2A - 27
II. Cards that begin a New Data Case

(L4FULL = 1) storage in the .PL4 file :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Toggle choice of disk plot file. L4FULL = 1. |CUSTOM PLOT FILE { Re ...

II-A-26. Modularization of Data for $INCLUDE Use with Arguments

The request for a copy of some data component that is stored in a data base generally requires
$INCLUDE usage with one or more arguments. But when arguments are present, data must first be
processed by the supporting program of Section XIX-F. This program searches the user's raw data for the
character strings of interest, and establishes numerical pointers for all arguments in order to speed later usage.
A special-request card, to be placed in front of the user's raw data, transfers control to this conversion utility
:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

DATA BASE MODULE

An example of such usage is provided by BENCHMARK DC-36. It was from the first subcase of
this solution that the following interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for definition of data base modules. |DATA BASE MODULE

II-A-27. Request for Selective Diagnostic Printout

Integer miscellaneous data parameter IPRSUP (see Section II-B) will turn diagnostic printout on or
off irrespective of the location of that printout within the program. That is, either all diagnostic output is
turned on, or all is turned off, at a certain threshold level. If positive, IPRSUP will override the selective
printout request of this present section.

But if IPRSUP is to be keyed zero or blank, then EMTP diagnostic printout can be controlled
overlay by overlay of the UTPF. A special-request card bearing the key word DIAGNOSTIC in columns 1-

2A - 28
II. Cards that begin a New Data Case

10 is used in this case, followed by 10 blanks, followed by values for each of the 29 overlays as 29I2
information :

1 ... 2 3 4 5 6 7 8
1234567890 ... 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90

DIAGNOSTIC Each entry has I2 FORMAT

Overlay number : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

In the selection of these diagnostic output codes, special care should always be taken with regard to
the time-step loop of overlays 16-19. Remember that diagnostic output can be generated for each time step,
so beware of the termination time TMAX in relation to the step-size DELTAT, should such output be
requested. Another consideration is for large networks, which will generate voluminous output in overlay
number 7 (network node-renumbering) and the [Y] formation of overlay 14. In these cases, output can be
produced for each row of the matrix. It is recommended that diagnostic for overlay 7 almost never be used,
and that the value for overlay 14 be limited to level 3. If in doubt about such control, consult Program
Maintenance, or try the usage in real time, looking at the output on a computer monitor as it is being
generated. In case the output is excessive, execution then could be aborted, and the controls modified
appropriately. A summary of the function of key overlays at the start of the program follows :

Overlay 1 Special-request cards, miscellaneous data, and MODELS data input


Overlay 2 TACS data input
Overlay 3 Electric network branch input
Overlay 4 Switch (including diodes/valves) input
Overlay 5 Source (including S.M. and U.M.) input
Overlay 6 Network connectivity printout
Overlay 7 Node renumbering

If diagnostic printout is being turned off and on as a function of time (see Section 1.1b, with a minus
sign on MULT), then (IPRSOV(16:19) alternate with IPR(1:4) for control of diagnostic printout of the
time-step loop. There are two distinct cases of importance :

Case 1. If the user wants to start with no diagnostic (i.e., for time steps zero or one), then
IPRSOV(16:19) should all be zero, and the ALTERNATE DIAGNOSTIC PRINTOUT
request of a preceding subsection should be used to define the nonzero printout codes
(one or more of the 4 values nonzero).

Case 2. If the user wants to start with diagnostic (Step zero), then IPRSOV(16:19 should not all
be zero. In this case, no ALTERNATE DIAGNOSTIC PRINTOUT request is needed,
since zero values are the default.

Interpretation of the input data confirms only the first 12 of the 29 integers that are defined. An

2A - 29
II. Cards that begin a New Data Case

illustration is provided by BENCHMARK DC-18, which turns on diagnostic printout only in overlays 2 and
16 (used by the pocket calculator) :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Debug print. 0 9 0 0 0 0 0 0 0 0 0 0 |DIAGNOSTIC 0 9

II-A-28. Toggle Choice Between Disk and Memory for Plot Data Storage

The startup file initializes variable LUNIT4, which controls whether plot data points are to be stored
on disk or in memory within SUBROUTINE PLTFIL. The sign on what otherwise would be an I/O channel
number makes this choice : "+" means that disk storage connected to I/O unit LUNIT4 will be used,
whereas "-" will result in the storage of plot data in COMMON /C29B01/. Well, whatever the STARTUP
decision might be, the following declaration will toggle (reverse) it :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

DISK PLOT DATA

For an example of such usage, see BENCHMARK DC-3. Interpretation will confirm the value of
LUNIT4 following the change. From DC3.LIS, assuming that STARTUP defines LUNIT4 = -4 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Toggle plot data storage choice. LUNIT4 = 4. |DISK PLOT DATA

II-A-28a. Termination of Vendor-Supplied Relay Models

Vendor-supplied relay models were introduced by the CONNECT SECRET RELAY MODELS
( CSRM ) request of Section II-A-23b. The following indeterminate list of relays is terminated by an END
RELAY CONNECTIONS line :

1 2 3 4 5 6 7 8
123456789012345678901 23456789012345678901234567890123456789012345678901234567890

END RELAY CONNECTIONS

2A - 30
II. Cards that begin a New Data Case

No abbreviation is possible. Although END RELAY CONNECTIONS appears to be a request that is


comparable and parallel to all of the others, in fact it has meaning only as a termination of the relay
connections of a preceding CONNECT SECRET RELAY MODELS or CSRM request.

Interpretation is fixed, and is illustrated by either the 7th or the 8th subcase of BENCHMARK DC-30.
It appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Terminator of external relay connection data. |END RELAY CONNECTIONS

II-A-29. Long - Line Formulas for Constant - Parameter Distributed Lines

Normally, for the phasor solution, resistance is lumped (1/4 on each end and half in the middle) for
constant-parameter, distributed lines. This agrees with the modeling of the time-step loop, of course. But
sometimes the user may want the correct (exact) representation for the phasor solution. It can be obtained by
the request :

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

EXACT PHASOR EQUIVALENT

An example of such usage can be found in BENCHMARK DC-11 and DCNEW-2. Illustrative
interpretation can be extracted from any such solution as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Do not lump R for constant-parameter distributed. |EXACT PHASOR EQUIVALENT

II-A-29a. Output of ATP Extrema for Spread Sheets

A special output file that contains nothing but extrema of a Monte Carlo simulation can be requested.
Note that content is not new, since it generally is part of the .LIS file that is produced in response to DISK
or BOTH (responses to the opening prompt of ATP). But use of spread sheets such as Microsoft (MS)
Excel has become so common, it makes sense to provide special ATP output that is optimized for their use.
This was first explained to the community of ATP users in E-mail of the EEUG list server dated 23 July
2007. The "Subject:" was "Output of Monte Carlo Extrema for MS Excel ..."

2A - 31
II. Cards that begin a New Data Case

EXTREMA OUTPUT FOR EXCEL ( EOFE ) is the request for an additional formatted output file
that can be used as input to MS Excel or comparable spreadsheets :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

EXTREMA OUTPUT FOR EXCEL

The new output file is like a widexx .PL4 file except that extrema of the various shots of a Monte Carlo
study are involved rather than signals of one simulation as a function of time.

Why use this separate file rather than copy and paste from the .LIS file? Former BPA employee
Gerald Lee, working with BPA's Anders Johnson on Monte Carlo studies, mentioned two sorts of minor
problems using the pasted output: 1) Column formatting of extrema was imperfect due to ATP's use of
continuation lines (the 132-column limit); and 2) the .LIS file occasionally contained extraneous messages
amid the repetitive extrema. Mr. Lee's suggestion was to "create a separate output file and put all of the data
there (leaving the lis file alone)." This is a good summary of what was done.

A present restriction involves prohibition on widexx .PL4 files. The simultaneous use of
EXTREMA OUTPUT FOR EXCEL and widexx is not possible because both use the same storage. With
more-clever programming, the restriction later might be removed. But for now, an error message should
protect the user. A second restriction is to a line width of 2550 bytes -- the same as for widexx use. This
latter limit might not easily be removed, but it could easily be expanded if practical application requires
more.

Commas are not being used to separate node names just as they were not used in 1995 for the widexx
header. Orlando Hevia found that commas were not needed as long as columns were correctly aligned. This
is the most surprising detail: even embedded blanks are tolerated as part of the A6 node names. It would
seem that the following signals, which are regular and full, are used by MS Excel to delineate columns.

The new output for MS Excel (or other spreadsheet) is sent to a file that is named in parallel with
most other ATP output files. I.e., file type provides the distinction, with .xcl being the default name.
Unfortunately, there was not room to add this to the appropriate line of STARTUP, so file type has been
made an option on the EXTREMA OUTPUT FOR EXCEL request card. If column 29 is a period, columns
30 through 32 are assumed to be a user-supplied file type as long as the name is not "off" (see next
paragraph).

To turn off or cancel such special output for a following stacked data subcase, simply key ".off" in
columns 29 through 32 of the EXTREMA OUTPUT FOR EXCEL request. The 2nd subcase of
BENCHMARK DC-24 illustrates such use.

Interpretation of EXTREMA OUTPUT FOR EXCEL is fixed, and is illustrated by either the 1st or
nd
the 2 subcase of BENCHMARK DC-24 :

2A - 32
II. Cards that begin a New Data Case

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Special output file of extrema for MS Excel use. |EXTREMA OUTPUT FOR EXCEL

II-A-30. Phasor Solutions with Nodes Faulted to Ground

FAULTS TO GROUND ( FTG ) is a request that will cause ATP to loop over phasor solutions with
different nodes grounded. For each fault, the user lists nodes that are to be grounded (most commonly one
or three) on a data card. All regular EMTP output after source input is suppressed. In its place will appear
a single table of fault currents with one row for each fault switch of each fault. A request for such service
begins with the following fixed card :

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

FAULTS TO GROUND

Next to appear are an indeterminate number of cards, one for each fault. Each card is to carry the
names of the nodes that are to be faulted to ground during that particular fault. The format is :

1 2 3 4 5 6 7 8
12 345678 901234 567890123456 789012 345678 901234 567890 123456 789012 345678 901234 567890

BUS1 BUS2 BUS3 BUS4 BUS5 BUS6 BUS7 BUS8 BUS9 BUS10 BUS11 BUS12 BUS13

A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6

Most commonly, either one name will be provided, or three will be provided. This would be for a single-
line-to-ground fault or a 3-phase (to ground) fault, respectively. But any number of nodes can participate.
Blank names are ignored, so for 3-phase use, it is customary to use BUS1 for phase a, BUS2 for phase b, and
BUS3 for phase c. Finally, a blank card terminates the last such row of nodes to be faulted.

Inspiration for the addition of fault modeling to ATP came from BPA's Dan Goldsworthy. In the
past, he had been forced to set up many different, separate data cases, execute the program for each one,
and finally, extract the fault currents manually from each solution. This was part of the careful building of
a new data case. At the power frequency, Mr. Goldsworthy would validate his representation by shorting
each bus of interest to ground. He then would compare the resulting fault currents with those predicted
independently by a conventional short-circuit program.

Operation of FAULTS TO GROUND ( FTG ) bears some similarity to the operation of


FREQUENCY SCAN . Each involves a family of phasor solutions that is requested by means of a
special-request card. Yet, there are important differences. The FTG loop is bigger because branch and

2A - 33
II. Cards that begin a New Data Case

switch cards will be re-read for each fault. In order for this to occur at maximum speed, data input must be
from RAM rather than disk. Depending on computer, operating system, and compiler, this may or may not
represent a bottleneck. No problem for Salford EMTP, which switched to virtual files early (see the final
paragraph on page 1 of the July, 1992, newsletter). But there was an obvious problem for VAX/VMS, which
demonstrated a lot of disk noise and slow execution when running FTG. After local VAX expert Randy
Suhrbier advised that he knew of no DEC compiler switch to move scratch disk files to RAM, your Editor
agreed to program a RAM disk as had been used for IBM mainframes during the mid-'80s. In fact, two
RAM disks were programmed in SUBROUTINE WRIT10 for VAX during the morning of 3 April 1993.
The first and biggest (20K card images) is for data of LUNT10; the second (8K card images) is for program
text of BLOCKD51.BIN . The sizes are arbitrary, but compilation is required to change either of them.

A new, third subcase has been added to DC-11 to illustrate the operation of FAULTS TO GROUND
on the cascaded connection of Pi-circuits of DC-3. Illustrative interpretation is drawn from this solution. To
save space, the output for faults 3 through 9 of the 10 have been omitted. Note that the first two faults are 3-
phase whereas the 10th is single phase :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request preceding list of nodes to be faulted. |FAULTS TO GROUND
Names of nodes for fault number 1. | M-A M-B M-C
Names of nodes for fault number 2. | 1-A 1-B 1-C ...
Names of nodes for fault number 10. | 18-C
Blank card ending list of nodes to be faulted. |BLANK card ends list ...

II-A-31. Calling of Installation - Dependent Module MIDOV1

The principal installation-dependent module that is called at the start of execution of each data case
is SYSDEP. But there once was another such module in overlay 1, a former SUBROUTINE that has since
been converted to a special, optional logic branch within SYSDEP. This can be used for any necessary
initialization that is possible only after miscellaneous data cards have been read, for those computer systems
that require such special treatment. The request for such special initialization (originally associated with file
opening and closing) is shown immediately below. But do not use this without the knowledge and approval
of Program Maintenance. It will result in execution of the statement CALL SYSDEP, which could be
disastrous for those computer systems that do not have alternate logic to intercept such advance usage.

1 2 3 4 5 6 7 8
123456789012 34567890123456789012345678901234567890123456789012345678901234567890

FILE REQUEST

2A - 34
II. Cards that begin a New Data Case

No standard test case BENCHMARK DC*.DAT illustrates this use. In any case, interpretation of the input
declaration should appear as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for "CALL MIDOV1" execution. |FILE REQUEST

II-A-32. Declaration of Intention to Use ATP Load Flow

EMTP load flow capability is associated with special data cards that are to follow the blank card
ending sources, as explained in Section X. But such observation of power constraints is optional. If such
data is to be read at the appropriate time and place, the EMTP must know of its existence. The user declares
such existence by means of the following request card :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012345678901234567890123456789012345678901234567890

FIX SOURCE

For examples of such usage, see the standard test cases BENCHMARK DC-25 and DC-26. Interpretation
of the input declaration then appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Declaration of desired EMTP load flow usage. |FIX SOURCE { Declare

II-A-33. Loop over Frequency to Produce Series of Phasor Solutions

The FREQUENCY SCAN ( FS ) feature of ATP allows for the repetition of steady-state phasor
solutions, as the frequency of sinusoidal sources automatically is incremented between a beginning and an
ending frequency. Rather than conventional time-response output, a frequency-response output of desired
quantities such as node voltages, branch currents or driving-point impedance / admittances can be obtained
For plotting, the time axis of conventional ATP simulation becomes the frequency axis. The result is a
frequency curve rather than a time curve. Either polar coordinates (magnitude and angle) or rectangular
coordinates (real and imaginary parts) of the phasor solution variables are used for output purposes. The user
can choose among magnitude only, or polar, or rectangular, or all four possible outputs for the variables of
interest. Typical applications of the Frequency Scan are :

2A - 35
II. Cards that begin a New Data Case

! Analysis and identification of resonant frequencies of power networks and individual system
components;

! Computation of frequency response of driving-point network impedances or admittances seen from a


busbar. For example, the positive-sequence or zero-sequence impedance;

! Analysis of harmonic propagation in a power system using the extended, related feature HARMONIC
FREQUENCY SCAN (see separate later subsection).

This section describes how to create a FREQUENCY SCAN data case, interpretation of program
output, and the plotting of results. In addition, the following useful features related to FREQUENCY
SCAN will be treated :

" Incorporation into the FS computation of frequency-dependent nodal admittance matrices that have
been computed or measured outside of ATP ;
" The MODELS interface to FS.

II-A-33.1. Frequency Scan Data Case Structure

Basically two types of frequency responses are generated, which differ in frequency increment:

a) Frequency is incremented in equal steps, i.e. uniform spacing is used:

b) Frequency is incremented geometrically, i.e. number of frequencies per decade is specified:

When geometric spacing is used, log(f) produces arithmetic frequency increment as illustrated by the
following example with 4 frequency points per decade :

f : 10 17.782794 31.622777 56.234133 100 (Hz)


log(f) : 1.0 1.25 1.50 1.75 2.0

The Frequency Scan feature is activated by a special request data line, which must precede the
miscellaneous data cards as illustrated by the 1st subcase of DC-51 :

2A - 36
II. Cards that begin a New Data Case

BEGIN NEW DATA CASE


C BENCHMARK DC-51
C "FREQUENCY SCAN" use, with subsequent plotting of phasors vs. frequency
C This test cases uses uniform spacing; See DC-52 for geometric spacing.
C Because IOUTLP = 2, the solutions for step numbers 3 and 5 are omitted.
C 1st of 3 data subcases (2 LINE MODEL FREQUENCY SCAN, LMFS, cases follow)
FREQUENCY SCAN, 60., 20., 130., 0, { 60 < f < 130 Hz in 20-Hz increments
0.1 0.0
2 1 1 { IOUTLP (cols. 1-8) only prints every other point
.....

FS request with the required parameters is entered either in free format (parameters are separated by
“,”) or using column-oriented fixed format as shown below :

1 2 3 4 5 6 7 8
78901234
12345678901234 5678901234 56789012 34567890 12345678 90123456 5678901234567890

FREQUENCY SCAN FMINFS DELFFS FMAXFS NPD FUNDFS

E8.0 E8.0 E8.0 I8 E8.0

FMINFS (cols. 25-32) is the beginning (minimum) frequency of the scan in (Hertz). This must be a
positive number.

DELFFS (cols. 33-40) is the frequency increment between successive solutions of the scan, if the
user wants uniform (as opposed to logarithmic) spacing. For logarithmic spacing, this field
should be left blank.

FMAXFS (cols. 41-48) is the ending (maximum) frequency of the scan, in (Hertz). This must be greater
than or equal to FMINFS, of course. The solution loop will end with the last frequency that
does not exceed this upper limit.

NPD (cols. 49-56) is used only for geometric or logarithmic spacing as opposed to uniform or
arithmetic spacing of the frequency points. For geometric or logarithmic spacing, provide an
integer value for the number of points per frequency decade. Successive frequency points
within a decade then will be related by :

FUNDFS (cols. 57 - 64) is used if and only if source angles are to be made proportional to frequency.
To understand, compare the 2nd subcase of BENCHMARK DCNEW-21 (positive FUNDFS)
with the first (blank FUNDFS). If used, FUNDFS is the fundamental frequency — the

2A - 37
II. Cards that begin a New Data Case

frequency on the source cards for which the angles are defined.

Parameters DELTAT (time step) and TMAX (maximum simulation time) on the first miscellaneous
data card have no meaning for FS simulation.

Using parameters IOUT and IPLOT of the integer miscellaneous data card, the frequency of list
output and plot output can be changed, respectively. For beginners it is recommended to set IOUT = 1 and
IPLOT = 1 in order results at each frequency to be saved in output list (.LIS file) and in the plot file (.PL4
file). Note that normally only odd numbers are allowed for IPLOT. If plot output frequency should be a
even number, then special request ALLOW EVEN PLOT FREQUENCY should be entered preceding
miscellaneous data lines.

Special attention should be paid to integer miscellaneous data parameter KSSOUT when using the
FS option. See the Section II-B of the Rule Book for the definition of KSSOUT. If punched with unity, the
full phasor branch flow and injection output will result for each solution frequency of the scan. This could
produce large quantities of printed output, if the number of frequency points is large. Inexperienced users
should start with KSSOUT = 0.

The electric network may be composed of linear branches and built-in complex components except :

– nonlinear elements (they are represented by their linearized characteristics, if applicable);


– U.M. rotating machine model;
– Semlyen line model (line is represented by a constant-parameter B-circuit);
– Noda line model (FS simulation dies).

When constant-parameter distributed line model (see Section IV-D) is included in the network, it is
recommended to insert EXACT PHASOR EQUIVALENT (EPE) request preceding miscellaneous data
cards. EPE activates distributed-line formulas with hyperbolic functions for the phasor solution compared to
lossless line representation with lumped resistances (¼ at both ends and ½ in the middle of the line as
explained in Section IV-D). Hence the FS solution will be exact when EPE is used.

Important components of a FS computation are type-14 AC sources in the network. They can be
voltage or current sources with constant amplitude as frequency is varied according to the range and
increment defined on the FREQUENCY SCAN request card. The HARMONIC FREQUENCY SCAN
feature as extension to FS allows to define harmonic sources with varying amplitudes as a function of
frequency. Note that the frequency specified on the type-14 AC source card has no effect in a FS
computation.

2A - 38
II. Cards that begin a New Data Case

II-A-33.2. Frequency Scan Output

Formerly only node voltage output was available for FS solutions. Node voltages were outputted in
both polar (magnitude and angle in degrees) and rectangular (real and imaginary parts) forms as shown
below :

The "FREQUENCY SCAN" output vector has the following format: Cell number one contains the frequency of the phasor solution (or

base-10 logarithm of this, in the case of geometric frequency spacing). Cells numbered two onward contain the pairs of magnitude

and angle of the phasor node voltages. These pairs are in the order requested by the user on the card for selective node voltage

outputs. For plotting purposes, these output variables are treated as though they were branch currents (plot type "9"). Both the

magnitude and the angle use the actual node name for the first identifying variable, and then either "mag" or "angle"

(left-adjusted in A6 field) for the second. The printed headings reverse this order and add a colon (":") separator in order to

avoid imbedded blanks (assuming the user left-adjusts his names). The polar outputs are followed by rectangular outputs in the

same relative order, only identified by the second names "real" and "imag". There is column alignment of the two display modes

for any output variable, if printed output has been requested.

mag:LOAD angle:LOAD mag:MID angle:MID mag:TRAN angle:TRAN mag:CUR angle:CUR

real:LOAD imag:LOAD real:MID imag:MID real:TRAN imag:TRAN real:CUR imag:CUR

----- Output vector for step number 1. Frequency = 6.00000000E+01 Hz.

1.0000000E+02 0.0000000E+00 9.3571522E-01 -2.0655997E+01 9.3571522E-01 -2.0655997E+01 9.3571522E+01 -2.0655997E+01

1.0000000E+02 0.0000000E+00 8.7556297E-01 -3.3007946E-01 8.7556297E-01 -3.3007946E-01 8.7556297E+01 -3.3007946E+01


2) Freq [Hz] = 8.00000000E+01 Total network loss = 3.991500107966E+03

This output was extracted from the 1st subcase of BENCHMARK DC-51.

The second of the two associated 6-character names was used to indicate which component of the
complex variable was involved: 1) mag for magnitude; 2) angle for the angle in degrees; 3) real for the real
part; and 4) imag for the imaginary part. Thus 4 real branch currents were used to represent one complex
node voltage.

Today, arbitrary outputs are allowed: node voltages, branch voltages, and branch currents, with each
having its natural variable type. Fundamental to the improvements was a switch from the special, fixed FS
printout to printout that is modeled after that of the time-step loop.

Magnitude-only is the new default output choice for both FS and HFS data. As long as the average
user is willing to ignore phase, it is both simpler conceptually, and more efficient computationally, to
suppress output of the other parts of the complex solution (i.e., angle, real part, and imaginary part). Printed
and plotted output variables then have the same familiar form as for time simulation (the most common use).
Time in seconds is replaced by frequency in Hertz, of course. Otherwise, output has the same form, so
requires no special explanation. To illustrate, an extract from the list output of the same data case (DC-51,
1st subcase) is given below :

2A - 39
II. Cards that begin a New Data Case

Column headings for the 5 output variables follow. These are divided among the 3 possible FS variable classes as follows ....

First 4 output variables are electric-network voltage differences (upper voltage minus lower voltage);

Next 1 output variables are branch currents (flowing from the upper node to the lower node);

For each variable, magnitude is 1st, angle is 2nd, real part is 3rd, and imaginary is 4th. All 4 are labeled identically, note.

Step F [Hz] LOAD LOAD LOAD LOAD MID MID MID MID TRAN TRAN

TERRA TERRA TERRA TERRA

TRAN TRAN CUR CUR CUR CUR LOAD LOAD LOAD LOAD

TERRA TERRA TERRA TERRA MID MID MID MID

1 60. 100. 0.0 100. 0.0 .93571522 -20.655997 .875562973 -.33007946 .93571522 -20.655997

.875562973 -.33007946 93.571522 -20.655997 87.5562973 -33.007946 93.571522 -20.655997 87.5562973 -33.007946

3 100. 100. 0.0 100. 0.0 .846733016 -32.141908 .7169568 -.45047724 .846733016 -32.141908

.7169568 -.45047724 84.6733016 -32.141908 71.69568 -45.047724 84.6733016 -32.141908 71.69568 -45.047724

5 140. 100. 0.0 100. 0.0 .750845344 -41.336343 .563768731 -.49591688 .750845344 -41.336343

.563768731 -.49591688 75.0845344 -41.336343 56.3768731 -49.591688 75.0845344 -41.336343 56.3768731 -49.591688

BOTH POLAR AND RECTANGULAR is the request for all 4 parts of each complex variable. This
corresponds to the mandatory output of the previous Frequency Scan version. However, the printout looks
very different, and the plot file has different structure. Take the illustration of the preceding paragraph. The
first two columns (for step number and frequency) would remain unchanged. But thereafter, each column
would be replaced by four columns. The names at the top of each of the 4 columns would be the same. For
example :

Step F [Hz] LOAD LOAD LOAD LOAD MID MID ...


TERRA TERRA TERRA TERRA

Within each adjacent quadruplet, the first half is polar (angle follows magnitude) and the second half
is rectangular (imaginary part follows real part). This will be documented in a line immediately preceding the
lines shown. For an illustration, see the first subcase of DC-51 or 52.

POLAR OUTPUT VARIABLES is the second of three requests for an alternative to the default
choice of magnitude-only. Instead of four columns of printout for each output variable as explained in the
preceding paragraph, there will be only two. Magnitude and angle retain their same relative positions
(magnitude precedes angle in degrees).

RECTANGULAR OUTPUT VARIABLES is the third of three requests for an alternative to the
default choice of magnitude-only. This is like the preceding POLAR except that real and imaginary part
replace magnitude and angle.

Those new output requests are inserted into data section of sources preceding first source card as
illustrated in the 1st subcase of BENCHMARK DC-51 :

2A - 40
II. Cards that begin a New Data Case

.....
BLANK card ending (here, non-existent) switches
C The following request for complete output (rather than the default choice
C of magnitude only) is read as part of source data, but it must precede the
C first source. This is for FS use (HFS allows it anywhere among sources).
BOTH POLAR AND RECTANGULAR { Request for (in order): mag, angle, real, imag
C Preceding is one of 3 alternatives. The other two are, after commented:
C POLAR OUTPUT VARIABLES { 2nd of 3 alternatives for output gives mag, angle
C RECTANGULAR OUTPUT VARIABLES { 3rd of 3 alternative outputs gives real, imag
14LOAD 100. 60. -1.
BLANK card ending sources
.....

Also for plotting, the same output requests are applied and accordingly output forms in pairs (mag,
angle), (real, imag) or both are available. Widexx PL4 format option offers to import FS computation
results as text file into standard software like Excel, Quattro Pro or MathCad and to produce, for example,
Bode diagram with logarithmically scaled x- and y-axes. In STARTUP, if variable FMTPL4 (normally
blank) is replaced by 'widexx', where xx defines the width of columns for plot variables, a text file with
data columns is created.

II-A-33.3. FS Output of Driving - Point Impedance or Admittance

Frequency Scan computation does not produce directly frequency curves of driving-point impedances
/ admittances. According to the frequency-domain relations U = Z @ I and I = Y @ U , impedance seen
from a node can be obtained, if a current source of amplitude 1 ampere is applied to this node. Voltage of
that node then gives the impedance in S.

Similarly, if a sinusoidal voltage source with amplitude 1 volt is connected to a node, then the current
flowing into the network corresponds to the driving-point admittance seen from that node. Fig. II-A-33.1
shows these two alternatives.

Computation of frequency responses of impedances or admittances shown in Fig. 3-2 can be extended
to three-phase power networks to determine :

– positive-sequence short-circuit or no-load impedance/admittance;


A three-phase balanced source is connected to a three-phase busbar. Provided the system is balanced,
voltage of phase a or current flowing into phase a gives positive-sequence impedance or admittance,
respectively.

2A - 41
II. Cards that begin a New Data Case

– zero-sequence short-circuit or no-load impedance/admittance


A single-phase source is connected to all three-phases of a busbar. In order to obtain Z0 not equal to
infinity, a return path should be available for zero-sequence currents.

Fig. II-A-33.1 Determ ination of the frequency response of driving-point im pedance (left)
and adm ittance (right) of a network seen from node k by FS sim ulation

II-A-33.4. Additional Features of Frequency Scan

Incorporation of the Frequency-Dependent Nodal Admittance Matrices of Components into FS


Computation

A not well-documented feature of FREQUENCY SCAN allows to merge nodal admittance


submatrices of any system component or group of components over the desired frequency range into the FS
computation. This way, the frequency dependence of desired components like transmission lines,
transformers can be taken into account during FS computations. Since such data ([Y] submatrices) can be
generated outside of ATP, the user is flexible to input frequency dependent data either measured or computed
using any other program. The only restriction is the [Y] matrix must be symmetric, i.e. only the lower triangle
is inputted. The procedure is outlined in Fig. II-A-33.2.

2A - 42
II. Cards that begin a New Data Case

Fig. II-A-33.2 Incorporation of externally produced frequency response curves into


Frequency Scan com putation

Input Data Format

The nodal admittance matrices [Y(fi)] over a given frequency range (fmin # fi # fmax) are to be provided
for ATP as a text file (FORMATTED), that will be connected using a $OPEN statement. Additionally, the
nodal admittance matrix (or a group of submatrices for different elements) at f = fmin must be entered as type-
51, 52, ... elements. Unlike normal coupled RL-branches that carry a pair of A6 node names on each phase
card, only half of the node name fields are used, leaving the remaining fields blank as illustrated below
( benchmark DC-11, first subcase ) :

BEGIN NEW DATA CASE


C BENCHMARK DC-11
C Illustration of data input using [Y]. Matrix comes from DC-9 (or
C more precisely, DCPRINT-25, since DIAGNOSTIC is needed to see it).
C Solution is close to DC-9 (remember limited input [Y] precision).
C Note two $UNITS cards. The 2nd, returning to original XOPT and
C COPT, does nothing, since all data input is completed. But the 1st
C is mandatory whenever [Y] input is used, so input [Y] in mhos will
C be loaded into List-3 tables TR and TX without any scaling. COPT is
C not used, so it can be anything (zero is used below). But XOPT must
C equal the reciprocal of 2 * Pi, since the scaling factor for [L] is
C 2 * Pi times this frequency (.1591549431) in Hz --- which is unity.
0.0 0.0 60. { Note XOPT = 60 here --- never actually used
1 1
$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)

2A - 43
II. Cards that begin a New Data Case

51RA1 GA1 4.8E-9 1.22811E-04 { 1st row of 6x6 [Y] in mhos


52RB1 GB1 -1.E-7-2.24227E-05.00944-2.57399E-02
53RC1 GC1 4.3E-8-1.46254E-05-.0085 1.67291E-02.01660-4.74760E-02
54 -1.E-7-9.42642E-06.01871-5.03015E-02-.0145 2.40976E-02
.04631-1.15612E-02
55 1.5E-6 6.45897E-06-.0168 5.97172E-02.01897-4.24556E-02
-.0327 3.04757E-02.03607-6.06204E-02
56 1.2E-6 4.48565E-06.00209-2.06269E-02-.0022 3.68953E-02
.00366-6.53239E-02-2.E-5 2.74250E-02.00485 9.93931E-03
$UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1.
BLANK card ending branch cards

Following rules should be followed :

1. Connect the file of [Y] matrices to I/O channel LUNIT8 using $OPEN:
$OPEN, UNIT=8 FILE=<filename> FORM=FORMATTED STATUS=OLD
This card must precede FREQUENCY SCAN request card.

2. To ensure no frequency scaling of [Y] (units are mhos), two $UNITS cards are required. They are
inserted before and after entering type-51, 52, ... cards for f = fmin :

$UNITS, .1591549431, 0.0,

causes the scaling factor of [L] to become unity. Instead of a frequency value, 1/(2B) must be entered.
Miscellaneous data parameter COPT is not used for the [Y] data input mode.

$UNITS, -1.0, -1.0

this card follows the last type-51., 52, ... card to restore the original frequency values.

3. The file containing admittance matrices, which are ordered with frequency increasing , is a text file
(FORMATTED). There must be one set of [Y(fi)] data for each frequency starting from f = fmin. Note that
the nodal admittance matrix at f = fmin is actually entered twice, i.e. additionally on type-51, 52, ... cards
in the ATP data case. Each data set consists of a single, arbitrary comment line followed by [Y(fi)].

4. As [Y] data, either single nodal admittance matrix for each frequency can be supplied or several
admittance submatrices form a [Y] data set.

5. Since [Y] is symmetric, only the lower-triangle is inputted. Each matrix element is entered as a (G, B)

2A - 44
II. Cards that begin a New Data Case

pair. Each data line contains max. 2 matrix elements with format 4E20.0. No node names are used, since
they are already known by type-51 cards. Data are inputted by rows of the lower-triangle up to and
including the diagonal element. Each row starts on a new data line. To illustrate the file format, an
excerpt from an example with [Y](2x2) matrices is shown below :

C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C real part >< imaginary part >< real part >< imaginary part >
C 1 50.0000000000 -- Comment line for each frequency --
9.024370461702E-03 -2.464601956308E-02
1.006936311722E+00 -8.415832519531E-01 2.256673812866E+01 -6.162223052979E+01
C 2 52.3564274025 -- next frequency, f=52.35.. --
8.370772004128E-03 -2.374093048275E-02
9.560084342957E-01 -8.187347054482E-01 2.093238830566E+01 -5.935950469971E+01
C 3 54.8239098072 -- next frequency, f=54.82.. --
7.762122899294E-03 -2.285474725068E-02
9.074985980988E-01 -7.955815792084E-01 1.941037559509E+01 -5.714403533936E+01
.
.
.

6. The frequency increment (linear or logarithmic) used to create the [Y] data set must match that of the
Frequency Scan computation.

II-A-33.5. MODELS Interface to Frequency Scan

The interface of MODELS to FREQUENCY SCAN [4] allows processing of the results of Frequency
Scan computation by user-defined logic of MODELS. The node voltages and switch currents as complex
quantities (real and imaginary parts) can be passed to MODELS as INPUT variables.

When MODELS is used in conjunction with FS, the MODELS variable t is used to carry the value of
the present frequency f used in FS. All variables and functions of MODELS making explicit or implicit
references to time are automatically transformed to make the same references to frequency.

Examples:

timestep holds the frequency increment between the previous frequency (prevtime) and the present
frequency (t or simtime);
deriv(y) calculates the derivative of y with respect to frequency
integral(y) calculates the integral of y with respect to frequency
prevval(y) returns the value of y at the previous frequency
predval(y,a) returns the predicted value of y at frequency a

2A - 45
II. Cards that begin a New Data Case

etc...

diffeq(a0|D0+a1|D1+...)|y:=x calculates the value of y from a differential equation expressed in terms of


frequency, i.e.

Typical applications of the MODELS interface are, for example, to create Bode diagrams with
magnitude in Decibel ( 20 @ log10 ), to calculate the effective values using harmonic components, or to
calculate total harmonic distortion.

MODELS output can be sent to output list (.LIS file) and stored in the .PL4 plot file by means of
RECORD..ENDRECORD statements. Additionally, through WRITE1 and / or WRITE2 statements,
MODELS variables can be written directly column-wise into text files MODEL.1 and / or MODEL.2 .

For a simple example of such usage, see the 3rd subcase of BENCHMARK DC-52.

II-A-34. User - Defined Harmonic Sources Drive Harmonic Frequency Scan

HARMONIC FREQUENCY SCAN ( HFS ) performs a sequence of phasor solutions for Type-14
voltage and / or current sources of various frequencies, amplitudes and angles that are specified by the user.
HFS is the ATP option for harmonic analysis of electrical networks.

Data for HFS runs can be divided into 6 classes :

1 . Special Request cards and Miscellaneous data cards


2 . $PARAMETER entries
3 . BRANCH data including requests for frequency dependent elements
4 . Special output request
5 . Source specifications
6 . Specification of frequency dependence of elements

II-A-34.1. Special Requests

Class 1 data includes as a minimum the two Special Request entries of

2A - 46
II. Cards that begin a New Data Case

BEGIN NEW DATA CASE and HARMONIC FREQUENCY SCAN as shown below

1 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

BEGIN NEW DATA CASE

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

HARMONIC FREQUENCY SCAN

The user can add optional special requests as listed in Section II-A. Typical entries may be POWER
FREQUENCY or PRINTED NUMBER WIDTH, etc. Of course, the user should verify that such additions
do not conflict with the process of HARMONIC FREQUENCY SCAN.

An optional but important addition requests the use of the Pocket Calculator for varying the value of
a series R-L-C branch as a function of frequency (harmonic order). This option is introduced by the request
POCKET CALCULATOR VARIES PARAMETERS ( PCVP ) in conjunction with the $PARAMETER
request as explained below.

1 2 3 4 5 6 7 8
90123456 78901234 5678901234567890
1234567890123456789012345678901234567890 12345678

POCKET CALCULATOR VARIES PARAMETERS MAXKNT IOPCVP NOSTAT

I8 I8 I8

In the general purpose use of PCVP (see later subsection of II-A), the value of MAXKNT sets the
number of passes the user wants to make with varying parameters. For such study, MAXKNT of cols.
41-48 is an arbitrary number provided by the user. But for HFS studies, MAXKNT should be set to zero
because MAXKNT is internally set to the number of different frequencies that are specified by the user as
part of his frequency scan.

IOPCVP = 0 (cols. 49-56) generates a .LIS file with a full output for each pass. This may be
required for some general purpose application of PCVP, but it is wasteful for HFS. With IOPCVP = 1,
the .LIS file contains the tabulation of output variables for each frequency specified and the new parameter
values for each frequency as changed by the KNT dependent formulas in $PARAMETER.

The above special requests are followed by two miscellaneous data cards — the same ones as
described in Section II-B. They will be repeated here to indicate recommended entries for HFS use.

First (floating-point) miscellaneous data card :

2A - 47
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
12345678
12345678 90123456 78901234 56789012 34567890 90123456789012345678901234567890

DELTAT TMAX XOPT COPT EPSILN TOLMAT

E8.0 E8.0 E8.0 E8.0 E8.0 E8.0

Values of DELTAT and TMAX have no meaning for HFS, but cannot be left blank. Enter 1.0 for
both parameters. XOPT and COPT have the same meaning as described in Section II-B.

Second (integer) miscellaneous data card :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

IOUT IPLOT IDOUBL KSSOUT MAXOUT IPUN MEMSAV ICAT NENERG IPRSUP

I8 I8 I8 I8 I8 I8 I8 I8 I8 I8

Enter ”1” for both IOUT and IPLOT to have outputs in the .LIS and .PL4 files for each frequency
specified. KSSOUT = 1 will generate a detailed phasor output for each frequency, resulting in a large
volume of output, which for the usual HFS is not warranted. KSSOUT = 0 is the recommended usage. To
create a .PL4 file of plot points, enter ICAT = 1. This is common for HFS data.

II-A-34.2. $PARAMETER Specification

$PARAMETER data is required if the PCVP option is used to define the frequency dependence of
one or more series R-L-C elements. Rules for using the PCVP request in conjunction with $PARAMETER
is described in detail in Section I-D. The HFS use is shown here on a simple example. In HFS applications,
the ATP constant KNT which in the general case is the sequence counter of the sequence number of passes
in a systematic or statistical run, is internally made equal to the harmonic order h = frequency / power
frequency. The frequency dependence of an element is defined by the user as a function of KNT, which is
normalized frequency.

Let BUSHFS be the name of a node to which a frequency dependent impedance RHFS + j XFHS
is connected. With the harmonic order h equal to KNT, let
RHFS = 0.35 * KNT **2 and
XHFS = 1.21 * (1.0 + KNT**0.4 )

To enter these elements the user will have entered the PCVP request among the Class 1 data as
outlined above. After miscellaneous data cards, the following shows the data entry for $PARAMETER :

2A - 48
II. Cards that begin a New Data Case

C 12345678901234567890123456789012345
$PARAMETER
REFS__ = 0.3*KNT**2.0
XEFS__ = 1.21*(1.0+KNT**0.4)
BLANK card ends $PARAMETER definition

As part of branch data, the above frequency dependent element would be entered as follows :

C 345678901234567890123456789012345678
BUSHFS REFS__XHFS__

Note the use of under score characters to extend variable names to 6 characters (the width of R, L, and C data
fields of an old, narrow-format, series R-L-C branch ) .

The $PARAMETER data involves free-format, low-level, FORTRAN-like statements. Constants


must be floating-point numbers. I.e., constants must include a decimal point. Integers are not allowed (bad
things will happen if a decimal point is forgotten). The user should carefully study the PCVP subsection that
follows.

II-A-34.3. Frequency Dependent Elements

Class 3 HFS data is the same as the regular data for time domain runs. As HFS is a sequence of
phasor solutions, nonlinearities cannot be represented correctly. Nonlinear inductors will be linearized
whereas nonlinear resistors and other nonlinear elements generally will be ignored.

II-A-34.3.1. Frequency Dependent R - L - C Elements

Linear frequency dependence of a series R- L - C branch can be modeled as described in Section


II-A-34.6. User defined non-linear frequency dependence of a series R-L-C element is modeled using the
PCVP option. An example is shown in Section II-A-34.7.

II-A-34.3.2. The CIGRE Load Model

A frequency dependent distribution system load model was developed for HFS, but it is usable for FS
and time domain simulations. After the originators of the model, it is called the CIGRE model, and
characterized by three constants A, B, and C. The user enters the load MW, MVAR and kV and the three
constants, ATP calculates the load impedance for the harmonic orders. The C.I.G.R.E. recommended
constants are A = 0.073, B = 6.7 and C = 0.74. The model is valid for harmonic orders of 5 and higher
and may yield incorrect reactive absorption at the fundamental frequency. This is usually not a problem, but
the user should be aware of it and compensate for it if required. The changing of the recommended constants

2A - 49
II. Cards that begin a New Data Case

will change the overall frequency dependence of the model, and should be carefully analyzed by the user. For
details of the model see C.I.G.R.E. Publication Electra Vol. 71, 1981.

Two branch cards are required to enter a single-phase CIGRE load at some bus named BUSL . The
following shows order and format :

1 2 3 4 5 6 7 8
12345678 901234567890123456 7890123456789012 3456789012345678 9012345678901234 567890

<LOAD> CIGRE A,B,C A B C

E16.0 E16.0 E16.0

1 2 3 4 5 6 7 8
12 345678 901234 567890123456 7890123456789012 3456789012345678 9012345678901234 567890

<LOAD> VOLT PLOAD QLOAD

A6 A6 E16.0 E16.0 E16.0

The constants A, B, C are defaulted to 0.073, 6.7 and 0.74 respectively. Alternatively, the user can
enter these values or his own preferences. As for the 2nd of the 2 data cards :
1) V LOAD is r.m.s. voltage across the load
2) PLOAD is the active power absorbed by the load
3) QLOAD is the reactive power absorbed by the load

VLOAD, PLOAD and QLOAD must be specified in units consistent with the source specifications.
E.g. if the source voltages are in volts, VLOAD is in volts, PLOAD is in Watts and QLOAD is in VARs.

For three phase loads, the data input can be simplified as follows. Assume the three phase load is
connected to nodes BUSLA, BUSLB, and BUSLC, two data cards suffice for the 3 phases :

1 2 3 4 5 6 7 8
12345678 901234567890123456 7890123456789012 3456789012345678 9012345678901234 567890

<LOAD> CIGRE A,B,C A B C

E16.0 E16.0 E16.0

1 2 3 4 5 6 7 8
12 345678 901234 567890 123456 7890123456789012 3456789012345678 9012345678901234 567890

BUSLA <LOAD3BUSLB BUSLC VOLT PLOAD QLOAD

A6 A6 A6 A6 E16.0 E16.0 E16.0

VOLT, PLOAD and QLOAD are single phase quantities.

2A - 50
II. Cards that begin a New Data Case

II-A-34.3.3. Induction Motor HFS Model

There is no built-in HFS induction motor model at the present time. In most cases it will be sufficient
to use the locked rotor power frequency locked rotor impedance of the motor. Should a more sophisticated
model be required, the PCVP option may be used to for generating the frequency dependent characteristic of
the rotor. See Example #2 in Section II-A-34.3.7 below.

II-A-34.3.4. Synchronous Machine HFS Model

There is special synchronous machine HFS model. It is generally recommended to use the negative
sequence impedance.

II-A-34.4. Output Requests

The old restriction of only node voltage outputs with FREQUENCY SCAN has been removed. Both
node and branch voltage and current can be output the usual way with column 80 entries of 1, 2, or 3, which
is available for both FS and HFS. In the old FS output node voltages were recorded with their magnitudes,
angles, and real and imaginary components. This has been changed to only magnitudes being monitored as
the default option. For HFS, the user can request the additional output of the angle of the variable by inserting
a POLAR OUTPUT VARIABLES request after the blank card ending switches as follows :

C 123456789012345678901234567
BLANK ending switches
POLAR OUTPUT VARIABLES
C followed by SOURCE data
14BUSA etc.

II-A-34.5. Sources

Only Type 14 sources are available in HFS due to the fact that HFS is a sequence of phasor solutions.
Source frequencies can be specified either in Hertz Hz or harmonic order h. The two types of source
frequency specifications cannot be mixed, however. There has to be at least one source with the power
frequency equal to the default power frequency or the power frequency as modified at the top of the data file.
If sources are specified in terms of the harmonic order h, there has to be at least one source with h = 1. ATP
calculates internally the frequency in Hz corresponding to h. Sources can be entered in any order as they are
sorted internally. The general format for entering a source is :

1 2 3 4 5 6 7 8
12 345678 90 1234567890 1234567890 1234567890 1234567890123456789012345678901234567890

14 NAME J AMPLITUDE FREQ or h ANGLE

I2 A6 I2 E10.6 E10.6 E10.6

2A - 51
II. Cards that begin a New Data Case

NAME (cols. 3-8) is the name of the source bus


J (cols. 9-10) is blank for a voltage source and -1 for a current source
AMPLITUDE (cols. 11-20) is the peak voltage or current magnitude
FREQ or h (cols. 21-30) is the source frequency in Hz or harmonic order h in per unit
ANGLE (cols. 31-40) is the source voltage or current angle in degrees

Columns 41 through 80 must be blank except for a possible in-line comment following “{“

II-A-34.6. Elements with Linear Frequency Dependence

A series R-L-C branch having linear frequency dependence can be specified by entering the value at
a specified higher frequency. ATP then will make a linear interpolation at any required frequency (harmonic
order) of the scan. The cards for this follow the last source card, and have the following format :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

NEXT PREQUENCY FOR SERIES RLC FREQ

E8.0

1 2 3 4 5 6 7 8
12 345678 901234 567890123456 789012345678 901234 567890123456789012345678901234567890

0 BUS1 BUS2 R L C

A6 A6 E6.2 E6.2 E6.2

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
BLANK card ending frequency dependence

FREQ (cols. 33-40) is the elevated frequency at which parameters are specified
BUS1, BUS2 (cols. 3-14) are the 6-character terminal names that identify the series R-L-C branch
R, L, C (cols. 27-44) are the parameters of the branch connecting BUS1 to BUS2

There are an indeterminate number of such frequency-dependent specifications of series R-L-C elements.
These are to be specified in order of increasing frequency. For any particular frequency, there is an
indeterminate number of branches, in general. Only the last of such sets of frequency-dependent data is to be
terminated by a single blank card. So, the final branch at any particular frequency will be terminated either
by declaration of the next frequency (if there is one) or a blank card (if no higher frequency).

2A - 52
II. Cards that begin a New Data Case

II-A-34.7. HFS Examples

Example #1

Linear frequency dependence of R L and CIGRE load model

BEGIN NEW DATA CASE


POWER FREQUENCY, 50.0
HARMONIC FREQUENCY SCAN
C DELTAT TMAX XOPT
1 1 50.
C IOUT IPLOT ICAT
1 1 1
C 1o km cable
-1SRCA LOADA 1.280 0.152 0.408 10.0
-2SRCB LOADB 0.164 .0987 0.408 10.0
-3SRCC LOADC
C frequency dependent impedance
C R X = 0.3 +j0.6 at 500 Hz
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
LOADA LODA 0.1 0.3 1
LOADB LODB 0.1 0.3
LOADC LODC 0.1 0.3
C frequency dependent CIGRE type load kV, 4.8 MW, 2.4 MVAR
<LOAD> CIGRE A,B,C 0.073 2.0 0.74
LODA <LOAD3LODB LODC 5780.0 1600000. 80000. 1
C branch to the converter
LOADA CONVA 0.1 1
LOADB CONVB 0.1
LOADC CONVC 0.1
BLANK end of BRANCH data
BLANK end of SWITCH data
POLAR OUTPUT VARIABLES
C amplitude Hz or h angle
C 10 kV 50 Hz voltage source
14SRCA 8150.00 1. 0.
14SRCB 8150.00 1. 240.
14SRCC 8150.00 1. 120.
C assume 3% negative sequence voltage at source
14SRCA 245.00 2. 10.
14SRCB 245.00 2. 130.
14SRCC 245.00 2. 250.
C harmonic sources at converter
14CONVA -1 60.0 1.0 10.0

2A - 53
II. Cards that begin a New Data Case

14CONVB -1 60.0 1.0 250.0


14CONVC -1 60.0 1.0 130.0
C 5th
14CONVA -1 12.0 5.0 10.00
14CONVB -1 12.0 5.0 130.00
14CONVC -1 12.0 5.0 250.00
C 7th
14CONVA -1 8.0 7.0 10.00
14CONVB -1 8.0 7.0 250.00
14CONVC -1 8.0 7.0 130.00
C 11th
14CONVA -1 5.0 11.0 10.00
14CONVB -1 5.0 11.0 130.00
14CONVC -1 5.0 11.0 250.00
BLANK ending SOURCES
NEXT FREQUENCY FOR SERIES RLC 500. { Elevated frequency for interpolation
LOADA LODA 0.3 0.6
LOADB LODB 0.3 0.6
LOADC LODC 0.3 0.6
BLANK card ending F-dependent series R-L-C branches
LOADA LOADB LOADC
BLANK end of OUTPUT data
BLANK end of PLOT data
BEGIN NEW DATA CASE
BLANK

Example #2

Demonstrates the use of the PCVP

BEGIN NEW DATA CASE


C this data file demonstrates the simple HFS modeling of an induction
C motor with only one rotor circuit. The model is created by the
C POCKET CALCULATOR VARIES PARAMETERS option
POWER FREQUENCY, 50.0
HARMONIC FREQUENCY SCAN
POCKET CALCULATOR VARIES PARAMETERS 0 1 { Loop five times
C DELTAT TMAX XOPT
0.001 -1.0 50.
1 1 1
$PARAMETER
C demonstrates the uses of a frequency dependence induction motor
C locked rotor impedance. Only the R component is frequency dependent

2A - 54
II. Cards that begin a New Data Case

C Motor : 3ph, 0.38 kV, 550 kVA, slip = 0.8%, locked rotor reactance = 27%
C rrotor = slip * V(kV)**2 / MVA
C rrmot = 0.008 * (0.38**2 / .5 5) = 0.0021 ohm/ph
C the locked rotor inductance assuming xd' = 27%
C Xlmot = 0.27 * (0.38**2 / .5 5) = 0.00709 ohm/ph
C note the underscores making up the 6 char. names, only for those variables
C which are passed to the network data
C the constant KNT is made equal to h in ATP
C $$ signifies an intermediate variable
XLMOT_= 0.27 * 0.38**2/0.55
SLIP = 0.008 $$
RMOTS = 0.008 * 0.38**2/0.55 $$
C the following expression is MOD(h,3)
HMOD = ( KNT - 3.0 * TRUNC (KNT/3.0)) $$
C test for the sequence number
Z = (-1.0) ** HMOD $$
HS1 = (KNT + Z) $$
C HS is the "harmonic slip"
HS = (HS1 + SLIP)/KNT $$
RMOT__= RMOTS/HS
BLANK card ends $PARAMETER definitions
C Source bus 10.0 kV 95 MVA
51SRCA BSA .30000 3.1000
52SRCB BSB .01100 1.0528
53SRCC BSC
C BSA to BSMA is a measuring switch
C 10.0 kV cable equivalent to plant bus 2.0 km
-1BSMA TR10A 0.38 0.410 0.30 2.0
-2BSMB TR10B 0.38 0.410 0.30 2.0
-3BSMC TR10C
C
C Transformer 1000 kVA
C x = 6.5% x = 10**2/1.00 = 100.0 ohm * 0.065 = 6.50 ohm
C imag = 1.5 A , r = 0.5 ohm/ph
C
TRANSFORMER 3.0 40.0 AX
9999
1TR10A TR10B .800 19.00 10.0
2LS3A GRS .001 .0001 .220
TRANSFORMER AX AY
1TR10B TR10C
2LS3B GRS
TRANSFORMER AX AZ
1TR10C TR10A
2LS3C GRS

2A - 55
II. Cards that begin a New Data Case

GRS 1.0
C line to converter
LS3A CONVA 0.001 0.020
LS3B CONVB 0.001 0.020
LS3C CONVC 0.001 0.020
C ******************************
C Induction motor 500 kW
C ******************************
C induction motor, 500 kW, 380 V, modeled by locked rotor reactance
C ------______------______------______------______
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
LS3A MOTA RMOT__XLMOT_ 1
LS3B MOTB RMOT__XLMOT_
LS3C MOTC RMOT__XLMOT_
MOTA MOTSA .00001 { source separation
MOTB MOTSB .00001
MOTC MOTSC .00001
C
BLANK end of BRANCH data ------------------------------------------------------|
C SWITCHES
C measure current in 10 kV feeder
BSA BSMA -1.0 10.0 1
BSB BSMB -1.0 10.0
BSC BSMC -1.0 10.0
C
BLANK end of SWITCH data ------------------------------------------------------|
POLAR OUTPUT VARIABLES
C power frequency voltage source 10 kV 3 ph
14SRCA 8150.00 1. 0.
14SRCB 8150.00 1. 240.
14SRCC 8150.00 1. 120.
C
C Voltage source for the induction motor
14MOTSA 307.50 1. -85.
14MOTSB 307.50 1. 155.
14MOTSC 307.50 1. 35.
C
C current injection at converter bus CONVA,B,C
C 500 kVA fundamental 933 A r.m.s. 1315 A peak
14CONVA -1 1315.0 1.0 -170.00
14CONVB -1 1315.0 1.0 70.00
14CONVC -1 1315.0 1.0 -50.00
C harmonic sources
14CONVA -1 1.000 3.0 -170.00
14CONVB -1 1.000 3.0 70.00

2A - 56
II. Cards that begin a New Data Case

14CONVC -1 1.000 3.0 -50.00


C
14CONVA -1 1.000 4.0 -170.00
14CONVB -1 1.000 4.0 70.00
14CONVC -1 1.000 4.0 -50.00
C
14CONVA -1 150.00 5.0 -310.00
14CONVB -1 150.00 5.0 -190.00
14CONVC -1 150.00 5.0 -70.00
C
14CONVA -1 108.00 7.0 -110.00
14CONVB -1 108.00 7.0 -230.00
14CONVC -1 108.00 7.0 -350.00
C
14CONVA -1 70.00 11.0 -250.00
14CONVB -1 70.00 11.0 -130.00
14CONVC -1 70.00 11.0 -10.00
C
BLANK card ending all source cards
BLANK ening frequency dependent cards
TC10A TC10B TC10C
LS3A LS3B LS3C
BSA BSB BSC
BLANK ending OUTPUT requests.
BLANK ends plot cards
BLANK
BEGIN NEW DATA CASE
BLANK

II-A-35. Find Parameters for Heidler Surge Function

The Type-15 source is for surge functions of the electric network. One of the early extensions to
Dommel's simple exponentials is the Heidler surge function. See Section VII-A for details. The question is,
for a given surge, what are the associated Heidler parameters? A fitter to produce the data required by ATP
was written by Orlando Hevia of UTN in Santa Fe, Argentina. Access is granted in response to the following
request :

1 2 3 4 5 6 7 8
1234567890123456789012 3456789012345678901234567890123456789012345678901234567890

HEIDLER SURGE FUNCTION

2A - 57
II. Cards that begin a New Data Case

Four illustrations of use have been provided in the 11th subcase of BENCHMARK DC-13. Any of these
illustrates the fixed interpretation as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Orlando Hevia fits params for Type-15 Heidler. |HEIDLER SURGE FUNCTION

II-A-36. Create Branch Cards for Type - 96 Hysteretic Inductor

The normal user of hysteresis modeling will know his B-H characteristic, and can simply input it
according to the rules of Section V-D. But some users may not have any idea about magnetic losses (and
hence the width of the hysteresis loop). Some users may only want a representative loop, for preliminary
experimentation. Or some users may not even care about the loop itself, since possibly residual magnetism
is the only phenomenon of interest (and hysteresis must be requested to have it). For whatever reason, the
user can access a standard hysteresis loop by means of the following request :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012345678901234567890123456789012345678901234567890

HYSTERESIS

Such a card transfers to the code of Section XIX-H, which will create branch cards for the Type-96 hysteretic
inductor of interest.

For an example of such usage, see the 3rd subcase of BENCHMARK DC-13. The following
illustrative interpretation was taken from this solution :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to make Type-96 hysteresis branch cards. |HYSTERESIS

II-A-37. Conversion of Type-98 Element to Type - 96 Hysteretic Inductor

HYSTERESIS HEVIA provides access to a program that will convert from an old, single-valued,
Type-98 inductor to the more general Type-96 hysteretic inductor. Program HYSTER performs this

2A - 58
II. Cards that begin a New Data Case

function, and it comes from Orlando Hevia of UTN in Santa Fe, Argentina, as described in the July, 2000,
newsletter. Of course, approximation and additional data (e.g., losses, residual flux, and frequency) are
involved. The conversion begins with a request that includes controls for associated automatic, batch-mode
plotting :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456 789012345678901234567890

HYSTERESIS HEVIA NOZOOM FSCALE DXL2

I8 E8.0 E8.0

NOZOOM of columns 33-40 is a binary switch that indicates whether the entire curve, or instead just
the hysteresis loop itself, is to be plotted. Value 1 will plot everything (i.e., no zoom) whereas value zero will
drop the final point, which is outside the hysteresis loop itself.

FSCALE of columns 41-48 is a scaling factor to waste space above and to the right of the 1st and 2nd
quadrant plot (for positive values of flux, which is plotted vertically). For example, value 1.1 will waste
10%, providing this much of a margin for the batch-mode plot.

DXL2 of columns 49-46 is the "radius" in screen inches of the squares that will be used to mark data
points. Value zero means that there will be no such marking.

The preceding HYSTERESIS HEVIA request is to be followed by branch cards for a Type-98 element.
The characteristic (including the 9999 card to terminate) is unmodified. However, the branch card itself is
modified to the right of column 26 (the end of the BUS4 name) as follows :

1 2 3 4 5 6 7 8
12345678901234567890123456 7890123456789012 3456789012345678 9012345678901234 567890

P-LOSS FREQ PSI IOUT

E16.0 E16.0 E16.0 I6

Here PLOSS (cols. 27-42) is the loss in Watts, FREQ (cols. 43-58) is the frequency in Hz, PSI (cols. 59-74)
is the residual flux in volt-seconds, and IOUT (cols. 75-80) is the request for branch output (normally limited
to column 80 of a branch card).

For an illustration of use, see the new 7th subcase of DC-13. Interpretation of the two most important
data cards are copied from this solution :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------

2A - 59
II. Cards that begin a New Data Case

Request to make Type-96 hysteresis branch cards. |HYSTERESIS HEVIA ...


Hevia 98. 4.0775E+04 5.0000E+01 4.0000E+02 3 |98NODE1 NODE2 ...

HEVIA HYSTER is the request word that will perform the computation of HYSTERESIS HEVIA
during branch data input. For an illustration, see the new 8th subcase of DC-13. In effect, HEVIA
HYSTER is like a special, fixed version of more general TO SUPPORTING PROGRAM (see the April,
1999, newsletter). Advantages include compactness of data (roughly a factor of two is saved for the
characteristic), avoidance of the need for comment cards to document raw data, and avoidance of
intermediate roundoff error (the need to punch flux and current in columns of width 16). Disadvantages
include the effort to perform the conversion each time the data case is simulated. Name HYSTER can be
traced to SUBROUTINE HYSTER in which author Hevia's supporting program has been placed.

... By means of the REPLOT request, more than one plot is possible for each set of input data, and each
plot is allowed to have different parameters.

The reference branch names BUS3 and BUS4 of columns 15-26 are used in unusual ways. For cards
punched by HYSTERESIS HEVIA the text HEVIA HYSTER represents not a request for a copy, but
rather a request for wide format that is equivalent to preceding use of $VINTAGE, 1. This is for a
Type-96 branch. For a copy of a preceding Type-98 HEVIA HYSTER branch, names BUS3 and
BUS4 are used in the usual way but the type code is to be changed from 98 to 96.

II-A-38. Derive U. M. Data for an Induction Motor

Induction motors can be modeled using the Universal Machine (U.M.) of Chapter IX. However, all
required U.M. data often are not readily available. Fortunately, they can be estimated from parameters that
are generally available. This is the function of a supporting program INDMOT written by Gabor Furst of
suburban Vancouver, B.C., Canada. See a story in the April, 1997, newsletter about this feature. Program
INDMOT itself is described in Section XIX-J, and access to it is established by the following request :

1 2 3 4 5 6 7 8
12345678901234567890 123456789012345678901234567890123456789012345678901234567890

INDUCTION MOTOR DATA

For an example of such usage, see the 2nd subcase of BENCHMARK DC-15. The following illustrative
interpretation was taken from that solution :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
To Gabor Furst program to make Type-3 U.M. data. |INDUCTION MOTOR DATA

2A - 60
II. Cards that begin a New Data Case

II-A-39. Open Switches at Interpolated Current Zeros

INTERPOLATE SWITCH ZERO CROSSINGS ( ISZC ) is a request to change the rules of switch
opening. This feature is not usable for general simulation, but it is useful for research involving
specially-limited data. The request takes the form :

1 2 3 4 5 6 7 8
123456789012345678901234567890123 45678901234567890123456789012345678901234567890

INTERPOLATE SWITCH ZERO CROSSINGS

ISZC is an outgrowth of the great debate about trapezoidal rule oscillation during the mid-'90s. For a
summary, see newsletter stories entitled "Trapezoidal rule oscillations" which began in the October,
1995, issue. Specifically, ISZC is a request for the experimental feature mentioned in a story entitled
"Testing interpolation and half-step" in the January, 1996, issue. Rather than open a switch after a current
zero has been detected, the switch will be opened at the time of the interpolated zero. Simulation time will
be backed up to this intermediate instant, and a real (exact) half-step then is estimated by averaging a full
step. Note this differs from the procedure described by those Manitoba authors of EMTDC. Thus, in ATP,
time is not resynchronized with the original discretization. For every time instant that a switch is opened,
half a time step thus is lost.

Limitations of ISZC are severe. Changes have been made for lumped, series-RLC elements only; they
ignore single-phase nonlinear elements, rotating machinery, and control system modeling (TACS and/or
MODELS) entirely. As a result, thyristors can not be represented. But diodes can, and this is enough to
begin the consideration of Prof. Ned Mohan's "Computer exercises for power electronics education."

Not yet being verified along with standard test cases is BENCHMARK DCNEW-30 which includes
data applicable to several of Prof. Ned Mohan's simple illustrations. Comment cards that begin the
last-studied subcase (at the top of the file) mention : "Mohan's comment card had title 'DIODE BRIDGE
RECTIFIER WITH A 3-PHASE INPUT.' ... No snubber circuits or damping resistors are being used, there
are no manually-specified initial conditions, and the time step dT is much larger than Mohan was able to
use, thanks to ISZC. 30 May 2000" Interpretation of the ISZC declaration can be documented from the
solution :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Switch opening shifts time to interpolated zero. |INTERPOLATE SWITCH ZERO C

II-A-40. Derive Frequency - Dependent J. Marti Line Model

In order to represent an overhead transmission line with frequency-dependent parameters and a

2A - 61
II. Cards that begin a New Data Case

constant transformation matrix as required by Section IV-D-3, recourse is made to a separate supporting
program. Instructions for the usage of this separate program are contained in Section XVII. Transfer to this
supporting program is accomplished by the following request :

1 2 3 4 5 6 7 8
123456789012 34567890123456789012 34567890 1234567890123456789012345678901234567890

JMARTI SETUP PDTO

E8.0

Variable PDT0 of columns 33-40 has the same meaning as the parameter of columns 33-38 of
frequency-dependent branch cards of Section IV-D-3. In fact, the parameter is not actually used by the fitter,
but is merely passed along from the declaration just shown to any branch cards that later will be punched.
This is no different than node names of a BRANCH request, only here the request comes earlier, outside the
supporting program.

Illustrations of JMARTI SETUP (JMS) use can be found in standard test cases BENCHMARK DCNEW-
3, 5, and 6. Interpretation of the input declaration will confirm the input parameter (the following illustration
is from the 1st subcase of DCNEW-3 ) :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Jose Marti`s line fitter. PDT0 = 1.00000000E+00 |JMARTI SETUP, 1.0,

II-A-41. Request for Display of Fatal Error Messages

It sometimes is convenient to be able to generate the text of any particular fatal error message (a "KILL
code") without actually being obliged to assemble data that will so terminate erroneously during execution.
This is possible using the request :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012 34567890 12345678 90123456789012345678901234567890

KILL CODES KILL1 KILL2

I8 I8

Here KILL1 (columns 33-40) and KILL2 (columns 41-48) are the beginning and ending numbers of
the consecutive error messages that are to be printed. Of necessity, KILL2 must not be less than KILL1.
Note that only formal error messages with a KILL number can be reproduced this way. In theory, this
should be all possible error messages. In practice, it excludes many "temporary" error messages that involve
the simpler, in-line statement CALL STOPTP to terminate execution following some simple message.

2A - 62
II. Cards that begin a New Data Case

The most common use of KILL CODES is on an impromptu basis, which suggests interactive input
following the "KEY" response to the opening prompt of the program.

Interpretation of the input data confirms the beginning and ending indices of the error messages. The
th
4 subcase of BENCHMARK DC-13 illustrates this as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Test output of error messages 13 through 14 |KILL CODES, 13, 14,

II-A-42. Calculation of Parameters of Overhead Transmission Lines

The calculation of parameters for an overhead transmission line is isolated in a separate UTPF overlay.
This really is a separate, self-contained program, and all usage is described in the separate Chapter XXI. To
transfer to that separate program, the following special-request card is used :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

LINE CONSTANTS

For examples of such usage, see BENCHMARK DC-9, 29, 59, 60, etc. DC-59 provides numerous,
self-contained examples (i.e., not within some other supporting program such as JMARTI SETUP). Using
standard dimensioning with 240K for List 31, interpretation shows that 100 conductors can be handled :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Compute overhead line constants. Limit = 100 |LINE CONSTANTS

II-A-43. Estimate Error of a Line Model vs. Frequency

LINE MODEL FREQUENCY SCAN ( LMFS ) first was mentioned in newsletters in the April, 1990,
issue. This refers to a 9-page article by Robert Hasibar, Daniel Goldsworthy, and Tsu-huei Liu in the March
issue of EMTP News (LEC's journal). Entitled "Validation of frequency-dependent transmission line
models," this "describes a recent addition to BPA's EMTP that will evaluate the steady-state response of a
line section as a function of frequency." Although commonly used for a frequency-dependent line section,
in fact LMFS can be used for any line section. The result is a comparison between the user-supplied model

2A - 63
II. Cards that begin a New Data Case

and theory as represented by LINE CONSTANTS or CABLE CONSTANTS or CABLE PARAMETERS.

Three standard tests were chosen to determine model accuracy : 1) a positive-sequence, short-circuit
impedance test with all circuits energized simultaneously; 2) a zero-sequence, short-circuit input-impedance
test with all circuits energized simultaneously; and 3) a zero-sequence input-impedance and mutual-coupling
test with just one of the circuits energized (used only for multi-circuit cases). ATP automatically connects
the appropriate testing circuits from previously-established data files, and produces output both on the line
printer (LUNIT6) and also in a conventional .PL4 plot file for subsequent plotting.

LMFS compares any "line model" with the exact Pi-equivalent of a single segment of overhead line. This
is done over an arbitrary range of frequencies. The "line model" that is being tested can be any combination
of linear branches, such as lumped elements, lines (constant-parameter, distributed line, frequency-dependent
representation of any type), coupled R-L elements, etc.

The frequency response of a line model such as constant-parameter distributed, JMarti or Semlyen
line is compared with the exact B-equivalent of that line, which is calculated for each frequency of interest
using geometrical and electrical parameters that are entered as LINE CONSTANTS input data. For 3- and
6-phase overhead lines, generic data files for $INCLUDE are provided as part of the 2nd and 3rd subcases of
BENCHMARK DC-51. These compute positive-sequence and zero-sequence short-circuit impedances :

DC51FS3P.DAT electric circuit with place-holding node names to compute positive-sequence,


short-circuit impedance of a 3-phase overhead line

DC51FS3Z.DAT electric circuit with place-holding node names to compute zero-sequence,


short-circuit impedance of a 3-phase overhead line

DC51FS6P.DAT electric circuit with place-holding node names to compute positive-sequence,


short-circuit impedance of a 6-phase overhead line

DC51FS6Z.DAT electric circuit with place-holding node names to compute zero-sequence,


short-circuit impedance of a 6-phase overhead line

DC51FS6M.DAT electric circuit with place-holding node names to compute positive-sequence,


mutual-coupling impedance of a 6-phase overhead line between two circuits

II-A-43.1 Rules of LMFS Data Creation

Establish simulation data similar to that for FREQUENCY SCAN (see a preceding subsection) as
follows:

2A - 64
II. Cards that begin a New Data Case

1. Use a new special request card: LINE MODEL FREQUENCY SCAN (or LMFS). The data fields and their
format on this card are the same as those for the Regular FREQUENCY SCAN case: FMINFS, DELFFS,
FMAXFS, NPD. Leave the data field for DELFFS blank, and enter the number of points per decade for
the logarithmic (geometric) spacing as NPD. FMIMFS and FMAXFS are the beginning and the ending
frequencies respectively.

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456 78901234 56789012 34567890

LINE MODEL FREQUENCY SCAN FMINFS DELFFS FMAXFS NPD FUNDFS

E8.0 E8.0 E8.0 I8 E8.0

2. Input the miscellaneous data cards.

3. Input the branch cards for the "line model" to be tested.

4. Input the appropriate generic data files (see description above) which consist of the needed branch cards
and source cards by using $INCLUDE. Also required on the $INCLUDE card are the names of sending
end and receiving end nodes of the line being tested. Following is an example of the use of generic file
DC51FS6Z.DAT, which will produce the frequency response for the zero-sequence short-circuit test of
a 6-phase line :
Col. 79-80
$INCLUDE,dc51fs6z.dat,MR02A# ,MR04A# ,MR02B# ,MR04B# ,MR02C# ,MR04C#, $$
C MR02D# ,MR04D# ,MR02E# ,MR04E# ,MR02F# ,MR04F#
C dc51fs6p.dat
C dc51fs6m.dat

Note that 12 node names are needed for a 6-phase line. MR02A and MR04A are names of the sending
end and the receiving end of the first phase, respectively, etc. The $$ in columns 79-80 indicates that
there will be a continuation card following the initial $INCLUDE card. Next, the comment card "C
dc51fs6p.dat" provides the name of a disk file that contains branch and source cards for the
positive-sequence impedance test. Finally, the comment card "C dc51fs6m.dat" provides similar
information for the mutual-coupling test. This assumes a double-circuit (6-phase) test. If only
a single circuit is involved, the final comment card has no meaning, and can be omitted without
consequence (such omission is not mandatory, however ) .

BLANK card ending frequency cards.

5. Input the geometrical data of a single segment of overhead line. Prepare this data of line geometry just as
one would for ordinary LINE CONSTANTS use except that only a single frequency card is used. This
frequency card carries the following data: RHO (earth resistivity), FCAR (Carson accuracy), DIST
(length of the line), ISEG (segmentation option), and MODAL (transposition of the line). This data is
terminated by the usual BLANK card ending frequency cards.

2A - 65
II. Cards that begin a New Data Case

C Raw LINE CONSTANTS data for the overhead transmission line being considered:
C 1 2 3 4 5 6 7
C 3456789012345678901234567890123456789012345678901234567890123456789012345678
1.4138 .0497 4 1.603 -15. 52.0 A1-1
1.4138 .0497 4 1.603 -16.06 53.06 A1-2
1.4138 .0497 4 1.603 -13.94 53.06 A1-3
2.4138 .0497 4 1.603 -25. 83.0 B1-1
2.4138 .0497 4 1.603 -26.06 84.06 B1-2
2.4138 .0497 4 1.603 -23.94 84.06 B1-3
3.4138 .0497 4 1.603 -15. 114.0 C1-1
3.4138 .0497 4 1.603 -16.06 115.06 C1-2
3.4138 .0497 4 1.603 -13.94 115.06 C1-3
4.4138 .0497 4 1.603 15. 114.0 A2-1
4.4138 .0497 4 1.603 13.94 115.06 A2-2
4.4138 .0497 4 1.603 16.06 115.06 A2-3
5.4138 .0497 4 1.603 25. 83.0 B2-1
5.4138 .0497 4 1.603 23.94 84.06 B2-2
5.4138 .0497 4 1.603 26.06 84.06 B2-3
6.4138 .0497 4 1.603 15. 52.0 C2-1
6.4138 .0497 4 1.603 13.94 53.06 C2-2
6.4138 .0497 4 1.603 16.06 53.06 C2-3
0.5 3.56 4 .495 -7.0 150.7 OHGW-L
0.5 3.56 4 .495 7.0 150.7 OHGW-R
BLANK card ending conductor cards of LINE CONSTANTS data
100. .001 1 53.00 1 1
C RHO ] [FCAR] [ DIST ] S T
BLANK card ending frequency cards of LINE CONSTANTS data

6. Input optional batch-mode plot card(s). E. g.,

C 345678901234567890123456789012345
PRINTER PLOT
186 .2 0.0 5.0 GENIA MAG
196 .2 0.0 5.0 GENIB % MAG

For plotting purposes, node voltages are converted to branch quantities. The results of the tested line
model are treated as branch voltages ("8" in column 4), and results of the exact B-model and the
percentage errors are treated as branch currents ("9" in column 4.). The second name of a percentage
error will be either "% MAG" or "% ANG " ( for magnitude or angle, respectively ) .

7. After the last plot card, input the following three cards to end the data case :

BLANK card ending plot cards

2A - 66
II. Cards that begin a New Data Case

BEGIN NEW DATA CASE


BLANK card ending data subcases

The line printer output includes tabulation of results of the requested node voltage output
variables for the tested line model, for the exact B-model, and the percentage errors. Variable
IOUT of the integer miscellaneous data card of Section II-B-2 controls the frequency of this output.
Tabulation after 100 entries will be truncated. Be careful with positive values for IDOUBL and
KSSOUT on the same card. If IDOUBL has value unity, the connectivity table will be produced for
each test (there are 2 for a single-circuit line or 3 for a double-circuit line). As for any frequency scan,
positive KSSOUT for LMFS is even more serious: there will be phasor branch flows and injection
printout for each of the generally-many frequencies. As a general rule, IDOUBL and KSSOUT should
have value zero.

II-A-44. Linearly ( not Randomly ) Varied Bias for Monte Carlo Switching

At the request of BPA production users (specifically, Dan Goldsworthy), the normally random or zero
bias that can be added to all switch times of Monte Carlo studies can be replaced by a linear variation. This
will be the response of ATP to the request :

1 2 3 4 5 6 7 8
12345678901234567 890123456789012345678901234567890123456789012345678901234567890

LINEAR BIAS USAGE

No further information is required, since limits on the bias will be provided by the STATISTICS
miscellaneous data parameters DEGMIN and DEGMAX (see Section II-C, columns 41-56). For a case with
LINEAR BIAS USAGE (LBU), there is replacement of the random number that normally is used by a
variable that varies linearly between 1.0 / NENERG and unity as the NENERG energizations are
performed. For an illustration, see the 2nd and 3rd subcases of BENCHMARK DC-48.

The interpretation of this request involves the confirmation of no parameter value. The following has
been copied from DC48.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Ramped linear variation of random bias. |LINEAR BIAS USAGE

2A - 67
II. Cards that begin a New Data Case

II-A-45. Combination of 2 or More Partial Monte Carlo Studies

The many energizations ("shots") of a Monte Carlo study can be simulated in groups, either sequentially
or in parallel (using 2 or more computers, typically). If not all shots are performed as part of the same data
case, there will be partial results in 2 or more .EXT disk files that are connected to I/O unit LUNIT9 (see
DC24.DAT for examples of use). Such partial results (extrema) then can be combined for purposes of
statistical tabulation by means of a LOAD MORE SHOTS (LMS) request :

1 2 3 4 5 6 7 8
12345678901 ... 0 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890

LOAD MORE SHOTS K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15

I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4

The 15 integers that are read from columns 21-80 as 15I4 information are optional. These are the numbers
of exceptional shots within the file --- shots that the user wants to discard (ignore) during loading of the file.
A maximum of 15 excluded shots are allowed, note. If one or more of the integers is non-zero, it is assumed
that the first zero follows the last non-zero. I.e., the numbers of shots to be excluded fill the vector from left
to right. Also, ATP assumes that the non-zero numbers are monotone increasing from left to right.

In effect, LOAD MORE SHOTS is a command to read from a disk file of extrema that has been
connected to I/O unit LUNIT2 using $OPEN. This is assumed to follow START AGAIN which loads
simulation tables (program memory). Use is illustrated several times within BENCHMARK DC-40. The
third use, which excludes two energizations (shots numbered 1 and 2) is interpreted as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Load more Monte Carlo extrema. 1 2 0 |LOAD MORE SHOTS 1

II-A-46. Extended SATURATION That Includes Losses

LOSSY SATURATION ( LSAT ) is a request for an extension to the original SATURATION request,
which accounted for inductance only. Accounting for losses (but not hysteresis) as well as flux, LOSSY
SATURATION comes from author Orlando Hevia of UTN in Santa Fe, Argentina, as first described in the
April, 2002, newsletter. A Type-99 pseudo-nonlinear resistance is added in parallel with a Type-98
pseudo-nonlinear inductance to complete the representation. The newsletter story mentions more detailed
documentation: a paper entitled "Inductor with losses in the ATP" on pages 13-22 of the August, 2001,
issue of EEUG News. To connect to author Hevia's supporting program of Section XIX-K, use the request:

2A - 68
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

LOSSY SATURATION

Use is illustrated in the 10th subcase of standard BENCHMARK DC-13. The fixed interpretation of this
request is copied from DC13.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Orlando Hevia fits params for lossy saturation. |LOSSY SATURATION

II-A-47. Starting Frequency of Harmonic Frequency Scan

A MINIMUM HARMONIC NUMBER ( MHN ) declaration is required if and only if a $PARAMETER


block involves harmonic number "h" prior to the definition of sources of a frequency scan. This will be the
case for a POCKET CALCULATOR VARIES PARAMETERS ( PCVP ) loop that varies network
impedances as a function of frequency. The problem is this : The harmonic number "h" is used before it
normally is defined. To rectify this problem, the user must declare redundantly his lowest frequency :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

MINIMUM HARMONIC NUMBER MINH

I8

"Subharmonics allowed in HFS" is the title of a story in the July, 2002, newsletter. It provides further
explanation of how and why the MHN declaration was added. Prior to the admission of subharmonics, there
was no problem because the power frequency was the minimum frequency. But with subharmonics, this can
not be assumed.

The 19th subcase of BENCHMARK DCNEW-21 illustrates the MHN declaration. Although columns
33-40 contain the all-important starting value of 1/3 (indicating 16.67 Hz for the 50-Hz system), this value
is not confirmed in the interpretation. Rather, the limited space is used to explain when the MHN declaration
is needed :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Needed if HFS subharmonic h in $PARAMETER block. |MINIMUM HARMONIC NUMBER

2A - 69
II. Cards that begin a New Data Case

II-A-48. Create LISTSIZE.PMC for Parallel Monte Carlo

Parallel Monte Carlo simulation is the only practical use of the MINIMUM TABLE SIZES ( MTS )
declaration as first explained in the July, 1995, newsletter. MTS is ignored except during initialization of the
central statistics file (characterized by a PART:-1 declaration). Then MTS is a request for one energization
followed by the creation of a LISTSIZE.DAT file that corresponds to minimum sizes. This file will be
created in the CENTRAL STATISTICS FILE (CSF) directory, and will be given the special file type .PMC
to recall the usage with parallel Monte Carlo. If present at the time a simulation involving SHOTS: begins,
it is this file rather than LISTSIZE.DAT that will be connected to establish program table sizes. Although
automatically created during initialization, nothing prevents a user from editing the file manually if he
believes he knows more or better than ATP about how to economize on tables. After all, logic of the ATP
creation is simple, so an intelligent user almost always can do better. An MTS declaration takes the form :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456789012345678901234567890

MINIMUM TABLE SIZES MULTIP MEXTRA

I8 I8

Here the two integers are optional. MULTIP is a multiplier in percent (i.e., will be divided by 100 upon
input) whereas MEXTRA is an offset. These two values provide excess table space to account for imperfect
estimation of needs. Normally, the user will leave the fields of columns 33-48 blank in which case the
program will assign default values MULTIP = 4 and MEXTRA = 5. These mean that following
estimation of a minimum list size, this value will be multiplied by 1.04 and then 5 will be added to provide
a margin of safety.

BENCHMARK DC-66 includes several MTS declarations. Since it is only for PART:-1 use that MTS
has meaning, there are two possible and different interpretations :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Create .PMC file using MINHAR, MAXHAR = 4 5 |MINIMUM TABLE SIZES
Ignore since not PART:-1 initialize of SHOTS: |MINIMUM TABLE SIZES

II-A-49. Request to Read Miscellaneous Data Cards

The floating-point and integer miscellaneous data cards are described in Section II-B. For a conventional
simulation, they come after all special requests of the type now being considered. For the normal simulation,
this is fine, and there is no need to read miscellaneous data cards elsewhere.

2A - 70
II. Cards that begin a New Data Case

But for special circumstances, the user may want to define one or more of the miscellaneous data
parameters ahead of time, along with other special request cards. This is required for START AGAIN
usage, for example (see BENCHMARK DC-40 or 49 as an illustration). If such usage is wanted, simply
precede the usual miscellaneous data cards of Sections II-B and II-C by the special request
MISCELLANEOUS DATA CARDS ( MDC ) as follows :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

MISCELLANEOUS DATA CARDS

The user is advised not to do this casually, however. There should be a clear, real, known need as
approved by standard instructions, or as recommended by local Program Maintenance.

The interpretation of these data only requires documentation of the request card, since the miscellaneous
data cards (and possible extensions) are interpreted exactly as explained in Sections II-B and II-C. As for the
leading card, it is interpreted as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request preceding 2 miscellaneous data cards. |MISCELLANEOUS DATA CARDS

II-A-50. Request for Tricky Mode - Voltage Output of Distributed Line

There are cases where mode voltage rather than phase voltage is desired as the output of a distributed
transmission line. This will generally be for educational usage of one form or another, since the quantities in
question generally can not be physically measured. Since all distributed-parameter transmission-line models
(except Noda) use a modal transformation matrix to decouple the multi-conductor equations, the modal
quantities are a part of the solution process, and it is just a matter of directing such variables to the output
vector. With care, the user can request the modal voltage to ground at both ends of one distributed-parameter
transmission line. The request has the following form :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

MODE VOLTAGE OUTPUT MODOUT

I8

Variable MODOUT (cols. 33-40) is to be keyed with the number of phases or coupled conductors that
are involved. A blank or zero field is defaulted to MODOUT = 3, so it is really only in other cases that the

2A - 71
II. Cards that begin a New Data Case

numerical value need be keyed.

Such modal output is possible for only one transmission line, and that line must be placed at the very end
of branches, immediately before the blank card that terminates all branch cards. In addition, the very first
branch data must consist of extra, high-impedance branches that are connected from each node to ground at
both ends of the line in question. Equal in number to 2 * MODOUT, column 80 of these uncoupled (type-0)
series R-L-C branches must be keyed with a "1" so as to request branch current output. Use a resistance so
large that the answer is unaffected.

So much for data input. Following simulation, the user will find his modal voltages in the output
locations that otherwise would have been reserved for the branch currents just mentioned. This is why the
present feature is a little tricky. The first MODOUT output currents are in reality modal voltages to local
ground at the BUS1 end of the line, in natural order; the next MODOUT output currents are mode voltages
to ground at the other end (the BUS2 end) of the line, also in natural order. A reminder message to this effect
is printed immediately below the column headings for the output variables, so the user will not forget. Note
that if one is plotting, type-9 plot requests (see Section 1.10) must be used, since the EMTP thinks that the
modal voltages are currents in the 2 * MODOUT high-resistance branches that were supplied by the user.

An illustration of this feature is provided by the 2nd subcase of BENCHMARK DC-38. It is from this
solution involving a 3-phase, constant-parameter line that the following interpretation has been extracted :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for tricky modal output. MODOUT = 3. |MODE VOLTAGE OUTPUT

II-A-51. MODELS Computation Precedes TACS

If both MODELS and TACS are being used in the same data subcase, the default choice is for TACS
computation to be performed first at any time step. This was the decision of MODELS author Dube when
first he allowed coexistence of the two alternatives (see the July, 1995, newsletter). But, as explained in the
July, 2003, newsletter, there are cases where the user might want the MODELS computation to precede the
TACS computation. In theory, this can be requested as follows :

1 3 4 5 6 7 8
123456789012345678 90123456789012345678901234567890123456789012345678901234567890

MODELS BEFORE TACS

The MODELS BEFORE TACS ( MBT ) request can be added to any data, but it will have an effect only
if both TACS and MODELS are being used. Operation is illustrated by the 4th subcase of BENCHMARK
DC-30, from which the following interpretation has been extracted :

2A - 72
II. Cards that begin a New Data Case

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Each time step, MODELS computation precedes TACS |MODELS BEFORE TACS

II-A-52. Use MODELS on Extrema Rather Than within the dT Loop

MODELS can be used to post-process the extrema vector rather than for modeling within the time-step
loop. This is for time simulation. But MODELS can not be used for both functions as part of the same time
simulation. The user must choose between the two possible uses. The default choice is the original one of
MODELS author Dube: simulation within the time-step loop. If the user wants instead to use MODELS to
postprocess, he must declare this intention using this request :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

MODELS PROCESSES EXTREMA

Operation first was described in the April, 2001, newsletter. Although the previous paragraph mentioned
the time-step loop for clarity of understanding, a loop over frequency might instead be involved. There is a
similar choice for frequency scans, too. More generally and abstractly, the choice is this: whether or not
MODELS is required to form the output vector. In the case of a frequency scan, MODELS originally was
used to form the complex outputs themselves as illustrated by the 3rd subcase of BENCHMARK DC-52. An
alternative is to apply MODELS to the output vector after it has been formed. In fact, the newsletter writing
begins with mention of frequency not time: "MODELS can process HARMONIC FREQUENCY SCAN
(HFS) solution variables ..." Just as there is an alternative, completely-different use of MODELS for time
simulation, so there is an alternative, completely-different use of MODELS for frequency scans, too.
Interpretation might mention time simulation, but only because this is easier to explain in less space.

The 9th subcase of BENCHMARK DCNEW-10 illustrates use for a PCVP loop over time simulations.
Interpretation is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Unconventional use outside time step loop only. |MODELS PROCESSES EXTREMA

II-A-53. Halt Execution If an A6 Name Begins with a Blank

NAMES ARE LEFT ADJUSTED ( NALA ) is the way the user declares that none of his A6 names
begins with a blank byte. Normally, there is no such restriction. But if the user wants protection against an

2A - 73
II. Cards that begin a New Data Case

inadvertent leading blank (in effect, a spelling error), he need only issue the declaration :

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

NAMES ARE LEFT ADJUSTED

Should a leading blank be discovered (should not all names be left-adjusted as intended), program
execution will be terminated with a KILL = 81 error message. BENCHMARK DCNEW-10 illustrates use,
with the 2nd subcase illustrating this error termination. Interpretation of the NAMES ARE LEFT
ADJUSTED declaration involves the confirmation of no parameter. From the solution to BENCHMARK
DCNEW-10, it appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Halt if 1st byte of a name is found to be blank. |NAMES ARE LEFT ADJUSTED

II-A-54. Halt Execution if an A6 Name Ends with a Blank

NAMES ARE RIGHT ADJUSTED ( NARA ) is the way the user declares that none of his A6 names
ends with a blank byte. Normally, there is no such restriction. But if the user wants protection against an
inadvertent trailing blank, he need only issue this declaration :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

NAMES ARE RIGHT ADJUSTED

Should a trailing blank be discovered (should not all names be right-adjusted as intended), program
execution will be terminated with a KILL = 81 error message. No standard test case illustrates this,
however. In the opinion of program developers, left-adjusted names are preferable to right-adjusted names,
so use of the present declaration is not encouraged. BENCHMARK DCNEW-10 explains this on a
comment card.

Interpretation of the NAMES ARE RIGHT ADJUSTED declaration involves the confirmation of no
parameter. It should appear as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Halt if last byte of a name is found to be blank. |NAMES ARE RIGHT ADJUSTED

2A - 74
II. Cards that begin a New Data Case

II-A-55. Calculation of Constant - Parameter [R], [L] Network Equivalent

The calculation of coupled [R], [L] branches to represent parts of the network that are not to be
modeled explicitly is done by a separate supporting program named NETEQV. Instructions for the usage of
this utility are covered in Section XXIV. To transfer to that separate program, the following special-request
card is used :

1 2 3 4 5 6 7 8
123456789012345678 90123456789012 34567890 1234567890123456789012345678901234567890

NETWORK EQUIVALENT IOFBND

I8

IOFBND of columns 33-40 is optional, and normally will be left blank. If a value is keyed, it is taken
to be the maximum number of busses that are allowed. If omitted, the EMTP will dimension tables of the
supporting program as large as possible (within available working space of overlay 28 (/C28B01/). Since the
sparsity diagram (which shows nonzero terms of the Jacobian) can only be produced if there is extra storage,
this diagram will only be seen if a positive IOFBND is keyed, and if this positive value leaves sufficient extra
working space for the sparsity diagram.

Interpretation of the request card confirms the value of IOFBND. An illustration is provided by the
second subcase of BENCHMARK DC-14 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Constant-R,L generator equivalent. IOFBND = 11. |NETWORK EQUIVALENT, 11,

II-A-56. Redefine the Limits of Program Tables

Disk file LISTSIZE.DAT defines the limits of program tables as execution begins. This is as explained
in Section I-G. However, if the same dimensioning information (VARDIM data) has been declared as part
of data of the first subcase of the input data file, it is this latter information that will be used in place of
LISTSIZE.DAT for the initial table sizing. This is for program dimensioning at the very start of the .LIS
file (assuming LU6VRT is positive). Such data begins with NEW LIST SIZES ( NLS ) as follows :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

NEW LIST SIZES

2A - 75
II. Cards that begin a New Data Case

This is to be followed by the contents of LISTSIZE.DAT as documented in Section I-G. Standard


BENCHMARK DC-47 illustrates such use. The output file DC47.LIS then begins as follows (note the
very first line, which is exceptional and characteristic of NLS use ) :

Table sizes declared in data. |NEW LIST SIZES


List 6 scaled by = 5.00 |NBHDSW 5.0 { Five is the default ...
Default multiplier = 2.000 |DEFAULT 2.0
1st card (Lists 1-10). |BLANK
Comment card is ignored. |C 0 0 0 0 0
2nd card (Lists 11-20). | 0 0 0 0 0
3rd card (Lists 21-29). | 0 1750
Supplemental offsets. | 240000 742
--- 502 cards of disk file read into card cache cells 1 onward.
Alternative Transients Program (ATP), Salford 80386 translation. ...

Later, when special-request cards are interpreted, there will be no trace of NLS and its associated data.
These cards already have been displayed (see immediately above). The NLS data have been removed from
regular data in order to replace LISTSIZE.DAT

For small data cases, no user should bother with NLS. But for larger data sets, the use of NLS makes
very good sense, and is encouraged. The burden on program tables does depend on data, so the input data
file is the logical place to store such important statistics. Whereas most standard BENCHMARK DC-XX
test cases can be processed using the usual 3-times-default dimensioning, there are a few exceptions that
require more space for at least one table. For these cases (see DC-22 and 47), NLS has been used.

For NLS use, the 2nd or later stacked subcase is fundamentally different from the first. For the 2nd
subcase, NLS data can not replace LISTSIZE.DAT since NLS does not apply to the first subcase. So NLS
data in the 2nd or later subcase must be processed in its natural location and sequence. Interpretation is
illustrated by output that begins the solution of the 4th subcase of DC-22 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Request preceding VARDIM input LISTSIZE.DAT |NEW LIST SIZES
1st card (Lists 1-10). | 0 0 68
2nd card (Lists 11-20). | 0 0 4700
3rd card (Lists 21-29). | 0 0 220
Supplemental offsets. | 240000

This will be followed by another heading as execution "begins again" using the revised dimensions. Because
obviously unused space has been eliminated, a lot of table space has been saved, note : "Total size of
LABCOM tables = 74664 ..." ( compare with 230K for 3-times-default dimensioning ) .

2A - 76
II. Cards that begin a New Data Case

II-A-56a. Request for [Z]-based Newton Iteration of N. L. Elements

The solution of all true (not pseudo) nonlinear elements of a subnetwork is found iteratively by Newton's
method at each time step of a simulation. Historically, the formulation involved the Thevenin admittance
matrix [Y-thev], which was found by inverting the Thevenin impedance matrix [Z-thev]. While use of
[Y-thev] remains the default, the alternative use of [Z-thev] is possible as announced in E-mail of the EEUG
list server dated 22 January 2007. NO Y-BASED NEWTON ( NYBN ) is the optional request that every
subnetwork be solved using [Z-thev] rather than [Y-thev] :

1 2 3 4 5 6 7 8
12345678901234567 890123456789012345678901234567890123456789012345678901234567890

NO Y-BASED NEWTON

An important restriction on the use of NO Y-BASED NEWTON is this: supporting code initially exists
only for exponential ZnO modeling, which has branch type code 92. In theory, any other single-phase N.L.
element should be supportable, but the associated code has not yet been programmed. Should a user attempt
[Z]-based iteration of a subnetwork that involves some other N.L. element type, the following error
termination should result: "Halt in SOLVNL. [Z] is being used while not all N.L. elements are exponential
ZnO ..."

A peculiar detail might be noted. For a single surge arrester, the Newton iteration using [Z] is identical
(within limits of roundoff error) to the iteration using [Y]. But for 2 or more in the same subnetwork, there
will be a difference. Which is the more efficient numerically is not known at the time of this writing, and it
probably depends on data.

Instead of the single global NO Y-BASED NEWTON declaration, it is possible to declare the use of
the impedance formulation within Type-92 data itself. This might be important for modularized data. It is
accomplished by a "[Z]-based Newton iteration" request as illustrated by the 11th subcase of
BENCHMARK DC-37. If both declarations are used in the same data subcase, any selective declaration will
be ignored. This is seen in interpretation of the 11th subcase of DC-37 : "Ignore since all Newton iteration
is [Z]-based."

Delta-connected surge arresters provided the practical incentive for development of the [Z]-based
alternative to the original [Y]. Coding to support a [Y]-based iteration that will accept delta-connected
arresters is substantially more complicated. Yet, it came first, as explained at the start of the 7th subcase of
BENCHMARK DC-38. Prior to November of 2006, ATP would halt at a delta connection with a complaint
that the Thevenin impedance matrix [Z-thev] was singular. This error termination was characterized by
KILL = 209, overlay 18, nearby S.N. 3471. By switching to [Z] formulation, supporting code is much
simpler, so might be more reliable. Subcases 9, 10, and 11 of BENCHMARK DC-38 illustrate use.

Total number of Newton iterations ITOTAL is written to the .DBG file on the final time step. This
output will occur whether or not the user has requested diagnostic printout. To illustrate, consider the line

2A - 77
II. Cards that begin a New Data Case

produced by the 11th subcase of BENCHMARK DC-37 : "Exit SOLVNL. ISTEP, ITOTAL, ... = 400
1582 ..." The simulation has finished the final time step number 400, and has counted 1582 Newton
iterations.

For years the .DBG file has documented each larger number of Newton iterations. The time step
ISTEP and the iteration count NITER have been shown. This output remains, regardless of whether or not
the user has requested diagnostic printout. The text has been slightly improved by an addition of either label
"[Z]" or "[Y]" to document the formulation that is being used, however.

To cancel the effect of an NO Y-BASED NEWTON request, simply repeat the request. The associated
memory is a binary toggle that begins with value zero. This corresponds to the default choice, which is use
of [Y]. The first NO Y-BASED NEWTON request changes this value to unity. The 2nd returns it to zero.
Etc. An illustration is provided in the next paragraph.

Interpretation of NO Y-BASED NEWTON confirms the choice between [Z] and [Y]. As an
illustration, consider the three, artificial, successive uses at the top of 10th subcase of BENCHMARK
DC-38. These 3 have the same effect as just one, note. The control variable ends with value unity :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Newton iteration for N.L. uses [Z]. Toggle to 1 |NO Y-BASED NEWTON
Newton iteration for N.L. uses [Z]. Toggle to 0 |NO Y-BASED NEWTON
Newton iteration for N.L. uses [Z]. Toggle to 1 |NO Y-BASED NEWTON

II-A-57. Frequency Dependent Fitting by Taku Noda

Frequency-dependent modeling by Taku Noda first is mentioned in newsletters in the October, 1994,
issue. Associated branch data is explained in Section IV-D-5. But how does an interested user obtain data
applicable to his particular component (typically a section of transmission line or cable)? Dr. Noda has his
own separate fitting program (not part of ATP) that runs on any Wintel PC, and the ATP user can interface
with it following the request :

1 2 3 4 5 6 7 8
1234567890123456 78901234 56789012345678901234567890123456789012345678901234567890

NODA SETUP NODAPR

I8

NODAPR (columns 17-24) is a binary switch that controls production printout within LINE
CONSTANTS or CABLE PARAMETERS (whichever is named by the following data). For production

2A - 78
II. Cards that begin a New Data Case

use, NODAPR is left blank, which means there will be no printed output. This corresponds to production
output of a JMARTI SETUP or SEMLYEN SETUP case : no printout during the frequency scan. In
effect, normal output is being suppressed just as if $LISTOFF had been used. If the user wants normal
output during the frequency scan for diagnostic purposes, use value unity (comparable to $LISTON ) .

Use with several different line and cable sections is illustrated by standard BENCHMARK DCNEW-13.
Interpretation of the first of these is as follows (note that blank columns 17-24 produced the value zero for
NODAPR after erasure of the in-line comment ) :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for Taku Noda`s ARMA fitter. NODAPR = 0 |NODA SETUP { Requ ...

II-A-58. Display and Manage Central Status File of Parallel STATISTICS

Some program versions and some installations have networking of two or more computers that allow
central monitoring and control of the parts of a Monte Carlo study that is being simulated in pieces, generally
by parallel processing. Reference [52] provides a detailed explanation. Well, access to the supporting
program that displays and manipulates the central status file PARALLEL.LIS is by the request:

1 2 3 4 5 6 7 8
1234567890123456789012345678 9012345678901234567890123456789012345678901234567890

OBSERVE PARALLEL MONTE CARLO

Since usage normally is interactive, the KEY request would precede this one, which can be abbreviated
OPMC for quicker keying. The CENTRAL STATISTICS FILE request to name PARALLEL.LIS should
come between these two, as the following interpretation from the 5th subcase of BENCHMARK DC-66
shows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Name of file for "OBSERVE PARALLEL MONTE CARLO" |CENTRAL STATISTICS FILE
File name:f:\data\parallel.lis |f:\data\parallel.lis
Monitor and control parallel "STATISTICS". |OBSERVE PARALLEL MONTE CA

Some computers (e.g., Apollo, Sun, and DEC VAX / VMS ) should have the OPMC code available as a
separate, small supporting program. If so, a common name would be OPMC.EXE Frequent users
probably will find such an alternative preferable, since a small program is less demanding of computer
resources than huge ATP. Also, it allows for computer-dependent extensions to the universal features that
will be described in Section XIX-B.

2A - 79
II. Cards that begin a New Data Case

II-A-59. Convert TACS Data Older Than “M39.” Update of July, 1984

With every passing year, OLD TO NEW TACS has decreasing value. It serves to convert old TACS
data to current TACS data. Here "old" is defined to mean what existed prior to the "M39." update of July,
1984. Among other things, this marked the end of blank cards within TACS data to separate different data
classes (which originally required ordering and segregation). The request for conversion is :

1 2 3 4 5 6 7 8
123456789012345 67890123456789012345678901234567890123456789012345678901234567890

OLD TO NEW TACS

The 2nd subcase of standard BENCHMARK DC-67 demonstrates such use. Interpretation is copied from
the solution DC67.LIS :
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Convert pre-M39 TACS data to new TACS data. |OLD TO NEW TACS

II-A-60. Convert ZnO data of "M36." Vintage ( September, 1983 )

With every passing year, OLD TO NEW ZNO has decreasing value. It serves to convert old zinc-oxide
(ZnO) surge arrester modeling to current modeling. Here "old" is "M36." or earlier vintage, which dates to
September of 1983. The request is simple enough :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

OLD TO NEW ZNO

This special-request card is to be added before the first miscellaneous data card of a data case involving
old ZnO data cards. The EMTP reads such data, and punches (see $PUNCH in Sect. I-D) replacement branch
cards to represent the ZnO arresters. It then will be the user's responsibility to replace the old card images
with the new ones, using a text editor.

An example of such conversion is provided by the second subcase of standard test case BENCHMARK
DC-13. The following illustrative interpretation has been copied from DC13.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to convert old ZnO data to new formats. |OLD TO NEW ZNO

2A - 80
II. Cards that begin a New Data Case

II-A-61. Request for Omission of Base Case of STATISTICS Simulation

The conventional STATISTICS or SYSTEMATIC data case involves a base case simulation before
any of the NENERG (integer miscellaneous data parameter; see Section II-B) energizations are performed.
This is a preliminary shot, right down the middle, with all of the variances set to zero. Well, the user can
omit this extra, preliminary simulation by a special request card reading :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

OMIT BASE CASE

Resulting statistical tabulations are unaffected, since the base case simulation was not part of the
statistical processing, anyway. So, if the user already knows how the base case solution looks, he can save
the computation of one shot as well as the associated printed output.

Examples of such usage are provided in standard test cases BENCHMARK DC-16, 24, and 66. The
following fixed interpretation can be seen in any of the associated solutions :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Omit base case if STATISTICS/SYSTEMATIC usage. |OMIT BASE CASE

Any user who adds or removes an OMIT BASE CASE request is forewarned of the need to alter
following data. With a base case (i.e., if no OMIT BASE CASE request), data for batch mode plotting is
required. As a minimum, this will be the blank card ending plot cards. Without a base case (i.e., when
OMIT BASE CASE is present), there must be no such data immediately before the requests for statistical
tabulation. This is illustrated by the $DISABLE and $ENABLE usage in the first subcase of
BENCHMARK DC-24 as explained in comment cards at the start of the data file.

II-A-62. Request That Any Table Dumping or Restoring Be Partial

The concept of partial table dumping was introduced in the January, 1999, newsletter (see a story entitled
"Partial table dumping"). Partial Table Dumping is an extension to Turbo Table Dumping by Robert Schultz
of the New York City area. For background on Schultz's quantum leap forward, see newsletters beginning
with the October, 1993, issue. Partial or selective table dumping began 12 October 1998 when MODELS
tables were the first to be ignored for any data case that involved no MODELS usage. This was quickly
followed by the addition of logic for TACS, the U.M., etc. Partial table dumping prohibits the application
of Schultz's logic to those portions of ATP tables that are known not to be in use.

2A - 81
II. Cards that begin a New Data Case

For now (October, 2002), partial table dumping can be enabled by the average user only by means of the
following request :

1 2 3 4 5 6 7 8
123456789012345678901 23456789012345678901234567890123456789012345678901234567890

PARTIAL TABLE DUMPING

For now, the user is being forced to declare explicitly his desire for partial table dumping. This is to
prevent unintended use until associated logic has been proven to be bulletproof by numerous experienced and
serious users. Later, if and when usage might be understood by various experts to be extremely reliable, the
need for explicit declaration might be removed.

Testing of partial dumping logic occurs regularly following an easy, special modification to code.
Program developers will rename disk file TAPSAV.NEW to TAPSAV.PUM and then perform a minor
update (UP PUM). Next, TSTALL of STARTUP is changed to some negative value such as -0.3 to dump,
zero, and restore tables 30% of the way through any simulation. The value of TSTALL should not affect the
answer as long as it is in the interval (-1, 0). Finally, RUN.BAT next will verify every single standard
simulation example without any change to data. This is so easy, and so exhaustive (if not 100% rigorous),
there seems to be little need for explicit testing among the family of standard test cases. Only DC-16
contains the PARTIAL TABLE DUMPING declaration, and the following interpretation is taken from the
solution DC16.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Faster STATISTICS, SYSTEMATIC, and START AGAIN. |PARTIAL TABLE DUMPING

II-A-63. Request for Peak Voltage of Simulation

The user may be interested in peak node voltage, or in peak linear branch voltage, or both, without being
concerned about the location in the network where this will occur. If so, there exists the paper-saving
alternative that avoids voltage output for all nodes or branches :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

PEAK VOLTAGE MONITOR MAXVLT

I8

Variable MAXVLT chooses the type of voltages being monitored :

2A - 82
II. Cards that begin a New Data Case

1 --- for node voltages only ;


2 --- for linear branch voltages only ;
3 --- for both node voltages and also linear branch voltages.

Zero or blank will be interpreted as unity (a request for the peak of node voltages only). This is the
request. Later, at the end of the simulation, before the usual peak-value printout for the output vector, will
be generated the requested output or outputs.

For the monitoring of node voltages (MAXVLT = 0 or 1), one line will give the node name, the time of
the peak, and the value of the overall peak. The following is an illustration taken from the first subcase of
BENCHMARK DC-7 :
Overall simulation peak node voltage = 5.69470365E+05
occurred at bus "TRANB " at time (sec) = 1.17000000E-02
For 132-column output, this will be a single line, of course (it has here been split in two for ease of
presentation only). The printed value at the end is the peak of all node voltages in volts, not the peak of all
node voltages in per unit. If the problem has transformers that change the nominal voltage level, there is no
easy way of spotting peaks of per unit voltage that might occur on the low voltage side. So, usage is
somewhat specialized, and it requires caution.

For the case of MAXVLT = 2 or 3, there will be output for the peak branch voltage as follows (from
the second subcase of BENCHMARK DC-7 ) :
Overall simulation peak branch voltage = 5.66276224E+01 occurred
at linear branch number 3, which connects node "TRAN " to
" ". The time [sec] = 0.00000000E+00

Illustrative use can be found in standard test cases BENCHMARK DC-7, 61, and 62. The following
illustration of interpretation was taken from the solution to the second subcase of BENCHMARK DC-7 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Output global peak voltage of network. 3 |PEAK VOLTAGE MONITOR, 3,

II-A-64. Pocket Calculator Controls Loop over Solutions

POCKET CALCULATOR VARIES PARAMETERS ( PCVP ) is a request for use of the pocket
calculator to either add a loop, or control an existing loop, over solutions. During the loop, typically some
data parameter or parameters will be varied by the pocket calculator via a $PARAMETER block (a separate
subject of Section I-D). The PCVP request involves 3 integer control parameters as follows :

2A - 83
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456789012345678901234567890 12345678 95123456 78901234 5678901234567890

POCKET CALCULATOR VARIES PARAMETERS MAXKNT IOPCVP NOSTAT

I8 I8 I8

MAXKNT (cols. 41-48) gives the number of times the loop over solutions is to be traversed. Yet, this is
just backup information that will be preempted (or superceded or overridden) by a better, separate control.
For example, MAXKNT is ignored in the case of either FREQUENCY SCAN ( FS ) or HARMONIC
FREQUENCY SCAN ( HFS ) because each of these declarations already controls the loop over frequency
in more sophisticated fashion using starting and ending frequencies. When not needed, typically MAXKNT
is given the obviously-wrong value of unity to emphasize that the value is being ignored. Any value that is
not positive will be converted to the default value of unity because a positive value is required by code that
supports PCVP.

IOPCVP (cols. 49-56) controls printout within the loop over solutions. Value zero will avoid suppression,
resulting in complete output during all passes. This is useful during testing that severely limits the number
of passes. But for a large number of passes, the extra output generally is wasteful, and might be confusing.
Just as a STATISTICS or SYSTEMATIC loop generally suppresses normal output other than extrema, so
production use of PCVP generally will. For positive IOPCVP, output is suppressed after the first pass. The
following summary, copied from the output of DCNEW-25, explains the transition as follows: IOPCVP
> 0 means that normal output is about to be suppressed as the 2nd shot begins. At most, extrema and
parameters will be seen (this would be for value 1). Value 2 will suppress parameters of the next shot. Value
3 also will suppress extrema, leaving just the single line showing KNT and MAXKNT.

NOSTAT (cols. 57-64) is a binary switch that controls the use of extrema for statistical tabulation. Value
unity will suppress statistical tabulation (i.e., "no statistics") whereas value zero or blank will not. But for
any frequency scan, there is no statistical tabulation, so the value is immaterial in these case (e.g., for FS or
HFS use).

An explanation of possible uses is complicated by the fact that there are 3 fundamentally different types
of loops over solutions :

1) Loop over time simulations. An example would be a Monte Carlo study. Yes, flexible PCVP can
be used as an alternative to limited and rigid STATISTICS, although care is required. Alternatively, some
normally-constant parameters of the network (e.g., values of a filter) might be varied. This commonly would
be referred to as a parameter-variation study. DCNEW-25 provides illustrations.

2) Loop over phasor solutions. Here steady-state frequency is an important controlling variable,
typically. There will be a frequency scan --- possibly (but not necessarily) in conjunction with older and
separate FREQUENCY SCAN ( FS ) or HARMONIC FREQUENCY SCAN ( HFS ) declarations. Simple
network parameters may be varied as the loop is traversed. DCNEW-26 provides illustrations.

3) Loop over some supporting program. An example would be a loop over conductor height or

2A - 84
II. Cards that begin a New Data Case

ground resistivity for an overhead transmission line within the LINE CONSTANTS calculation. DC-59
provides illustrations.

Before attempting to create his own data involving PCVP, a user is encouraged to study input data and
resulting output of the standard test cases previously mentioned.

Theory and evolution of PCVP use was summarized in newsletters beginning with the October, 1998,
issue. A search for the 4-letter acronym should always be adequate for published writing because the long
form is simply too demanding of space with proportional fonts. Not so for data (the long form is used
exclusively in standard test cases).

The interpretation of the PCVP request card confirms just the first two of the 3 integer parameters. To
illustrate, consider the 10th subcase of BENCHMARK DC-59 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Build loop around $PARAMETER changes. 3 0 |POCKET CALCULATOR VARI ...

II-A-65. Request to Postprocess .PL4 Plot File Using TACS or MODELS

POSTPROCESS PLOT FILE ( PPF ) is the declaration that either TACS or MODELS will be used to
postprocess a .PL4 plot file. The user first connects the old plot file (input to the post processor) to I/O unit
number LUNIT2 using $OPEN. For an example (which may be installation-dependent), see
BENCHMARK DC-46. If TACS, variables of the plot file will be assigned to user-defined TACS sources
in natural order by ATP, thereby providing the connection for postprocessing by the user. If MODELS,
signals will be connected as defined by a special INPUT statement. This is the ATP response to the
request :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 12345678 90123456 789012345678901234567890

POSTPROCESS PLOT FILE IPLOT LUNPPF L63TYP

I8 I8 I8

IPLOT (columns 33-40) is an integer indicating frequency of the output. There is similarity to the
miscellaneous data parameter of the same name. For example, if IPLOT = 3 is used, then only every third
point of the old plot file will be used for input, and output will have this same frequency, of course. The
most common (and least tricky) case uses IPLOT = 1, so that there are as many output points as there are
input points. Note that IPLOT > 1 requires a multiplied time step DELTAT, too.

2A - 85
II. Cards that begin a New Data Case

LUNPPF (columns 41-48) is the number of the I/O unit to which the input .PL4 file is to be connected.
Any non-positive value (including blank) will be given default value 63, which usually is satisfactory.

L63TYP (columns 49-56) is an integer code indicating .PL4 file type. There are four choices: 1) value
unity indicates UNFORMATTED; 2) value two indicates FORMATTED; 3) value three indicates
conventional C-like; and 4) value four indicates Pisa-format C-like.

The data case is completed by cards for a TACS-only or MODELS-only data case. Yes, an electric
network could follow, and the 2nd subcase of DC-46 illustrates this. But the control system modeling is all
that is required. Consider TACS first. Generally, there should be as many TACS sources as there are
variables in the old data file, with 6-character names being arbitrary. In the order defined, these are
automatically (internally) connected to variables of the old plot file. Most post-processing will involve
TACS supplemental variables, although function blocks also are useful ( e.g., 1 / s for the integration of
some voltage to produce flux). That was for TACS. MODELS is substantially different. Instead of TACS
sources, an INPUT statement defines each name followed by {PL4(K)} where K is an integer giving the
position of the variable in the disk file (e.g., 1 for the first, 2 for the second, etc.). For an illustration, see the
3rd subcase of DC-46 which does using MODELS what the preceding two subcases do using TACS.

The interpretation of the request card confirms the user-keyed frequency IPLOT, of course. This is
illustrated by the following line from the solution to the first subcase of BENCHMARK DC-46 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Postprocess with frequency IPLOT = 2. |POSTPROCESS PLOT FILE

II-A-66. Redefinition of Synchronous Power Frequency STATFR

POWER FREQUENCY ( PF ) is the declaration that the synchronous power frequency STATFR is to be
redefined. The initial value of STATFR is defined arbitrarily in the STARTUP file, of course. But it is not
convenient to alter such a critical value for occasional foreign data cases that might deviate from the local
frequency. In the case of stacked data cases, it is even conceivable that different values would be required
within the same disk file. So, at the beginning of each new data case, the user has the ability to alter the
assumed power frequency by means of a request such as :

1 2 3 4 5 6 7 8
123456789012345 67890123456789012 34567890 1234567890123456789012345678901234567890

POWER FREQUENCY STATFR

E8.0

Variable STATFR of columns 33-40 is the synchronous power system frequency in Hertz. Without such

2A - 86
II. Cards that begin a New Data Case

a declaration, this will normally be either 50 Hz or 60 Hz, depending upon content of the STARTUP file
(which defines the variable at the start of execution ) .

The interpretation of the request card confirms the user-keyed frequency STATFR, of course. This is
illustrated by the following line from the solution to BENCHMARK DC-26 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
New power frequency STATFR = 5.00000000E+01 Hz. |POWER FREQUENCY, 50.0,

II-A-67. Request to Change the Width and Spacing of dT Loop Printout

A PRINTED NUMBER WIDTH (PNW) request will format the dominant printout of the time-step loop.
This involves the step number, time, and variable values, and it occurs at frequency IOUT (miscellaneous
data parameter of Section II-B). Although spacing of the step number and the time are fixed, all following
numbers will be of uniform width and intercolumn separation as determined by variables KOLWID and
KOLSEP of the STARTUP file. Such formatting is important enough, however, that it also has been placed
under user control at the beginning of each data case. The optional request in data is :

1 2 3 4 5 6 7 8
12345678901234567890 123456789012 34567890 12345678 90123456789012345678901234567890

PRINTED NUMBER WIDTH KOLWID KOLSEP

I8 I8

KOLWID (cols. 33-40) is the total column width in characters, including blanks that separate columns.
KOLSEP (cols. 41-48) is the number of blank characters separating nonblank numbers.

The interpretation of the request card confirms the two user-keyed integers KOLWID and KOLSEP, of
course. This is illustrated by the following line from the solution to BENCHMARK DC-26 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13,

2A - 87
II. Cards that begin a New Data Case

II-A-68. Initialization of Random Number Generator of STATISTICS

A single floating-point number is required to initialize the random number generator of Monte Carlo
("STATISTICS") studies as well as other uses (TACS, SPY APPEND, the pocket calculator, and
MODELS). The experienced user can define this seed, SEEDRN, using a RANDOM NUMBER
GENERATOR SEED ( RNGS ) request as follows :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 345678901234567890123456 789012345678901234567890

RANDOM NUMBER GENERATOR SEED SEEDRN

E24.0

Installation-dependent complications are possible although not yet an important issue as this paragraph is
reviewed during November of 2002. As long as all computers involve 32-bit integers, 24 bytes of decimal
precision should be adequate to seed the 32-bit number-generating algorithm, which dates to the mid-'80s.
The user is forewarned, however, that an upgrade would be appropriate upon use of a computer and PC that
uses 64-bit integers. Using 64 bits, repetition should be practically impossible. But a change to the code of
RANDNZ will be required.

Although not yet illustrated by any standard test case, interpretation is as shown below. Note that this
output confirms the seed within 11 decimal digits (generally inadequate; a 64-bit variable for SEEDRN
allows 16 or 17 decimal digits ) :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Store new dice seed SEEDRN = .74280517926 |RANDOM NUMBER GENERATO ...

II-A-69. Position .PL4 Plot File on LUNIT4 Ready for 1st Time Step

Special positioning is required if new simulation numbers are to be written immediately following existing
header information of an old .PL4 plot file that is either UNFORMATTED or FORMATTED in nature.
Note that the newer and more efficient C-like alternatives require no such request. Assuming that an
UNFORMATTED or FORMATTED plot file already is connected to I/O unit number LUNIT4 (variable
defined by STARTUP), the user request for positioning ready for the dT loop is :

1 2 3 4 5 6 7 8
123456789012345 67890123456789012345678901234567890123456789012345678901234567890

READ PL4 HEADER

2A - 88
II. Cards that begin a New Data Case

The usual application will involve START AGAIN which otherwise would create a plot file without the
header information that is needed for later plotting. By means of the READ PL4 HEADER (RPH) request,
a complete, self-contained plot file can be produced by the START AGAIN simulation. An example can be
found in the 4th subcase of BENCHMARK DC-40, which uses the header produced by the 2nd subcase of
BENCHMARK DC-24. Note that no plot points from the first simulation will be preserved, however.
Illustrative interpretation comes from the solution to BENCHMARK DC-40 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
REWIND LUNIT4 plot file, then read the header. |READ PL4 HEADER

Historical note: READ PL4 HEADER was devised for sequential .PL4 files. These came first (the
middle '80s). For sequential files, special code to position the file is very important. Although practical use
involved UNFORMATTED files, the FORMATTED case should be comparable (although it is little used
because of larger file size and slower I/O). Later introduction of C-like files made the positioning trivial, and
did away with the need for READ PL4 HEADER. Today (November, 2002), the alternative
STATUS=OVERLAY on the $OPEN card should perform the same function for C-like data.
BENCHMARK DC-40 for Salford EMTP shows that the READ PL4 HEADER declaration has been
removed by commenting. An in-line comment explains that it "messes up C-like usage of PL4."

II-A-70. Request for Relative Allocation of Total TACS Storage

Before using RELATIVE TACS DIMENSIONS ( RTD ), understand the preceding ABSOLUTE TACS
DIMENSIONS ( ATD ), which provides the more common way to allocate use of the total TACS storage.
Also realize that relative TACS dimensioning is not supported by any F95 ATP version, for which it has no
meaning because total TACS storage is not defined.

The second way to allocate total TACS storage is with a request for relative sizing. That is, rather than
request a specific number of function blocks, supplemental variables, etc., the user can simply request a
proportional allocation (e.g., 5% of the total storage for function blocks, etc.). The special-request card is to
be followed by one data card bearing the 9 proportions, which will be read as 9I8 data :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

RELATIVE TACS DIMENSIONS

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 234567890

K1 K2 K3 K4 K5 K6 K7 K8 K9

I8 I8 I8 I8 I8 I8 I8 I8 I8

2A - 89
II. Cards that begin a New Data Case

In theory, this is simple enough. But one practical problem with this second alternative for sizing TACS
tables is this: the user has no intuitive feeling for the relative space that is occupied by the different tables.
To aid the user, the following is an approximate correspondence between nominal (default) absolute
dimensions and the proportions that produced them :

Absolute size 20 90 100 20 30 250 300 60 4


Relative size 11 15 7 7 3 8 21 28 1

This applies to translations having integers that are half as long as floating-point variables. Note that the
INTEGER*4 and REAL*8 storage in common use today (November, 2002) satisfies this condition.
Proportions would be a little different for computers that store floating-point variables in words of the same
length as integers. This might be an issue soon, with 64-bit microprocessors on the horizon.

RELATIVE TACS DIMENSIONS was added to the 6th subcase of BENCHMARK DC-21 on 10
November 2002 simply for completeness. It does not change the output significantly, and is ignored by F95
ATP (e.g., Lahey) use. In any case, interpretation will be illustrated using the following output. Note that
values of just the first 3 of the 9 input numbers are confirmed :

1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to define TACS allocation proportions. |RELATIVE TACS DIMENSIONS
TACS proportions. 1.10E+01 1.50E+01 7.00E+00 | 11 15 7

II-A-71. Ignore Mutual Coupling During Node Renumbering

RENUMBER WITHOUT COUPLING ( RWC ) was introduced to speed execution using data that
involve extremely large numbers of coupled conductors. Use first was described in the January, 1999,
newsletter. For anything close to the 400 coupled coils that have been used for internal transformer
modeling, renumbering of network nodes may pose a sizable bottleneck. Yet, the burden of renumbering is
easily bypassed, and the resulting simulation speed might not be noticeably affected. To avoid node
renumbering (which means that nodes will be numbered in the order they are encountered during data input),
use the declaration :

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890

RENUMBER WITHOUT COUPLING

Use is illustrated by the 5th subcase of standard BENCHMARK DC-5. The following interpretation is
taken from this solution :

2A - 90
II. Cards that begin a New Data Case

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Ignore coil coupling for transient renumbering. |RENUMBER WITHOUT COUPLING

Of course, data of DC-5 is far too small for such use to be practical. It is an illustration only. Just 3 time
steps are simulated, but these are enough to show that the solution is unaffected (compare with the solution
of the 1st subcase). Curiously, RWC actually saved memory, so presumably also accelerated the simulation
slightly. From case summary statistics following the simulation, it will be seen that List 5 use decreased from
39 cells for the 1st subcase to 38 for the 5th. One fewer factor of triangularized [Y] seems to have resulted.

II-A-72. Make the Random Number Generator Predictable

REPEATABLE RANDOM NUMBERS ( RRN ) is used to seed the random number generator of ATP so
that each execution will produce the same sequence of numbers. Use first was described in the October,
1998, newsletter. This English-language request and its companion TRULY RANDOM NUMBERS
( TRN ) control the same variable NSEED as the column-80 punch of the STATISTICS miscellaneous data
card. But there are needs for random numbers that do not involve STATISTICS switches, so RRM is
more general, and is important in its own right. Should an RRN request be part of a STATISTICS data
case, RRN will override (take precedence over) the later numeric specification of NSEED in column 80.

Illustrations of the REPEATABLE RANDOM NUMBERS request can be found in standard


BENCHMARK DC-24 and 68. The format is simple enough :

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890

REPEATABLE RANDOM NUMBERS

Interpretation requires no explanation since no parameter requires confirmation. The following can be
found in either DC24.LIS or DC68.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Constant seed in random number generator. |REPEATABLE RANDOM NUMBERS

2A - 91
II. Cards that begin a New Data Case

II-A-73. REPLOT for Batch - Mode Plotting of Connected .PL4 File

REPLOT ( R ) is for batch-mode plotting of a previous simulation. If miscellaneous data parameter


ICAT was equal to 1 or 2, then the plot data points of the previous simulation were saved on disk as a
permanent file. Should the user now (at some later time) wish to perform batch-mode plotting of this data,
he must do two things. First, he must connect the file of raw data points of I/O channel LUNIT4 using
$OPEN (see Section I-D). Second and finally, he must transfer control to batch-mode plotting by means of
the following request :

1 2 3 4 5 6 7 8
123456 78901234567890123456789012345678901234567890123456789012345678901234567890

REPLOT

As an example of such usage, see the standard test case BENCHMARK DC-54 for the computer of
interest. Remember that the $OPEN card is installation-dependent, in general (which is why the
recommendation is "for the computer of interest"). As for interpretation, this is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to attach and plot disk file of old data. |REPLOT

II-A-74. Convert RMS V - I Saturation Characteristic to Instantaneous B - H

The calculation of instantaneous B-H characteristics for use with Type-92 or Type-98 nonlinear
reactors is not trivial, sometimes. If the user has only a curve of RMS values for voltage and current, the
separate supporting program named SATURA can profitably be used. Instructions for the usage of this
utility are covered in Section XIX-G. To transfer to this separate program, the following special-request card
is used :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012345678901234567890123456789012345678901234567890

SATURATION

For an example of such usage, see BENCHMARK DC-13. It is from the solution to this case that the
following interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for magnetic saturation computation. |SATURATION

2A - 92
II. Cards that begin a New Data Case

II-A-75. Model Overhead Line by 2nd Order Recursive Convolution

SEMLYEN SETUP ( SS ) is the request for a supporting program to model a transmission circuit using
second order recursive convolution as first advocated by Prof. Adam Semlyen of the University of Toronto
in Ontario, Canada. This was the first multi-phase, untransposed, frequency-dependent model in EMTP. It
dates to the mid-‘70s. If used with care, it probably leads to the fastest smooth simulation of an overhead
line. But the fixed, low order means that proper fitting is demanding. By the mid-'80s, use had been largely
superceded by the newer, higher-order, and easier-to-use JMARTI SETUP (see a preceding subsection).

In order to represent overhead transmission lines with frequency-dependent parameters and a constant
transformation matrix as required by Section IV-D-4, recourse is made to a separate supporting program.
Instructions for the usage of this separate program are contained in Section XXII. The transfer to this
supporting program is accomplished by the following request :

1 2 3 4 5 6 7 8
1234567890123 4567890123456789012345678901234567890123456789012345678901234567890

SEMLYEN SETUP

For examples of such usage, see BENCHMARK DC-29 and 60. It is from any solution to this data that
the following fixed interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
2nd-order frequency-dependent line modeling. |SEMLYEN SETUP

II-A-76. Terminate Simulation at Time dT if COMPILED TACS MAKE

The SINGLE STEP IF MAKE ( SSIM ) declaration has no meaning in the absence of compiled TACS,
which simulates faster because dedicated FORTRAN is used to represent the user's TACS modeling. The
FORTRAN in question will be created during the first step of simulation that involves TACS if COMPILED
TACS MAKE has been requested. Of course, normally a simulation would involve many time steps. But
if a user wants nothing other than the FORTRAN to represent his TACS model, he can halt after one time
step. This is the effect of SINGLE STEP IF MAKE ( SSIM ) . With an SSIM declaration, the user does not
need to change ending time T-max on the floating-point miscellaneous data card. The format is :

1 2 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

SINGLE STEP IF MAKE

2A - 93
II. Cards that begin a New Data Case

An example of such use can be found in the 6th subcase of standard BENCHMARK DCNEW-25. It is
from the associated solution DCN25.LIS that the following interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Halt after single step, if MAKE of compiled TACS. |SINGLE STEP IF MAKE

II-A-77. Type - 93 Reactor Converted to Hyperbolic Tangent

SMOOTH SATURATION USING TANH ( SSUT ) is a request to convert reactor data from one
nonlinear ATP model to another — from the piecewise-linear Type-93 saturable reactor of Section V-I
into the smooth hyperbolic tangent function TANH of Section V-K. Orlando Hevia of UTN in Santa Fe,
Argentina, provided a separate fitting program SFTANH to provide this service (see Section XIX-L), and
SSUT connects with this fitter as first described in the January, 1998, newsletter.

Access to Orlando Hevia's separate fitting program requires a request that includes three optional numeric
parameters. The format is as follows :

1 2 3 4 5 6 7 8
34567890
12345678901234567890123456789012 12345678 90123456 789012345678901234567890

SMOOTH SATURATION USING TANH ITMAX KPL DXL2

I8 I8 E8.0

ITMAX (columns 33-40) is an iteration limit for the fitter's optimization. Any blank or non-positive
value will be internally converted to the default value of 3000.

KPL (columns 41-48) is the number of steps used to vary the current numerically from zero to the peak
value of interest. Any blank or non-positive value will be internally converted to the default value of 50.

DXL2 (columns 49-56) is a radius in inches for the associated batch-mode graphics. These rely upon
CALCOMP PLOT graphics. Any blank or non-positive value will be internally converted to the default
value of 0.05 which means that data points will be marked with squares having 1/10 of an inch on each side.
Note that the largest circle contained within this square has a radius of .05 inches (hence use of the term
radius).

Use is illustrated by the 6th subcase of standard BENCHMARK DC-13 and this includes screen graphics
for those program versions that support batch-mode plotting of CALCOMP PLOT. In addition to the screen
graphics, the user has the HP-GL, PostScript, and GNUPLOT alternatives. Unfortunately, interpretation of

2A - 94
II. Cards that begin a New Data Case

the request does not confirm any of the input parameters, which were an afterthought. The interpretation
is independent of input data as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Fit piecewise-linear saturation with smooth TANH. |SMOOTH SATURATION USIN ...

II-A-78. Find Standler Parameters for a Type - 15 Source

The Type-15 source is for surge functions of the electric network. One of the later extensions to simple
exponentials is the Standler surge function as first described in the January, 2001, newsletter. The question
is, for a given surge function, what are the 3 associated Standler parameters? A fitter to produce these, was
written by Orlando Hevia of UTN in Santa Fe, Argentina. Transfer to this supporting program STANDL is
the result of the request :

1 2 3 4 5 6 7 8
12345678901234567890123 456789012345678901234567890123456789012345678901234567890

STANDLER SURGE FUNCTION

Associated batch-mode graphics will display the resulting Standler surge function on the screen. Since
CALCOMP PLOT graphics are used for this, the HP-GL, PostScript, and GNUPLOT alternatives also
should be available ( see NOHPGL, NOPOST, and NOGNU parameters within STARTUP ) .

An illustration can be found in the 9th subcase of standard BENCHMARK DC-13. Interpretation of the
transfer has been drawn from the associated .LIS file :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Orlando Hevia fits params for Type-15 Standler. |STANDLER SURGE FUNCTION

II-A-79. Request to Restart a Halted Simulation : START AGAIN

Integer miscellaneous data parameter MEMSAV will result in the dumping of EMTP memory onto disk
at the conclusion of a simulation. For a single, deterministic simulation, this will be at the ending time of the
simulation, t = Tmax. For a Monte Carlo (STATISTICS) study, this will be upon the completion of the

2A - 95
II. Cards that begin a New Data Case

final energization number NENERG. Such a simulation can be restarted at any later time by means of the
following initial request :

1 2 3 4 5 6 7 8
12345678901 1234567890123456789012345678901234567890123456789012345678901234567890

START AGAIN

Actually, this is only the request to load tables from the disk file that already has been connected to I/O
unit number LUNIT2 by means of a $OPEN request (see Section I-D). For an example of such usage, see
BENCHMARK DC-40 for the computer of interest (due to installation-dependence of the $OPEN card). If
integrity of the disk file that stores EMTP tables is important, a copy of the original file should be used, in
order to prevent accidental destruction. At the present time, there is no READ-only insurance for any
connected file.

As the hibernating simulation is awakened, certain parameters can be changed, should the user desire this.
The START AGAIN request is to be followed by an arbitrary number of cards that redefine switch and
TACS source parameters, one card per component or quantity that is to be changed. The last of these is
terminated by a "9999"-card (keyed in columns 5-8) :
$OPEN, (etc. for control parameters)
START AGAIN
One card for each switch or TACS source that is to be changed
9999
There are five alternatives for the format of the cards that change the parameters of switches or TACS
sources. These alternatives follow :

1 2 3 4 5 6 7 8
12345678 9012345678901234 5678901234567890 1234567890123456789012345678901234567890

J T-close T-open

I8 E16.0 E16.0

1) Cols. 55-60 left blank means that a special, dedicated input structure for a switch is assumed. In the
above format, "J" is the switch number, in order of data input. The switch opening time T-open will be
redefined only if columns 25-40 are keyed with a positive number. More commonly, it is the closing
time T-close that will be altered, for switches that are open at the end of the preceding, discontinued
simulation. Columns 9-24 are always read, and T-close is always redefined (blank is interpreted as a
request for zero closing time).

2) Cols. 55-60 keyed with "1111." means that the data card is a TACS source card, with its usual format
(except for cols. 55-60). Any blank field of such a TACS source card will result in no change to the
associated source parameter. I.e., the user need key only those parameters that he actually wants to alter.

2A - 96
II. Cards that begin a New Data Case

3) Cols. 55-60 keyed with "2222." means that the data card is a switch card, with its usual format (except
for cols. 55-60). Any blank field of such a switch card will result in no change to the associated
parameter. I.e., the user need key only those parameters that he actually wants to alter.

4) Cols. 55-60 keyed with "-1111." ---- like 2), except that all data fields are read. Here, blanks mean
zeroes.

5) Cols. 55-60 keyed with "-2222." ---- like 3), except that all data fields are read. Here, blanks mean
zeroes.

Following the "9999" terminator (keyed in columns 5-8) that ends such change cards, the ending time
TMAX can be altered by means of a MISCELLANEOUS DATA CARDS request (see a preceding
subsection). Then a TIME STEP LOOP request (see a later subsection) actually transfers control to the
time-step loop, to continue the suspended simulation.

A few additional points might be passed along as well. Between the MISCELLANEOUS DATA
CARDS and the TIME STEP LOOP requests, the user is able to place any other special requests that might
be appropriate. The most commonly used is CHANGE PRINTOUT FREQUENCY to alter the frequency
of the time-step loop printout. If this is done, remember that step numbers begin where the previous halted
simulation left off (e.g., for TMAX = 50 msec and DELTAT = 100 microsec, the first printed step would
be for number 500). The user should be aware that, although all requests might be accepted by ATP, some
of the more complex ones can not possibly be honored in practice. A good illustration is FREQUENCY
SCAN (see a preceding subsection). There is no way a hibernating simulation of the time-step loop possibly
could be awakened and re-directed to perform a series of phasor solutions (which is what the use of
FREQUENCY SCAN would imply)! Yet this is simple and obvious. More insidious are requests that
would simply make erroneous or inconsistent certain parameters or controls of the restarted simulation. An
example of such a potential disaster is provided by use of the ABSOLUTE TACS DIMENSIONS request
(see a preceding subsection). Use of this feature would alter the pointers to the TACS tables, without
changing the tables themselves (which are already built), leading to "garbage out," and most likely an
operating system interrupt of some sort. Hence the user is warned to be both intelligent and skeptical about
any such usage; if there are some added hidden benefits, there also are some very real limits, and some
hidden traps. Be cautious!

Several different input data card interpretations can be involved with the just described data. The
beginning and the ending of these are fixed, and are illustrated by the following two lines from
BENCHMARK DC-40 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Continuation of partial previous simulation. |START AGAIN
Terminator for modified switching times. | 9999

In between these two, it is possible to have several different structures, of which the most common is that

2A - 97
II. Cards that begin a New Data Case

for altered switch closing time (alternative 1 above). Interpretation for this case confirms the three input
parameters, as the following line from the solution of BENCHMARK DC-49 illustrates :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Altered switch. 1 1.1990E-02 0.0000E+00 | 1 .011990

So much for single simulations. Monte Carlo studies, too, can involve START AGAIN. In this case,
there are additional alternatives. To the right of the basic declaration, there can be as many as 15 integer
numbers ( K1, K2, etc.) :

1 2 3 4 5 6 7 8
12345678901 ... 0 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890

START AGAIN K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15

I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4

These are the indices of already-simulated energizations that are to be ignored as the Monte Carlo study
is restarted. Most commonly there will be no such numbers, of course, meaning that all previous
energizations will be used. As an illustration, see the first subcase of BENCHMARK DC-40. The second
and third subcase of this same file ignore one of the 3 preceding simulations by means of nonzero K1.
Nonzero integers must be in increasing order, and no fields can be skipped (the first blank or zero will
terminate such declarations ) .

If K15 (columns 77-80) of the preceding paragraph is keyed with the special value -888, then the seed
of the random number generator RANDNZ will be reinitialized to the value that existed at the start (not
at the end!) of the last preceding energization. This allows a repeat of the last (generally incomplete, for
such usage) energization of the preceding execution. It is useful when something went wrong and execution
was terminated abnormally by ATP with some "KILL =" message. The most common usage is for cases of
non-convergence of the Newton iteration for ZnO surge arresters (see Section V-E ) . Convergence is
unpredictable, and the difficulty is different for each energization due to the different switching times, which
give rise to different transients. Eventually there may be an energization that is aborted with an error
termination KILL = 212. Whereas the troubled energization could be ignored completely (it will not be a
part of the history that is saved in MEMSAV tables), the intelligent or sophisticated user probably will want
to go back with a subsequent execution and exactly repeat the switching times that caused the trouble. The
troubled energization might be made to converge by better control of the Newton iteration (see ZINC
OXIDE of a later subsection), in which case the continuation will be continuous, without any reinitialization
of the random number generator. This may be desired or required for some reason. Another reason to repeat
an abortive energization is to study it further via additional printout and/or plotting. Such post-mortem
examination is possible only if switching times can be duplicated exactly, and the flag K15 = -888 allows
this. Note that value "-888" is not a legal energization number, so there is no confusion with the regular
meaning of K15.

Monte Carlo studies can combine the history of more than one preceding simulation, too. The first uses

2A - 98
II. Cards that begin a New Data Case

START AGAIN as just described. Immediately after this single card can come an arbitrary number of
declarations for additional parts of the history. The integers have exactly the same format and meaning,
although the declaration word is changed to avoid ambiguity :

1 2 3 4 5 6 7 8
12345678901 ... 0 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890 1234 5678 9012 3456 7890

LOAD MORE SHOTS K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15

I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4 I4

The energization numbers are always local to the portion being loaded, so no mental arithmetic is
required. Each such declaration will be preceded by a $OPEN card to connect the new associated file to
unit LUNIT2, and each of these might be (it depends on the computer being used) preceded by a $CLOSE
card to disconnect the file of the preceding portion. It is critical to note that the disk file of START AGAIN
is completely different in structure and size than the disk file or files of LOAD MORE SHOTS. For
START AGAIN, a complete set of tables (including LABCOM of size LTLABL words) is required, as
produced on unit LUNIT2 of a preceding simulation that had MEMSAV = 1 (integer miscellaneous data
parameter). On the other hand, the file of LOAD MORE SHOTS consists of only switching times and
extrema of each energization, as produced on unit LUNIT2 of a preceding simulation that had MEMSAV
= 2. The user must remember which is which, since otherwise execution will be impossible. For an example
of such usage, see the 2nd and 3rd subcases of BENCHMARK DC40. Illustrative interpretation shall be taken
from the latter of these :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Connect disk file to I/O unit. |$OPEN, UNIT=LUNIT2 FILE
Continuation of partial previous simulation. |START AGAIN {
Completed table restoration. Reset T = 1.80000000E-03 sec.
Terminator for modified switching times. | 9999 {
Connect disk file to I/O unit. |$OPEN, UNIT=LUNIT2 FILE=
Load more Monte Carlo extrema. 3 |LOAD MORE SHOTS 3
Toggle mode of "LOAD MORE SHOTS". L2FORM = 1. |TOGGLE EXTREMA MODE
Connect disk file to I/O unit. |$OPEN, UNIT=LUNIT2 FILE=
Load more Monte Carlo extrema. 1 2 |LOAD MORE SHOTS 1
Toggle mode of "LOAD MORE SHOTS". L2FORM = 0. |TOGGLE EXTREMA MODE { Re
Request preceding 2 miscellaneous data cards. |MISCELLANEOUS DATA CARDS

Of the 15 possible energization numbers, only the first 3 are confirmed by the interpretation, note. A
maximum of 3 are shown, and the first zero entry will terminate the input list, and will not be shown as part
of the interpretation. A final detail is this : The same single START AGAIN card would have been
interpreted twice if the first integer K1 had been nonzero. Then the second interpretation would have been
the same as that for LOAD MORE SHOTS. But since K1 of the START AGAIN card was left zero or
blank, no such 2nd interpretation confirming the value of K1 is seen.

2A - 99
II. Cards that begin a New Data Case

II-A-80. Subnetwork Identification with All Switches Closed at T = 0

STEP ZERO COUPLE ( SZC ) instructs the program to perform automatic subnetwork identification
with all the non-grounding switches closed at time zero. Also, there will be no further subnetwork
identification (normally it is a dynamic process within the time-step loop). Without this special request, the
program would determine the subnetwork identification dynamically at each time step for which switching
will occurred. More information on subnetwork identification can be found in Ref. 8, Vol. XIV, pages
CUMA-30 to 33. The declaration has this format :

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

STEP ZERO COUPLE

For an example of such use, see the second subcase of BENCHMARK DC-38. It is from the solution
to this subcase that the following illustrative interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
No nonlinear subnetwork check in DELTAT-loop. |STEP ZERO COUPLE

II-A-81. Pocket Calculator Speeds TACS Supplemental Variables

TACS POCKET CALCULATOR ( TPC ) is a request that will speed the evaluation of TACS
supplemental variables by use of the pocket calculator in place of Laurent Dube's original logic within the
time-step loop. Format of the request is as follows :

1 2 3 4 5 6 7 8
1234567890123456789012 3456789012345678901234567890123456789012345678901234567890

TACS POCKET CALCULATOR

Cancellation of this request also is possible. Simply append OFF at the end. This would be at the start
of some following subcase for which service of the pocket calculator is not wanted. TACS POCKET
CALCULATOR OFF is illustrated in the 2nd subcase of BENCHMARK DC-20.

TACS POCKET CALCULATOR ON is an alternate, longer form of the TPC declaration. Appending
ON has no effect at all. Yet, sometimes it is clearer to use this parallel declaration if a following data
subcase turns the service off. For an illustration, see the 1st subcase of BENCHMARK DC-20.

2A - 100
II. Cards that begin a New Data Case

Operation of TPC first was described in the July and October, 2001, issues of the newsletter. Remember
that only TACS supplemental variables will be evaluated faster; TACS supplemental devices are not affected,
and neither are function blocks. As for improved speed for simple arithmetic, see the comparisons in the
January, 2002, newsletter, which has a story entitled "Pocket Calc. does TACS supplemental."

Each supplemental variable name must begin with a letter of the alphabet, users are warned. This is the
same as for compiled TACS : FORTRAN rules are assumed, not Dube's rules.

The 3rd subcase of BENCHMARK DC-18 and the 5th subcase of DC-30 illustrate TPC use. Answers
should agree within the limits of roundoff error. Differences generally are not of consequence, using 64 or
more bits for floating-point precision.

Interpretations of both the ON and the OFF alternatives can be found in BENCHMARK DC-20. They
are as follows, from the 1st and the 2nd subcases, respectively :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
TACS supplemental variables compiled by POCKET. |TACS POCKET CALCULATOR ON
Cancel preceding TPC use. Back to Dube supplem. |TACS POCKET CALCULATOR OFF

II-A-82. Request to Redefine Limit on Number of TACS Warning Messages

TACS WARN LIMIT ( TWL ) is a request that allows management of warning messages that might be
issued by TACS early during a simulation. There are special cases for which certain TACS warning
messages are a nuisance. An example is the frequency sensor, which might produce many warning messages
before steady-state operation is reached during hvdc initialization. Such warning messages can be limited
in total number, and also suppressed completely before a certain starting time, by means of the following
request :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012 34567890 1234567890123456789012345678901234567890

TACS WARN LIMIT LIM T-beg

I8 E8.0

Here LIM is the limit on the number of TACS warning messages that will be displayed, and T-beg is
the time before which all TACS warnings are ignored (and not counted toward the limit LIM). The
interpretation of this request card confirms the two user-keyed integers, of course. This is illustrated by the
following line from the solution to the second subcase of BENCHMARK DC-18 :

2A - 101
II. Cards that begin a New Data Case

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Warning controls. LIM, T-beg = 5 1.00E+00 |TACS WARN LIMIT, 5, 1.0,

II-A-83. Request for Transfer to the Time-Step Loop

TIME STEP LOOP ( TSL ) is a request that is used after START AGAIN to awaken the hibernating
simulation by a transfer of control to the time-step loop. I.e., TSL actually resumes the simulation. The
format is :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

TIME STEP LOOP

Illustrations of the use of TSL can be found wherever START AGAIN is used: BENCHMARK DC-40
and 49. Input data interpretation is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Transfer control to the time-step loop. |TIME STEP LOOP

II-A-84. FORMATTED vs. UNFORMATTED for LOAD MORE SHOTS

TOGGLE EXTREMA MODE ( TEM ) is the command to switch between the two alternative formats of
extrema data. The default setting for the disk files of Monte Carlo extrema is UNFORMATTED, so if this
is what is wanted when using LOAD MORE SHOTS, no extra request should appear. But before loading
a FORMATTED file of extrema, the following request must be used to inform the program of the mode
change :

1 2 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

TOGGLE EXTREMA MODE

Should a subsequent file be UNFORMATTED, a second application of the request will be required to
return to the default setting. There is no limit on the number of mode changes. For an illustration, see the 2nd

2A - 102
II. Cards that begin a New Data Case

and 3rd subcases of BENCHMARK DC-40. Interpretation confirms the new (just-modified) status, with
associated variable L2FORM = 0 indicating UNFORMATTED and L2FORM = 1 indicating
FORMATTED. Illustrative interpretation comes from the first usage within the solution to BENCHMARK
DC-40 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Toggle mode of "LOAD MORE SHOTS". L2FORM = 1. |TOGGLE EXTREMA MODE

II-A-85. Seed the Random Number Generator Using Date and Time

TRULY RANDOM NUMBERS ( TRN ) is the alternative to REPEATABLE RANDOM NUMBERS


( RRN ) as described in a preceding subsection. A TRN request can be used to cancel a previous RRN
request, or override the following input of NSEED from column 80 of the statistics miscellaneous data
card.

1 2 3 4 5 6 7 8
12345678901234567890 123456789012345678901234567890123456789012345678901234567890

TRULY RANDOM NUMBERS

In theory, using the date and time to seed the random number generator should result in truly random
numbers. A second execution using the same data should produce different results (assuming that the
random number generator affects modeling ) .

Illustrations of the TRULY RANDOM NUMBERS ( TRN ) request can be found in standard
BENCHMARK DC-24 and 68. However, the declaration either has been commented out, or is cancelled
by an RRN declaration on the following line. This is in order that answers will be repeatable, thereby making
verification easier.

Interpretation requires no confirmation of parameter value. The following declaration and immediate
cancellation are from the solution to BENCHMARK DC-68 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Date and time seed the random number generator. |TRULY RANDOM NUMBERS
Constant seed is put in random number generator. |REPEATABLE RANDOM NUMBERS

2A - 103
II. Cards that begin a New Data Case

II-A-86. Truncate Output Lines after Formation Using Width KOL132

TRUNCATE OUTPUT LINES ( TOL ) limits the width of output to the .LIS file. Normally, the
STARTUP file will supply the line width for LUNIT6 output text using variable KOL132. But the user
might want to truncate to this width the output after it has been formed in order to make it even narrower.
This is possible, if variable KUTOFF is defined to be less than KOL132. The request has the following
format :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

TRUNCATE OUTPUT LINES KUTOFF

I8

Sample usage can be found in the 5th subcase of BENCHMARK DC-66, which truncates the 132-column
output of two short error messages to 125 columns. Illustrative interpretation, taken from the solution to this
data set, is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Override KOL132 of STARTUP with KUTOFF=125. |TRUNCATE OUTPUT LINES, 12

II-A-87. Determine Parameters of Type - 15 Exponential Surge Function

TWO EXP SURGE FUNCTION ( TESF ) is the request to transfer to a fitting program named TWOEXP
by Orlando Hevia of UTN in Santa Fe, Argentina. The January, 2001, newsletter story about Standler
mentioned other alternatives, and Hermann Dommel's original, 2-exponential surge function is one of these.
Orlando Hevia will optimize the selection of associated parameters.

1 2 3 4 5 6 7 8
1234567890123456789012 3456789012345678901234567890123456789012345678901234567890

TWO EXP SURGE FUNCTION

Sample usage can be found in the 12th subcase of BENCHMARK DC-13. Illustrative interpretation,
taken from the solution to this data set, is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Orlando Hevia fits params for Type-15 Two EXP. |TWO EXP SURGE FUNCTION

2A - 104
II. Cards that begin a New Data Case

II-A-87a. Universal Machine ( U. M. ) Header Card

Universal Machine (U.M.) data historically began with three data cards that apply to all U.M. data as a
whole rather than to the first machine (in order of data input) in particular. While fine for
manually-assembled data, such Class-1 U.M. data posed a problem for data that was modularized and
sorted (e.g., using ATPDraw). To remove the need for a U.M. data difference that was a function of whether
the data would be used first, the U.M. HEADER CARD ( UMHC ) request was introduced :

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

U.M. HEADER CARD

Such data first was explained in E-mail of the EEUG list server dated 1 June 2007. If such data is present,
it will take precedence over any later definition (as part of U.M. data) of the same information. The user of
U.M. HEADER CARD does not need to worry that the associated information is defined at the start of the
first U.M. machine.

Three data cards at the start of U.M. data have been mentioned whereas the U.M. HEADER CARD
request is to be followed by just one of these. The difference is easily explained. The third of the three
exceptional Class-1 cards to begin U.M. data was nothing but a blank card to end such exceptional Class 1
data. The first of the three merely had U.M. source type 19 keyed in columns 1 and 2 --- an indication that
U.M. data was beginning. In between, the 2nd of the 3 was the only significant and variable card, so it is the
only one that is involved with U.M. HEADER CARD. Any number of comment cards also are allowed, so
where one mentions the 3rd card to begin U.M. data, this really is the 3rd non-comment card, etc.

Illustration of the use of U.M. HEADER CARD can be found in subcases 5 through 9 of standard test
case BENCHMARK DC-33.

Interpretation of the U.M. HEADER CARD request mentions that the following U.M. header card itself
will be delayed until U.M. data begins. Illustration is provided by any of the subcases numbered 5 through
9 of BENCHMARK DC-33. It is convenient to use subcase 9, however, since this also illustrates that a
second or later U.M. HEADER CARD declaration will be noted :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Delay unseen following card until UM data input. |U.M. HEADER CARD
--- Warning. 2nd or later UMHC is ignored. |U.M. HEADER CARD

2A - 105
II. Cards that begin a New Data Case

II-A-88. Pass Any U. M. Output Variables to Type - 92 TACS Sources

UM TO TACS ( UTT ) is the request that is required to interface one or more uncommon U.M. output
variables with Type-92 sources of TACS. Use this variable interface if the user instructions of Chapter IX do
not offer all fixed interfaces that are required.

It is possible to pass any U.M. output variable to TACS. But the original, simplest implementation had
the following limitation: the TACS variable that is to be defined by the U.M. must be a Type-92 TACS
source of the same name (the second of the two 6-character names that identify the U.M. variable). Second,
the program must be alerted to the user's desire for such control by means of a declaration reading :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012345678901234567890123456789012345678901234567890

UM TO TACS

Note that the U.M. variable being passed must be a U.M. output variable. However, there is no
requirement of this type within TACS, where output is optional. Since nothing was done to identify the
correct U.M. in the case of two or more machines, the attentive reader might have concluded that there is a
limitation to just a single machine. But limitations are not this restrictive. In fact, the connection logic will
match a Type-92 source with the first U.M. output variable having the requested name. As long as the
desired variable is the first, it does not matter what the machine number might be.

Beginning in August of 1993, two or more U.M. variables of the same name were allowed as summarized
in the October, 1993, newsletter. The TACS source card does not otherwise use columns 41-52, so this
space has been reserved for the machine variable as 2A6 information. E.g., "UM-1 OMEGM " for the
mechanical radian speed of the first machine. If columns 41-52 are used (i.e., are non-blank), then the TACS
source name of columns 3-8 is arbitrary. Comment cards within BENCHMARK DCNEW-10 explain this,
and the line that begins with "92FIELD" illustrates use.

A limitation has to do with initial conditions : there will be no transfer of values on step zero (for time
zero). This is because the transfer is done within the TACS code of the time-step loop, and this code is not
called for step zero. If the resulting discontinuity at time zero bothers the user, he is free to supply the initial
conditions for the TACS variables manually, of course.

An example of the just-explained declaration is provided by BENCHMARK DCNEW-10, to which


TACS modeling was added solely to receive U.M. variables. It was from this solution that the following
interpretation was drawn :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Send U.M. outputs to any Type-92 TACS sources. |UM TO TACS { Declaration

2A - 106
II. Cards that begin a New Data Case

II-A-89. Ensure that Type - 91 or 93 TACS Sources Are Unique

UNIQUE TACS SWITCH ( UTS ) is the declaration that is required to protect against an ambiguous
definition of a Type-91 or 93 TACS source. Either source depends on a switch, and the user is allowed to
identify this by naming one of its two terminal nodes. Unfortunately, this might not be unique. There are
two terminal nodes, and more than one switch might be connected to the same node. To protect against such
ambiguity of switch identification, make the request :

1 2 3 4 5 6 7 8
123456789012345678 90123456789012345678901234567890123456789012345678901234567890

UNIQUE TACS SWITCH

In the absence of such a request, the first switch (in order of data input) that touches the named node will
be accepted. But for any program dated 28 April 2003 or newer, a new warning message should document
alternatives. For an illustration, see BENCHMARK DCNEW-15 as first explained in the July, 2003,
newsletter.

The 6-character switch name could be used in place of a terminal node name, and this would remove
ambiguity in the specification of an associated switch. This is the safer way to specify a Type-91 or 93 TACS
source. But not many users who assemble ATP data bother to name their switches.

The UNIQUE TACS SWITCH ( UTS ) request, if added to data that produces the just-mentioned
warning, will result in an error message of the form: "KILL = 42. ... the TACS source that is defined by a
switch touching node ... is not unique ... so execution is being halted."

Sample usage can be found in BENCHMARK DC-22. Illustrative interpretation, taken from the solution
to this data set, is as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Halt if TACS Type-91 or 93 source is not unique. |UNIQUE TACS SWITCH { Halt ...

II-A-90. Use Xusheng Chen's 3 - phase Transformer Model

USE SEATTLE XFORMER ( USX ) is the declaration that is required for access to the 3-phase, saturable
transformer model of Prof. Xusheng Chen of Seattle University in Seattle, Washington, USA. Background
can be found in the January, 1993, newsletter. The declaration itself is :

2A - 107
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456789 0123456789012345678901234567890123456789012345678901234567890

USE SEATTLE XFORMER

However, there are plenty of restrictions, a user is warned. First, an input data file name must follow the
preceding request word, separated by a comma (more generally, the free-format data separator symbol). I.e.,
free-format data input is assumed; it is not an option as with most other requests. There is no fixed-format
alternative for the USX request, and that is why the preceding card image did not show the file name.
Another important restriction: the number of coupled windings is fixed at 6 = 3 * 2 where 3 is the number
of phases. That is, a 2-winding transformer can be represented whereas a 3-winding transformer (i.e., with
tertiary windings) can not without simplification (approximation) of the data. In fact, that GPU Stolle Road
transformer of BENCHMARK DC-31 involves 3 windings as shown in the 2nd subcase. Prof. Chen removed
the tertiary to allow use of his model (see the 3rd subcase).

Yet another important restriction is this: no more than one Chen transformer can be used in any particular
data case. Data must begin with a conventional Pi-circuit (see Section IV-B) which establishes the coils of
the single transformer. I.e., the first phase of the Pi-circuit is the first coil of the transformer, etc. More
than just connectivity, the Pi-circuit will be used to represent the transformer during any steady-state
phasor solution to establish initial conditions of the network. For an illustration, see the 3rd subcase of
BENCHMARK DC-31. The following interpretation has been copied from DC31.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Name of disk file for Prof. Chen`s transformer. |USE SEATTLE XFORMER, dc31

Data describing Prof. Chen's transformer is too involved and too specialized to be inserted in this Rule
Book at this time. Any reader who has interest is advised to obtain a copy of Prof. Chen's final report and use
the instructions that are contained therein. The April, 1993, newsletter states: "The 120-page final report
from Prof. Xusheng Chen of Seattle University was reprinted by BPA and made available to the general
public ... BPA mailed copies by air to 14 cooperating contacts (including the 7 foreign user groups and 2
individual developers)."

Simply to give a general idea of data structure, consider the 14 input data cards of the DC-31 illustration.
The following is from DC31CHEN.DAT and it applies to that 115:345 kV GPU Stolle Road transformer :

C (1) SPOS, VR1, VR2


500. 115.00 345.00
C (2) IEXPOS, LEXPOS, XPOS12
.0060 .0030 .12317
C (3) FREQ, FREQPU, V1PU
60.000 1.000 1.000
C (4) EPSPY, EPSZC, R1, R4
.000010 .000100 .001290 .001290

2A - 108
II. Cards that begin a New Data Case

C (5) FIEXP, RFIEXP, R7, CXMER, PAP


C FIVE-SLOPE REPRESENTATION:
1457.32 900.00 333.14 .00000 0.
C (6) Y0(I), I=1,6
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
C (7) S1, S4, S6, S7
1.000 5. 4. 4.
C (8) LEN1, LEN4, LEN6, LEN7
1.000 1000. 1000. 1000.
C (9) P8, P9, P10, DT
1000. 1000. 1000. .0100
C (10) KT, KP, KW
2000 10 1
C (11) BB0, BB1, BB2, BB3, BB4
C FIVE-SLOPE REPRESENTATION:
1.4142 1.5558 1.6404 1.8527 2.2000
C (12) HH0, HH1, HH2, HH3, HH4
8.4853 39.7575 94.3742 638.19 1530.00
C (13) Binary flags to request flux outputs:
1 1 1 1 1 1
C (14) Binary flags to request coil current outputs:
1 1 1 1 1 1
C 3456789012345678901234567890123456789012345678901234567890

An alternative to the preceding Chen transformer model was provided by Prof. Donald Stuehm at North
Dakota State University (NDSU). Any reader who has interest in the Chen model should be aware of this
alternative. Mention is being placed here simply because there is no Rule Book section about the NDSU
model. Why? Because no special new component or data is required. This is the strength of the NDSU
model: it involves an interconnection of existing, old, proven components rather than new modeling. A
summary can be found in the story entitled "3-phase Xformer modeling in Fargo" in the January, 1993,
newsletter. This states: "A Table of Contents and Outline of the final report from NDSU was
disseminated on February 12th as the bulk of a 7597-byte E-mailing of the Fargo list server. Later that same
day, a second server message informed the general public that the oral presentation would be held here in
Portland ... Dr. Donald Stuehm, Professor at NDSU and Principal Investigator for the project, did make
the presentation ... BPA expects to reprint copies of the 100-page final report and mail them to its primary
EMTP contacts (including foreign user groups) when a final copy is available." This was done, and for
several years BPA distributed a free copy to anyone having interest.

Warning : data for any 3-phase transformer model generally is unavailable. The October, 1996,
newsletter contains writing about the problem : "In its simplest form, a transformer of any number of phases
can be modeled by Type-51, 52, etc. branches [Z] = [R] + j w [L] . Any number of these can be
interconnected arbitrarily, and mixed with nonlinearities. A good illustration of this is the NDSU
transformer model of Prof. Don Stuehm ... The challenge was not with ATP, but rather with gathering of
the data. For Prof. Stuehm, graduate student Bruce Mork, and others, this required innovative measurement
on actual distribution transformers in the NDSU high-voltage laboratory. But when might such
measurements be made on high-power devices (i.e., hundreds of MVA rather than KVA)? This would be for

2A - 109
II. Cards that begin a New Data Case

sophisticated, multi-phase, saturable transformer models. If such data is not available, simpler models must
be used, of course." Although only the NDSU model was mentioned, this 1996 comment is applicable to the
Chen transformer model, too. Time has not ameliorated the problem, either. As this paragraph is being
written during November of 2002, data is less available than ever. Whereas in 1994 BPA had hoped to pay
Prof. Stuehm to collaborate on the measurement of high-power BPA devices, this project rapidly became a
casualty of BPA reorganization and cost-cutting. Then a primary advocate, Robert Hasibar, died (1998). The
hope at BPA has disappeared. Manufacturers might be able to provide parameters for either the Chen or the
NDSU model, but such data generally is not available to customers free of charge. As a result, few ATP
users ever will have practical application for either model. A decade later, this seems to be the hard reality
of usage.

II-A-91. Begin TPPLOT Data for Concurrent Plotting

USE TPPLOT BEGIN ( UTB ) is the declaration that introduces TPPLOT data for concurrent plotting.
I.e., screen graphics as the simulation progresses; a rolling (essentially continuous) plot. The request itself
is trivial :
1 2 3 4 5 6 7 8
1234567890123456 7890123456789012345678901234567890123456789012345678901234567890

USE TPPLOT BEGIN

Unfortunately, this feature is installation-dependent because TPPLOT is the interactive plotting program
that runs under the MS-DOS extender Salford DBOS. Any other ATP version should ignore any attempted
use because NOTPPL in STARTUP should have value unity ("no TPPLOT"). For any program version,
if NOTPPL = 1, TPPLOT data will be ignored. The following Illustrates interpretation of data using
DC1.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request that precedes TPPLOT initialization. |USE TPPLOT BEGIN { The
Ignore TPPLOT data since NOTPPL=1 in STARTUP. |PL4 { Access to plot
< < Etc. (remove some 20 lines of interior TPPLOT commands) > >
Ignore TPPLOT data since NOTPPL=1 in STARTUP. |TIME 0 .02 { The first
Marker that follows the last TPPLOT data card. |USE TPPLOT END { The 2nd

That was for rejection of the TPPLOT data. The other ATP alternative is acceptance. If NOTPPL is
given the value zero in STARTUP, interpretation will appear as above except that the uniform interior
interpretation will be changed to :

Next input for TPPLOT (use as dT-loop begins). |

2A - 110
II. Cards that begin a New Data Case

Use of TPPLOT for concurrent plotting is illustrated by BENCHMARK DC-1 (where superposition and
offsetting are used to separate 9 signals) and DC-63 (where WINDOW plotting provides the separation).
As summarized in the October, 1994, newsletter, operation using Salford EMTP is simple enough: "This is
illustrated by DC-1, which has been enhanced to provide for the graphic monitoring of 9 signals ... The
interested reader is advised to simulate in the batch mode: RUNTP DISK DC1. * -R Then sit
back, and watch the graphic action. There will be 10 frames (or pages) of 20 msec each to cover the
total simulation time of 200 msec. Of course, simulation is slowed by the graphics. Whereas with no
plotting the total job time is about 71 seconds on your Editor's 33-MHZ AT&T 486, this rises to about
105 with the rolling plot. A <CR> is required to exit the time-step loop once the simulation is finished.
Completion will be noted by a single diagnostic line at the top of the final graph."

II-A-92. End TPPLOT Data for Concurrent Plotting

USE TPPLOT END ( UTE ) is the declaration that is used to terminate TPPLOT data that is used for
concurrent ATP plotting. See the preceding subsection for a description that includes interpretation of this
bounding line. For completeness, the request is :

1 2 3 4 5 6 7 8
12345678901234 567890123456789012345678901234567890123456789012345678901234567890

USE TPPLOT END

II-A-93. 6 - Character User Identification Overrides USERID of STARTUP

Normally, the STARTUP file will supply the 6-character user identification USERID. But the user may
want to override this for some reason. The most important case is for parallel Monte Carlo simulations,
where different processes are identified in the CENTRAL STATISTICS FILE by different USERID.
Rather than require different STARTUP files, the following special-request word can be used to re-define
USERID :

1 2 3 4 5 6 7 8
12345678901234567890123456 789012 345678901234567890123456789012345678901234567890

USER IDENTIFICATION USERID

A6

2A - 111
II. Cards that begin a New Data Case

Remember that USERID is text, so for the common situation having STARTUP variable KINSEN = 1,
lower case will be maintained only if an "!" is added. Interpretation is illustrated by the solution to
BENCHMARK DC-66, from which "Paris " unfortunately has been clipped on the right :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Override USERID of STARTUP with "Paris ". |USER IDENTIFICATION

II-A-94. User Supplied Switch Times for Monte Carlo ( STATISTICS ) Study

This special request allows the user to specify the random switch closing/opening times of a Monte Carlo
(STATISTICS) simulation himself, rather than have the random number generator of the program determine
such times. To use this feature, one prepares data the same as for regular STATISTICS simulation except for
the following two items :

1) Input a special request card to notify the program of the desired usage. The format is :

1 2 3 4 5 6 7 8
12345678901234567890123456 789012345678901234567890123456789012345678901234567890

USER SUPPLIED SWITCH TIMES

This serves to forewarn the program that switching times are to be read from a disk file that is connected
to I/O unit number LUNIT8 (defined in the STARTUP file). It is the user's responsibility to connect
such a disk file to LUNIT8 using $OPEN before such switching times are needed. Any place before the
blank card ending source cards should always be acceptable. But for clarity, it is recommended that the
$OPEN precede the USER SUPPLIED SWITCH TIMES request.

2) Specify the switch closing times (T-close) and opening times (T-open) for all the switches. This is done
energization by energization in a data file that is to be connected to I/O unit number LUNIT8. Values are
to be keyed using 5E15.0 formats, for as many cards as may be required (more than one card per
energization if there are more than 5 switches in the network). For each energization, data begins with
a single comment card, which is to be followed by switch closing times, which are to be followed by
switch opening times, as follows :

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

C Arbitrary 80-column comment line to separate the energizations visually

2A - 112
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
123456789012345 678901234567890 123456789012345 678901234567890 123456789012345 67890

1st switch 2nd switch 3rd switch 4th switch 5th switch
T-close T-close T-close T-close T-close

E15.0 E15.0 E15.0 E15.0 E15.0

1 2 3 4 5 6 7 8
123456789012345 678901234567890 123456789012345 678901234567890 123456789012345 67890

1st switch 2nd switch 3rd switch 4th switch 5th switch
T-open T-open T-open T-open T-open

E15.0 E15.0 E15.0 E15.0 E15.0

Note that each switch contributes such entries, whether the switch is random or deterministic. Yes, this
involves redundancy, but it was simplest to program. Construct such a set of switching times (closing
and opening) for each energization of the Monte Carlo study, and precede each by an arbitrary 80-column
comment line (upon which the energization number should be keyed for clarity). Then stack such cards
in order. I.e., the first-keyed set will be used for the 1st energization, the 2nd set for the 2nd energization,
etc.

For an example of such usage, consider the second subcase of BENCHMARK DC-24, which connects
the disk file DC24LUNIT8.DAT (for systems permitting such a long name) to I/O unit number LUNIT8.
The first of the subcases of DC-24 involved the rolling of dice to determine the random switch closing times
for each of the three energizations. Of course, the dice are "loaded" or "fixed" so that results are repeatable
(important for test cases). The second subcase of DC-24 bypasses the dice, and instead reads desired
switching times from LUNIT8. Since the file DC24LUNIT8.DAT was constructed using the same
switching times as result from simulation of the first subcase, the two solutions should agree exactly. The
second subcase adds a base case solution for variety, but that difference is unimportant for the subject of
current interest.

There is no interpretation of the card images of switching times that are read from I/O unit number
LUNIT8. However, the special-request card will be interpreted as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Random switching times read from LUNIT8 channel. |USER SUPPLIED SWITCH TIME

Since there is no output of the LUNIT8 records themselves, the alert user will randomly verify several
switching times from the values that precede each energization ("Random switching times for energization
number XX :"). He also should confirm the just-shown request card, since without this, dice will be rolled

2A - 113
II. Cards that begin a New Data Case

and the user's data file would be totally ignored. The user should not be fooled by the standard 1/3 of a page
of Monte Carlo text that precedes the energizations. There also will be the usual explanation of uniform or
Gaussian distributions, of course, and none of this applies to the user's case. Only the user knows what, if
any, distribution applies to his own customized switching times that are defined in the LUNIT8 file.

II-A-95. Protect U. M. Data Against Overlap with 1 - Phase Compensation

VERIFY U.M. COMPENSATION ( VUMC ) will protect the user against the presence of a conflict of
compensation, should the U.M. solution involve compensation rather than prediction (see Chapter IX). Each
U.M. that uses compensation is assumed by ATP to be isolated in its own disconnected subnetwork. In the
same subnetwork, there must not be any single-phase element that uses compensation (e.g., Type-92 ZnO).
Of course, subnetwork identification is dynamic (within the time-step loop, whenever a switch changes
status), so a problem can not be known ahead of time, in general. If protection against an overlap of U.M.
compensation is wanted, the user must request it as follows :

1 2 3 4 5 6 7 8
123456789012345678901234 56789012345678901234567890123456789012345678901234567890

VERIFY U.M. COMPENSATION

This protection first was explained in the January, 2000, newsletter, which states that it became effective
on 23 May 1999. Should overlapping compensation be detected, a KILL = 9 error termination should
result as demonstrated by the 6th subcase of BENCHMARK DCNEW-16. Interpretation of the VUMC
declaration is taken from the solution DCN16.LIS :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Check for U.M. compensation overlap with List 9. |VERIFY U.M. COMPENSATION

II-A-96. Scale Voltage Sources by Arbitrary Factor ( Typically 1K )

VOLTAGE SOURCES IN KV ( VSIK ) is the request to have all amplitudes of voltage sources of the
electric network scaled by an arbitrary positive factor FACTVI. The format is :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

VOLTAGE SOURCES IN KV FACTVI

E8.0

2A - 114
II. Cards that begin a New Data Case

FACTVI of columns 33-40 can be left blank if the user wants a factor of 1000 (the default value). I.e.,
as illustrated in the 4th subcase of DC-37, the user makes any voltage source amplitude smaller by this factor.
No question, voltages in kV are more convenient numbers than voltages in volts. With care (beware of
nonlinear elements), ATP will supply the implied factor of 1000. Output variables will be in kV and kA (the
latter being for currents). Compare the solution of the 4th subcase of DC-37 with the 1st. Better yet, modify
the data of the 4th in two ways : 1) remove the VSIK declaration; and 2) multiply the source amplitude by
1000. Then simulate this modified data and compare the resulting .LIS file with the standard solution to the
4th subcase.

FACTVI shown here is the same variable that can be found in STARTUP. So, if the user really desires
it, his decision to scale can be moved from data to the environment of execution. Yet, this is largely hidden,
and is dangerous, so is not recommended as a general policy. At least a VSIK declaration is visible in the
data being simulated. Of course, STARTUP will be loaded before a data case is read, so any VSIK
declaration in data will override any value that has been assigned in STARTUP. Value zero in STARTUP
indicates that there is to be no scaling. To cancel previous scaling, a VSIK declaration should carry special
value minus one (remember zero will not do the job since it is a request for the default factor of kilo).

Any scaling of program variables, including VSIK of this subsection, is not recommended by program
developers. Scaling is tricky, and ATP use poses enough challenges without this added danger. On the other
hand, some engineers want to deal in kV and kA and MVA instead of in volts, amperes, and watts. Tools of
scaling are made available to satisfy this demand. For a discussion of VSIK, look in the October, 1997,
newsletter.

II-A-97. Calculation of [R] and [L] to Represent a 1 - Phase Transformer

The calculation of [R] and [L] matrices to represent a transformer generally requires the use of a separate,
self-contained program such as XFORMER (Section XIX-A) or BCTRAN (Section XIX-C). The first of
these is the older, and it is limited to single-phase transformers. The request for it is trivial :

1 2 3 4 5 6 7 8
1234567 8901234567890123456789012345678901234567890123456789012345678901234567890

XFORMER

For an example of such usage, see BENCHMARK DC-15. The interpretation extracted from the solution
DC15.LIS appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request for transformer [R] +jw[L] computation. |XFORMER

2A - 115
II. Cards that begin a New Data Case

An alternative to XFORMER is the BCTRAN program. A transfer to this once was possible from inside
of XFORMER using a special parameter value 44. Traces of this can be found on a comment card near the
top of DCNEW-8, which explains that this service "is no longer valid beginning 10 Oct 1987." If the user
wants BCTRAN, he is advised to use the request ACCESS MODULE BCTRAN as described in an earlier
subsection. For an example of such usage, see BENCHMARK DCNEW-8.

II-A-98. Threshold To Determine Whether Type 96 Has Phasor Excitation

ZERO FLUX TOLERANCE ( ZFT ) serves to define the zero or near-zero tolerance EPFLUX that is
used to determine whether or not a Type-96 hysteretic inductor of Section V-D is excited during the
steady-state phasor solution. EPFLUX is a flux threshold. It is important because user-supplied residual
flux will be used if and only if the associated device is not excited. The request to redefine EPFLUX has the
following format :

1 2 3 4 5 6 7 8
12345678901234567890123456789012 34567890 1234567890123456789012345678901234567890

ZERO FLUX TOLERANCE EPFLUX

E8.0

In the absence of a ZFT declaration, EPFLUX will be given the value EPSILN, which typically is given
the value 1.E-8 in STARTUP. In turn, this starting value might be overridden by a value keyed on the
floating-point miscellaneous data card (Sect. II-B-1). Unless the user has a ZFT declaration, this is the value
that will be used when it is time to process hysteretic inductors following the phasor solution. This was the
change beginning in March of 2001. Prior to this date, an exact zero was required for use of the residual flux
as explained in the October, 2001, newsletter.

Use is illustrated in the 3rd subcase of BENCHMARK DC-33. In fact, the answer did not change as a
result of the ZFT addition because the tolerance being defined is equal to the default value. Interpretation
logically should confirm the value of EPFLUX , but it does not :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Max phasor flux that avoids use of residual flux |ZERO FLUX TOLERANCE

II-A-99. Parameters to Control the Newton Iteration of ZnO Arresters

Zinc Oxide (ZnO) surge arresters require branch cards as described in Section V-E. Yet no controls on the
Newton iteration that is used to solve the associated nonlinear equations will be seen as part of such data.
Instead, such controls are first defined in the STARTUP file. They then can be redefined by a special-
request card having this format :

2A - 116
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
1234567890123456 78901234 56789012 34567890 12345678 90123456 78901234 5678901234567890

ZINC OXIDE MAXZNO EPSZNO EPWARN EPSTOP ZLIM(1) ZLIM(2)

I8 E8.0 E8.0 E8.0 E8.0 E8.0

MAXZNO (cols. 17-24) is the maximum number of Newton iterations that will be allowed for the solution
of the surge arresters in each subnetwork. The Newton iteration will go this long unless
tolerance EPSZNO is attained first.

EPSZNO (cols. 25-32) is the convergence tolerance for the Newton iteration. All voltage corrections of
the coupled elements must be smaller than this in absolute value, for the equations to be judged
to be solved. A blank (zero) value is taken as a request for the value EPSILN * Vref, where
EPSILN is the familiar floating-point miscellaneous data parameter of Sect. II-B-1 (1.E-8 for
64-bit program versions in common use).

EPWARN (cols. 33-40) is the voltage convergence tolerance for the non-fatal warning message about a
"sloppy solution." A blank (zero) data field is taken as a request for the value Vref / 1000.
This represents one tenth of one percent of rated voltage, then, which is about the limit of
graphical resolution.
EPSTOP (cols. 41-48) is the voltage convergence tolerance for a fatal error stop complaining about a
non-converged iteration. A blank (zero) data field is taken as a request for the value Vref / 10
which is 10% of rated voltage. The current error in such a case could be astronomical,
remember, due to the extreme nonlinearity ( e.g., 1.1 ** 26 = 11.9 ) .

ZLIM(1) (cols. 49-56) is the maximum per unit (based on the reference voltage VREF of Section V-E
usage) voltage correction at each iteration. A blank or zero is given the default value of unity.

ZLIM(2) (cols. 57-64) is the maximum per unit (based on the reference voltage VREF of Section V-E
usage) arrester voltage that will be permitted during the iteration. A blank or zero is changed
to the default value of 1.5

Instead of this fixed-column specification, it may be more convenient to employ free-format input, with
commas separating the data fields in question. Just be careful to use the right number of them (accurate
counting is a disadvantage of free-format data that involves several parameters).

The interpretation of this request card confirms only the first four parameters on the card. This is
illustrated by the following line from the solution to BENCHMARK DC-38 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
ZnO const. 20 1.000E-08 1.000E-03 1.000E-01 |ZO, 20, , , , 0.9,,

2A - 117
II. Cards that begin a New Data Case

II-A-100. Request to Fit Exponentials to ZnO Data Points

The calculation of parameters to represent ZnO surge arresters involves a separate, self-contained
program ARRDAT as described in Section XIX-I. To transfer to this code, the following special-request
card is used :

1 2 3 4 5 6 7 8
1234567890 1234567890123456789012345678901234567890123456789012345678901234567890

ZNO FITTER

For an example of such usage, see BENCHMARK DC-39. The interpretation extracted from this
solution appears as follows :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Request to generate Type-92 ZnO branch cards. |ZNO FITTER

II-B. Miscellaneous Data Cards , Floating - Point and Integer

For simulation (but not for access to a supporting program), two types of miscellaneous data cards are
required : 1) floating-point; and 2) integer. Both card types will be explained in the remainder of this section.
Optional extensions to these miscellaneous data cards also exist, but they will be delayed until Section II-C.

II-B-1. Floating - Point Miscellaneous Data Card

The first non-comment card that is not recognized as any of the preceding special-request cards of Section
II-A will be taken to be the floating-point miscellaneous data card, which has the following format :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456789012345678901234567890

DELTAT TMAX XOPT COPT EPSILN TOLMAT

E8.0 E8.0 E8.0 E8.0 E8.0 E8.0

DELTAT (cols. 1-8) is the size of the time step of the numerical integration, in seconds. Signals will be

2B - 1
II. Cards that begin a New Data Case

calculated at discrete instants of time that have this time separation. Taking into account the
Nyquist criterion, the time step preferably should be ½ ... 1/10 of the smallest time constant of
the network that is to be simulated. If nonlinear elements are involved, an even smaller time
step might be advisable. Where practical, the trapezoidal rule of integration is used. For
brevity, DELTAT often will be abbreviated as dT.

TMAX (cols. 9-16) is the ending time of the simulation, in seconds. Except for START AGAIN
data cases (see Sect. II-A), time always will begin at zero. For simulation, time will be
incremented in steps of size DELTAT until TMAX has been reached. However, a non-positive
TMAX means that there will be no simulation. In simplest form, this would be a request to
halt execution after the phasor solution (possibly involving a load flow to satisfy power
constraints). Or, there could be a loop over frequency — some type of frequency scan.

XOPT (cols. 17-24) indicates whether it is inductance in millihenries or inductive reactance in ohms
that is to be keyed on linear branch cards. There are two distinct cases :
1) if XOPT = 0, inductances are to be keyed in millihenries ; and
2) if XOPT > 0, then values are to be in ohms at frequency XOPT (in Hertz). In either
case, remember that this choice on the miscellaneous data card can be changed at any point of
the data input by means of the first parameter of a $UNITS card (Sect. I-D).

COPT (cols. 25-32) indicates whether it is capacitance in microfarads or capacitive reactance in


micromhos that is to be keyed on linear branch cards. There are two distinct cases :
1) if COPT = 0, capacitances are to be keyed in microfarads; and
2) if COPT > 0, then values are to be in micromhos at frequency COPT (in Hertz). In
either case, remember that this choice on the miscellaneous data card can be changed at any
point of the data input by means of the second parameter of a $UNITS card.

EPSILN (cols. 33-40) is the near-zero tolerance that is used to test singularity of the real coefficient
matrix within the time-step loop. A blank or zero value means that the value of the STARTUP
file will be used. For 64-bit (REAL*8) computation that is common today, a default value of
1.E-8 is typical. Historically, work began using 36-bit computation, for which a default value
of 1.E-5 was typical. Since 64 bits is equivalent to about 16 decimal digits, EPSILN can be
made smaller than 1.E-8 (1.E-10 or 1.E-11 usually will not confuse the intelligent user).

TOLMAT (cols. 41-48) is the near-zero tolerance that is used to test singularity of the complex
admittance matrix [Y] of the steady-state, phasor solution. A non-positive value will be taken
as a request for value EPSILN (see preceding parameter). Note that unlike EPSILN,
TOLMAT is not defined in the STARTUP file, however.

If scientific notation is used for any of the preceding parameters, the value must be right-adjusted within its
data field. Otherwise, the following error message should result : "KILL = 97. An E-field number that is not
right-adjusted within its data field has been detected ..."

2B - 2
II. Cards that begin a New Data Case

II-B-2. Integer Miscellaneous Data Card

The just-described floating-point miscellaneous data card is to be followed by an integer miscellaneous


data card bearing the following information :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

IOUT IPLOT IDOUBL KSSOUT MAXOUT IPUN MEMSAV ICAT NENERG IPRSUP

I8 I8 I8 I8 I8 I8 I8 I8 I8 I8

IOUT (cols. 1-8) gives the frequency of LUNIT6 (printed) output within the time-step loop. E.g.,
a value of 3 means that every 3rd time step will be printed. A value of zero or blank is changed
to unity. For a frequency scan, it is output within the loop over frequencies that is controlled,
rather than the loop over time, of course. Finally, IOUT may be modified up to 5 times during
the simulation using either IPUN = -1 (see explanation below) or the equivalent CHANGE
PRINTOUT FREQUENCY of Section II-A.

IPLOT (cols. 9-16) gives the frequency for saving solution points of the time-step loop for purposes of
later batch-mode plotting and the associated .PL4 disk file. E.g., a value of 3 means that every
3rd time step will be saved. A value of zero or blank is changed to unity, and any even value is
increased by one to make it odd. An even plotting frequency is not allowed because of the
likelihood of deception: a saw-toothed oscillation would go unnoticed. Yet, the determined
user can prevent this by insisting in the form of an ALLOW EVEN PLOT FREQUENCY
declaration (see Section II-A). If ATP makes the adjustment to IPLOT, it will issue the
following 1-line reminder : " >>>> Even plot output frequency IPLOT is made odd by
adding one ..." A final detail is this : IPLOT may be modified up to 5 times during the
simulation using CHANGE PLOT FREQUENCY of Section II-A.

IDOUBL (cols. 17-24) controls the LUNIT6 output of a table showing network connectivity. A value
of zero or blank will suppress such output, whereas unity will produce it. For each node there
is shown a list of other nodes to which there are physical connections. Mutual coupling
between phases of multiphase elements is ignored in this output, as is the capacitance to
ground of Pi-circuits and distributed-parameter lines and cables. The name "TERRA " (as read
from the STARTUP file) is used for ground instead of six blank characters, to improve
readability. Ordering of the rows corresponds to order of the input data — except for the final
row, which applies to ground ( node number one, which is labeled "TERRA " ) .

KSSOUT (cols. 25-32) controls printout of the steady-state phasor solution, if any. There are 3 basic
types of outputs: branch flows, switch flows, and nodal injections. These can be controlled by
the value of KSSOUT as follows :

2B - 3
II. Cards that begin a New Data Case

0 ! No steady-state solution printout.


1 ! Print the complete steady-state solution: branch flows, switch flows, and source
injections.
2 ! Print switch flows and source injections, but not branch flows.
3 ! Print branch flows requested by column 80 punches, switch flows, and source
injections.

MAXOUT (cols. 33-40) controls printout of extrema at the completion of simulation. Keying a zero or
blank will suppress such computation and output, whereas the value unity will produce it. To
exclude an initial time prior to the start of extrema monitoring, use BEGIN PEAK VALUE
SEARCH in Section II-A.

IPUN (cols. 41-48) is used to request the input of an extra, following card to vary the printout
frequency. Use a value of "-1" to request such an extra card, or zero or blank if no such extra
card is wanted. Refer to Section II-C-4 for details of the following card. Alternatively, use
CHANGE PRINTOUT FREQUENCY of Section II-A. This has the same effect.

MEMSAV (cols. 49-56) controls the dumping of ATP memory onto disk at the end of the simulation.
This would be for subsequent use of a START AGAIN request of Section II-A. Key "1" if
such preservation of memory is desired, or zero or blank if it is not. For the single,
deterministic simulation, the table saving is done at time TMAX (the floating-point
miscellaneous data parameter). For Monte Carlo (STATISTICS) studies, tables will be saved
upon completion of energization number NENERG (the integer miscellaneous data
parameter). Memory preservation is a powerful and useful tool of the production user.
However, be warned that success of reuse generally depends on the ATP version being used.
In general, do not attempt to awaken a hibernating simulation using a different ATP version.

BENCHMARK DC-32 is the simplest illustration of MEMSAV = 1. Using parallel naming


of output files (see explanation of ICAT), tables automatically will be given the name
dc32.bin where the .bin comes from STARTUP. This same name then will appear on a
$OPEN for LUNIT2 when the simulation is to be awakened (see DC-49). So, DC-32 and
DC-49 are a matched pair. They illustrate a single deterministic simulation. For such usage
with a Monte Carlo study, see BENCHMARK DC-24 and DC-40.

Monte Carlo studies can be more complicated. If some study is to be simulated in two or more
independent pieces that are later to be combined, then for the 2nd or later portion (each
associated with a LOAD MORE SHOTS declaration of the execution that combines the
results), the value "2" is to be keyed rather than "1". The difference is great. Unity results
in the dumping of all tables (including LTLABL words of LABCOM), whereas "2" will
produce an abbreviated file consisting of only switching times and extrema. An abbreviated
file by itself can not be awakened, but it can be appended to a complete file by means of the
LOAD MORE SHOTS declaration. Of course, it is important to have a different seed for the
random number generator of such simulations that are later to be combined. Otherwise, the
user would just be repeating the same energizations (a waste of computation). For an

2B - 4
II. Cards that begin a New Data Case

illustration involving Monte Carlo simulations, see BENCHMARK DC-24 and DC-40. The
3rd subcase uses MEMSAV = 2 and has more-flexible FORMATTED output of the
switching times and extrema on unit LUNIT9.

ICAT (cols. 57-64) is to be left blank (or zero) if there is to be no permanent saving of raw plot data
points that might be written to I/O channel number LUNIT4 during the simulation. But should
such permanent saving be desired, then a positive value is required :
1 ! Save the points, but ignore any batch-mode plot cards that might be present ;
2 ! Save the points, and also honor any batch-mode plot cards that might be present.
The disk file in question might be named internally using the date and time of day when the
simulation began. Date and time are part of the plot file header, too. However, parallel
naming of output files became the generally-preferred alternative around 1990. This is
requested in STARTUP by KTRPL4 < 0. For years the value KTRPL4 = -6666 has been
used to place the .PL4 file on the hard disk in parallel with the .LIS file. Of course, file type
.PL4 itself comes from STARTUP. See Section I-E for more details about KTRPL4 use.

File names based on date and time involve structure that depends on the operating system.
This is in the code of installation-dependent SUBROUTINE SYSDEP, over which the user
has no control. As of year 2002, MS-DOS or MS Windows-based alternatives all use the
MS-DOS structure YMDDHHMM. Here Y is the final decimal year digit (e.g., "2" indicates
2002), M is a hexadecimal month digit (so October is A, November is B, and December is C),
DD is the day within the month as 2 decimal digits (01 through 31), HH is the hour within
the day as 2 decimal digits (00 through 23), and MM is the minute within the hour as 2
decimal digits (00 through 59). This is the best that can be done within the DOS limit of 8
bytes. Other operating systems such as VAX/VMS use longer names that are more precise.
The VMS structure is PLOTYYMMDDHHMMSS where 6 decimal digits of the date
( YY-MM-DD ) are followed by 6 decimal digits of the time ( HH:MM:SS ). Beware of
KOMPAR > 1 in STARTUP, however, as this will change to the most famous date in
history: the World War I armistice. WW I ended at the 11th hour of the 11th day of the 11th
month of 1918. 18-11-11 is the date and 11:00:00 is the time, so MS-DOS uses
8B111100. Beware of the accumulation of such files. If already in use, the right-most digit
will be incremented by 1 until a free name is found. Erasure of all 8B11*.PL4 files from time
to time is advised.

NENERG (cols. 65-72) is to be left blank (or zero) for single, deterministic simulations. But for
STATISTICS or SYSTEMATIC data cases, this is to be the total number of energizations
(exclusive of any possible, extra, base-case solution). Append a minus sign if SYSTEMATIC
usage is involved --- a flag to distinguish such a case from Monte Carlo studies. Also,
remember that an extra STATISTICS or SYSTEMATIC miscellaneous data card (Section II-
C-1) must follow.

IPRSUP (cols. 73-80) is normally left blank or zero. If keyed as a positive value, this is the diagnostic
printout control that is to be applied to all UTPF overlays. The same result can be obtained via
parameter IPRSUP in the STARTUP file. But since the user normally will want to selectively
control such output overlay by overlay, he should instead use the DIAGNOSTIC special-

2B - 5
II. Cards that begin a New Data Case

request card (see section II-A).

Each of the preceding integers that is not blank should be right-adjusted within its data field. ATP will
check for this, and will halt with the following error message if a violation is found : "KILL = 98. An I-field
number that is not right-adjusted within its data field has been detected on the last-read data card. Column
... begins a field of width 8, but column ... contains either an illegal character or a blank that is not on the
left. When all decimal digits are not packed on the right, an integer will be larger than expected by 10, or
100, etc." While the unwanted scaling by a power of 10 no longer should be true (see discussion of BN in the
January, 1997, newsletter), the error trap has been retained for historical reasons (compatibility with old data).

Interpretation of the just-described floating-point and integer miscellaneous data cards confirms only
the first three floating-point parameters, but all integer parameters. As an illustration, consider the two
associated output lines of BENCHMARK DC-4 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Misc. data. 1.000E-02 6.000E+00 0.000E+00 | .010 6.0
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1

II-C. Extensions to Miscellaneous Data Cards

Two of the just-described integer miscellaneous data parameters (see section II-B) can require the
input of additional, supplemental extensions that are to immediately follow the integer miscellaneous data
card. If none or only one is used, there is no question of ordering. But if both extensions are required, then
these must be appended in the order of presentation, with the STATISTICS / SYSTEMATIC card (Section
II-C-1 to II-C-3) preceding the card that controls the output frequency (Section II-C-4).

II-C-1. STATISTICS Miscellaneous Data Card for Monte Carlo Simulation

If and only if NENERG (cols. 65-72) of the integer miscellaneous data card is positive (i.e. flag for
STATISTICS studies, see section VI-B.1), then the following additional card, called the STATISTICS
miscellaneous data card, is required :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 7890123456789012 34567890

ISW ITEST IDIST IMAX IDICE KSTOUT KNTRPT NSEED

I8 I8 I8 I8 I8 I8 I8 I8

2C - 1
II. Cards that begin a New Data Case

ISW (cols. 1-8) determines whether there is to be printed output of all the variable switch
closing/opening times, for each of the NENERG energizations. Zero will suppress such
output, whereas unity will provide it. For the special case where "4444" is keyed in columns 5-
8, refer to section II-C-3 which describes testing of the random number generator.

ITEST (cols. 9-16) controls whether an extra random delay, calculated using the parameters
DEGMIN, DEGMAX, and STATFR (see STARTUP file), is to be added to randomly-
generated switching times for each energization. A zero or blank means that there will be
such an addition for all random switches; the value "1" means that there will be no such
addition for any random switch; the value "2" means that such an addition will be made only
to random closing (not opening) times; and a value "3" means that such an addition will be
made only to random opening (not closing) times. For details of these different switch types,
see Section VI-B.

IDIST (cols. 17-24) chooses between the two types of dice (random distributions) that are available.
A zero or blank value means that all randomly-generated switching times are to have Gaussian
(normal) distribution, whereas a value of unity means that a uniform distribution is to be used
instead. Note that this is not applicable to the extra random delay (see preceding parameter
ITEST), which is assumed always to involve a uniform distribution.

IMAX (cols. 25-32) will normally be left blank or keyed as zero. It is to be keyed with "1" if the user
wants additional printout of deterministic extrema for each energization. The extrema in
question are those normally seen at the end of a conventional, single simulation that has integer
miscellaneous data parameter MAXOUT equal to unity. Such output has maxima, times of
maxima, minima, and times of minima --- all extra output (an addition to, rather than a
replacement for, the normal output for each energization).

IDICE (cols. 33-40) controls whether or not standard random numbers (that vary neither with time nor
with manufacturer of the computer) are to be used. The value "1" will give such standard
random numbers, whereas a blank or zero will result in the use of computer-dependent dice, if
such separate dice have been provided. Specifics will depend upon the installation-dependent
logic of ENTRY RANDNZ of RFUNL1. For reasons of repeatability and universality,
standard test cases such as BENCHMARK DC-24, DC-40, DC-48, and DC-50 all use
IDICE = 1.

Reality of year 2002 : all surviving versions of ATP use the same 32-bit overflow to generate
random numbers. The 100 standard random numbers, once stored separately, no longer exist.
No program version uses a random number generator that comes with the compiler, either. All
use the same universal, 32-bit FORTRAN as copied from DEC VAX. DEC stated that this
was described in "The Art of Computer Programming," vol. 2, by Donald E. Knuth,
Addison-Wesley, 1981.

2C - 2
II. Cards that begin a New Data Case

KSTOUT (cols. 41-48) controls whether or not each energization is to have added printout that normally
is associated only with a conventional, single simulation. Included are output of the time-step
loop, and variable extrema (if integer miscellaneous data parameter MAXOUT is positive).
The scalar extrema of PEAK VOLTAGE MONITOR also will be honored, if it has been
declared. Such extra output is in addition to the regular, minimum program output of
STATISTICS / SYSTEMATIC simulations. Since any such special output is repeated for
each energization, the user should be careful in its use. To obtain such extra output for each
energization, key a zero explicitly. A blank or minus one ("-1") will suppress such extra
output.

KNTRPT (cols. 49-56) is normally left blank or zero. If keyed with a nonzero integer, it is taken to be
the energization number KNT that is to be repeated (mnemonically, "count repeat"). This
only has meaning for START AGAIN usage, where execution begins with the Monte Carlo
history (including energization number KNTRPT) already stored in memory. In case two or
more sets of Monte Carlo history have been loaded (the first by START AGAIN and the
second or later set by LOAD MORE SHOTS), numbering of the energizations is cumulative,
in the order the files were loaded. Of course, KNTRPT must be positive and not larger than
the total number of loaded energizations. Following the TIME STEP LOOP request, the
user will see the heading of variable names followed by time-step loop printout (assuming he
requested this with KSTOUT = 0). Following such output, the memory of Monte Carlo usage
is erased, so batch-mode plotting will complete the data case. For an illustration, see the 4th
data subcase of BENCHMARK DC-40.

NSEED (cols. 73-80) controls whether or not a Monte Carlo simulation is repeatable, should the
simulation ever be repeated using the same computer. A blank or zero means that every
solution will be different (i.e., no repeatability), whereas unity will result in identical answers
every time the data case is simulated using the computer of interest. At issue is the seed of the
random number generating algorithm. Normally (for blank or zero in cols. 73-80), this
depends on the time of day as well as the process time. But for repeatability (value unity), a
constant seed is used.

Monte Carlo studies are important enough, and tricky enough, so that each should be simulated
separately using a separate disk file. The stacking of two or more data cases, of which at least one is a Monte
Carlo study, is not recommended. But for those who believe in living dangerously by stacking two or more
Monte Carlo studies within a single disk file, remember to use $STARTUP at the beginning of the second or
later of these. This is needed to reinitialize the critical table-dumping control TENERG. The 2nd subcase of
BENCHMARK DC-24 serves as an example in this regard.

Interpretation of the previously-described STATISTICS miscellaneous data card confirms only the
first six parameters. As an illustration, consider the associated output of BENCHMARK DC-24 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Statistics data. 1 1 0 0 1 0 | 1 1 0

2C - 3
II. Cards that begin a New Data Case

II-C-2. SYSTEMATIC Miscellaneous Data Card

If and only if NENERG (cols. 65-72) of the integer miscellaneous data card is negative (i.e. flag for
SYSTEMATIC studies, see section VI-B-2), then the following additional card, called the SYSTEMATIC
miscellaneous data card, is required :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456789012345678901234567890

ISW ITEST IMAX KSTOUT

I8 I8 I8 I8

ISW (cols. 1-8) same as for preceding STATISTICS use.

ITEST (cols. 9-16) controls whether switch times, to be specified in columns 15-24 of a
SYSTEMATIC switch card, are to be Tbeg or Tmid (see Section VI-B-2). Use blank or zero if
Tmid is desired, or unity if Tbeg is preferred.
IMAX (cols. 25-32) same as for preceding STATISTICS use.

KSTOUT (cols. 41-48) same as for preceding STATISTICS use.

Interpretation of the just-described SYSTEMATIC miscellaneous data card is in fact identical to that for
STATISTICS. As an illustration, consider the associated output of BENCHMARK DC-16 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Statistics data. 1 1 0 0 0 0 | 1 1 { I

II-C-3. STATISTICS Miscellaneous Data Card for Dice Testing

It is possible to test a random number generator without actually performing the simulations that
normally would depend upon the random number generator. If and only if NENERG (cols. 65-72) of the
integer miscellaneous data card is positive, and if cols. 5-8 of the STATISTICS miscellaneous data card (
i.e., variable ISW) are keyed with "4444", then only a test of random numbers is desired. For such usage, the
extra card following the integer miscellaneous data card has the following format, as a simpler version of the
usual card of Section II-C-1 :

2C - 4
II. Cards that begin a New Data Case

1 2 3 4 5 6 7 8
12345678 90123456 7890123456789012 34567890 12345678901234567890123456789012 34567890

ISW ITEST IDICE NSEED

4444 I8 I8 I8

ISW (cols. 1-8) the "4444" is a request for dice testing.

ITEST (cols. 9-16) gives the number of points per standard deviation of the tabulations that are to
result. A zero is given the default value of 2.0 (meaning 8 entries on either side of the mean,
if SIGMAX = 4.0 in the STARTUP file ) .

IDICE (cols. 33-40) the same as for Section II-C-1 above.

NSEED (cols. 73-80) the same as for Section II-C-1 above.

Concerning the rest of the data case, it should be legal through the blank card ending switch cards.
Only the switch cards are actually used, so branch cards are arbitary as long as no error results before the
switch cards are read. Finally, there should be a BEGIN NEW DATA CASE card at the bottom, since this
will be searched for just as would be the case following an ATP error message.

Switching times will be generated for each of the NENERG imaginary energizations (in fact, program
control never leaves overlay 12). There then will be a tabulation for each pair of Gaussian switches. Recall
that if the closing time for each of two switches has Gaussian (normal) distribution, then so does the difference
of these two. The mean of the difference will be the difference of the means, whereas the variance of the
difference will be the sum of the two variances. For M Gaussian switches, there will be M * (M - 1) / 2 such
pairs of switches. For each pair, there will be one tabulated output showing both the experimental and the
theoretical cumulative distribution functions. See BENCHMARK DC-50 for an example.

The just-described tabulation only applies to two switches having Gaussian switching times. If one of
the switches is deterministic, or if one is random but uniformly-distributed, then the tabulation will be
skipped.

There is no new interpretation for the miscellaneous data card of dice testing. Refer to the preceding
Sections II-C-1 or II-C-2 for illustrations of interpretation.

II-C-4. Change of Frequency of the Time - Step Loop Printout

The frequency of LUNIT6 printout within the time-step loop is nominally controlled by integer
miscellaneous data parameter IOUT of Section II-B. But this frequency can be varied as the simulation time

2C - 5
II. Cards that begin a New Data Case

advances. One way already has been documented in Section II-A : a CHANGE PRINTOUT FREQUENCY
request. Another way is to key integer miscellaneous data parameter IPUN (cols. 41-48) as "-1", and append
the following card :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 56789012 34567890

KCHG MULT KCHG MULT KCHG MULT KCHG MULT KCHG MULT

I8 I8 I8 I8 I8 I8 I8 I8 I8 I8

1st change 2nd change 3rd change 4th change 5th change

This card specifies at which time steps the printout frequency is to be changed, and to what values the
frequency is to be changed. Up to five pairs of these (KCHG, MULT) controls are permitted. The meaning
is as follows :

KCHG(K) The time step number at which the K-th variation of printout frequency is to begin. Printout
for this particular step number is always provided, as a beginning to the new frequency of
output.

MULT(K) The modified value of IOUT (see 2nd miscellaneous data card) that takes effect at time step
KCHG(K).

If a minus sign is appended to MULT(K), then at the corresponding step number KCHG(K), the
diagnostic printout status will be changed. That is, there will be a switching of the two sets of diagnostic
printout controls :
1) IPRSOV(16:19) of a DIAGNOSTIC request (see Section II-A) ;
2) IPR(1:4) of an ALTERNATE DIAGNOSTIC PRINTOUT request (see Section II-A).

If there is no minus sign, there will be no change in status of the diagnostic printout at the associated
time step. Any minus signs are merely extra flags. The absolute value of MULT still controls the production
(non-diagnostic) printout frequency as originally described.

Interpretation of the just-described printout control card confirms only the first three pairs of numbers.
As an illustration, consider the associated output of BENCHMARK DC-16 :

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Printout : 5 5 20 20 0 0 | 5 5 20

2C - 6
III. TACS - 1

III. TACS DATA CARDS FOR CONTROL SYSTEM MODELING

TACS is an acronym derived from the name "Transient Analysis of Control Systems." In very
general terms, it directly provides the user with modeling that normally is associated with an analog
computer. The theory was first described in Ref. 12. TACS data is optional for the EMTP. If it
appears, it immediately precedes the first branch card of section IV.

The beginning of TACS data is declared to the EMTP by one of the following two possible
special-request records:

1 2 3 4 5 6 7 8
1234567890 12345678 90 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890

Choice 1: TACS STAND ALONE


Choice 2: TACS HYBRID
I2

Choice 1. "TACS STAND ALONE" is to be used if there is no electric network. For such a
degenerate problem, this declaration is to be followed by TACS data, which is to be followed by
batch-mode plot cards, thereby completing the data case.

Choice 2. "TACS HYBRID" is to be used if an electric network does exist. For such a general
case, this declaration is to be followed by TACS data, which is to be followed by the usual non-TACS
data beginning with the first electric-network branch card.

One additional option can be requested in exceptional cases using these same declaration
cards. Normally, the I2 data field of columns 19-20 will be left blank, meaning that default TACS
ordering of Section III-C-2 will be used. But two other alternative requests to be keyed in columns 19-
20 are possible:
1 ö Solve using user-supplied (input) ordering;
–1 ö Solve using the reverse of input ordering.

Interpretation of the two just-described request cards for TACS carry only text. As
illustrations, consider the associated one output line from each of BENCHMARK DC-18 and DC-19:

--------------------------------------------------+-------------------------
Descriptive interpretation of input data cards. | Input data card images
0 1 2
0123456789012345678901234
--------------------------------------------------+-------------------------
DC-18 output ...
No electric network. But TACS data follows ... |TACS STAND ALONE
DC-19 output ...
Electric network, too. But TACS data first ... |TACS HYBRID
2 - III. TACS

III-A. Purpose of TACS

As already mentioned, TACS function like an analog computer. But it adds to this algebraic
and logical processing, so it really is more general. It is particularly useful to the EMTP because
signals can be passed between the electric network and TACS, with the result functioning like a hybrid
computer. In this mode, TACS allows the simulation of hvdc converters and static var controllers, as
well as control circuitry associated with rotating machinery.

III-B. Summary of TACS capabilities

The TACS program is used to solve the differential and algebraic equations associated with an
arbitrary interconnection of the following elements:

- transfer functions in "s", of any order;

OUTPUT = GAIN @ 3 inputs @ G(s)

- order-zero blocks;

OUTPUT = GAIN @ 3 inputs

- limiters (saturation), static or dynamic (with or without windup), with constant or variable limit
values, superimposed on the transfer functions and order-zero blocks;

- input signal sources, such as level, pulse and step functions, sinusoidal signals, any node voltage,
switch current or switch status as measured in the electrical network, and others;

- supplemental algebraic and logical variables, using the standard algebraic and logical operators and
all functions of the FORTRAN library;

- special-application devices, such as frequency meter, relay, level-trigger, transport delay, pulse
delay, digitizer, point-by-point user-defined non-linearity, time-sequenced switch, controlled
integrator, simple derivative, input-IF component, signal selector, sample and track, instantaneous
min/max, min/max tracking, accumulator and counter.

In addition, any signal among these elements can be passed to the electrical network as a voltage or
current source, as time-varying resistance, or as a signal controlling the operation of a switch, valve or
diode.

Program output (printed and/or plotted) consists of values of the block-output signals as a function of
time, for those variables requested by the user.

Both global allocation and internal distribution of the number of memory cells required for the storage
of the TACS arrays are variable and user-defined. (See Section I-G, List 19)
III. TACS - 3

III-C. How to simulate what

While designing TACS, all efforts have been made to permit the translation of a case, from its
physical description to a series of data cards, to be as straightforward as possible. (Any deviation from
this principle should be promptly pointed out to Program Maintenance.)

Here are the basic rules which must be followed when the user is preparing the data for
simulation.

Requirement 1

The control circuitry whose behavior is to be simulated must be first described as a block
diagram, showing the interconnections (with sign and direction) between all blocks and signal
sources. Recognizable blocks are, as detailed elsewhere in this Section, transfer functions,
order-zero blocks, limiters, algebraic functions and logical operators, and a series of other
special-purpose devices.

This type of description (blocks and arrows) has been chosen because it is very close to the
form in which control systems are generally represented for purposes of design and analysis.

Requirement 2

Each block and signal source must then be assigned a single output, which must be "named"
in a way that will unequivocally identify it among the other blocks of the setup. The name
itself can be any arbitrary mnemonic code, and it is the user's prerogative to choose an
adequate level of confusion in this naming process. These names will later be used to directly
identify the interconnections between the blocks. A name is any sequence of 1 to 6
alphanumeric characters, including blanks.

Requirement 3

The user must then assemble the data according to the rules set for the different types of blocks
and devices. It is suggested at this point that the user get acquainted with the technicalities of
the TACS data setup by preparing and running a few simple cases at first. This method of self-
teaching has proven to give positive results in getting the user to gain flexibility in dealing
with constraints of the program, ability to see the file of time-domain simulation in a more
realistic perspective, and familiarization with the typical gumption-traps which could make the
preparation of a case to be more annoying than expected for overconfident users.

In summary:

- use block diagram representation to describe the system

- name all variables

- define the data in specified formats.


4 - III. TACS

III-C-1. Ordering of the blocks

At execution time, when the TACS program calculates the value of each variable of the system
for a particular instant of time, it does so in specific (and sensible) sequence. This sequence is given
below. In most applications the user does not need to worry about this sequence of solution (the
program does the proper sequencing itself). But knowledge of the sequence may be used to entangle
some tricky situations involving non-linearities such as the limiters and supplemental "inside"
variables and devices.

All linear variables (transfer functions and order-zero blocks) are solved as one group, by
triangularization and backward substitution, thus providing a "simultaneous" solution of all such
variables, even in the so-called "looped" configurations.

Supplemental variables and devices are separated in three supplemental groups (input, output
and inside). The variables of each group are solved sequentially within each group, in the order in
which the data cards were read in.

Order in which the TACS variables are calculated:

During the past few years, there have been reports written about the inadequacy of the TACS
order rules which were given on this page by the original author Laurent Dubé. Since the fall of 1983,
Ma Ren-ming, a visiting scholar from PRC, has done a very thorough study and investigation into
Laurent's coding logic. He summarized his findings in an EMTP Newsletter article to be published in
the spring of 1984 (Vol. 4, No. 3). According to Ma, the following revised TACS order rules would
match with "M39." program versions:

1. Sources, sequentially as read in.

2. Supplemental variables and devices whose inputs have already been evaluated.

3. Z-blocks, S-blocks and supplemental variables whose inputs have already been evaluated.
Such variables are selected recursively until no additional ones remain.

4. Supplemental variables/devices and function blocks with limits. This involves selecting
one at a time, recursively, until no additional such blocks remain. It begins with the
selection of a function block with limits, followed by supplemental variables/devices and
other function blocks for which the inputs are now known. Repeat until no further blocks
can so be selected. When complete, no function blocks with limits remain.

5. Remaining blocks. The selection begins with that function block which has the most
inputs. Next, supplemental variables/devices and any other function blocks for which the
inputs are now are all known. This process is repeated until all remaining function blocks
of the network have been selected.
III. TACS - 5

III-D. TACS Steady-State Initialization Rules

Point 1

Why bother with definition and calculation of initial conditions in TACS?

a) All history terms must be initialized before the program is ready to calculate the solution
of the system at the first time step. For this purpose, the program will need the values of
the inputs and the output at t = 0 of all s-blocks and devices type 53, 58, 59, 62, 64 and 65.

b) The variables requested for output (printed and/or plotted) should have correct values for
the time t = 0.

Point 2

The program will automatically calculate the dc steady-state output values of certain types of
blocks (read on), while the user must provide "user-defined initial conditions" for the others.
However, the program does not need (and will not calculate) any dc steady-state output values,
unless there is one or more type-1, -92 and -93 sources connected at time t = 0. and active in
steady-state (as indicated by a value of T-START < 0.).

Point 3

When TACS does calculate its own dc steady-state output values,

a) the program will take care of computing output values for all order-zero blocks and all s-
blocks (transfer function blocks); Except: integrators [ G(s) = K / s ]

b) and the user must provide the dc initial conditions for any other blocks if needed
(see Point 1).

Point 4

When TACS does not calculate its own dc steady-state output values, it will nevertheless
recognize any user-defined initial condition that can be used as of Point 1, in which case the
user assumes all responsibility for the whole dc initialization.

In such a case, the user must also remember to define any nonzero initial values of the
"named entries" (columns 69-80) to the supplemental devices, unless these entries are other
than previously-defined supplemental variables or devices, or than a signal source.
(See Section III-C-2)

Point 5

Whether TACS does or does not calculate its own dc steady-state solution, the program will
always take care of initializing the dc and ac history terms of the transfer functions and the
transport delays. Remember that, in either case, the output values of all integrators (see
Point 3) must be supplied by the user. There is no alternative.
6 - III. TACS

Point 6

When TACS calculates an ac steady-state solution,

a) TACS takes care of computing the output values of all order-zero blocks and all s-blocks
without exception;

b) The ac contribution of all supplemental variables and devices are totally ignored (the ac
component of their output is assumed to be zero).

Two golden rules

1. Make sure that all nonzero inputs to and output of the s-blocks and devices type 53, 58,
59, 62, 64 and 65 are defined for time t = 0 (either by the user or by the program);

2. For program-calculated steady-state solutions, make sure that integrator outputs, delay
s-block outputs and named limits are all defined for time t = 0.

III-D-1. Initialization of the Interfaced Variables

The steady-state initialization of the electrical network in the EMTP is calculated before the
TACS steady-state initialization.

Consequence 1

In the electrical network, the user must himself initialize any TACS variable (which are not yet
calculated for time t = 0) by means of user-defined initial conditions in the EMTP or other sort
of stratagem.

Consequence 2

In the TACS steady-state initialization, the interfaced signals of sources type 90, 91, 92, 93 are
defined and accessible at time t = 0, since they have already been calculated by the EMTP.

Consequence 3

The respective EMTP and TACS steady-state initialization cannot be thought of as an


interactive process, but as a sequential operation.
III. TACS - 7

III-E. TACS Elements and Card Formats

The various classes or types of TACS data are described in subsection below. Such data can be
assembled in arbitrary order, terminated by blank card.

III-E-1. Transfer Functions or S-blocks

This element is used to describe a transfer function of arbitrary order in "s". The operator "s"
can be thought of as either the Laplace transform variable or as the "d/dt" operator.

The nth-order transfer function is defined as:

where

and is solved as:

Examples of valid functions are:


8 - III. TACS

Format:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890
OUTPUT + + + + + FIXED FIXED NAMED NAMED
N IN1 IN2 IN3 IN4 IN5 GAIN
NAME - - - - - -LO -HI -LO -HI
I2 A A A A A
A6 A6 A6 A6 A6 A6 E6.0 E6.0 E6.0 A6 A6
1 1 1 1 1

1 2 3 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890

N0 N1 N2 N3 N4 N5 N6 N7

D0 D1 D2 D3 D4 D5 D6 D7

E10.0 E10.0 E10.0 E10.0 E10.0 E10.0 E10.0 E10.0

Rules:

1. "N" is the order of highest power of "s" of either numerator or denominator polynomials.
Its value must be punched (right-justified) in columns 1-2.
The special degenerate case where N = 0 is called the "order-zero" block or Z-block.
It is defined as:

where K is the gain setting.

2. This block is identified by the alphanumeric name of its output. (Columns 3-8)

3. The total input to the block is the sum of any or all signed input signals. The sign
character ( + or – ) must be punched for all such non-blank inputs.

4. The value of a non-unity gain may be defined in columns 51-56. When this field is left
blank (or zero), GAIN = 1.0 is the default value automatically assigned by the program.

5. This block may also be defined either as a static limiter if it is a Z-block, or as a dynamic
limiter if it is a s-block. See Section III-E-2 for details.
III. TACS - 9

The following two rules apply only to the s-blocks, and they are not needed for the Z-blocks.

6. The coefficients of the numerator (N0 , N1 , etc.) must be supplied on the next card(s). The
order of coefficients is identified by the fields they occupy on the card. For example, N4,
if nonzero, must appear in columns 41-50 and nowhere else.

7. The coefficients of the denominator (D0 , D1 , etc.) then follow on the next card(s). Here
again, the order of the coefficients is identified by the fields they occupy on the card. For
example, D1, if nonzero, must appear in columns 11-20.

Examples:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
(a) 1OUT1 +IN1 -IN2
1.
1. 0.1
(b) 1INTGR +DERIV
1.
1.
(c) 2SECND +ERR -REF +UNITY 0.25
1. 0.14
1. 0.04 0.04

(a)

(b)

(c)

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
(a) SUM2 +A -ERR +REF8
(b) EX3 +IN1 -LIM2 0.072
(c) NEGEX +SUM2 +EX3 -0.82

(a)

(b)

(c)
10 - III. TACS

III-E-2. Limiters

Low and/or high limits of fixed or calculated value can be superimposed on any transfer
function block or order-zero block.

Dynamic limiter Static limiter Static limiter on a


transfer function

Static limiter

The output value of an order-zero block is always calculated without considering any existing
limit, and then, if the output value is seen to have exceeded either the lower or higher limit
values, the output value is readjusted according to the value of this limit or saturation level.

Dynamic limiter

The output value of an s-block is calculated differently depending on whether the element is
operating inside or outside its defined limits. In the latter case, the derivatives of the output are
automatically set to zero. Most limiters must be assumed to be of the static type, unless the
user can positively identify that, for example, the complex impedance feedback loop of an
amplifier is electrically modified or by passed when the limit is reached.

Rules:

1. Limits are defined on the card describing the element on which they apply. See Section
III-E-1.

2. The user may define any combination of two types of limits: fixed and variable (See table
below). The fixed limits are defined as the "FIXED-LO" parameter and the "FIXED-HI"
parameter of columns 57-62 and 63-68 respectively on the block card. The variable limits
are defined by using the alphanumeric A6 names of other blocks or elements of the
system, whose output will be the required calculated limit.
These "NAMED-LO" and "NAMED-HI" identifications are punched respectively in the
fields 69-74 and 75-80 of the block card.
III. TACS - 11

3. The following table can be used to determine how the program interprets the different
user-supplied combinations of fixed and variable limit definitions.

A combination of: is taken as:


FIXED FIXED NAMED NAMED LOW HIGH
NO -LO -HI -LO -HI limit limit
LIMIT --- --- --- ---
-4 +4
0. 0. --- ---

A --- --- --- A 0.


--- B --- --- 0. B
SINGLE --- --- LLL --- LLL(t) +4
LIMIT --- --- --- HHH -4 HHH(t)
1. --- LLL --- LLL(t) 0.
--- 1. --- HHH 0. HHH(t)

A B --- --- A B
DOUBLE --- --- LLL HHH LLL(t) HHH(t)
LIMIT A --- --- HHH A HHH(t)
--- B LLL --- LLL(t) B

B A --- --- A A for B > A


B --- --- --- 0. 0. for B > 0
DEGENERATE --- A --- --- A A for A < 0
A --- --- HHH HHH(ti) HHH(ti) for HHH(ti) < A
--- B LLL --- B B for LLL(ti) > B

Notes:

a) Check the above interpretation for each application.

b) A warning message will be printed at the first occurrence of a crisscrossing of double


variable limit.

4. The limiters are not active during the TACS-calculated steady-state initialization at time
t = 0.
12 - III. TACS

Examples:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
(a) 99STAT-G +G(S) STATIC
1G(S) +IN2
1.58
1. 0.01
(b) 99NEG2 +DYNA 2.5 -0.85 -0.32
1DYNA +STATIC 0.1 1.0
1.
1. 0.1
99STATIC +IN1 0.36 -0.2 0.95

(a)

(b)
III. TACS - 13

III-E-3. Signal Sources

TACS signal sources are signal generators that can be used as inputs to other blocks and
elements of the system. Each source is defined on a single card as a separate system component. The
user specifies the type and the name of the source according to the rules that are defined below.

Resident sources

Some source names are permanently available to the user as built-in TACS sources. They have
pre-defined, reserved names, and need not be specified on a source card by user. To use them as input
to any other block or element, simply mention the name of the source as for any other input to a
component. The resident sources are also available as voltage or current sources in the electrical
network through the TACS-EMTP interface.

'TIMEX ' = simulation time in seconds ( = 0.0 in steady-state)


'ISTEP ' = number of the present time step in the simulation
'DELTAT' = size of the time step (TIMEX = ISTEP @ DELTAT)
'FREQHZ' = system frequency in Hz (as read from the 1st sinusoidal source)
'OMEGAR' = 2ð @ FREQHZ (in radians)
'ZERO ' = 0.0
'MINUS1' = –1.0
'PLUS1 ' = +1.0
'UNITY ' = 1.0 (kept for convenience only; use PLUS1)
'INFNTY' = +4 (very large number fitting your computer system)
'PI ' = ð

Format:

1 2 3 4 5 6 7 8
12345678 90 1234567890 1234567890 1234567890 12345678901234567890 1234567890 1234567890

T
Y OUTPUT
P NAME A B C T-START T-STOP
E
I2 A6 E10.0 E10.0 E10.0 E10.0 E10.0

Rules:

1. The source is identified by the alphanumeric name of its output

2. T-START = blank or 0. : source is activated at t > 0


= some value : source is activated at t $ value
= negative : source is activated at t # 0 (except type 23, 24 and 91 for
which a user defined initial condition must be specified.)

3. T-STOP = blank or 0. : source is never de-activated


14 - III. TACS

= value : source is de-activated at t $ value


Note: When de-activated, the source signal is zero.

4. Types of sources

TYPE A B C
11 AMPL — —
14 AMPL FREQ (Hz) n (deg.)
23 AMPL T (sec) WIDTH (sec)
24 AMPL T (sec) —
90 , 91 0.or blank, if ac f, if ac —
1.0, if dc 0.or blank, if dc
92 , 93 — — —

TYPE = 11: level signal

TYPE = 14: output = AMPL @ COS ( ù t + ø )


= AMPL @ COS ( 2 ð f t + 2 ð n / 360 )
III. TACS - 15

TYPE = 23: pulse

(T-START # 0 is valid, although this source cannot be included as active during the dc
steady-state initialization unless a nonzero user-defined initial condition is specified.

TYPE = 24: ramp

(T-START < 0 is valid, although this source cannot be included as active during the dc
steady-state initialization unless a nonzero user-defined initial condition is specified.

TYPE = 90: Output = EMTP node voltage

In which case the NAME must be a node name already defined in the electrical network.
The output value is not calculated by TACS itself, but is simply made equal to the value
of the voltage (with respect to TERRA), as measured at the node which bears the same
name in the electrical network

TYPE = 91: Output = EMTP switch current

In which case the NAME must be a node name to which a switch (of any type) is
connected in the electrical network. The output value of the source will then be set equal
to the current flowing from the LEFT-node to the RIGHT-node, as defined on the EMTP
switch card. In cases where more than one switch are attached to the said node, reference
is assumed to be to the first of these switches, in the order of the data cards.

TYPE = 92: Output = internal variable of special EMTP components


16 - III. TACS

This source type is reserved for passing to TACS the values of certain internal variables
of special EMTP components. For example, Rule 3 of class 6 S.M. data cards (see
Section VIII) shows how rotor angles and angular velocities can be passed to TACS. This
is for a dynamic synchronous machine (S.M.) Source component, as used in
subsynchronous resonance (SSR) studies. Such variables are then accessed (picked up and
used) within TACS by means of the Type-92 TACS source component.

= 0 : switch is open
TYPE = 93: Output = EMTP switch status
9 = 1 : switch is closed
The name of this TACS source must be a node name to which a switch (of any type) is
connected in the electrical network. In cases where more than one switch are attached to
the said node, reference is assumed to be to the first of these switches, in the order of the
data cards.

Note: Any of the sources that can be defined in the electrical network (type 1 to 15) can
also be used in TACS as follows:

In the electrical network In TACS

III-E-4. Supplemental variables and devices

These elements are called "supplemental" because they differ from the linear s-blocks and
z-blocks in the following way:

S they are not part of the solution matrix of the set of linear equations in TACS;

S they are calculated sequentially, instead of simultaneously for the other s- and z-blocks (
so that the data cards must be ordered accordingly).
III. TACS - 17

Supplemental variables may be part of three different groups of elements, as follows:

To make the solution simultaneous for the largest possible number of s-blocks and zero-order
blocks, the user should keep the number of "inside" supplemental elements as low as possible, and
rather place the supplemental elements into the "input" or the "output" group, if applicable.
( See Section III-C-2)

The "input" group: TYPE = 99

All the inputs to these "input" supplemental elements must be either TACS signal
sources or the output of other supplemental "input" elements.

The "output" group: TYPE = 98

The output of these supplemental "output" elements must not be used as input to any other
block except other supplemental "output" elements. (Although they may be used as interfaced
variables to the EMTP.)

The "inside" group: TYPE = 88

These are the leftover from the two previous groups. They must be used when, for example,
the inputs and output are connected to elements of the system other than those allowed for the two
previous groups. ( See Section III-C-2 details of the calculation.)

IMPORTANT NOTE: According to the contribution by Ma Ren-ming during 1993-19984, the


grouping of supplemental elements (type 99, 98 or 88) is done automatically by TACS. As a
consequence, the user needs only to specify all the supplemental elements of "inside" group
(type 88). TACS will convert any element having type code 88 to the appropriate alternative, if
the element actually does not belong to "inside" group.
18 - III. TACS

III-E-4-1. The Algebraic and Logical FORTRAN Expression

Note: The older-type fixed-format variable has now been replaced by the the free format arbitrary
FORTRAN expression described in this section. However, although the older type is not
documented in this User's Manual anymore, it can still be accepted by the program for the
convenience of those users wishing to continue running older versions of their data cases.

Format:

1 2 3 4 5 6 7 8
12345678 901234567890123456789012345678901234567890123456789012345678901234567890

99OUTPUT = Free-format FORTRAN expression


or NAME
98
or
88
** A6

** see Section III-E-4

Rules:

1. This variable is identified by the alphanumeric name of its output (Columns 3-8). This
alphanumeric name may not start with a numeric number in the free format expression.

2. The character '=' must appear in column 11 of the first card of the expression.

3. All the rules for constructing standard FORTRAN expressions apply.

algebraic operators : + , – , * , / , **

logical operators : .OR. , .AND. , .NOT.

relational operators : .EQ. , .NE. , .LT. , .LE. , .GE. , .GT.

FORTRAN Functions : SIN, COS, TAN, COTAN, SINH, COSH, TANH


(with arguments in radians);

ASIN, ACOS, ATAN, ( answer in radians );

EXP, LOG, LOG10, SQRT, ABS


III. TACS - 19

special functions : TRUNC ( the integer part of .....)

MINUS ( sign inversion )

INVRS ( 1.0 / arg )

RAD ( Conversion from degrees to radians )

DEG ( Conversion from radians to degrees )

SIGN ( = – 1 if arg < 0 , = +1 if arg $ 0 )

NOT ( = 0 if arg < 0 , = + 1 if arg # 0 )

SEQ6 ( = INT( modulo – 6(arg) ) ( see example below)

RAN ( to obtain a random number, the argument can


be an arbitrary number or an existing TACS
name )

nesting : 20 levels

arguments : – any of the TACS alphanumeric names of user-defined


and resident variables

– any numerical arguments (either integer or real)

4. All functions accept only one argument, as in SQRT ( arg). Valid arguments are either a
TACS name, a numerical constant, or another function, as in SQRT(ABS (INVRS (X) ) )

5. The characters '+' , '–' , '*' , '/' , '(' , ')' and blank are separator characters, and cannot
be part of a TACS alphanumeric that is going to be used in a FORTRAN expression.

Examples:

'VAR18 8' and '8 8VAR1' will both be interpreted as 'VAR1' ;

'VAR–18' will be interpreted as 'VAR8 8 8' – 1.0 ;

'VAR8A8 ' will be interpreted as 'VAR8 8 8' followed by 'A8 8 8 8 8'


( here meaningless ) ;

'1.08 E6' will be interpreted as 1.0 followed by 'E68 8 8 8' ( here meaningless )

Note: Dots ('.') may be embedded within a name.

6. Any TACS alphanumeric variables can be associated with either algebraic or logical
20 - III. TACS

operators, regardless of whether it is itself of algebraic or logical contents (no such


distinction in TACS).

Thus, if a logical expression is used in an algebraic context, its value will be considered as
either = 0.0 or 1.0 ( for respectively '0' and '1').

Similarly, if an algebraic expression is used in logical context, its value will be considered
as either '0' or '1' ( for respectively # 0.0 and $ 0.0 ) .

Examples:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
99ANGLE =DEG( ATAN(CNTRL – BIA52)) + 36.2
88EXPR =–A * ( B+ C**(–D +3))
+ E / PI
99FIFTY = 50.
98IF3 = .NOT.A+B .LT.3 .AND.(ISTEP .GE. 100 )

About SEQ6 :

arg –1 0 1 2 3 4 5 6 7 8
etc...
SEQ6(arg) 5 6 1 2 3 4 5 6 1 2

The output is an integer.


III. TACS - 21

III-E-4-2. The Devices

Format:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890
T C
Y OUTPUT O + + + + +
P NAME D -
IN1
-
IN2
-
IN3
-
IN4
-
IN5 A B C D E
E E
A A A A A
I2 A6 I2 A6 A6 A6 A6 A6 E6.0 E6.0 E6.0 A6 A6
1 1 1 1 1

Rules:

1. TYPE = 99, 98, or 88. See Section III-E-4 definition.

2. This device is identified by the alphanumeric name of its output. (Columns 3-8).

3. The total input to the device is the sum of any or all signed input signals (except for
devices type 60, 61 and 63 where each input signal is interpreted individually). The sign
character ( + or –) must be punched for all non-blank inputs.

4. The different devices are:

CODE

50: frequency-sensor
51: relay-operated switch
52: level-triggered switch
53: transport delay
54: pulse transport delay
55: digitizer
56: point-by-point user-defined non-linearity
57: multi-operation time-sequenced switch
58: controlled integrator
59: simple derivative
60: input-IF component
61: signal selector
62: sample and track
63: instantaneous min/max
64: min/max tracking
65: accumulator and counter
22 - III. TACS

CODE = 50 : Frequency meter

A initial frequency (Hz)


B max. acceptable change, in
%
C ignored
D ignored
E ignored
OUTPUT = measured frequency of the input

The time between successive zero-crossing of the input signal is measured and converted to a
frequency value in Hertz. The device will automatically reject higher-frequency non-characteristic
oscillations appearing on the main signal. Alternately, the user may choose to process the input signal
through a low-pass filter [ 1 / ( 1 + T@s ) ], in cases where the input noise causes difficulties in
measuring the main signal frequency.

As for the algorithm used, let T1 be the


time of the most-recent zero crossing, and T2
the time of the one preceding that. Then the
current frequency estimate f is given by:

Of course one rarely knows the time of


zero crossing exactly; linear interpolation (see
sketch) is used to estimate these.
III. TACS - 23

Example:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890

98FREQ2 50+GENA -GENB 60.


or
99
or
88

This card would describe a frequency-sensor named 'FREQ2' applied to the sum of the inputs
[ 'GENA' – 'GENB' ]. Initial frequency of 60 Hz.

Note: This value of 60 Hz. will not change until at least two zero-crossing of the signal have been
detected, so that an interval can be measured.

CODE = 51 : Relay-operated switch

A Value of the GAIN (def. = 1.0)


B Value of FIXED TRESHOLD
C 0 or 2 : normally-open
1 : normally-closed
–2 : normally-open, but
closed at steady state
–1 : normally-closed, closed
at steady state too
D NAMED TRESHOLD (optional)
E DRIVING SIGNAL

Following conditions apply according to switch operation:

– if switch is closed, OUTPUT = GAIN @ 3 (inputs)

– if switch is open, OUTPUT = 0.0

The switch will operate from its "normal" state when:

– if normally-open, when # DRIVING SIGNAL # $ NAMED + FIXED TRESHOLDS

– if normally-closed, when # DRIVING SIGNAL # < NAMED + FIXED TRESHOLDS

Note: D and E can be the names of any other TACS variable. (See examples below.)
24 - III. TACS

CODE = 52 : Level-triggered switch

This device is defined in exactly the same way as the relay. The only difference in the
operation of the level-trigger, as opposed to the relay, is that the actual value of the driving signal is
taken (instead of the absolute value), and is compared to a treshold which here can be either positive
or negative.

Examples:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890

(a) 98REL-A 51%UNITY 0.5 SIG2


or
(b) 99REL-B 51 %IN1 -BIAS 2.0 1.TRESH DRIV1
or
(c) 88DETECT52 %SOURCE 1.36 TR-2 ANY

(a) 'REL–A' = 'UNITY ' when # 'SIG2'# $ 0.5

(b) 'REL–B' = 2 @ ( 'IN1' – 'BIAS' ) when # 'DRIV1'# < 'TRESH '

(c) 'DETECT' = ' SOURCE ' when 'ANY ' $ 'TR–2 ' + 1.36

CODE = 53 : Transport delay

Input the value of the user


A
supplied dc history for the device
B Value of FIXED DELAY (sec)
C Value of MAX. DELAY (sec)
D NAMED DELAY (optional)
Punch "VALUE" in columns
75-79 if user would like to
E supply value of the dc history of
At any time "t", for a value of total delay = T sec., the delay blocks (see below the
note)
OUTPUT (t) = INPUT ( t - T )
Note:
User may input his own dc history for
the device only if there is no any user
defined dc source in the case.
Otherwise the program will calculate
its own dc or/and ac history, and the
data field "E" should be left blank
III. TACS - 25

Note about the variable 'NAMED DELAY ' :

When the user wants the value of the delay to be variable (as opposed to 'fixed'), he may define
this delay as being the output of some other TACS block at which the delay itself is calculated.
In such a case, the user must also specify the maximum value that will be reached by the total
delay time, and punch this maximum value in field 'C' of the device card. (The program needs
to know ahead of time how many cells of memory are to be allocated to the storage of the
'past history' of the input signal.)

Examples:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890

(a) 98DEL-A 53%SIGNAL 0.002 .004SLOW2


or
99
(b) orDEL-B 53%IN2 .0035
88

(a) 'DEL–A ' ( t ) = 'SIGNAL ' ( t – T ) where T = 'SLOW2 ' + 0.002 [ Tmax = 0.004 ]

(b) 'DEL–B ' ( t ) = 'IN2 ' ( t – 0.0035 )

Note: When the input signal is known to be a pulse or succession of pulses, the user should consider
using a 'pulse transport delay' instead of this 'storage-hungry' device

CODE = 54 : Pulse delay

A value of i.c. T-ON (see below)


B value of FIXED DELAY (sec)
C Value of i.c. T-OFF (see below)
D NAMED DELAY (optional)
E ignored

Note: Constraint on the frequency of the input signal. Overall period of input > pulse width + delay.
Initial conditions T-ON and T-OFF
26 - III. TACS

The user can make the OUTPUT respond to an input signal which partly or totally occurred
before simulation time t > 0.

This situation can be simulated as follows:

specify T-ON in field 'A' of the card


specify T-OFF in field 'C'
where T-ON < T-OFF < 0

specify T-ON only in field 'A'


note: There is no need to specify T-OFF here, since
it will be detected by the program itself.

When reading the cards, the computer does not make the difference
between a blank field and the value 0.0.
If the user does want to specify a value of T-ON or T-OFF that is
exactly 0.0, he must instead specify a value that is negative and very
close to 0.0 ( < Ät), but is not exactly 0.0.

Examples:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890

(a) 98PDEL1 54%LOGIK .0035


or
(b) 99PDEL2 54%SIGN-L -0.028 VARDL
or
(c) 88DETECT54%SOURCE 0.001 DELAY

(a) 'PDEL1' (t) = 'LOGIK ' (t – 0.0035)

(b) 'PDEL2' (t) = 'SIGN–L ' (t – 'VARDL'), with the input being 'ON' since 0.028 seconds prior
to the beginning of the simulation.

(c) 'CTRL ' (t) = 'SOURCE ' (t – T) where T = 'DELAY' + 0.001


III. TACS - 27

CODE = 55 : Digitizer

Specify the GAIN in field 'A' of the card (defaulted to 1.0)

Specify the levels (enough to cover the expected range) by punching


as many card as there are levels, one value of level per card.
End with a 'terminator' card : punch '9999' in columns 13-16.

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890
T
Y OUTPUT + +
55 IN1 etc...
P NAME - -
E
level - 1
level - 2
.
. in order of increasing value
.
level - n
9999.

Example:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
STAIRS55 +SMOOTH
98
or -1.
99
0.
or
88 1.
9999.
28 - III. TACS

CODE = 56 : Point-by-point non-linearity

Specify the GAIN in field 'A' of the card (defaulted to 1.0)

Define the function y = f(x) with as many points as needed to cover the expected range of variation
(linear interpolation is performed by the program for values between the given points).
Specify one such point per card by punching the pair of coordinates (x,y).
Place the cards in order of increasing values of 'x'.
End with a 'terminator' card : punch '9999' in columns 13-16.

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890
T
Y OUTPUT + +
56 IN1 etc...
P NAME - -
E
x1 y1
x2 y2
. .
. . in order of increasing value of 'x'
. .
xn yn
9999.

Examples:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
NL 56+x
-1000. -3.
98 -11. -3.
or
99 -6. -5.
or 3. 5.
88
6. 3.
1000. 3.
9999.
III. TACS - 29

CODE = 57 : Time-sequenced switch

This switch is assumed to be initially open. The user specifies the sequence of operation of the switch
as follows:

1 2 3 4 5 6 7 8
12345678 90123456789012345678901234567890123456789 0123456 789012345678 901234 567890
T
Y OUTPUT + +
55 IN1 etc...
P NAME - -
E
tCLOSE - 1
tOPEN - 1
tCLOSE - 2
.
. in order of increasing values of time
.
tLAST OPERATION
9999.

Remember to end with a 'terminator' card : punch '9999' in columns 13-16.

Note: Since the devices are ignored during the program-calculated steady-state initialization, this
switch is also open during steady-state. However, since user-defined initial conditions may be
defined for any TACS variable, the user may choose to define a nonzero initial condition for
the output of this device, thus bypassing the effect of this stubbornly-open switch at t = 0.

Example:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
SWCTRL57+UNITY
0.0025
98
or 0.0030
99
0.0105
or
88 0.0110
0.0205
9999.
30 - III. TACS

CODE = 58 : Controlled integrator

A value of GAIN (def. = 1.0)


B value of D0 (possibly 0.0)
C value of D1 (possibly 0.0)
D name of the control signal
E named reset value (or blank)

S if control signal > 0.0


S if no control signal name A
S if control signal # 0.0 ö OUTPUT = value of named reset (or 0.0 if no name specified)

Examples:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
98OUT 58+IN 1.0 0.0 1.0CTRL1 VAR1
or
99
OUT2 58+IN 3.2 1.8 1. CTRL2
or
88
OUT3 58+IN -OTHER +ETC 3.1 1.0 0. CTRL3 VAR3


(which will also be used as initial condition for the next time
step)


(same remarks as above)


Note: In a previous version of this program, the type-58 device
III. TACS - 31

has also been used as a counter. This function is now served more flexibly by the device type
65. However, for the convenience of users wishing to run older versions of their data cases, the
"counter" function of this type-58 device is kept operational, and is defined as follows:

A ignored
B ignored
C ignored
D The keyword 'COUNTR'
E ignored

and

CODE = 59 : Simple derivative

A value of GAIN (defaulted to 1.0)


B ignored
C ignored
D ignored
E ignored

Note: This device will be properly initialized by the program at t = 0.0, provided that all the initial
conditions for the inputs IN1 , IN2, etc. are available (either program-calculated or user
defined). See Section III-D.
To assign a nonzero initial value to the OUTPUT, specify also a user-defined initial condition
as per Section III-G .
32 - III. TACS

CODE = 60 : Input -IF component

A numerical CONSTANT
(optional)
B ignored
C ignored
D name of SIGNAL1
E name of SIGNAL2 (optional)

Note: For this device, the inputs are not summed up. Each inputs is interpreted individually.

Examples:

Note: FLAG1 can itself be a more complex logical


/algebraic expression defined in a FORTRAN
expression
III. TACS - 33

CODE = 61 : Signal selector

A ignored
B output LO when SELECTOR 0.5
C output HI when SELECTOR 6.5
D name of 6th input (or blank)
E name of SELECTOR variable

(default = 0.0)
(default = 0.0)
(default = 0.0)
(default = 0.0)
(default = 0.0)
(default = 0.0)

Note: For this device, the inputs are not summed. Each input is interpreted individually.
34 - III. TACS

CODE = 62 : Sample and Track

A ignored
B ignored
C ignored
D name of TRACK signal (or blank)
E name of SAMPLE signal (or
blank)

Note: – In the absence of both TRACK signal and SAMPLE signal, the OUTPUT is in HOLD mode.

– The TRACK signal supercedes the SAMPLE signal, should both control signals be > 0
simultaneously.

– The SAMPLE mode involves a two-step operation. The order to sample a new value is only
performed on the rising front of the SAMPLE control signal, which must then be reset to # 0
before the next SAMPLE order is given.

– The TRACK operation becomes equivalent to a SAMPLE operation if the TRACK control
signal lasts only one time step.

To assign a nonzero initial condition to the OUTPUT ( the initial HOLD value), specify a user-defined
initial condition as per Section III-G
III. TACS - 35

CODE = 63 : Instantaneous minimum/maximum

A ignored
B = – 1.0 to get minimum
= + 1.0 to get maximum
C ignored
D ignored
E ignored

if B = –1.0, OUTPUT = min( ± IN1, ± IN2, ± IN3, ± IN4, ± IN5 )

if B = +1.0, OUTPUT = max( ± IN1, ± IN2, ± IN3, ± IN4, ± IN5 )

Note: For this device, the inputs are not summed. Each input is interpreted individually.

CODE = 64 : Minimum/maximum tracking

A ignored
B = – 1.0 to get minimum
= + 1.0 to get maximum
C numerical reset value
D name of RESET signal (or blank)
E name of HOLD signal (or blank)

if RESET signal > 0.0, OUTPUT = C

else if HOLD signal > 0.0, OUTPUT(t) = OUTPUT(t – Ät)

else if B = –1.0, OUTPUT(t) = min(OUTPUT(t – Ät), input(t))

if B = +1.0, OUTPUT(t) = max(OUTPUT(t – Ät), input(t))

Note: This device will be properly initialized by the program at t = 0.0, provided that the initial
condition for the OUTPUT value is supplied.

To assign a nonzero initial condition to the OUTPUT (which will also be the starting minimum
or maximum), specify a user-defined initial condition.
36 - III. TACS

CODE = 65 : Accumulator and counter

A ignored
B ignored
C numerical reset value
D name of RESET signal (or blank)
E name of HOLD signal (or blank)

if RESET signal > 0.0, OUTPUT = C

else if HOLD signal > 0.0, OUTPUT(t) = OUTPUT(t – Ät)

else OUTPUT(t) = OUTPUT(t – Ät), input(t)

Note: This device will be properly initialized by the program at t = 0.0, provided that the initial
condition for the OUTPUT value is supplied.

To assign a nonzero initial condition to the OUTPUT (which will also be the initial
accumulator contents), specify a user-defined initial condition.

Special application:

provides a straight forward step counter


with and without reset

CODE = 66 : RMS value

A frequency (Hz)
B ignored
C ignored
D ignored
E ignored

OUTPUT = the RMS value

Note: The storage needed for this device is allocated in the 7th of the total of 8 TACS tables.
The number of cells needed is equal to: 1 + 1 / (frequency @ DELTAT)
III. TACS - 37

III-F. Printed/Plotted Output of the TACS Variables

The time-varying values of the signals and variables in TACS are calculated by the program at
discrete intervals of time t = 0, Ät, 2Ät, etc..

Just as for the electrical network, the value of each variable in TACS can be observed in
printed or plotted form. Under user control are:

a) which variables are to be printed or plotted (see specifications below)

b) the printing and plotting intervals IOUT and IPLOT (see Section II-B)

c) the printout of the minima and maxima of the output variables (see Section II-B:
MAXOUT)

d) permanent disk storage of the plot data points (see Section II-B: ICAT)

e) program diagnostic printout (see Section 1.Oh : IPRSUP)

To specify which TACS variables are to be printed or plotted


a) for output of all the variables
a single card is needed, with a '1' in column 2

or

b) for output of only some variables


use as many card as needed, in the following format.

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 567890123456 789012345678 901234 567890

name name name name name name name name name name name name name
33
A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6 A6

Note: any of the A6 fields on any one output card may be blank, provided that at least one field per
card is non-blank.

As for locating the TACS variables which have been so requested in the resultant printout, a
pair of A6 names is used. The first is always "TACS", and the second is the user-supplied name of the
TACS variable. For plotting purposes (either batch-mode or interactive), this same pair of names is
used, and TACS variables are treated as if branch currents were involved (Type-9 plot variables). This
presumes a hybrid problem with both TACS and also some electric network representation. For a
TACS-only data case, TACS variables are treated like node voltages (Type-1 or 4 for plotting
purposes), and only a single name (that of the TACS variable) is used for identification.
38 - III. TACS

III-G. TACS User-Defined Initial Conditions

Steady-state initialization as calculated by the program is discussed in Section III-D.

The initial value at t = 0.0 of variables not covered by the program initialization calculations
can be provided by the user, in the format presented below.

Typically, the following elements will require user-defined initial conditions for t = 0.0. The
default value of unspecified initial condition is zero.

– integrators

– FORTRAN expressions
– devices 50, 51, 52 etc...
– sources type 23 and 24 (pulse and ramp)
– sources where T-START is not specified or is 0.0.

Format:

1 2 3 4 5 6 7 8
12345678 901234567890 123456789012345678901234567890123456789012345678901234567890

initial
name
value
77
A6 E10.0

Use as many cards as required, and terminate with a blank card, whether any initial conditions are
defined or not. This blank card also marks the end of the TACS data case altogether.
III. TACS - 39

III-H. Use of TACS and MODELS in the Same Data Case

It is allowed to include both a TACS section and a MODELS section in the same data case. Typically,
this will enable users to use existing data cases containing a TACS section, while still being able to
add one or more MODELS routines to the data case as needed.

A new input type has been added to the MODELS section, to allow input of any variable from TACS
into MODELS. For example, a TACS variable named "SIGNAL" could be used as input to the
MODELS section as follows:

INPUT local_name { TACS(SIGNAL) }

indicating that the TACS variable named "SIGNAL" would be available in the MODELS section
under the name "local_name".

The complete list of input types that can be used in the MODELS section is now:

v(node name) : node voltage


i(node or branch name) : switch current
switch(node or branch name) : switch status
mach(machine variable name) : machine variable
imssv(node name) : imaginary part of a steady-state node voltage at t=0
imssi(node or branch name) : imaginary part of a steady-state switch current at t=0
tacs(variable name) : TACS variable

When both TACS and MODELS are used in a data case, the TACS section precedes the MODELS
section:

BEGIN NEW DATA CASE


...
TACS HYBRID
...
BLANK card ending TACS section
MODELS
...
ENDMODELS
electric circuit description ...

During the simulation, the order of execution at each time step is:

1. Electric circuit solution


2. TACS section solution
3. MODELS section solution

MODELS variables requested for printout/plotting using the MODELS directive "RECORD variable
AS name" are identified by ATP with the keyword "MODELS" (instead of "TACS") being used as the
first name of the name pair identifying each printout or plotted variable (see the printout heading in the
example below).
40 - III. TACS

The format rules of ATP branch, switch, source, and machine cards making use of control signals from
TACS or MODELS remain unchanged. In either case, the keyword "TACS" used on these cards
continues to mean "The Alien Control Signal", and is used for identifying control signals coming from
outside the electric circuit from either TACS or MODELS.

The 4th subcase of DC-30 shows the use of TACS and MODELS in the same data case:

BEGIN NEW DATA CASE


C 4th of 4 subcases is the same as the first and the third, except that
C it uses both TACS and MODELS. The voltages BUS2 and BUS3 are input to TACS.
C VSW is output from TACS and input to MODELS. GRID is output from MODELS.
C Compare values at t=0 with 3rd subcase.
C deltat tmax xopt copt epsiln tolmat tstart
1.0E-6 3.0E-3
C print points connec s-s minmax vary again plot
1 1 0 0 1 -1
5 5 20 20 100 100
TACS HYBRID
1DUMMY +UNITY
1.0
1.0 0.5E-3
90BUS2
90BUS3
99VSW = BUS2 - BUS3
33BUS2 BUS3 VSW
BLANK card ends all TACS data
MODELS
INPUT deltav {TACS(vsw)}
OUTPUT grid
MODEL dc30
INPUT dv
VAR grid
OUTPUT grid
EXEC
IF abs(dv)>=1.5e8*t +1e5 THEN grid:=1 ELSE grid:=0 ENDIF
ENDEXEC
ENDMODEL
USE dc30 AS dc30
INPUT dv:=deltav
OUTPUT grid:=grid
ENDUSE
RECORD
dc30.dv AS dv
ENDMODELS
GEN BUS1 15.
BUS1 2.9
BUS1 BUS2 0.1
BUS2 0.1
BUS3 .017
BUS3 490.
BUS2 BUS2R 24.34
BUS3 BUS3R BUS2 BUS2R
BLANK card terminates electric network branches
BUS2 BUS3 -1. 1.E9
11BUS2R BUS3R 20. GRID 12
BLANK card ends all switches
14GEN 66500. 50. -2.0508 -1.
BLANK card terminates electric network sources
{ No node voltages printout/plotting
BLANK card ending node voltage request
BLANK card ending plot cards
BEGIN NEW DATA CASE
BLANK
III-I. MODELS IN ATP

LANGUAGE MANUAL

February 1996
TABLE OF CONTENTS

1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 THE MODELS LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 MAIN FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. MODEL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 SYSTEM REPRESENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 MODEL REPRESENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 MODEL DECOMPOSITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.2 MODEL DEFINITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.3 FOREIGN MODELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.4 EXTERNAL MODELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 STATEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1 ASSIGNMENT STATEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 ALGORITHM CONTROL STATEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 SIMULATION DIRECTIVE STATEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 VALUE-HOLDING ELEMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 ARRAYS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 CONSTANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3 RESIDENT CONSTANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.4 DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.5 VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.6 RESIDENT VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5 MODEL INTERFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.1 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.1 FUNCTIONS IN A MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.2 STATEMENT FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.3 POINTLIST FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.4 FOREIGN FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6.5 EXTERNAL FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.6.6 RESIDENT FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.6.7 RESIDENT SIMULATION FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7 NAMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.1 NAME DEFINITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.2 USE PATHNAMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8 VALUES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.1 VALUE TYPES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.2 VALUE REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.3 VALUE LIMITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.9 EXPRESSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.1 EXPRESSIONS IN A MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.2 REGULAR EXPRESSIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.3 SUM EXPRESSIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.9.4 DERIVATIVE EXPRESSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.9.5 INTEGRALS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.10 FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.10.1 DESCRIPTION FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.10.2 DELIMITERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.10.3 LINE INDENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.10.4 COMMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3. MODEL SIMULATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1 SIMULATION DIRECTIVES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.1 TIMESTEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.2 INTERPOLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.3 DELAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.2 SIMULATION PROCESS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


3.2.1 INITIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.2 HISTORY FUNCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.3 INIT PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.4 EXEC PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.5 SIMULTANEOUS VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2.6 SIMULTANEOUS LINEAR VARIABLES USING A LINEAR COMBINE . . . . . . . . . . . . . . . 42
3.2.7 SIMULTANEOUS NONLINEAR VARIABLES USING A LINEAR COMBINE. . . . . . . . . . . 43

4. MODELS IN ATP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1 MODELS SECTION IN THE DATA CASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1 INPUTS FROM THE ELECTRICAL CIRCUIT TO MODELS . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2 OUTPUTS FROM MODELS TO THE ELECTRICAL CIRCUIT . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.3 TOP VARIABLES OF THE MODELS SECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.4 RECORDED VALUES IN MODELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 TYPE-94 COMPONENTS IN THE CIRCUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 THREE TYPES: THEVENIN, ITERATED, NORTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.2 TYPE-94 FORMAT IN ATP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 TYPE-94 MODEL TEMPLATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
MODELS - 1

1. INTRODUCTION

1.1 THE MODELS LANGUAGE

MODELS is a general-purpose description language supported by a set of simulation tools for the representation
and study of time-variant systems.

The MODELS language provides a format which focuses on the description of the structure of a model and on
the function of its elements.

The description of a model is intended to be self-documenting, and can therefore be used both as the description
document used for representing the system and as the data used in the actual simulation.

A system can be described in MODELS as an arrangement of inter-related submodels, independent from one
another in their internal description (for example, in selecting the names of their variables) and in their
simulation (for example, in selecting the size of their individual simulation time step).

There is also a clear distinction in MODELS between the description of a model, and the use of a model.
Individual models can be developed separately, grouped in one or more libraries of models, and used in other
models as independent building blocks in the construction of a system.

Finally, the description of each model uses a free-format, keyword-driven syntax of local context, and does not
require fixed formatting in its representation.

The present documentation is divided in two sections, the first covering the description of a model, and the
second describing the use of a model in a simulation.

A general overview of the model description approach in MODELS is presented in the next pages, under the
headings MAIN FEATURES, SYSTEM REPRESENTATION, MODEL DECOMPOSITION, and MODEL
DEFINITION.

________________________________________

1.2 MAIN FEATURES

The main description features of the MODELS language are the following:
- the syntax of MODELS allows the representation of a system to closely follow the system's functional
structure, supporting the explicit description of composition, sequence, concurrence, selection, repetition,
and replication;
- the description of a model can also be used as the model's documentation;
- the interface of a model with the outside world is clearly specified;
- the components of a model can be given meaningful names representative of their function;
- a system can be partitioned into individual submodels, each with a local name space;
- the models and functions used for describing the operation of a system can be constructed in programming
languages other than the MODELS language.

The main simulation features supported by the MODELS language are the following:
- distinction between the description of a model and its use, allowing multiple independent replications of
a model with individual simulation management (time step, dimensions, initial conditions, etc.);
- hierarchical combination of three initialization methods (default, use-dependent, and built-in), each
contributing to the description of the pre-simulation history of a model by a direct representation of the pre-
simulation value of its inputs and variables as functions of time;
MODELS - 2

- dynamically-controlled modification of the values of the inputs and variables of a model during the course
of a simulation;
- dynamically-controlled modification of the structure of a model (both topological composition and
algorithmic flow) during the course of a simulation.

________________________________________

2. MODEL DESCRIPTION

2.1 SYSTEM REPRESENTATION

The description blocks of the MODELS language are model definitions. Four aspects of a model are included
in its description:
- what elements are present in the model,
- how these elements interact with each other,
- how the model interacts with the environment in which it operates,
- how the operation of the model is to be simulated.

A model is composed of elements of two types:


- value-holding elements (constants, data parameters, inputs, and variables),
- submodels (local groups of value-holding elements).

The internal interaction of the elements of a model is described by specifying the structure in which the elements
are assembled, using:
- composition, where the joined operation of a group of statements is assembled into a submodel;
- replication, where several independent uses of a model are specified in the description of a system (see
USE statement);
- selection, where different groups of statements are active depending on a specified set of conditions (see
IF statement);
- association, where some statements are explicitly identified as belonging to a common group (see DO
statement);
- repetition, where the action of a group of statements is repeated according to directives internal to the
description of the group (see REDO statement);
- conditional repetition, where the action of a group of statements is repeated according to a specified
external condition (see WHILE statement);
- indexed repetition, where the action of a group of statements is repeated using a list specifying the values
of one or more parameters (see FOR statement);
- concurrence, where the statements of a group are active simultaneously with each other (see COMBINE
statement);
- sequence, where the statements of a group are active consecutively, in the order in which they are described
(see SEQUENCE statement).

The external interaction of a model with its immediate surrounding environment is described by specifying how
information is carried to and from the model, through:
- its input connections (see INPUT);
- its output connections (see OUTPUT).
MODELS - 3

The operation directives that are specific to the individual uses of a model are specified in each USE statement,
in the form of local DATA and HISTORY assignments, and of local simulation directives (see USE).

________________________________________

2.2 MODEL REPRESENTATION

2.2.1 MODEL DECOMPOSITION

Although it is generally possible to represent the operation of a model without defining any submodels, there
are many advantages to dividing a larger model into groups of elements each performing a more simple function.

Each composite group is represented as a separate model in the overall description of a system, describing the
interaction of the group's elements among each other and the interaction of the group itself with the environment
in which it operates, with the following advantages:
- explicit interface: the interaction of a model with its environment takes place exclusively through
its specified interface;
- local operation: the elements contained in a model operate independently from the environment
in which the model itself is used;
- local naming: all names used as identifiers in a model can be selected without concern for the
possible duplication of names used outside that model;
- replication: once defined, a model can be used in many separate applications, each
application being used independently from other applications of the same
model;
- simulation control: the directives controlling the simulation of a model can be specified
individually for different uses of the same model;

- state history: state information is retained for each separate use of a model, in the form of
the present and past values assigned to its variables;
- local development: being a self-contained description, a model can be developed and tested
separately from the larger context in which it may eventually be used;
- local maintenance: the internal implementation of a model can be modified without affecting the
rest of a system description, provided that the original specifications of the
model's interface remain unchanged;
- model library: an assortment of models can be gathered in a library of models, to be utilized
individually as required;
- rough-modeling: when developing the description of a large system, a model of the overall
system can be prototyped early, by temporarily approximating the internal
operation of unfinished submodels with simplified equivalent representations
using the same model interfaces as the final product;

________________________________________
MODELS - 4

2.2.2 MODEL DEFINITION

A model written in the MODELS language includes declarations, simulation directives, and operation
procedures. The syntax used for a model definition is the following:

declarations:
- CONST declarations specify the name, array range, and value of the constants of the model (the internally-
assigned constant value-holding elements);
- DATA declarations specify the name, array range, and optional default value of the data parameters of the
model (the externally-assigned constant value-holding elements);
- VAR declarations specify the name and array range of the variables of the model (the internally-assigned
variable value-holding elements);
- INPUT declarations specify the name, array range, and optional default value of the inputs of the model
(the externally-assigned variable value-holding elements);
- OUTPUT declarations specify which of the model's elements may be used as outputs of the model;
- FUNCTION declarations specify the description of functions used in the model;
- MODEL declarations specify the description of submodels used in the model;

simulation directives:
- TIMESTEP directives specify the optional default value of time step minimum and maximum limits for
the model;
- INTERPOLATION directives specify the default interpolation degree to be applied to the inputs of the
model if the model is used at sub-steps of the external time step;
- DELAY directives specify the default size of value storage associated with usage of the delay() function
in the model;
- HISTORY declarations specify the name of the model's variables for which a history function must be
defined when using the model; they may optionally be used to assign default history functions to any of
the model's inputs and variables;

operation procedures:
- the EXEC procedure describes the execution algorithm of the model;
- the INIT procedure describes the initialization algorithm of the model.

Once defined, a model can be used independently in as many separate uses as required. Each use of a model is
introduced in a separate USE statement specifying the inputs and outputs of the used model, and stating the local
directives controlling its simulation (see USE).

The names chosen for identifying the constants, data, variables, inputs, functions, and submodels defined in a
model are local to the model. They are not visible outside the model, and can be selected without concern for
the possible duplication of names already used outside the model.

________________________________________
MODELS - 5

2.2.3 FOREIGN MODELS

In addition to using the MODELS language for describing the operation of a model, it is also possible to use
procedures written in other programming languages. MODELS provides a pre-defined interface that can be used
by the user to connect "foreign" programs to a simulation. The interface is defined as four arrays carrying the
values of data, input, output, and history variables between MODELS and the foreign procedure. Each foreign
model must provide both an execution procedure and an initialization procedure, with a function corresponding
to the EXEC procedure and the INIT procedure of a model. For example, a Fortran model would be written as:

SUBROUTINE execsub(xdata, xin, xout, xvar)


DIMENSION xdata(*), xin(*), xout(*), xvar(*)
... execution procedure ...
ENTRY inisub(xdata, xin, xout, xvar)
... initialization procedure ...
END

where
- execsub: arbitrary name of the execution section of the foreign model;
- inisub: arbitrary name of the initialization section of the foreign model;
- xdata: array of the DATA values of the model;
- xin: array of the INPUT values of the model;
- xout: array of the OUTPUT values of the model;
- xvar: array of the history variables of the model (initial and ongoing) with storage managed by
MODELS.

In order to be recognized as a model, a foreign model is declared in the model in which it is used. The
declaration format is as follows:

where:
- name: local name by which the foreign model can be referenced in the model;
- idname: arbitrary name used in the connection table of the foreign interface subroutine of MODELS to
recognize calls to this model;
and where the following pre-defined names must be used to identify the size of the four arrays used to interface
this model with the rest of the simulation:
- ixdata: number of elements in the array xdata
- ixin: number of elements in the array xin
- ixout: number of elements in the array xout
- ixvar: number of elements in the array xvar
A foreign program must be compiled and linked to the simulation program before it can be called by MODELS.
Any source language may be used, provided that the compiled object code is compatible with the linker
available on the computer platform used to run the simulation. The interface routine of MODELS (in file
mod001.for) is where the user registers the correspondence between the idname used in the foreign model
declarations, and the actual names of the foreign subroutines and functions linked with the program.
MODELS - 6

Once declared and named, a foreign model can be used independently in as many separate uses as required. The
inputs and outputs of the foreign model, along with the directives controlling its simulation, are specified in a
regular USE statement (see USE). The following simulation directives apply:
- DATA directives specify the value of the elements of the xdata array;
- INPUT directives specify values to be assigned to elements of the xin array at model execution;
- OUTPUT directives specify usage of the values of elements of the xout array at model execution;
- HISTORY directives specify history functions used for assigning pre-simulation history to elements of xvar
and xin;
- TIMESTEP and INTERPOLATION directives can be specified as in a regular USE statement.

All local variables of a foreign model are considered to be under memory management defined locally in the
foreign procedure. Storage for the elements of the arrays xdata, xin, xout, and xvar is provided automatically
by MODELS. The array xvar can be used by the foreign procedure for storage by MODELS, between calls to
the procedure, of the state variables of the procedure. Storage of these values is provided and managed by
MODELS, automatically taking into account the possibly many separate uses of the same model.

________________________________________

2.2.4 EXTERNAL MODELS

No model can be used in a model without being first declared in that model. If the definition of a model is not
included in a model in which it is used, it must be declared as EXTERNAL to that model, as follows:

The implied search algorithm for the location of the definition of an external model inspects the model structure
from the local model upward. All models defined at the same level as the model containing the external
declaration are candidates (including the host model itself, which permits a model to use itself). This search is
carried to the top of the model structure, one level at a time.

________________________________________

2.3 STATEMENTS

Three categories of statements are available for describing the operation of a model's procedures: assignment
statements, algorithm control statements, and simulation directive statements.

________________________________________

2.3.1 ASSIGNMENT STATEMENTS

2.3.1.1 VALUE ASSIGNMENT

Value assignment statements are used for assigning or modifying the values of a model's variables (see
VARIABLES).

Explicit values are specified on the right-hand side of an assignment in the form of a regular expression (see
REGULAR EXPRESSIONS), a linear sum of variables (see SUM EXPRESSIONS), a linear polynomial of the
derivatives of a variable (see DERIVATIVE EXPRESSIONS), or the integral of a variable (see INTEGRALS).

Implicit value assignments in the form of differential equations and Laplace or Z transfer functions are also
available for specifying the value of a variable (see DIFFERENTIAL EQUATION, LAPLACE TRANSFER
FUNCTION, Z TRANSFER FUNCTION).
MODELS - 7

A single value can be assigned to a single variable, to a single element of a variable array, or to a group of
elements of a variable array sharing the same value, by using a single-value assignment as follows:

and an array of values can be assigned to a group of elements of a variable array, using an array-value
assignment as follows:

Minimum and maximum limits can be attached to the value of a variable or array of variables inside the
expression describing the value (see EXPRESSIONS).

________________________________________

2.3.1.2 DIFFERENTIAL EQUATION

A differential equation of the form


( a0 + a1D + a2D2 +... ) y = x
can be used for expressing the value of a variable "y", where "D" is the time derivative operator d/dt.

A differential equation is specified in MODELS as follows:

where "y" can refer to any variable of the model, and "x" to any variable or input of the model, specified using
a simple name or a reference to an element of an array as follows:

The D-polynomial describes the terms "aiDi" of the equation, written as follows:

where each coefficient can be represented as an arbitrary expression (linear or nonlinear, constant or time-
varying), and is separated from the D operator by a vertical bar, which is the "applies to" operator of MODELS,
with the meaning of "expression applied to Di" (see DERIVATIVE EXPRESSIONS for examples). Minimum
and maximum limits can be specified for any of the coefficients (see EXPRESSIONS).

The keyword CDIFFEQ can be used instead of DIFFEQ, as follows:

to indicate a constant-coefficients differential equation. The expressions specifying the value of the coefficients
in CDIFFEQ are not re-evaluated during the execution, regardless of the variation of the values of any input or
variable possibly referred to in these expressions. Using CDIFFEQ instead of DIFFEQ when the coefficients
are constant will increase the simulation speed of the solution by avoiding needless re-evaluation of the
coefficients at each step.

Dynamic minimum and maximum limits can be imposed on the value of "y". The limits are specified in the
statement as follows:
MODELS - 8

or

where the limits are expressed using the following syntax:

The limit applied to a variable expressed by means of a differential equation is a "dynamic limit". While an
external static limit would simply clip the value of the variable outside of the procedure by which the value of
the variable is calculated, a dynamic limit modifies the calculation procedure itself by recognizing that the
values of the derivatives of the variable held at a constant limit are zero.

In a case in which the value of the variable calculated by means of a differential equation is subsequently
reassigned by other means during the same time step, the action of any dynamic limit previously applied to that
variable at that time step is ignored.

When the driving variable "x" of a differential equation of "y" is itself a function of "y", the differential equation
should be solved simultaneously with the equation of "x" in a COMBINE group or in an explicitly-defined
iteration structure, because both are together defining the value of "y" concurrently with the value of the
derivatives of "y".

________________________________________

2.3.1.3 LAPLACE TRANSFER FUNCTION

A Laplace transfer function of the form

can be used for expressing the


value of a variable "y", where
"s" is the Laplace operator.

A Laplace transfer function is specified in MODELS as follows:

where "y" can refer to any variable of the model, and "x" to any variable or input of the model, specified using
a simple name or a reference to an element of an array as follows:

The s-polynomials describe the terms "aisi" and "bisi" of the Laplace function, with each polynomial written as
follows:

where each coefficient can be represented as an arbitrary expression (linear or nonlinear, constant or time-
varying), and is separated from the "s" operator by a vertical bar, which is the "applies to" operator of MODELS,
with the meaning of "expression applied to si" (see DERIVATIVE EXPRESSIONS for examples). Minimum
and maximum limits can be specified for any of the coefficients (see EXPRESSIONS).
MODELS - 9

The keyword CLAPLACE can be used instead of LAPLACE, as follows:

to indicate a constant-coefficients Laplace function. The expressions specifying the value of the coefficients in
CLAPLACE are not re-evaluated during the execution, regardless of the variation of the values of any input or
variable possibly referred to in these expressions. Using CLAPLACE instead of LAPLACE when the
coefficients are constant will increase the simulation speed of the solution by avoiding needless re-evaluation
of the coefficients at each step.

Dynamic minimum and maximum limits can be imposed on the value of "y". The limits are specified in the
statement as follows:

or

where the limits are expressed using the following syntax:

The limit applied to a variable expressed by means of a Laplace function is a "dynamic limit". While an external
static limit would simply clip the value of the variable outside of the procedure by which the value of the
variable is calculated, a dynamic limit modifies the calculation procedure itself by recognizing that the values
of the derivatives of the variable held at a constant limit are zero.

In a case in which the value of the variable calculated by means of a Laplace function is subsequently reassigned
by other means during the same time step, the action of any dynamic limit previously applied to that variable
at that time step is ignored.

When the driving variable "x" of a Laplace function of "y" is itself a function of "y", the Laplace function should
be solved simultaneously with the equation of "x" in a COMBINE group or in an explicitly-defined iteration
structure, because both are together defining the value of "y" concurrently with the value of the derivatives of
"y".

The operator "p" may be used equivalently to "s" when describing the polynomials of the Laplace function.

________________________________________

2.3.1.4 Z TRANSFER FUNCTION

A Z transfer function of the form

can be used for expressing


the value of a variable "y", where "z" is the Z operator.

A Z transfer function is specified in MODELS as follows:


MODELS - 10

where "y" can refer to any variable of the model, and "x" to any variable or input of the model, specified using
a simple name or a reference to an element of an array as follows:

The z-polynomials describe the terms "aiz-i" and "biz-i" of the Z function, with each polynomial written as
follows:

where each coefficient can be represented as an arbitrary expression (linear or nonlinear, constant or time-
varying), and is separated from the "z" operator by a vertical bar, which is the "applies to" operator of
MODELS, with the meaning of "expression applied to z-i" (see DERIVATIVE EXPRESSIONS for examples).
Minimum and maximum limits can be specified for any of the coefficients (see EXPRESSIONS).

The keyword CZFUN can be used instead of ZFUN, as follows:

to indicate a constant-coefficients z function. The expressions specifying the value of the coefficients in CZFUN
are not re-evaluated during the execution, regardless of the variation of the values of any input or variable
possibly referred to in these expressions. Using CZFUN instead of ZFUN when the coefficients are constant
will increase the simulation speed of the solution by avoiding needless re-evaluation of the coefficients at each
step.

Dynamic minimum and maximum limits can be imposed on the value of "y". The limits are specified in the
statement as follows:

or

where the limits are expressed using the following syntax:

The limit applied to a variable expressed by means of a Laplace function is a "dynamic limit". While an external
static limit would simply clip the value of the variable outside of the procedure by which the value of the
variable is calculated, a dynamic limit modifies the calculation procedure itself by recognizing that the values
of the derivatives of the variable held at a constant limit are zero.

In a case in which the value of the variable calculated by means of a Z function is subsequently reassigned by
other means during the same time step, the action of any dynamic limit previously applied to that variable at that
time step is ignored.

When the driving variable "x" of a Z function of "y" is itself a function of "y", the Z function should be solved
simultaneously with the equation of "x" in a COMBINE group or in an explicitly-defined iteration structure,
because both are together defining the value of "y" concurrently with the value of the derivatives of "y".

________________________________________
MODELS - 11

2.3.2 ALGORITHM CONTROL STATEMENTS

2.3.2.1 IF

The use of an IF statement allows the conditions applying to the selective operation of groups of statements to
be stated explicitly. An IF statement is specified as follows:

in which the conditions are expressed as logical expressions, and the statement lists can include any arrangement
of MODELS statements.

Only one option among the IF, ELSIF, and ELSE options of an IF statement is operative at a time: it is the first
option for which the logical expression describing the condition associated with the option is evaluated as true
(see EXPRESSIONS). All remaining options are ignored at that time.

________________________________________

2.3.2.2 WHILE

The use of a WHILE statement allows the conditions applying to the repetition of a group of statements to be
stated explicitly. A WHILE statement is specified as follows:

in which the condition is expressed as a logical expression, and the statement list can include any arrangement
of MODELS statements.

The entire statement list placed in a WHILE statement is considered to be looped onto itself as a repetition. The
condition expressed in the associated logical expression is evaluated every time the decision to enter or re-enter
the list of statements must be made. The group is entered only if the condition is true. The group is then re-
entered as many times as required at the same simulation time as long as the condition continues to be evaluated
as true (see EXPRESSIONS).

________________________________________

2.3.2.3 FOR

The use of a FOR statement allows the value of the parameters controlling the repetition of a group of statements
to be stated explicitly. One or more parameters can be specified in the same FOR statement, as follows:

in which the statement list can include any arrangement of MODELS statements.

The values of each parameter can be specified as a list of values, a range of values, and a combination of the
two, as follows:
MODELS - 12

The entire statement list placed in a FOR statement is considered to be looped onto itself as a repetition. The
list of statements is entered and re-entered as many times as required until all the parameters have been assigned
all combinations of their specified values.

The names chosen for representing the parameters are local to the FOR statement. They are not visible outside
the FOR statement, and can be selected without concern for the possible duplication of names of variables
already defined in the model. They may not, however, duplicate the names of the resident variables and
constants and of the model's constants, data, and inputs.

When a parameter of a FOR statement is used as an array index, and the expression defining its value yields a
non-integer value, a value rounded to the nearest integer is implied and used.

When the size of the "BY" interval used for covering a range of values is not specified, a default value of +1
is implied.

________________________________________

2.3.2.4 DO

The use of a DO statement allows the association of a group of statements to be stated explicitly. An DO list
of statement is specified as follows:

in which the statement list can include any arrangement of MODELS statements.

The use of the DO...ENDDO statement is equivalent to the use of parentheses marking association in an
algebraic expression. It defines the boundaries of a group of statements to which a common operation applies
(see REDO).

________________________________________

2.3.2.5 REDO

The use of a REDO statement allows internal conditions controlling the repetition of a DO...ENDDO group of
statements to be stated explicitly.

The indication that the operation of a DO...ENDDO group of statements is to be repeated is specified within the
group by the use of one or more REDO statements. The boundaries of application of the REDO directive are
determined by the extent of the DO...ENDDO statement enclosing the group that is to be repeated (see DO).

The REDO statement sets a repetition flag if it is encountered during the execution of the DO...ENDDO group
of statements. At the start of each repeated execution of the group, the repetition flag is reset. At the end of each
execution of the group, the status of the flag determines whether the group will be repeated or not.

The REDO directive has no qualifiers, and is specified by the simple use of the "REDO" statement anywhere
in a DO...ENDDO group.

The simple DO repetition structure differs from the conditional (see WHILE) and indexed (see FOR) repetition
structures as follows:

- the directives controlling the repetition are internal to the group of statements forming the DO...ENDDO
repetition group;

- the execution of the DO...ENDDO group of statements is conducted at least once.

________________________________________
MODELS - 13

2.3.2.6 COMBINE

A group of variables can be solved simultaneously by placing their assignment statements inside a COMBINE
group of linear statements of the form:

or a COMBINE group of nonlinear statements of the form:

where the identifier is a name or an indexed name uniquely identifying the group in the model, and "max-iter"
is the maximum allowed number of iterations to convergence, defaulted to 10.

The first form is used for groups of linear variables, and is solved in matrix form using Gaussian elimination.
The statement list of a linear COMBINE can include any of the following value assignments:
- differential equations
- Laplace functions
- Z functions
- linear value assignment of a variable or of an array element of a variable, using:
- linear sum of variables (sum expression)
- polynomial of derivatives of a variable (derivative expression)
- integral of a variable (integral function)
- first and second derivative of a variable (derivative function)
- no regular expression (considered as possibly nonlinear)
- one set of static or dynamic min/max limits in one of the group's assignments (allowed by the Gaussian
elimination method)

The second form is used for groups of nonlinear variables, and is solved by iteration using the Newton method.
The statement list of an iterated COMBINE can include a combination of any type of assignments, at the cost
of possibly-longer execution times and possible non-convergence of the solution, or convergence to a local (non-
global) solution point. Accuracy of initial history and size of time step are determining factors in attaining
correct solution points.

All assignments placed in a COMBINE group are evaluated simultaneously. Examples of simultaneous groups
include:
- a group of value assignments in a tightly-coupled (non-delayed) feedback loop,
- a set of interdependent variables operating concurrently,
- a procedure described as a set of simultaneous equations.

Each statement in a COMBINE statement list specifies how to calculate the value of each simultaneous variable.
The value of each simultaneous variable cannot be specified in more than one statement.

The simultaneous variables of a COMBINE group are considered to be evaluated concurrently with each other.
For this reason, any reference to the value of these variables within the COMBINE group is considered to be
a reference to the present value of the variable, not to its previous value. It is however possible to refer to the
previous value of a simultaneous variable by defining, outside of the COMBINE group, a separate variable
carrying that previous value. Note that this distinction is not required in ordinary sequences of statements.
MODELS - 14

The configuration of a COMBINE group is considered to remain unchanged throughout a simulation. The array
index values identifying the group's simultaneous variables are therefore considered to remain constant
throughout the simulation.

Both the linear and the nonlinear COMBINE groups accept the coefficients used in the statements to be time-
dependent as well as nonlinear expressions. However, in the linear COMBINE solution, the value of each
coefficient, whether linear or not, is calculated every time step before finding the solution point of the group.
As a consequence, in cases where the value of a coefficient is dependent on the value of a simultaneous variable,
the coefficient is pre-evaluated using the variable's value from the preceding time step. This allows the solution
to remain linear by inserting one-step delays in these dependency loops. This is discussed in more detail in the
section on model simulation below.

________________________________________

2.3.2.7 SEQUENCE

When no other form of structure is specified, the statements describing the operation of a model are considered
to be assembled in a sequence form. The sequence structure can also be specified explicitly in a SEQUENCE
statement as follows:

in which the statement list can include any arrangement of MODELS statements.

The statements assembled in a sequence are considered to operate consecutively from the first statement to the
last.

________________________________________

2.3.2.8 USE

Once defined, a model can be used in as many instances as needed in the model in which it is defined. Each
instance is introduced by its own USE statement specifying the defined model, the usename of the instance, and
the directives controlling its simulation. The syntax for a USE statement is the following:

where:
- modelname is the name of the used model;
- usename is a unique local identifier of each instance of the used model, in the form of a single name or an
indexed name, as follows:

- ITERATE is a keyword indicating that this instance may be re-used more than once at each time step;

- INPUT directives are used to assign values to the inputs of the model;

- OUTPUT directives are used to assign the values of the outputs of the model to variables of the calling
model;
- DATA directives are used to assign values to the data of the model;
MODELS - 15

- HISTORY directives are used to assign history functions to variables and inputs of the model;
- TIMESTEP directives are used to assign minimum and maximum limits to the execution time step of the
model;
- INTERPOLATION directives are used to specify the interpolation degrees to be applied to the inputs of
the model if the model is used at sub-steps of the external time step;
- DELAY directives are used to specify the size of storage associated with usage of the delay() function in
the model.

A model can be used only in a model in which its name is visible. The name of a model is only visible in the
model in which it is declared (see MODEL DEFINITION, FOREIGN MODEL, EXTERNAL MODEL).

________________________________________

2.3.3 SIMULATION DIRECTIVE STATEMENTS

2.3.3.1 WRITE

Individual lines of text can be written to the computer's standard output during a simulation, as specified in a
model description in one or more WRITE statements as follows:

where the write-list is specified as follows:

The statement keywords WRITE1 and WRITE2 can be used instead of WRITE, to send the respective lines of
text to the files named models.1 and models.2 .

________________________________________

2.3.3.2 ERROR

Predicted error situations related to the simulation of a model can be stated explicitly in the model, using an
ERROR...STOP structure to specify the pre-termination procedure to be followed before the simulation is halted
in a well-ordered manner.

An ERROR statement is specified as follows:

where the statement list can include any arrangement of MODELS statements.

On completion of the execution of the statement list specified in an ERROR statement, the simulation is
immediately terminated.

________________________________________

2.3.3.3 DEPOSIT

The DEPOSIT statement allows a model to modify the value of any program variable of ATP that can be
changed using ATP's SPY command DEPOSIT. The ATP documentation of the SPY commands describes what
program variables can be modified.
MODELS - 16

The DEPOSIT statement is used as follows:

DEPOSIT( name, value )


DEPOSIT( name[expr], value )
DEPOSIT( name[expr..expr], value )

where 'name' is the name of a program variable accessible from SPY;

and where a single value can be assigned to single variable, to a single element of an array variable, or to a group
of elements of an array variable.

________________________________________

2.4 VALUE-HOLDING ELEMENTS

2.4.1 ARRAYS

The value-holding elements of a model can be specified singly or as elements of unidimensional arrays, with
the following advantages:
- the symmetry or similarity of a group of elements can be made more explicit when an array form is used
(for example in identifying similar inputs to a model)
- the possibility of referring to many instances of a variable or constant under the same name simplifies the
use of repetition structures (WHILE, FOR, DO).

The total index range of an array is inferred from one or more declarations of the elements of the array in the
model definition (see DATA, INPUT, CONSTANTS, VARIABLES). The default index range is one.

A non-array element is identified by simply indicating its name:

A single array element is identified by indicating the name of the array and, within square brackets, a numerical
expression specifying the value of the array index:

A group of array elements is identified by indicating the name of the array and, within square brackets, the two
numerical expressions specifying the index range of the group:

When the evaluation of an expression defining the value of an array index yields a non-integer value, a value
rounded to the nearest integer is automatically implied and used.

________________________________________

2.4.2 CONSTANTS

The constants of a model are named value-holders carrying constant values. Their name, optional array range,
and value are declared in one or more CONST declarations in a model definition as follows:
MODELS - 17

- where each constant element can be specified as a single name, a single array element, or a group of array
elements, as follows:

- where a single value can be assigned to a single constant, to a single element of a constant array, or to a
group of elements of a constant array sharing the same value;
- and where an array of values can be assigned directly to a group of elements of a constant array by using
an array-value expression to describe the assigned value.

The constants of a model are used as follows:


- their name, array range, and value are declared in one or more CONST declarations in the model definition;
- their value cannot be modified in the model;
- their value can be used in any expression in the model.

________________________________________

2.4.3 RESIDENT CONSTANTS

A number of numerical and logical constants are permanently defined and are available for use in model
descriptions. Their value can be used directly in any expression of a model (see VALUE REFERENCE,
EXPRESSIONS). Their names are visible in any model, and can be used directly without being declared in a
CONST declaration.

The following resident constants are defined:

- resident numerical constants:


pi = 3.14159...
inf = very large number fitting the computer in use
undefined = 88888.88888 (value held by any element before it is assigned a first value)

- resident logical constants:


false =0
true =1
no =0
yes =1
open =0
closed =1
off =0
on =1

________________________________________

2.4.4 DATA

The data of a model are named value-holders carrying use-defined constant values. They allow a model to be
described with generic dimensions, coefficients, parameters, and flags which can be assigned specific values
at the time the model is used. Their name, optional array range, and optional default value are declared in one
or more DATA declarations in the model definition, and they can then be assigned local values in each USE
statement where the model is used.
MODELS - 18

The data elements are declared in a model definition as follows:

- where each data element can be specified as a single name, a single array element, or a group of array
elements, as follows:

- where a single default value can be assigned to a single data, to a single element of a data array, or to a
group of elements of a data array sharing the same value;
- and where an array of default values can be assigned directly to a group of elements of a data array by using
an array-value expression to describe the assigned default value.

In a USE statement, values can be assigned to the data elements of the used model as follows:

- where a single value can be assigned to a single data, to a single element of a data array, or to a group of
elements of a data array sharing the same value;
- and where an array of values can be assigned in array form to a group of elements of a data array.

Not all data elements of a model need be assigned a value in each model use, provided that a default value has
been specified in the model's DATA declaration for each optional data assignment.

The value of a data element is determined at the first instant each use of a model is first executed, and remains
constant throughout the rest of the simulation for that model use.

Minimum and maximum limits can be attached to the value of a data element in the expressions describing its
default and assigned values (see EXPRESSIONS).

The data of a model are used as follows:


- their name, optional array range, and optional default value are declared in one or more DATA declarations
in the model definition;
- their value is assigned in a DATA directive of a USE statement (optional for data with a default value);
- their value cannot be modified in the model;
- their value can be used in any expression in the model;

- references to data values can be used in expressions defining the dimensions of an array in any array range
declaration of a model definition; this allows the size of arrays to be dynamically specified later when the
model is used.

________________________________________
MODELS - 19

2.4.5 VARIABLES

The variables of a model are named value-holders carrying the internal variable values used in a model. Their
name and optional array range are declared in one or more VAR declarations in a model definition as follows:

where each variable element can be specified as a single name, a single array element, or a group of array
elements, as follows:

The variables of a model are used as follows:


- their name and optional array range are declared in one or more VAR declarations in the model definition;
- their value is assigned and can be modified in any value assignment statement in the model;
- their value can be used in any expression in the model's procedures;
- their value can be used as an output of the model.

________________________________________

2.4.6 RESIDENT VARIABLES

A number of variables are permanently defined and are available for use in a model. Their value can be used
directly in any variable expression of a model (see VALUE REFERENCE), and cannot be modified in
assignment statements in the model. Their names are visible in any model, and can be used directly without
being declared in a VAR declaration.

The following resident variables provide access to the time characteristics of the simulation of a model. A
separate set of values of these variables exists locally for each use of each model. They are:
t the present value of the simulation time in the model;
prevtime the previous value of the simulation time in the model;
timestep the present value of the simulation interval in the model (=t-prevtime);
endtime the external simulation time to which the model is to be updated;
fullstep the total time interval over which the model is to be updated (= endtime - previous endtime);
maxstep the calculated present maximum allowed value of the time step in the model;
minstep the calculated present minimum allowed value of the time step in the model;

Three other resident variables are defined globally for a simulation. They are:
starttime the value of time at the start of the simulation;
stoptime the value of time at which the simulation will end;
startstep the value of the outermost time step at the start of the simulation.
In addition to representing the present value of the simulation time in a model, the variable t can also be used
as a general reference to the value of time in expressions describing history functions in a model (see
HISTORY).

________________________________________
MODELS - 20

2.5 MODEL INTERFACE

2.5.1 INPUT

The inputs of a model are named value-holders carrying the external input values used in a model. Their name,
optional array range, and optional default value are declared in one or more INPUT declarations in a model
definition, and they can then be assigned local values in each USE statement where the model is used.

The input elements are declared in a model definition as follows:

- where each input element can be a single name, a single array element, or a group of array elements, as
follows:

- where a single default value can be assigned to a single input, to a single element of an input array, or to
a group of elements of an input array sharing the same value;
- and where an array of default values can be assigned directly to a group of elements of an input array by
using an array-value expression to describe the assigned default value.

In a USE statement, values can be assigned to the input elements of the used model as follows:

- where a single value can be assigned to a single input, to a single element of an input array, or to a group
of elements of an input array sharing the same value;
- and where an array of values can be assigned in array form to a group of elements of an input array.

Not all input elements of a model need be assigned a value in each model use, provided that a default value has
been specified in the model's INPUT declaration for each optional input assignment.

The value of an input element is re-calculated at each call to a model use.

Minimum and maximum limits can be attached to the value of an input in the expressions describing its default
and assigned values (see EXPRESSIONS).

The input variables of a model are used as follows:


- their name, optional array range, and optional default value are declared in one or more INPUT declarations
in the model definition;
- their value is assigned in an INPUT directive of the USE statement (optional for inputs with a default
value);
- their value cannot be modified in the model;
- their value can be used in any expression in the model's procedures;
- their value can be used as an output of the model.

________________________________________
MODELS - 21

2.5.2 OUTPUT

Any input or variable of a model can be used as outputs of the model. Their name and optional array range are
specified as outputs of the model in one or more OUTPUT declarations in the model definition as follows:

where each output element can be specified as a single name, a single array element, or a group of array
elements, as follows:

In a USE statement, the value of any output of the used model can be assigned to any variable of the calling
model. The use of a model's outputs is specified in one or more OUTPUT directives of a USE statement, as
follows:

- where the value of a single output can be assigned to a single variable, to a single element of a variable
array, or to a group of elements of a variable array assigned the same output value;

- and where the value of a group of elements of an output array can be assigned in array form to a group of
elements of a variable array.

All outputs specified in a model definition are available for reference in any use of the model, although not all
outputs need be used in each model use.

________________________________________

2.6 FUNCTIONS

2.6.1 FUNCTIONS IN A MODEL

A function describes the method by which a value or an array of values is calculated, given the values assigned
to the function's arguments. When used in an expression, a function returns the value or array of values it
calculates.

Four types of functions can be declared in a model definition:


- statement functions
- pointlist functions
- foreign functions
- external functions

In addition, two sets of functions are pre-defined and are available for use in any model:
- resident numerical and logical functions
- resident simulation functions

________________________________________
MODELS - 22

2.6.2 STATEMENT FUNCTION

A statement function is a parametrized expression evaluated according to the values assigned to the function's
arguments. It calculates a numerical value, or an array of numerical values, and is defined in a model as follows:

The input arguments of a function are single elements with names that are local to the function. They are not
visible outside the function, and can be selected without concern for the possible duplication of names already
defined outside the function. They may not, however, duplicate the names of the resident variables and constants
defined in MODELS.

A statement function is used by referring to the function's name and providing values for the function's
arguments in the same order as they appear in the function definition:

A statement function can be used in any expression of the model in which it is defined (see EXPRESSIONS),
except in its own definition.

Minimum and maximum limits can be attached to the value of the expression describing the statement function
in the function definition (see EXPRESSIONS). Minimum and maximum limits can be attached to the value of
the function's arguments when the function is used, in the expressions describing their value.

________________________________________

2.6.3 POINTLIST FUNCTION

A pointlist function is a list of coordinates {(xk,yk), k=1..n}, ordered in increasing values of x. The function is
assumed to be defined over the entire range of x (from -infinity to +infinity) in one of the two following ways:
- either as a continuous function, where the missing intermediate points (xj, yj) in
the interval xk-1 < xj < xk will be interpolated using linear of quadratic interpolation;
- or as a discontinuous function, where yj holds a constant value equal to yk-1 for each missing intermediate
point (xj, yj) in the interval xk-1 < xj < xk .

A pointlist function is defined in a model as follows:

The expressions defining the coordinates of each point are regular expressions which can refer to the value of
any value-holding element visible in the model, and which can use other functions available in the model,
including other pointlist functions (allowing the use of families of parametrized curves defined as pointlists of
pointlists).

A pointlist function is used by referring to the function's name and by providing a value for its "x" argument and
for its optional "pol" argument, in the form of f(x) or f(x,pol), as follows:

- where "x" is the value at which the pointlist function f(x) is to be evaluated;
- and where "pol" is an optional argument indicating the interpolation degree 0, 1, or 2 used for evaluating
the function between its defined points (0=discontinuous, 1=linear, 2=quadratic) (default=1).
MODELS - 23

A pointlist function can be used in any expression of the model in which it is defined.

When the variable x is considered to be holding values of time, the pointlist function can be considered to
represent a function of time f(t).

________________________________________

2.6.4 FOREIGN FUNCTIONS

In addition to defining functions using the MODELS language, it is also possible to use functions written in
other programming languages. MODELS provides a pre-defined interface that can be used by the user to connect
"foreign" functions to a simulation. The interface is defined as one array carrying the input arguments passed
to the function, and returning the output values calculated in the function. For example, a foreign function
written in C would have the form:
double cfun(double xarg[])
{ ...
xarg[0]=...
xarg[1]=...
xarg[2]=...
return 3; /* indicating it placed 3 values on xarg[] */
}

where
- cfun: arbitrary name of the foreign function
- xarg: array of values carrying the input and output values of the function

In order to be recognized as a function, a foreign function is declared in the model where it is used. The
declaration is as follows:

where:
- name: local name by which the foreign function can be referenced in the model;
- idname: arbitrary name used in the connection table of the foreign interface subroutine of MODELS
to recognize calls to this function;
- xarg: pre-defined keyword that must be used to specify the size of the argument array.

A foreign function must be compiled and linked to the simulation program before it can be called by MODELS.
Any source language may be used, provided that the compiled object code is compatible with the linker
available on the computer platform used to run the simulation. The interface routine of MODELS (in file
mod001.for) is where the user registers the correspondence between the idname used in the foreign function
declarations, and the actual names of the foreign functions linked with the program.

A foreign function is used by referring to the function's name and providing values for the function's arguments
in the same order as they are expected in the foreign function:

A foreign function can be used in any expression of the model in which it is defined. Minimum and maximum
limits can be attached to the value of the function's arguments when the function is used, with each expression
describing their value.

________________________________________
MODELS - 24

2.6.5 EXTERNAL FUNCTIONS

No function can be used in a model without being first declared in that model. If the definition of a function is
not included in a model in which it is used, it must be declared as EXTERNAL to that model, as follows:

The implied search algorithm for the location of the definition of an external function inspects the model
structure from the local model upward.

________________________________________

2.6.6 RESIDENT FUNCTIONS

A number of numerical and logical functions are permanently defined and are available for use in a model. Their
names are visible in any model, and can be used directly without being declared in a FUNCTION declaration.

A resident function is used by referring to the function's name and by providing values for the function's
arguments, as follows:

where each argument of the function is assigned a value, in the same sequence as the arguments appear in the
function definition.

The following resident functions are defined:


- numerical functions returning one value for each input argument:
abs absolute value of each argument
sqrt square root of each argument
exp exponential of each argument
ln base-e logarithm of each argument
log10 base-10 logarithm of each argument
log2 base-2 logarithm of each argument
recip 1/x for each x, with zero-division protection (1/0 = inf)
factorial x! for each argument x
trunc integer part of each argument
fract fractional part of each argument
round rounded value of each argument (to the nearest integer)
sign =-1 when x<0, =0 when x=0, =+1 when x>0, for each x
rad value conversion from degrees to radians, for each argument
deg value conversion from radians to degrees, for each argument
sin sine of each argument
cos cosine of each argument
tan tangent of each argument
asin arc sine of each argument
acos arc cosine of each argument
atan arc tangent of each argument
sinh hyperbolic sine of each argument
cosh hyperbolic cosine of each argument
tanh hyperbolic tangent of each argument
asinh arc hyperbolic sine of each argument
acosh arc hyperbolic cosine of each argument
atanh arc hyperbolic tangent of each argument
MODELS - 25

- double-argument numerical functions returning a single value:


atan2(x1,x2) tan-1(x1/x2) with 4-quadrant range as determined by the signs of x1 and x2
binom(n,r) C(n,r) combination of r elements in a set of n
= n!/(n-r)!r!
permut(n,r) P(n,r) permutation of r elements in a set of n
= n!/(n-r)!
- multiple-argument numerical functions returning a single value:
min(x1,x2,...) minimum value of {x1, x2, ...}
max(x1,x2,...) maximum value of {x1, x2, ...}
norm(x1,x2,...) Euclidian norm =sqrt(x12+x22+...)
- no-argument numerical functions returning a single value:
random single random number between 0 and 1, uses no argument
- logical functions returning one value for each input argument:
bool value conversion of each argument from numerical to Boolean
= 1 when x > 0
= 0 when x <= 0
- multiple-argument logical functions returning a single value:
and(x1,x2,...) returns value of "x1 AND x2 AND ..."
=1 only when all the arguments are true
or(x1,x2,...) returns value of "x1 OR x2 OR ..."
=1 when one or more of the arguments are true
nand(x1,x2,...) returns value of "NOT(x1 AND x2 AND ...)"
=1 when one or more arguments are false
nor(x1,x2,...) returns value of "NOT(x1 OR x2 OR ...)"
=1 only when all the arguments are false
xor(x1,x2,...) returns value of "x1 XOR x2 XOR ..."
= 1 when only one of the arguments is true

________________________________________

2.6.7 RESIDENT SIMULATION FUNCTIONS

A number of functions which are related to the time simulation of a model are permanently defined and are
available for use in a model. Their names are visible in any model, and can be used directly without being
declared in a FUNCTION declaration.

A resident simulation function is used by indicating the function's name, the single element to which the
function is applied, and values of any required function arguments, as follows:

- where the element can be any input or variable element of a model, as follows:
MODELS - 26

- and where, in the case of the functions histdef and histval, the element can also be the integral of any input
or variable of the model:

For those functions requiring interpolation or extrapolation (see the list of functions below), the interpolation
degree "pol" is an optional argument indicating the interpolation degree 0, 1, or 2 used for evaluating the
function between the available values of the element (0=discontinuous, 1=linear, 2=quadratic) (default=1).

The following resident simulation functions are defined:


deriv(x) the value of the first-order time derivative of x at the present simulation time
deriv2(x) the value of the second-order time derivative of x at the present simulation
time
delay(x,d,pol) past value of x at time (t-d), including references to pre-simulation times using
the history function assigned to x
prevval(x) the value of x at the previous simulation time
backval(x,t,pol) past value of x at a time t within the last time step
backtime(x,val,pol) time at which x had the value val during the last time step
= "undefined" if not possible
predval(x,t,pol) predicted value of x at time t
predtime(x,val,pol) predicted value of time at which x will reach the value val
= "undefined" if not possible
histdef(x) a reference to the definition of the history function associated with x, used
when defining the history of an element in terms of the history of another
element
histval(x,t) the value of x evaluated at time t, calculated using the history function
associated with x
atp(x) the value of a single ATP program variable or array element x accessible by
ATP's SPY command EXAMINE

________________________________________

2.7 NAMES

2.7.1 NAME DEFINITION

A name is a string of contiguous characters of arbitrary length, starting with a letter, and including any number
of letters, digits, and underscore characters "_". Names in a model are not case-sensitive.

Names are used for identifying models, functions, and value-holding elements (constant, data, input, variable,
function argument, and FOR parameters). The reference to a named element is direct, by simple indication of
the name.

The following identifiers have a reserved interpretation and may not be assigned as names in the description of
a model. They are:
- the names of the resident models, functions, variables, and constants;
- the syntactic keywords of the MODELS language.

________________________________________
MODELS - 27

2.7.2 USE PATHNAMES

A use pathname is the unique pathname describing the location of a model use in a system. It consists of a
contiguous sequence of usenames, each separated by a period. A usename is the local identification name
assigned to a model in each use of the model, and may be a single name or an indexed array name, as follows:

Use pathnames are used by the simulation program in the printout of warning and error messages.

________________________________________

2.8 VALUES

2.8.1 VALUE TYPES

Three types of values are available: numerical values, logical values, and text values.

Numerical values are integer or real values in the interval (-inf,+inf), specified as follows:

where n is any contiguous sequence of decimal digits.

Logical values are the values true and false, and can be specified by using the resident logical constants
true/false, on/off, closed/open, and yes/no.

A text value is an arbitrary string of characters enclosed in quotes or apostrophes. A string can include any
character except the string delimiter used for enclosing the string.

Numerical values can be used directly as logical values, where they are interpreted as true when positive, and
as false when negative or zero.

Logical values can be used directly as numerical values, where they are interpreted as having the value 1.0 when
true, and 0.0 when false.

________________________________________

2.8.2 VALUE REFERENCE

The value associated with a named value-holding element can be accessed in any expression of the model in
which the name of the element is visible. The value-holding elements visible in a model are:
- the constants, data, variables, and inputs declared in the model
- the resident constants and variables of MODELS

The names of the arguments of a statement function are visible only in the function where they are defined.

The names of the parameters of a FOR statement are visible only in the statement list associated with the FOR
statement.

The value of an element is accessed directly by using the element's name as a reference to its value.
MODELS - 28

The reference context of an expression is the model in which the value-holding elements referred to in the
expression are defined. The reference context of most expressions is the model in which the expression is
specified. However, the reference context of some expressions in a USE statement also includes the model being
used, as follows:
- data names of the used model can be referenced in any expression of a USE statement defining values or
array indexes of elements of the used model;
- input names of the used model can be referenced in any expression of a USE statement defining values of
elements of the used model, except values of data elements of the used model.

________________________________________

2.8.3 VALUE LIMITS

Static limits are specified in the following format:

Static limits ("clipping") can be applied to any of the following calculated values:

- a regular expression
- a sum expression
- a derivative polynomial expression

Dynamic limits are specified in the following format:

Dynamic limits can be applied to any of the following calculated value:


- integrals
- variables calculated by a differential equation
- variables calculated by a Laplace or Z transfer function

A static limit modifies the value of a variable outside and independently of the procedure by which the variable
is calculated. A dynamic limit directly affects the procedure used for the calculation of the variable.

In control circuitry, applying a dynamic limit corresponds to modifying the value of a signal within a
component's internal feedback loop. Applying a static limit corresponds to modifying the value of a signal
externally from the component producing the signal.
MODELS - 29

The effect of applying an external static limit and an internal dynamic limit to an integral, for instance, is
demonstrated in the following example:

________________________________________

2.9 EXPRESSIONS

2.9.1 EXPRESSIONS IN A MODEL

An expression is a description of the method by which a value is determined. An expression can refer to names
of functions and of value-holding elements visible in the context where the expression is used (see VALUE
REFERENCE). An expression can be used for specifying the value of a single element or of a group of array
elements. It is implicitly an array of one or more elements.

The type of value (numerical or logical) resulting from the evaluation of an expression is determined by the type
of the operators used in the expression.

The following forms of expressions can be used in MODELS:


- regular expressions
- sum expressions
- derivative expressions
- use of integrals

________________________________________

2.9.2 REGULAR EXPRESSIONS

A regular expression is either a logical expression or a numerical expression depending on the operators used
in the expression. The value of a regular expression is either a single value or an array of values depending on
the value descriptions used in the expression.

A regular expression is defined in the following format and order of precedence:

- a regular expression consists of one or more logical terms separated by the OR operator:

- a logical term consists of one of more logical factors separated by the AND operator:
MODELS - 30

- a logical factor is a logical relation or a numerical expression:

- a logical relation consists of two numerical expressions separated by one of the six relational operators:

where the relational operators are:


> greater than
>= greater than or equal to
< less than
<= less than or equal to
= equal to
<> not equal to

- a numerical expression consists of one or more numerical terms separated by the addition or subtraction
operators + and - :

- a numerical term consists of one or more numerical factors separated by the multiplication or division
operators * and / :

- a numerical factor is an exponent relation or a value reference:

- an exponent relation consists of two value references separated by the exponent operator ** :

- a modulo relation consists of two value references separated by the modulo operator MOD :

- a value reference is one of the following:

where:
- a simple numerical value or an array value can be described directly
- a named value, a function value, or a sub-expression can be preceded by the unary numerical or logical
inverse operators - and NOT
MODELS - 31

- a numerical value is described in the following format:

where n is any contiguous sequence of decimal digits

- an array value is a list of regular single-value or array-value expressions enclosed in square brackets:

- a named value is:


- a reference by name to a single value-holding element,
- a reference by name and array index to a single element of an array,
- or a reference by name and array index range to a group of elements of an array
(when used, the left bracket must immediately follow the name)

- a function value is expressed as a function name followed by a list of argument values


(the left parenthesis must immediately follow the function name)

- a sub-expression is a regular expression enclosed in parentheses.

Numerical limits can be applied to the value of a regular expression. Limits applied to an expression are static
limits. They are specified immediately following the expression, enclosed in a pair of braces:

Some examples of regular expressions follow:


a + b[i+2] sum of single element a and of element [i+2] of array b

-sin(2*omega*t) use of resident function sin( )

a AND NOT b logical expression

a>=2*b +c**(2*d) logical expression

-3.582 * 3E6 product of two numerical values

[3, 5, 9, cnt-2] array value of length 4

________________________________________
MODELS - 32

2.9.3 SUM EXPRESSIONS

A linear polynomial expression of the form


a0 + a1x1 + a2x2 +...
can be used for expressing the value of a variable y.

A linear polynomial is specified in MODELS as follows:

where y can refer to any variable of the model, specified using a single name or a single element of an array:

The polynomial describes the terms "aixi" of the equation, written as follows:

where each element can be a single name or a single element of an array:

and where each coefficient can be represented as an arbitrary expression (linear or nonlinear, constant or time-
varying), and is separated from the element by a vertical bar, which is the "applies to" operator of MODELS,
with the meaning of "expression applied to x". Minimum and maximum limits can be specified for any of the
coefficients (see EXPRESSIONS).

Minimum and maximum limits can be assigned to the value of the sum as follows:

Limits applied to a sum expression are static limits. They are specified immediately following the sum
expression, enclosed in a pair of braces:

An expression is specified as a sum expression when it is necessary to put in evidence the linearity of the
expression with respect to the x elements. It can be used as the right-hand side of any value assignment, but is
required only in a COMBINE group of statements (see COMBINE, SIMULTANEOUS ELEMENTS).

The following are examples of sum terms:


3.0 | a coef = 3.0, x-element = a
1.0 | b[2*i-6] coef = 1.0, x-element = b[2*i-6]
6.42*a | coef = 6.42*a, no x-element

________________________________________
MODELS - 33

2.9.4 DERIVATIVE EXPRESSIONS

References to the value of the first- and second-order time derivatives of an input or variable can be used in any
expression of a model, by means of the functions deriv(x) and deriv2(x) (see RESIDENT SIMULATION
FUNCTIONS). Alternately, a linear polynomial of the time derivatives of an element can be used, of the form:
( a0 + a1D + a2D2 +... ) x
where D is the time derivative operator representing d/dt.

In MODELS, a derivative expression can be used for describing a linear polynomial of derivatives, as follows:

- where y can refer to any variable of the model, and x can refer to any input or variable of the model, each
specified using a single name or a single element of an array:

- and where the polynomial is separated from the element to which it is applied by a vertical bar, the "applies
to" operator of MODELS, with the meaning of "polynomial applied to x".

The D-polynomial describes the terms "aiDi" of the equation, written as follows:

where each coefficient can be represented as an arbitrary expression (linear or nonlinear, constant or time-
varying), and is separated from the D operator by a vertical bar, the "applies to" operator of MODELS, with the
meaning of "expression applied to D". Minimum and maximum limits can be specified for any of the
coefficients (see EXPRESSIONS).

Minimum and maximum limit values can be assigned to a derivative polynomial as follows:

Limits applied to a derivative polynomial expression are static limits. They are specified immediately following
the element to which the derivative expression is applied, as follows:

An expression is specified as a derivative expression when it is necessary to put in evidence the linearity of the
expression with respect to the derivatives of x. It can be used as the right-hand side of any value assignment,
but is required only in a COMBINE group of statements (see COMBINE, SIMULTANEOUS ELEMENTS).

An example of a derivative polynomial is shown below, with its interpretation:


(cos(a)| +2|D +3.56*a|D2 -1|D3) | x : cos(a)⋅x +2⋅dx/dt +3.56⋅a⋅d2x/dt2 -d3x/dt3

________________________________________
MODELS - 34

2.9.5 INTEGRALS

2.9.5.1 INTEGRAL EXPRESSION

The time integral of any input or variable of a model is automatically calculated during the simulation whenever
an integral expression is evaluated. The value of the integral of an element at a given time step is a cumulative
value dependent on the previous value of the integral and on the present and previous value of the integrated
element.y

An integral expression is specified as follows:

where y and x can be references to a single element or to a single array element, of the form:

Minimum and maximum limits can be assigned to the value of an integral as follows:

They are specified immediately following the integral, enclosed in a pair of braces:

The limit applied to an integral is a "dynamic limit". While an external static limit would simply clip the value
of the integral separately from the procedure by which it is calculated, a dynamic limit modifies the calculation
procedure itself by recognizing that the past value used in a later calculation of the integral is the integral's
limited value.

When more than one integral expressions affect the same element at a given time step of a simulation, the
integral is re-evaluated each time it is used, to reflect possible changes in the value of the element to which it
applies. Each new evaluation of the integral during the same time step also releases any previously-applied limit
to that integral at that time step.

________________________________________

2.9.5.2 INTEGRAL VALUE RESET

The value of an integral can be reset at any time of a simulation, using an integral value assignment. A single
value can be assigned to the integral of a single element, of a single array element, or of a group of array
elements sharing the same value, by using a single-value integral assignment as follows:

and an array of values can be assigned to the integral of a group of array elements, using an array-value integral
assignment as follows:

Minimum and maximum limits can be attached to the value assigned to the integral, in the expression describing
the value (see EXPRESSIONS).
MODELS - 35

From the point where a reset value is assigned to an integral until the end of the execution of that model at that
simulation time, the value of the integral becomes fixed, and is not influenced anymore by the value of the
integrated variable.

________________________________________

2.10 FORMAT

2.10.1 DESCRIPTION FORMAT

The syntax of MODELS allows the use of free-style formatting throughout the description of a model. The
interpretation of the description is based exclusively on the use of single keywords (for example, DATA,
INPUT, TIMESTEP) and of sets of delimiters (for example, MODEL...ENDMODEL, USE...ENDUSE,
IF...ELSE...ENDIF, "..." ), and by the local context of interpretation defined by their use.

The interpretation of the description of a model is not sensitive to the case of the identifiers used in the model.
Uppercase letters have been used for identifying the various keywords in this documentation, but only in order
to increase their visibility.

________________________________________

2.10.2 DELIMITERS

Names, numerical values, and reserved keywords, must be written as strings of contiguous characters.

In a name, any character other than a letter, a digit, or the underscore character, is interpreted to indicate the end
of the name (see NAME DEFINITION).

In a numerical value, any character other than a decimal digit, a plus sign, a minus sign, a period, or the letter
E, is interpreted to indicate the end of the numerical value (see VALUE TYPES).

In a reserved keyword, any character other than a letter is interpreted to indicate the end of the keyword (see
NAME DEFINITION).

All groups of commas, semicolons, and white-space characters (spaces, tabs, carriage returns, line feeds), are
interpreted as spaces, with no additional syntactical meaning. There is one exception: a carriage return or line
feed is used to mark the end of an in-line comment.

________________________________________

2.10.3 LINE INDENTATION

Line indentation can be used in the description of a model for the purpose of facilitating the reader's
identification of the structure of the model description.

Any space or tab characters used for indenting the lines of a model description are only visual place markers
in the written presentation of the model, and carry no syntactic meaning affecting the interpretation of the
description, other than their regular use as delimiters of names and numerical values (see DELIMITERS).

Blank lines can similarly be used freely for increasing the readability of a model description.

________________________________________
MODELS - 36

2.10.4 COMMENTS

Comments can be included anywhere in a model description, and do not affect the syntactic interpretation of
the model description.

Two types of comments can be used: in-line comments, and block comments.

An in-line comment is any text beginning with a hyphen string (two or more contiguous hyphens) and ending
at the end of the line.

A block comment is enclosed by the keywords:


COMMENT ... ENDCOMMENT
or ILLUSTRATION ... ENDILLUSTRATION

and can contain any combination of text and graphics, as follows:

or

________________________________________
MODELS - 37

3. MODEL SIMULATION

3.1 SIMULATION DIRECTIVES

3.1.1 TIMESTEP

Over the course of a simulation, the state of a model is updated at successive instants of time, every time the
model is called for execution by the environment in which it is used. The size of the time interval between two
successive instants of execution of a model is referred to as the simulation time step of the model.

It is possible to define limits on the permitted time interval between successive executions of a model. Variable
minimum and maximum size of a model's time step can be specified in any definition and in any USE of a
model, using one or more TIMESTEP directives, as follows:

Whenever a model is called for execution after a time step that is smaller than the calculated minimum time step,
the execution request is ignored. A model can in this way be executed with a time step larger than the time step
used in the environment in which the model is used, its state and its outputs remaining constant from one
execution to the next.

Whenever a model is called for execution after a time step that is larger than the calculated maximum time step,
the model's local time step is divided into equal sub-steps of a size satisfying the stated maximum, and the model
is executed successively at each sub-step until the complete interval is covered. A model can in this way be
executed with a time step smaller than the time step used in the environment in which the model is used (see
INTERPOLATION for calculation of the inputs to the model at each sub-step).

When no minimum and maximum values are specified for the time step, a model is executed every time it is
called by a USE statement.

The values of the minimum and maximum specified for a model's time step in a USE statement are subject to
the minimum and maximum values specified in the definition of the used model.

________________________________________

3.1.2 INTERPOLATION

When a model is executed, the values presented to its inputs by the calling model are values calculated at the
simulation time of the calling model. If the used model runs at sub-steps of the calling model (see TIMESTEP),
the values of the inputs are undefined at those intermediate times, and must be estimated by the model, using
interpolation.

The inputs can be treated as continuous or discontinuous, depending on the level of interpolation used for
calculating their value for sub-step execution (0=discontinuous, 1=linear, 2=quadratic) (default=1).

The interpolation degree to be applied to the inputs of a model for sub-step execution can be specified for
individual input elements, in the model definition and in USE statements, in INTERPOLATION DEGREE
directives of the form:
MODELS - 38

- where a different degree value can be specified for different lists of input elements;
- and where a default degree value can be specified for the remaining unlisted input elements.

Each list of elements is written in the following form:

with each element either a single input, a single element of an input array, or a group of elements of an input
array, as follows:

When unspecified, a default interpolation degree value of 1 is automatically selected.

An INTERPOLATION DEGREE directive specified in a model definition applies to all uses of the model, and
can be modified by specifying individual INTERPOLATION DEGREE directives in local USE statements.

Interpolation on the values of an element x in an interval (x0, x1) has the following interpretation depending on
the interpolation degree:
0 uses the value x0 for any time t0 <= t < t1
uses the value x1 for time t = t1
(equivalent to considering x as a step function of time)
1 uses linear interpolation based on the two most recent values of x
2 uses quadratic interpolation based on the three most recent values of x

________________________________________

3.1.3 DELAY

The resident simulation function delay() provides access to past values of the input and variable elements of a
model. The simulation program reserves a default number of memory cells for each element to which the
function is applied. However, a different number of storage cells can be assigned to any delay element, in the
model definition and in USE statements, in DELAY CELLS directives of the form:

- where a different number of cells can be specified for different lists of elements;
- and where a new default degree value can be specified for the remaining unlisted elements.

Each list of elements is written in the following form:

with each element either a single element, a single array element, or a group of array elements, as follows:
MODELS - 39

When unspecified, the program reserves a default number of 100 cells for each element to which the delay
function is applied.

A DELAY CELLS directive specified in a model definition applies to all uses of the model, and can be modified
by specifying individual DELAY CELLS directives in local USE statements.

Depending on how it is specified, the number of storage cells for each delay element is calculated as follows:
- if specified in a DELAY CELLS list in the USE definition, then that number;
- else if specified in a DELAY CELLS list in the MODEL definition, then that number;
- else if there is a DELAY CELLS DFLT in the USE definition, then that number;
- else if there is a DELAY CELLS DFLT in the MODEL definition, then that number;
- else 100 cells.

This allows the developer and the user of a model to adjust the storage size that is required to match the
maximum number of storage cells necessary for lodging the largest delay value applied to a given element
(number of cells = largest delay value / smallest time step value).

________________________________________

3.2 SIMULATION PROCESS

3.2.1 INITIALIZATION

During the simulation of a system, the state of each used model is evaluated repeatedly at discrete instants of
time over a number of time intervals (the time steps of the model) covering the course of the simulation.

Evaluating the state of a used model at a given instant of the simulation consists in calculating the present value
of the model's variables and integrals according to the execution procedure describing the operation of the model
(see EXECUTION), using the values being applied to the model's inputs (see INPUT) and the accumulated
history of some of the model's variables required in the operation of the model.

At the first call for execution of a used model, this evaluation could not be conducted without first knowing the
history of the quantities expected to have been carried from non-existent previous execution times.

The minimum initialization task then consists in defining the pre-simulation history of the quantities expected
to have been carried from the missing previous execution times.

A history function can be associated to any variable of a model. It can be defined as a general function of time
f(t), including references to pointlist functions and to the history functions of other variables.

Three levels of history definition can be successively applied. The history can be first specified in the definition
of a model in the form of a default function; then in the HISTORY section of each USE statement; and finally
in the form of history assignment statements in the INIT procedure of the model description.

________________________________________

3.2.2 HISTORY FUNCTIONS

During the simulation of a model, references are made to the past values of an element in the following
situations:
- when referring to a variable for which a value has not yet been determined at the present execution time;
MODELS - 40

- when using a variable as argument of the simulation functions delay, prevval, predval, predtime, backval,
backtime, histdef, histval, deriv, and deriv2;
- when applying a Laplace or Z function, a differential equation, an integral, or a derivative expression to
an element;
- when using interpolation on the inputs of a model during sub-step execution (see INTERPOLATION).
These past values do not exist when a reference is for a simulation time preceding the start of the execution of
a model. However, it is possible to define history functions that describe the value of an element for times
preceding the simulation of a model. History functions can be defined for any element of a model, as follows:
- in HISTORY directives in the definition of a model;
- in HISTORY directives in a USE statement defining the use of a model;
- in a history assignment statement inside the INIT procedure of a model.

All variables publicly requiring a history function in a model (as opposed to history functions privately defined
in the INIT section of a model) must be declared in a HISTORY directive of the model definition. HISTORY
directives in the model definition can also be used for assigning a default history function to any input or
variable element of the model. The format of a HISTORY directive in the model definition is the following:

- where a history element can be a single name, a single array element, or a group of array elements, as
follows:

- where a history element can also be the integral of a single name or of a single array element, as follows:

- where a single default value can be assigned to a single history element or to a group of array elements
sharing the same value;
- and where an array of default values can be assigned directly to a group of array elements using an array-
value expression to describe the assigned default value.

In a USE statement, history functions are assigned to the elements of the used model in a HISTORY directive
of the form:

In the INIT procedure of a model, history functions can be assigned privately (as opposed to publicly in a USE
statement) to elements of the model by using a history assignment statement of the form:

where the expression can be any of the following:


- a regular expression describing an analytical function of time f(t) by using the variable "t" as a reference
to any value of time;
- a regular expression using references to pointlist functions describing the value of a variable as a list of
points { t, f(t) } describing a function of time;
MODELS - 41

- a regular expression using references to existing history functions by using the resident simulation
functions histdef() and histval().

Because Laplace or Z functions and differential equations are solved in a model by applying trapezoidal
integration to both sides of the equation, the solution implicitly uses past values of both the driving variable and
the calculated variable. History functions must therefore be defined for both variables if these types of
calculation are used in the first n time steps of the execution of a model, given a s-polynomial or D-polynomial
of order n.

Integrals are evaluated using the trapezoidal rule. Their solution implicitly uses the past value of the integrated
variable and of the integral. History functions must therefore be defined for both if integrals are used at the first
step of an execution without any previous integral value assignment.

No history function or default history function need be assigned to the inputs of a model which is not executed
at sub-steps of the applied time step at the first time step that the model is used.

________________________________________

3.2.3 INIT PROCEDURE

It is possible to define, in the model description, an initialization procedure that is different from the regular
execution procedure of the model. The INIT procedure, if present in a model description, is executed once at
the first execution of each use of the model. It can be used, typically, for completing the history assignments
required in the model, and for verifying, correcting, and possibly rejecting the conditions under which the model
is being used.

When defined, the initialization procedure is specified in the INIT section of a model definition as follows:

The statement list of an INIT procedure may include any statement and function not requiring the existence of
a history for their execution, namely:
- value assignments other than differential equations and Laplace or Z functions;
- history assignment statements;
- integral assignment statements;
- algorithm control statements other than the USE statement;
- the simulation directive statements ERROR and WRITE;
- the simulation functions histdef and histval, but not the functions delay, predval, predtime, backval,
backtime, and prevval;
- and no derivatives or integrals.

________________________________________

3.2.4 EXEC PROCEDURE

The EXEC procedure is the main procedure of a model. It contains the algorithm describing how the model
operates at the successive instants of the simulation. It is executed each time the model is called by a USE
statement.

Each time the model is used, the execution procedure updates the values of the variables of the model for the
new simulation time, taking into account the values assigned to the inputs of the model in the USE statement.
MODELS - 42

The execution procedure is specified in the EXEC section of a model definition as follows:

The statement list of the EXEC procedure may include any type of statements except history assignment
statements (see STATEMENTS). The execution flow is directed by the algorithm control statements used in
the procedure (see ALGORITHM CONTROL STATEMENTS).

________________________________________

3.2.5 SIMULTANEOUS VARIABLES

The description of a model may include sets of interdependent variables represented by a group of value
assignments, differential equations, and transfer functions connected in a closed-loop configuration.

The statements describing a group of simultaneous variables can be assembled in a COMBINE statement (see
COMBINE), or can be grouped inside an iterative solution algorithm defined explicitly in the model using a
WHILE or DO statement.

The distinction between linear and nonlinear groups of simultaneous variables is discussed in the following two
sections.

________________________________________

3.2.6 SIMULTANEOUS LINEAR VARIABLES USING A LINEAR COMBINE

The statements of a linear COMBINE group are considered to be linear descriptions of the value of the
simultaneous variables of the group, with the possible inclusion of one nonlinearity in the form of a limit applied
to the value of one of the group's variables.

The linearity requirement of the linear COMBINE is only with respect to the group's simultaneous variables,
and does not apply to references made to variables external to the group in the expressions describing the
coefficients used in the group's statements.

In the solution, the differential and integral equations of the group are first converted to algebraic equations, by
application of the trapezoidal rule of integration. The dependencies of the group's simultaneous variables is then
represented in matrix form, as follows:
[C] ⋅ x = b

where [C] matrix of coefficients


x vector of group's interdependent and independent variables
b vector of driving terms

During the simulation, the values of the interdependent variables in x are calculated using the two-step
procedure of, first, Gaussian elimination using Crout's algorithm of LU decomposition, transforming [C] and
b into a triangularized form [CLU] and b' which, in turn, are used for evaluating the unknown part of x by back-
substitution, in the form:
[CLU] ⋅ x = b'

When the coefficients in [C] and b remain constant over successive execution times, re-triangularization is not
required and only back-substitution is performed, using the existing values of [CLU] and b'.
MODELS - 43

In most instances of a change in the value of some elements of [C] or b from one execution time to the next,
only a partial re-triangularization is sufficient for reflecting the change, either because only a subset of the
equations is affected, or only elements of b are modified. These situations are automatically recognized, and
after the partial re-triangularization is performed, the back-substitution process takes place as usual.

________________________________________

3.2.7 SIMULTANEOUS NONLINEAR VARIABLES USING A LINEAR COMBINE

As described in the previous section, a set of simultaneous linear equations can be solved without iteration by
using a linear COMBINE group. Groups of nonlinear simultaneous variables, however, must normally be solved
using some iteration algorithm.

But in cases where the iteration approach would produce longer execution times or convergence difficulties,
a linearized approach may be considered. In cases where the time step is small with respect to the group's time
constants, it is often possible to insert delays inside the dependency loops of simultaneous nonlinear equations
and still represent adequately the higher-frequency variations of the group's variables. Under this condition, it
is therefore possible to adequately solve simultaneous groups of nonlinear equations by breaking them into a
sequence of smaller linear groups which can be represented without iteration in separate linear COMBINE
groups.

As a result of this artificial sequencing, a reference within a linear sub-group to the not-yet-calculated value of
one of the outer group's nonlinear variables is in effect a reference to the value that was calculated at the
previous time step of the simulation. This is equivalent to transferring the previous value of that variable to the
sub-group of independent variables used in the solution of the group's interdependent variables (see example
below).

This solution technique is equivalent to introducing a time delay equal to the size of the present time step of the
model and affecting how the present values of some of the group's variables are available for the calculation of
the remaining variables dependent on these values for their evaluation.

The error introduced by this solution method is controlled by prescribing a time step size that is small enough
to ensure that the values of the variables delayed by their exclusion from the group do not vary appreciably from
one execution time to the next. It is recommended to place the artificial delays (that is, to break a feedback loop)
on the value of a slower-varying continuous variable, in order to minimize the approximation error.

An example consisting of a closed-loop arrangement of linear components, one nonlinear component, and one
limit is illustrated below using a block diagram representation:

where a,b,d linear interdependent variables


c linear interdependent variable with limit
nl nonlinear interdependent variable
u,v,w independent variables

Under the conditions discussed above, the diagram could be reduced to a sequence of individual elements and
of linear COMBINE groups of elements, for the purpose of avoiding the use of an iteration structure for its
solution.
MODELS - 44

In this example, the loop containing the nonlinear element may be opened at one of three possible points in the
loop, as shown below, preferably at a slowly-varying continuous variable. The variables a, c, and d are grouped
in a COMBINE statement and solved simultaneously as a set. The COMBINE group is executed in sequence
with the value assignments of the variables b and nl, in one of the three possible ordering arrangements
illustrated below.

________________________________________
MODELS - 45

4. MODELS IN ATP

All models used in a data case must be declared and defined in the MODELS section of the data case. Once
defined, these models can be used in a control-type connection to the circuit, or in a circuit-type connection.

In the control-type connection, each application of a model is defined with a USE statement placed in the
MODELS section. Inputs are measurements taken from the circuit at simulation time t, and outputs are control
signals passed to the circuit at simulation time t+timestep.

In the circuit-type connection, each application of a model is introduced by defining a type-94 component in the
circuit part of the data case. Inputs are voltage values at the terminals of the component, and outputs are current
values. Three types of modeling are available: Thevenin, Norton, and iterated.

4.1 MODELS SECTION IN THE DATA CASE

The MODELS section of the data case is introduced by the keyword MODELS, and ends with the keyword
ENDMODELS. It is placed in the data case immediately before the description of the electrical circuit.

The MODELS section contains the model definitions of all models used in a simulation. It also contains the
directives indicating use instances of the models used with a control-type connection, for identifying the inputs
and outputs used between the models and the electrical circuit, for declaring the top variables of the MODELS
section, and for recording the values of variables during the simulation.

- Model definitions:
Each model used in a simulation must be defined in the MODELS section of the data case. Each model
provides a separate environment where names can be chosen independently from the names existing in the
other models of the data case. A model can be described using the MODELS language, or can be defined
as a "foreign" model that is written in a programming language (for example, Fortran or C) as a subroutine
or a function that is compiled and linked to ATP prior to running the simulation.

- Using a control-connection model:


It is necessary to provide a USE statement for each instance of a control-connected model in the simulation.
Each USE statement specified the inputs, outputs, data, and use directives determining the operation of
the model instance. For this type of model use, the USE statements defined in the MODELS section are
called in sequence by ATP in the order of their appearance in the data case, as follows:
- for a regular time simulation, these USE statements are executed at the end of each time step of the
circuit solution, with inputs received from the electrical circuit at the time step that has just been
solved, and with outputs to be used by the electrical circuit at the next time step of the simulation;
- for a frequency-scan data case, these USE statements are executed at the end of each frequency step
of the simulation, with inputs received from the electrical circuit at the frequency step that has just
been solved, and with outputs to be used by the electrical circuit at the next frequency step of the
simulation.

- Inputs/outputs from/to the electrical circuit:


A USE statement of the MODELS section may refer to the values of inputs taken from the electrical circuit.
It may also assign values to outputs used for controlling the operation of components of the circuit. The
names of these inputs and outputs must be declared in the INPUT and OUTPUT declarations of the
MODELS section of the data case.

- Top variables of the MODELS section:


Variables other than inputs and outputs can be defined in the MODELS section. These variables may then
be used for carrying values from one model to another in the MODELS section. Their name must be
declared in one or more VAR declarations of the MODELS section of the data case.
MODELS - 46

- Specifying values to be recorded:


The value of any element of any instance of any model of a data case may be recorded during the
simulation. Each recorded element is added to the printout list and the plotting list of the simulation. The
RECORD directives identifying these elements are specified in the MODELS section of the data case.

The MODELS section may contain any number of the above INPUT, OUTPUT, VAR, MODEL, USE, and
RECORD directives, in the following format:

________________________________________

4.1.1 INPUTS FROM THE ELECTRICAL CIRCUIT TO MODELS

The name and type of each variable passed from the electrical circuit to the MODELS section are specified in
one or more INPUT declarations as follows:

where the input names are arbitrary names given to each input;
where the identifier is a node name or a switch name, as required for each type;
and where the input types are v, imssv, i, imssi, switch, mach, tacs, pl4, and atp, used as follows:
- v(nodename) indicates the value of the voltage measured at node "nodename";
- imssv(nodename) indicates the imaginary part of the complex steady-state value of the voltage measured
at node "nodename" at t=0;
- i(switchname) or i(nodename) indicates the value of the current measured through the switch named
"switchname", or through the first switch connected to node "nodename" (in the order in which the case
data is presented), with the direction of the current considered to be from "left node" to "right node";
- imssi(switchname) or imssi(nodename) indicates the imaginary part of the complex steady-state value of
the current measured at t=0 through the switch named "switchname", or through the first switch connected
to node "nodename" (in the order in which the case data is presented), with the direction of the current
considered to be from "left node" to "right node".
- switch(switchname) or switch(nodename) indicates the status of the switch named "switchname", or of the
first switch connected to node "nodename" (in the order in which the case data is presented);
= 0 when the switch is OPEN
= 1 when the switch is CLOSED
- mach(varname) indicates the value of an electrical or mechanical variable internal to a machine, as
specified in the documentation of the synchronous machine and of the universal machine for variables
which can be used by TACS and MODELS;
- tacs(varname) indicates the value of a variable from the TACS section of the data case;
- pl4(number) indicates the curve number of a signal obtained from a PL4 plot file; the PL4 file is identified
in ATP using a "POSTPROCESS PLOT FILE" request.
MODELS - 47

- atp(name), or atp(name[expression]), indicates the value of a single ATP program variable or array element
accessible by ATP's SPY command EXAMINE.

The names chosen for identifying the MODELS inputs are not visible outside MODELS, and can be selected
without concern for the possible duplication of names already used in the electrical circuit.

________________________________________

4.1.2 OUTPUTS FROM MODELS TO THE ELECTRICAL CIRCUIT

Outputs from MODELS can be used in the electrical circuit:


- to control the operation of a switch
- to determine the amplitude of voltage or current sources
- to determine the value of machine variables
- to control the operation of nonlinear elements

In the electrical circuit, output variables from MODELS are used identically to output variables from TACS.

The MODELS output variables passed to the electrical circuit must be declared globally in one or more
OUTPUT declarations as follows:

Values can be assigned to the MODELS output variables in any USE statement of the MODELS section. Once
assigned, the output values can be used as input to other USE statements of the MODELS section as well as
control variables in the electrical circuit.

The names of the MODELS outputs are limited in length to 6 characters, in order to be compatible with the
names that can be used in ATP.

The names chosen for identifying the global MODELS outputs are not visible from inside the models defined
in the MODELS section. They can be selected without concern for the possible duplication of names already
used in the models.

________________________________________

4.1.3 TOP VARIABLES OF THE MODELS SECTION

Variables can be defined in the MODELS section for carrying information between the models used in the
MODELS section.

These "top" variables of the MODELS section must be declared in one or more VAR declarations as follows:

Values can be assigned to these variables from outputs of any USE statement at the top level. Once assigned,
their value can be used as input to other USE statements at the top level.

The names of these top variables are limited in length to 6 characters, in order to be compatible with the name
storage of ATP.
MODELS - 48

The names chosen for identifying these top variables are not visible from inside the models defined in the
MODELS section. They can be selected without concern for the possible duplication of names already used in
the models.

________________________________________

4.1.4 RECORDED VALUES IN MODELS

A recording of the values of any value-holding element of a model or submodel (except arguments of FOR
statements) can be included in the ATP printout/plotting list. The recording is done at each execution time step
of the electrical model.

The values that will be included in the ATP printout/plotting list can be specified in one or more RECORD
directives, in the following format:

where each recorded element is assigned a 1- to 6-character label to be used by ATP to identify the element in
the printout/plotting list;

and where each recorded element is identified by its name, optionally preceded by an indication of where it is
used, as follows:

When a recorded element is an input, output, or top variable of the MODELS section, no path is required. When
it belongs to a model or submodel called from a USE statement of the MODELS section, the path is the
sequence of use names of the models leading to its location, separated by periods. A use name is the AS label
given to each used instance of a model.

The path of an element belonging to a model called from a type-94 component of the ATP simulation is an 18-
character name formed using the left node name, the right node name, and the model name. All blank characters
in these three names are each replaced by underscore characters '_', in order to form a single 18-character label,
which is then followed by a period and the name of the recorded element from inside that model.

________________________________________

4.2 TYPE-94 COMPONENTS IN THE CIRCUIT

Instead of being used in a control connection to the circuit, a model can also be used as a circuit element in the
circuit part of a data case. In this case, all inputs, outputs, data, and use directives for that model are generated
automatically by the type-94 component referring to that model. For this type of model use, no USE statement
is needed in the MODELS section of the data case, because the model is called directly by the type-94
component during the simulation.

The type-94 component (Thevenin, iterated, or Norton) is a general nonlinear single- or multi-phase circuit
component. It allows the user to simulate arbitrary nonlinear circuit and control elements in a circuit. The
operation of the component can be described in MODELS, and also in procedures written in other languages
called from MODELS. The interaction between the model and the rest of the circuit is defined in terms of
voltage, current and impedance or admittance at the terminals of the component.
MODELS - 49

4.2.1 THREE TYPES: THEVENIN, ITERATED, NORTON

In the Thevenin type, the component sees the rest of the linear circuit as a Thevenin equivalent. Inputs are
Thevenin voltages and resistance matrix at the terminals of the component. The model calculates the value of
the resulting current at each time step.

In the iterated type, a group of nonlinear components see the rest of the linear circuit as a Thevenin equivalent,
and each calculate their current (outputs) corresponding to estimated voltages (inputs) provided by ATP's
Newton iteration algorithm.

Both of these approaches provide a solution synchronized with the rest of the circuit. In the Thevenin type, it
is the model that solves the Thevenin circuit equation. In the iterated type, that solution is done by ATP. In cases
with only one nonlinear component (which can be multi-phase), the Thevenin type can be used, and provides
a faster execution time as it avoids iteration. The iterated type allows to connect more than one nonlinear
components (type-94 and others) per subnetwork.

For the Norton type, the circuit sees the component as a Norton equivalent, an admittance to ground in parallel
with a current source. For a multi-phase component, the admittance to ground is a matrix, and there is a current
source at each node. At each time step, the component receives node voltage values as inputs, and calculates
as outputs the admittance and current sources to be used in the circuit solution at the next time step. No iteration
is performed by ATP. Changes in values take effect with a delay of one time step. The time step delay is not a
problem for passive components, as this is the same method already used in ATP for the representation of
inductances, capacitances, and transmission lines. The current sources typically represent past values, and can
be easily synchronized, using prediction, with the solution time at which they will be used. The only values
affected by the delay are the admittance values, with normally negligible consequences.

In the Norton case, when admittance values change, ATP must re-triangularize the admittance matrix of the
circuit. Because of the relatively time-consuming re-triangularization, this type is best used for infrequently-
changing values of admittances. There is no execution cost in having frequently-changing values of the current
sources. Under these conditions, the Norton type-94 is faster than the other two, because ATP is not required
to calculate a Thevenin equivalent at each time step (needed for Thevenin and iterated), and because no iteration
is taking place (needed for iterated). The Norton approach also provides the greatest flexibility in component
representation, because it allows the user to directly control values in the admittance matrix of the ATP solution.

Because the admittance or admittance matrix supplied by the Norton type-94 component is an admittance to
ground, this type is normally used with its left nodes connected to the circuit, and its right nodes unconnected.
This provides an opportunity to assign the following additional function to this component: when the component
is connected to the circuit on both sides, it is interpreted by ATP to be operating in transmission mode, actually
isolating the subnetworks on each side from each other. Each side of the component provides its own admittance
matrix and set of current sources to the circuit. This interpretation is not possible with the Thevenin and iterated
types, because they are branch-based instead of node-based.

________________________________________

4.2.2 TYPE-94 FORMAT IN ATP

The type-94 component is seen by ATP as an electrical black box connected to the circuit. The black box may
be a one-branch component or a multi-branch component. It is specified in the data case along with the other
branches of the circuit. The model it uses is placed in the MODELS section of the data case, and doesn't need
a corresponding USE statement.
MODELS - 50

Column assignments on the first card of the type-94 component are:


cols 1- 2 '94' as the type of the nonlinear component
cols 3- 8 name of left node of the branch
cols 9-14 name of right node of the branch
cols 15-20 name of the model representing this component in MODELS
cols 21-24 one of three keywords: THEV, ITER, or NORT
col 80- printout request of current, etc. as for other branches

A single-branch type-94 iterated component between nodes A1 and B1 and using a model named 'm1' would
be specified as follows:
94A1 B1 M1 ITER
>END

A multi-branch component is specified in a similar way, with the additional branches following the first card,
without repeating the model information:
94A1 B1 M1 ITER
94A2 B2
94A3 B3
etc...
>END

Data values can be assigned to the model used by the component, just like in a USE statement of MODELS.
Each data card specifies the name of the parameter expected by the model, and its value, as follows:
94A1 B1 M1 ITER
94A2 B2
94A3 B3
>DATA D1 xxxxxxxxxx
>DATA D2 xxxxxxxxxx
>etc...
>END

Like other nonlinear branches in ATP, the type-94 branches are excluded from the initial linear steady-state
calculations by ATP. Typically, a user would represent a simplified operation of the component during steady-
state in a separate sub-circuit, using the 'phasor' keyword or switches to remove this sub-circuit from the solution
at t>0. Steady-state voltages and currents from such a sub-circuit can be used to initialize the operating point
of the type-94 component, using SSI and SSV lines as follows:
94A1 B1 M1 ITER
94A2 B2
94A3 B3
>DATA D1 xxxxxxxxxx
>DATA D2 xxxxxxxxxx
>SSV KA { Voltage(t=0) at left-node #1 = voltage at node KA
>SSV { " " " " " #2 = default existing value at A2
>SSV KB { " " " " " #3 = voltage at node KB
>SSV KC { Voltage(t=0) at right-node #1 = voltage at node KC
>SSV { " " " " " #2 = default existing value at B2
>SSV KD { " " " " " #3 = voltage at node KD
>SSI KA { Current(t=0) into left-node #1 = current in switch KA
>SSI { " " " " " #2 = default value of zero
>SSI KB { " " " " " #3 = current in switch KB
>END

N-branch Thevenin and iterated types can use up to 2n SSV values and up to n SSI values. N-phase non-
transmission Norton components can use up to n SSV and n SSI values. Transmission-mode Norton components
can use up to 2n SSV and 2n SSI value, n for each side.

________________________________________
MODELS - 51

4.2.3 TYPE-94 MODEL TEMPLATES

The following are templates for building models to be used by type-94 components.

4.2.3.1 THEVENIN MODEL TEMPLATE

MODEL name
comment ----------------------------------------------------------------------
| First, declarations required for any type-94 Thevenin model |
| - these data and input values are provided to the model by ATP |
| - these output values are used by ATP |
| - these names can be changed, except 'n', but not their order |
------------------------------------------------------------------- endcomment
DATA n -- number of node pairs
n2 {dflt: n*n} -- number of matrix elements
INPUT vth[1..n] -- Thev. voltage(t) across each branch
rth[1..n2] -- Thev. resistance(t) matrix, symmetrical
gth[1..n2] -- inverse of rth
v0[1..n] -- voltage(t=0) across each branch
i0[1..n] -- current(t=0) into each branch
VAR v[1..n] -- calculated voltage(t) across each branch
i[1..n] -- calculated current(t) into each branch

OUTPUT i[1..n]

comment ----------------------------------------------------------------------
| Next, declarations of user-defined data for this particular model |
| - their value is defined at the time of using the type-94 component |
------------------------------------------------------------------- endcomment
DATA ...

comment ----------------------------------------------------------------------
| Next, declarations private to the operation of this model |
------------------------------------------------------------------- endcomment
VAR ...
...
INIT
...
ENDINIT
EXEC
...
ENDEXEC
ENDMODEL

________________________________________

4.2.3.2 ITERATED MODEL TEMPLATE

MODEL name
comment ----------------------------------------------------------------------
| First, declarations required for any type-94 Thevenin model |
| - these data and input values are provided to the model by ATP |
| - these output values are used by ATP |
| - these names can be changed, except 'n', but not their order |
------------------------------------------------------------------- endcomment
DATA n -- number of node pairs
n2 {dflt: n*n} -- number of matrix elements
INPUT v[1..n] -- guessed voltage(t) across each node pair
v0[1..n] -- voltage(t=0) across each node pair
i0[1..n] -- current(t=0) into each left node
VAR i[1..n] -- calculated current(t) into each left node
didv[1..n2] -- calculated left-side nodal conductance(t) matrix
-- (formed for solving matrix equation [didv]V=I)

OUTPUT i[1..n], didv[1..n2]


MODELS - 52

comment ----------------------------------------------------------------------
| Next, declarations of user-defined data for this particular model |
| - their value is defined at the time of using the type-94 component |
------------------------------------------------------------------- endcomment
DATA ...
comment ----------------------------------------------------------------------
| Next, declarations private to the operation of this model |
------------------------------------------------------------------- endcomment
VAR ...
...
INIT
...
ENDINIT
EXEC
...
ENDEXEC
ENDMODEL

________________________________________

4.2.3.3 NON-TRANSMISSION NORTON MODEL TEMPLATE

MODEL name
comment ----------------------------------------------------------------------
| First, declarations required for any type-94 Thevenin model |
| - these data and input values are provided to the model by ATP |
| - these output values are used by ATP |
| - these names can be changed, except 'n', but not their order |
------------------------------------------------------------------- endcomment
DATA n -- number of phases
ng {dflt: n*(n+1)/2} -- number of conductances

INPUT v[1..n] -- voltage(t) at each left node


v0[1..n] -- voltage(t=0) at each left node
i0[1..n] -- current(t=0) into each left node

VAR i[1..n] -- current(t) into each left node (for printout/plotting)


is[1..n] -- Norton source(t+timestep) at each left node
g[1..ng] -- conductance(t+timestep) at each left node
-- sequence is 1-gr, 1-2, 1-3..1-n, 2-gr, 2-3..2-n, ... n-gr
flag -- set to 1 whenever a conductance value is modified

OUTPUT i[1..n], is[1..n], g[1..ng], flag

comment ----------------------------------------------------------------------
| Next, declarations of user-defined data for this particular model |
| - their value is defined at the time of using the type-94 component |
------------------------------------------------------------------- endcomment
DATA ...
comment ----------------------------------------------------------------------
| Next, declarations private to the operation of this model |
------------------------------------------------------------------- endcomment
VAR ...
...
INIT
...
ENDINIT
EXEC
...
ENDEXEC
ENDMODEL

________________________________________
MODELS - 53

4.2.3.4 TRANSMISSION NORTON MODEL TEMPLATE

MODEL name
comment ----------------------------------------------------------------------
| First, declarations required for any type-94 Thevenin model |
| - these data and input values are provided to the model by ATP |
| - these output values are used by ATP |
| - these names can be changed, except 'n', but not their order |
------------------------------------------------------------------- endcomment
DATA n -- number of phases
ng {dflt: n*(n+1)/2} -- number of conductances on each side
INPUT lv[1..n] -- voltage(t) at each left node
rv[1..n] -- " " " right node
lv0[1..n] -- voltage(t=0) at each left node
rv0[1..n] -- " " " " right node
li0[1..n] -- current(t=0) into each left node
ri0[1..n] -- " " " " right node
VAR li[1..n] -- current(t) into each left node (for printout/plotting)
ri[1..n] -- " " " right node " " " "
lis[1..n] -- Norton source(t+timestep) at each left node
ris[1..n] -- " " " " " " right node
lg[1..ng] -- conductance(t+timestep) at each left node
rg[1..ng] -- " " " " " " right node
-- sequence is 1-gr, 1-2, 1-3..1-n, 2-gr, 2-3..2-n, ... n-gr
flag -- set to 1 whenever a conductance value is modified

OUTPUT li[1..n], ri[1..n], lis[1..n], ris[1..n], lg[1..ng], rg[1..ng], flag

comment ----------------------------------------------------------------------
| Next, declarations of user-defined data for this particular model |
| - their value is defined at the time of using the type-94 component |
------------------------------------------------------------------- endcomment
DATA ...
comment ----------------------------------------------------------------------
| Next, declarations private to the operation of this model |
------------------------------------------------------------------- endcomment
VAR ...
...
INIT
...
ENDINIT
EXEC
...
ENDEXEC
ENDMODEL

________________________________________
IV. Linear branch cards - 1

IV. LINEAR BRANCH CARDS


Introduction
1. What are branch cards

Branch cards are cards where one can define different kinds of branches. Distinction should be
made between linear and non-linear branches. The non-linear branches will be discussed in
more detail in chapter V. Following types of linear branches will be discussed in this chapter:

- uncoupled, lumped, series R-L-C (type 0)


- mutually-coupled, lumped R-L-C elements (type 1,2,3, …)
- single phase Pi-circuit
- multiphase Pi-circuit
- mutually-coupled, lumped R-L elements (type 51, 52, 53, …)
- distributed-parameter elements with constant transformation matrix (type −1, −2, −3, …):
o constant-parameter line models
(distortionless or lumped resistance or exact PI)
transposed = Clarke model
untransposed = K.C.Lee model
o double-circuit constant-parameter line models
o frequency dependent line model (JMARTI)
o recursive-convolution line model (SEMLYEN)
- saturable transformer component
- cascaded PI feature (steady state only)
- phasor branch [Y] input (steady state only)

For all lumped elements, a normal precision as well as a high-precision format exist. This will
be explained in relevant places.

For all mutually coupled, lumped elements, both an RL as well as an AR notation exist. This
will be explained in relevant places.

For most of the above branch types, there are supporting routines available which can be used to
generate the necessary data in the proper input format. Wherever appropriate, reference will be
made to relevant supporting routines.

2. Where are the branch cards situated on the input file structure

As explained in section I-I (Structure of EMTP input data), the branch cards always precede the
switch card grouping. Either TACS or MODELS data (or both) must precede branch cards. One
form of the TACS declaration is TACS HYBRID, another one is TACS STAND ALONE. The
MODELS declarations are either MODELS HYBRID or MODELS STAND ALONE. Recall
that both linear as well as non-linear branch cards belong to the branch card group. They can be
put in any arbitrary order except any reference branch use (identification of a branch using the
2A6 names of columns 15-26) must follow the definition. Do not forget to terminate the
grouping of branch cards by a blank card or a card containing the text "BLANK " in columns 1-
6. Any text beyond column 6 in fact is ignored.
2 - IV Linear branch cards

This text should start in column 1. Both BLANK and BRANCH should be in capitals. All the
remaining text can be in mixed mode (lower case or capitals). This will be of particular
importance when using "DATA BASE MODULE" punched card results. Inside ATP, capital
letters are required nearly every place that does not involve user-supplied labeling (e.g., a plot
title). As long as the variable KINSEN = 1 in STARTUP file, ATP will convert from lower case
to upper case prior to making any comparison.

3. Different formats

The "$VINTAGE, l"-card provides for an alternate high-precision format. Specifically the R, L
and C fields are switched from limited accuracy (E6.2) to extended accuracy (E16.0) when the
request card "$VINTAGE, 1" precedes a branch card (grouping). If "$VINTAGE, 0" follows
this card (grouping), the high-precision format will be toggled to a normal format. For example:

$VINTAGE, 1
lumped series R-L-C branches of any type (e.g. type 0: uncoupled RLC; type
1,2,3,...: coupled RLC; type 51,52,53,...: coupled RL) as long as they use
the high-precision formats.
$VINTAGE, 0

4. Connectivity definition

Each branch is defined by its terminal ends (BUS1 and BUS2). By allocating node names to
these terminal ends, the network connectivity is defined. But in effect, the terminal node names
do not uniquely specify the branch; just think about two (or more) parallel branches having the
same terminal node names. Only in a limited number of cases, it will be necessary to distinguish
between branches:
- Branch output request (column 80-punch)
- Reference branch usage (see next paragraph).

If no special care is taken, the order of appearance in the input is maintained for parallel
branches. If two or more parallel branches occur in the input, it is the first one appearing that
will be used as reference branch or that will generate the requested branch output.

When distinction should be made between two parallel branches, it is sufficient to alter the
sequence of the node names. This simple action indeed is sufficient to distinguish between two
parallel branches.

Example: Suppose one wants to define two parallel branches between node NODA and
NODB. For one branch, BUS1 = NODA and BUS2 = NODB. For the other branch,
BUS1 = NODB and BUS2 = NODA.

When distinction should be made between more than two parallel branches, users' inventiveness
is called upon. Possible solutions; define an extra, intermediate node by splitting the series RLC
in two different parts, or by using dummy measuring switches. Another solution is the naming
of branches. Each branch is allowed to have a 6-characer name as illustrated by several
standard test cases such as BENCHMARK DC-4. Whereas use of terminal names involves
possible ambiguity, the use of branch names should make any reference unique. In addition to
selective manual branch naming, the user can instruct ATP to construct a full set of branch
names mechanically and automatically. Refer to NNAUTO ("name automatic") within
STARTUP.
IV. Linear branch cards - 3

5. Reference branch option

When there are two or more branches that have the same elements (R, L, C) with the same
values, a memory storage-saving option exists; the reference branch option. In such case, one
should only define the terminal ends of the branch being defined (BUS1 and BUS2), and in
addition in the fields BUS3 and BUS4, reference should be made to the terminal ends of the
branch being referred to (BUS1, BUS2). All other fields remain blank.
It is clear that the branches being referenced should be defined previously. Further recall that the
sequence in which node names are specified is of crucial importance. Finally, refer to the
preceding paragraph (4 - connectivity definition) for special remarks regarding parallel
branches.
4 - IV Linear branch cards

IV.A. Branch cards for uncoupled, lumped series RLC branches (type 0)

IV.A.1. Application
1. General usage:

Uncoupled or single phase, lumped series RLC branches specify the non-zero impedance of a
branch between two named nodes, or between one named node and the ground (no special
name, but just a blank will be sufficient to specify the ground). This impedance can be either a
resistance, a capacitor, an inductor or a series connection of any of these.

R R L R L C

L R C

C L C

Within FIX SOURCE, a data generator is available that converts the active and reactive loads (P
and Q) into equivalent RLC branches (uncoupled, lumped series elements). See section X (FIX
SOURCE) for more details.

2. Special usage:

The uncoupled, lumped series RLC element can be used for the following purposes:
- measure the branch current or voltage (see remark 2),
- break closed loops of parallel connected switches (e.g. thyristor and free-wheeling
diode),
- damp out numerical oscillations which could occur when interrupting the current in an
inductor, or applying a step voltage to a capacitor (i.e. scaling of a resistance by the time
step DELTAT - see section IV.A.3; remark 7),
- link a floating subnetwork to the reference network (e.g. delta connected loads,
ungrounded transformer or machine windings).

Remarks:
There are limitations on the values of the resistance; there is a maximum and a minimum
resistance we have to take into account (remark 5 and 6 of section IV.B.3.),
For current-sampling purposes, there is also another facility called a measuring switch (remark 6
of section IV.B.3.),
Usage of a high-precision format is explained in section IV.B.2-2.
IV. Linear branch cards - 5

IV.A.2 Card format for uncoupled, lumped series RLC elements

First, the three different card formats will be discussed:


- normal format ($VINTAGE, 0),
- high-precision format ($VINTAGE, 1),
- free format.

Next, an explanation of all parameters involved will follow. Indeed, the meaning of the
parameters is not dependent on the format being used

BUS1 BUS2
R L C

Name of Name of the


the first second
node node

1. Normal card format ($VINTAGE, 0)


1 2 3 4 5 6 7 8
12 345678 90123 4 5 6 7 89 0 123456 7 8 9 01 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 89 0 12 3 45 6 78 9 0 12 3 456 7 8 90 1 23 4 56 7 89 0
node names C[ F]
L[mH]
ITYPE

node names of reference

IOUT
R or
branch or
[ ] ωC
ωL[ ]
BUS1 BUS2 BUS3 BUS4 [ mho]

I1
I2 A6 A6 A6 A6 E6.2 E6.2 E6.2

If there is no special request card, the normal format is in use. The R, L and C fields only have a
limited accuracy (E6.2 format).

2. High-precision card format ($VINTAGE, 1)


1 2 3 4 5 6 7 8
12 345678 90123 4 5 6 7 8 9 0 123456 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 56789 0
node names C[ F]
L[mH]
ITYPE

node names of reference


IOUT

R or
branch or
[ ] ωC
ωL[ ]
BUS1 BUS2 BUS3 BUS4 [ mho]
I1

I2 A6 A6 A6 A6 E16.0 E16.0 E16.0

3. Free format

Besides the regular format and the high-precision format, a third (but tricky) way can be used to
input RLC branches. This input is called “free format”, but it is not totally "free". Some
important rules apply here:
- separate two adjacent fields by one comma (i.e. last character of the variable CHRCOM
in the STARTUP file),
- blanks are totally ignored, and node names are left adjusted,
- do not input node names after column 26,
6 - IV Linear branch cards

- do not input values before column 27,


- make sure there is always a total of five commas before column 26 (delimiting one type
field and four node name fields) and a total of eight commas should follow column 27
(delimiting three numeric fields for R, L, C, augmented by 6 dummy fields, probably to
make the format compatible with the type 1,2,3-format),
- for output requests you still MUST use column 80,
- if a zero is not entered explicitly, the comma should nevertheless always be entered
(even for column 1)
With these rules, only column 27 and possibly column 80 must be determined as position
information. On the other hand, a painstaking count of commas is necessary.

IV.A.3 Parameters
Following is an explanation of the parameters used in the above card formats:

ITYPE: The branch-type has to be punched as zero or blank.


BUS1, BUS2: Terminal node names of a branch. Each node can be specified by a 6-
character alphanumerical node name. Node names always have to be left
adjusted. Note that a blank-name is understood as being ground (ground
will be named as “TERRA” in ATP output file (.LIS) depending on the
variable “-TERRA” in STARTUP file).
BUS3, BUS4: Reference branch terminal node names (see section 5 of the introduction),
normally left blank. Recall that, when BUS3 and BUS4 are specified, the
R, L and C field should remain blank.
For the special situation "scaling of a resistance by the time step DELTAT",
we refer to remark 7 below.
R: Resistance value in Ohms. Values entered as an E-field number like “5.1E-
3” have to be always right adjusted. Values are allowed also to enter as an
F-field number, i.e. as a floating-point number like “0.0051”
L: Inductance value (in mH or Ohms, depending on XOPT).
- an inductance L: mH (XOPT = zero or blank)
- a reactance 2π(f(L: Ohms (XOPT = f)
C: Capacitance value (in )F or )mho, depending on COPT).
- a capacitance C: )F (COPT = zero or blank)
- a susceptance 2π(f(C: )mhos (COPT = f)
IOUT: The options for printing and/or plotting have to be specified in this area.
There are four main output possibilities (In fact there are in total 16 choices
as shown in Benchmark DC-37):
1 : branch current,
2 : branch voltage,
3 : branch current and branch voltage,
4 : branch power and energy consumption.

Remarks:
There are two different ways to specify or alter XOPT and COPT. They can be defined in the
miscellaneous cards (see II-B.), or one can use the $UNITS card. This card can be inserted in
the branch card grouping, in several places, to switch the units of the capacitors and inductors
any time. The use of the $UNITS card is further explained in section I-D-15.
IV. Linear branch cards - 7

At least one value of R, L and C per branch must be non-zero.

When a branch has only one or two elements (R, L, R and C, L and C, etc.), just leave the fields
blank of the elements which do not occur in the branch.

When using a reference branch which has other branches in parallel, it is not clear which of
them should be the reference branch. Therefore the highest mentioned branch among the
parallel branched always is the reference branch. Note that NODEA to NODEB and NODEB to
NODEA are two different node-name pairs. These can therefore be used as two distinct
reference branches.

A high resistance, being used for voltage sampling for example, may not exceed the maximum
resistance value, which depends on the computer system. The general rule is that R must not
exceed the square root of the largest number which the computer system can represent in
floating-point form (e.g. 1.E18 ohms on Univac and Honeywell/GE, 1.E35 ohms on IBM and
1.E100 ohms on CDC).

Startup file parameter FLTINF contains the maximum resistance value.

A low resistance, being used for current sampling for example, may not be taken lower than the
minimum resistance value, which depends on the computer system and the program release.

Following limitations exist:


- the fundamental limitation is due to floating-point word length (system dependent).
- the singularity tolerance parameters EPSILN and TOLMAT.

The general idea is that all impedances which terminate on a given node should not differ
drastically in value, as measured by the just-mentioned singularity tolerances. Specific relevant
points related hereto include the following:

EPSILN = singularity tolerance for real, all-resistive transient equivalent-network


solutions. For transient studies, the impedances in question are equivalent
Norton resistances, depending not only on the element, but also on the time
step DELTAT.
• For a resistor, this is just the value of the resistance in Ohms.
• For an inductor of L Henries, the equivalent resistance is 2L/DELTAT.
• For a capacitor of C Farads, the equivalent resistance equals
DELTAT/2C.

Distributed-parameter lines or cables can be treated like a resistor having a


resistance equal to the characteristic impedance.
EPSILN can be specified in the floating-point miscellaneous data card, or
in the startup file.
TOLMAT = singularity tolerance for complex (i.e. phasor) admittance solutions during
steady state initial conditions. For steady state studies, the impedances in
question are phasor impedances, depending not only on the element but
also on the frequency f of the sinusoidal excitation being used.
• For a resistor, this is just the value of the resistance.
• For an inductor, this is 2πf(L.
• For a capacitor, this is (2πf(C)-1.
8 - IV Linear branch cards

TOLMAT can only be specified in the floating-point miscellaneous data card. Current sampling
can alternatively be done by permitting current output requests using the familiar column-80
punch. A second alternative is to use a measuring switch, which is permanently closed. The use
of this switch is explained in section VI-A.

Scaling of a resistance by the time step DELTAT (Theory Book, section 2.2.2 and 2.3.2)
Particularly useful for damping resistors to control numerical oscillation of the trapezoidal rule
is the program feature that allows the resistance to be scaled by the time step DELTAT. For a
resistor in parallel with an otherwise hanging (disconnected) inductor having value L (Henry),
default damping is provided by the formula

16L
R = (L in Henry, DELTAT in sec, R in Ohm)
DELTAT

The less-common dual case is that of the series capacitor which otherwise would be shorted, in
which case resistance proportional to DELTAT is used:

DELTAT
R =
16C

Either proportional or inverse scaling by DELTAT is available for any simple resistor, if the user
makes the right request in the reference branch fields BUS3 and BUS4 (columns 15-26) of the
series R-L-C branch card that defines the resistance R as 16(L (Henry) or R as 16(C (Farad). L
and C should be left blank.
C 1 | 2 | 3
C 345678901234|567890123456|7890
C ------------|-----------------
|DIVIDEDELTAT| -- to have R divided by DELTAT : inductance
|MULTIPDELTAT| -- to have R multiplied by DELTAT : capacitance

No special acknowledgement of such requests will be provided, although the user can verify
that the program has understood by checking the first parameter of the data card interpretation
(column 1-51 of the LUNIT6 output), which will reflect the scaling. If the user makes an error
in spelling the request words (DIVIDEDELTAT or MULTIPDELTAT), the program should
terminate execution with a complaint about inability to find the appropriate reference branch.
Hence usage carries little danger of misunderstanding. For an illustration of " DIVIDEDELTAT"
usage, see the 4th subcase of BENCHMARK DC-55.

IV.A.4. Examples
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
VOLT-A10-A 1. 123..21E-3
$VINTAGE, 1
$UNITS, 0, 0
BUSA BUSB 12.8000000000000 10. 3
$VINTAGE, 0
$UNITS, -1, -1
VOLT-B10-B VOLT-A10-A 1
PORT 300.
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
IV. Linear branch cards - 9

The examples in the above figure are representing the branches shown below. Assume that
XOPT and COPT are set to 0 and 60 (Hz), respectively, on the integer miscellaneous data card.
When we switch to high-precision notation, we also use the $UNITS, 0, 0 card to change the
units of the capacitance to µF (the units of the inductance remain the same, because XOPT
already was 0). At this point, we have to be careful when we are going to use referencing. The
branch with node names VOLT-B and 10-B will use now the reference branch with node names
VOLT-A and 10-A. Therefore the units must be the same for these two branches. To switch to
the old units again, we will use the $UNITS, -1, -1 card. The current of the branch with terminal
nodes VOLT-B and 10-B will be included in the output as well as both current and voltage of
branch BUSA to BUSB.

1Ω 123mH 0.21E-3 µmho (f=60Hz)


VOLT-A 10-A

12.8mH 10µF
BUSA BUSB

1Ω 123mH 0.21E-3 µmho (f=60Hz)


VOLT-B 10-B

PORT

300Ω
10 - IV Linear branch cards

IV.B. Branch cards for mutually coupled RLC elements (type 1,2,3)
IV.B.1. Applications
1. General usage:

First of all it is important to realize that, in contrast with the previous branches (type 0), the
capacitance values specified on the input cards of type 1,2,3 are for shunt connected
capacitances, not for series connected ones. A further observation worth reminding is that the
capacitance value that is entered, is internally allocated half at the beginning and half at the end
of the model.

R L

C C
R L

C C
C C
R L

C C C C C C

This class of branches thus provides for the representation of lumped-element resistance,
inductance and capacitance matrices. The elements of the matrices [R], [L] and [C] have the
following meaning (steady state):
- diagonal Rii + jωLii : self impedance of branch i (impedance of loop "branch i - ground
return");
- off-diagonal Rik + jωLik : mutual impedance between branches i and k (Rik ≠ 0 with
nonzero ground resistivity);
- diagonal Cii : sum of all capacitances connected to the nodes at both ends of branch i;
- off-diagonal Cik : negative value of the capacitance from branch i to branch k.

ik ikm im
di [R], [L]
vk − vm = [ L ] km + [ R ] ikm
dt + +

1 dv
ik = [C ] k + ikm [C] [C]
2 dt vk 2 2 vm
1 dv
im = [C ] m − ikm
2 dt
- -

The arrow sign used for voltage and current symbols ( i , u ) indicates array (vector) of currents
and voltages in the above equations. Note that all matrices are assumed to be symmetric and that
the matrix of the capacitance is split in two, with half of the total on each end of the branch.
IV. Linear branch cards - 11

This model, better known as a multi-phase nominal PI-equivalent, can be used to simulate
transient phenomena on short lines or cables. By connecting many short sections in series,
keeping track of any actual transposition (if any), even a transient model for a long line can be
obtained. Yet because of increased running time and memory requirements, this modeling
should generally be used only as a last resort, where more sophisticated models (e.g. distributed-
parameter models) are believed to be inadequate. Note that this is not the CASCADED LINE
option referred to in section IV. F.

The supporting routine LINE CONSTANTS (section XXI-E) or CABLE PARAMETERS


(section XXIII-Appendix) can be used as data generator for type 1,2,3 branch cards. Indeed the
parameters [R], [L] and [C] cannot easily be calculated by hand.

But also transformers can be modeled using PI-equivalents. Because most transformers have a
small excitation current, the admittance matrix is nearly singular. The leakage impedance is
rather low and can be obtained by subtracting the mutual impedance from the self-impedance.
Because of the fact that the admittance matrix is ill-conditioned, the leakage impedance can get
lost in the magnetizing impedance. Therefore, it is necessary to have sufficient accuracy for the
inductance. Hence, the normal card format (E6.0) is not sufficient. For transformers, either the
alternative high-precision format should be used (see section IV.B.2 and related data generator
BCTRAN, section XIX-C), or a more appropriate branch card format (type 51-52-53, see
section IV-C) should be used (see data generator XFORMER, section XIX-A). In the ideal case
of non-existing excitation currents, the inductance matrix does not even exist. For this special
situation, a special option (AR notation) is used. Here, A stand for L–1 (the inverse of the
inductance), which does exist (be it almost singular). This is later explained in more detail (see
section IV.B.2). In both cases (AR and RL notation), the positions for the capacitance can be
used successfully to derive frequency dependent transformer models, where one needs to take
into account the interwinding capacitances, as well as the capacitances to ground. Hybrid Model
for transformer modeling in ATPDraw, starting with the version 5.5 can be used to generate a
complete model of a transformer with lumped elements.

2. Special usage:

A first special situation is when [C] = [0] (there are no capacitances). This case represents only
mutually-coupled RL branches, for which even a separate input format (type 51,52,53, see
section IV.C.) has been provided. This is the normal situation for transformer modeling.

R L

R L

R L

Coupling

If the user wants a multiphase capacitance matrix to ground (e.g. a capacitor bank), be it in star
or in delta, then he can input near-infinite-impedance series branches and ground all conductors
at the far end.
12 - IV Linear branch cards

C
R

C
C
R

C C C

Note hereby that the series impedances must be chosen large enough to represent an open-
circuit. Recall that there is a limitation on the used values (see section IV.A.3). The C–matrix,
specified in the input file must be twice the desired final matrix values, as mentioned before.
Recall that the specified value is internally allocated half to the beginning and half to the far end
of the model.

One can also obtain a single phase (i.e. uncoupled) PI-equivalent. The difference with the
representation by uncoupled, lumped series RLC branches is that you can enter the shunt
capacitance to ground directly instead of having to introduce two separate branches for this
purpose. The only thing you have to do, is using branch type number 1.

IV.B.2. Card format


First, the three different card formats will be discussed:
- normal format ($VINTAGE, 0)
- high-precision format ($VINTAGE, 1)
- free format.

For this card-type, 2 different notations exist: the RL-notation and the AR-notation. The card
formats first will be explained for the RL-notation (normal usage). Next, the AR-notation will
be discussed.

1. RL notation

Normally the RL notation is used. You can stack the values for [R], [L] and [C] in the way
explained in section IV.B.3 (remarks). If previously the AR notation was used, you can toggle to
the RL notation by using the following card:

1 2 3 4 5 6 7 8
12 345678 901234567890123456789012345678901234567890123456789012345678901234567890
USE RL

- Normal card format ($VINTAGE, 0)


1 2 3 4 5 6 7 8
12 3 5 6 7 8 9 0 1 2 3 4 5 6 7 89 0 12 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
node names reference br. elements (k, m) elements (k, m+1) elements (k, m+2)
ITYPE

BUS1 BUS2 BUS3 BUS4 R L C R L C R L C

I2 A6 A6 A6 A6 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2


IV. Linear branch cards - 13

If there is no special request card, the normal format is in use. The R, L and C fields only have a
limited accuracy (E6.2 format). See section IV.B.3 (remarks) for further usage.

- High-precision card format ($VINTAGE, 1)


1 2 3 4 5 6 7 8
12 345678 90123 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
ITYPE

node names reference br.


R L C
BUS1 BUS2 BUS3 BUS4

I2 A6 A6 A6 A6 E16.0 E16.0 E16.0

Usage of an extended precision (E16.0) is possible for mutually coupled RLC branches. See
section IV.B.3 (remarks) for further usage.

- Free format
Besides the regular format and the high-precision format, a third (but tricky) way can be used to
input RLC branches. This input is called “free format”, but it is not totally "free". Some
important rules apply here:

− separate two adjacent fields by one comma (i.e. last character of the variable CHRCOM in
the STARTUP file);
− blanks are totally ignored, and node names are left adjusted;
− do not input node names after column 26;
− do not input values before column 27;
− make sure there is always a total of five commas before column 26 (delimiting one type
field and four node name fields) and a total of eight commas should follow column 27
(delimiting nine numeric fields for R, L, C).
− if the figures are to be continued on the next card because the number of columns per card
exceeded, the continuation symbol (fifth character of CHRCOM of STARTUP, usually "$")
must be used. On such card, no extra commas are needed.

With these rules, only column 27 must be determined as position information. On the other
hand, a painstaking count of commas is necessary. See section IV.B.3 (remarks) for further
usage.

2. AR notation

In some cases, the [L]-1 matrix is ill-conditioned or singular, so [L] does not exist. Therefore the
AR notation is used. "A" stands for the [L]–1 matrix and "R" stands for the [R]-matrix. In this
case the branch consists of a series connection of [R] and [L]–1.
Switching to the AR notation can be done by the following card:

1 2 3 4 5 6 7 8
12 345678 901234567890123456789012345678901234567890123456789012345678901234567890
USE AR

Now we have to be careful when creating the data in the input format. The [L]–1-matrix replaces
R in the input format. In the same way, the [R]-matrix replaces L in the input format.

Remarks:
This notation cannot be used for single-phase situations; only for coupled phases (minimum
two). Before using the AR notation, the program automatically sets XOPT as 0.1591549
14 - IV Linear branch cards

1
(XOPT = ). In this case ω = 1. COPT remains unchanged. The values of the corresponding

term of the inverse of L are now to be specified in (1/Henry). Before switching to the RL
notation, the old value of XOPT can be restored using the command $UNITS,–1,–1.
The AR notation can be combined with the use of the high precision format ($VINTAGE, 1) and
the free format.

IV.B.3. Parameters
Following is an explanation of the parameters used in the following card formats:

ITYPE: Numbers 1 up to 40 can be used to express each phase of the PI-equivalent.


When there are continuation cards, ITYPE must be left blank for these (see
remark 2)
BUS1, BUS2: Specify the terminal node names of each phase in these fields. Nodes may be
grounded (indicated by blank field name), if desired.
BUS3, BUS4: Equally to uncoupled RLC branches, referencing can be used here. The same
rules must be taken into account, except that only the first card (first phase)
bears the reference nodes, specified as the nodes appearing on the first card
used as reference set. The following cards (following phases) just specify the
consecutive type numbers and the node names of the other input ports, not the
nodes of the reference set nor the RLC values.
R: resistance, value in ohm.
L: Inductance value (in mH or Ohm, depending on XOPT).
- an inductance L: mH (XOPT = zero or blank)
- a reactance 2πf(L: Ohm (XOPT = f)
C: Capacitance value (in )F or )mho, depending on COPT).
- a capacitance C : )F (COPT = zero or blank)
- a susceptance 2πf(C: )mho (COPT = f)
Col. 80 punch: only value 2 is allowed, only on the first two cards.

Remarks:
At least one of the matrices [R], [L] or [C] must be nonzero. When matrix [C] is zero, an
alternate input format (type 51,52,53; see section IV.C), can be used. Matrices [R], [L] and [C]
are symmetric, so one only needs to specify the elements on and below the diagonal. Hence the
following format applies. For phase 1 (A), BUS1 = "SA" and BUS2 = "RA" for phase 2 (B), we
have SB and RB, etc. When one card is not sufficient for all RLC values (second and later
phases for $VINTAGE, 1; fourth and later phases for $VINTAGE, 0), then continuation cards
are used, with columns 1-26 left blank.

a) for $VINTAGE, 0:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 SA RA R11 L11 C11

2 SB RB R21 L21 C21 R22 L22 C22

3 SC RC R31 L31 C31 R32 L32 C32 R33 L33 C33

4 SD RD R41 L41 C41 R42 L42 C42 R43 L43 C43

R44 L44 C44

5 SE RE R51 L51 C51 R52 L52 C52 R53 L53 C53

R54 L54 C54 R55 L55 C55


IV. Linear branch cards - 15

⋮ Etc.

b) for $VINTAGE, 1:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 901234 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 SA RA R11 L11 C11

2 SB RB R21 L21 C21

R22 L22 C22

3 SC RC R31 L31 C31

R32 L32 C32

R33 L33 C33

4 SD RD R41 L41 C41

⋮ Etc.
No branch current output is possible for this branch type. However, the branch voltage can be
obtained on the first two phases. In these phases, column 80 is still free and can therefore be
used to punch number 2 for branch voltage output requests. By the next phases, column 80 is
occupied (at least for $VINTAGE, 0) and can therefore not be used for output requests.

IV.B.4. Examples
The next example contains two identical 3-phase circuits. Together, these two circuits constitute
six coupled conductors. With two identical PI-equivalents cascaded, the data cards appear as
follows:
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
$UNITS, 60, 0
110-A 20-A 1.41 8.334 .164
210-B 20-B 0.972.8586-.0289 1.239.1392 .1626
310-C 20-C 0.912.2823-.0088 0.863.4218-.0273 1.16 9.518 .1662
411-A 21-A 1.002.0984-.0180 0.942.1248-.0101 0.902.0398-.0053
1.41 8.334 .164
511-B 21-A 0.942.1248-.0101 0.892.5064-.0104 0.862.6454-.0087
0.972.8586-.0289 1.239.1392 .1626
611-C 21-C 0.902.0398-.0053 0.862.6454-.0087 0.833.1597-.0142
0.912.2823-.0088 0.863.4218-.0273 1.16 9.518 .1662
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
USE AR
$VINTAGE, 1,
1BUS1_RBUSH 2.4311266503345 1.369233463069
2BUS2 RBUSL -29.04015078715 0.0
361.43763967638 .0095961038351
3BUS1_SBUSH .06629545237001 0.0
-.7919085305828 0.0
2.4311266503345 1.369233463069
4BUS2 SBUSL -.7919085305828 0.0
23.900085059572 0.0
-29.04015078715 0.0
361.43763967638 .0095961038351
5BUS1_TBUSH .06629545237001 0.0
-.7919085305828 0.0
.06629545237001 0.0
-.7919085305828 0.0
2.4311266503345 1.369233463069
6BUS2_TBUSL -.7919085305828 0.0
23.900085059572 0.0
-.7919085305828 0.0
23.900085059572 0.0
-29.04015078715 0.0
361.43763967638 .0095961038351
USE RL
$VINTAGE, 0,
$UNITS, -1, -1 {do not forget this!
16 - IV Linear branch cards

C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
120-A 30-A 10-A 20-A
220-B 30-B
320-C 30-C
421-A 31-A
521-B 31-B
621-C 31-C

As you can see in the grid, following matrices are used in the first six phases of the PI-equivalent:
1.41  8.3340 
0.97 1.23   2.8586 9.1392 
 0.91 0.86 1.16   2.2823 3.4218 9.5180  ,
[ R] =  9 [ω L] =  9
1.00 0.94 0.90 1.41   2.0984 2.1248 2.0398 8.3340 
0.94 0.89 0.86 0.97 1.23   2.1248 2.5064 2.6454 2.8586 9.1392 
0.90 0.86 0.83 0.91 0.86 1.16   2.0398 2.6454 3.1597 2.2823 3.4218 9.5180

 0.1640 
 −0.0289 0.1626 
 −0.0088 −0.0273 0.1662 
[C ] =   )F
 −0.0180 −0.0101 −0.0053 0.1640 
 −0.0101 −0.0104 −0.0087 −0.0289 0.1626 
 −0.0053 −0.0087 −0.0142 −0.0088 −0.0273 0.1662 

Remark the symmetric structure of each matrix and interpret the units of the [L] matrix in ohms
(XOPT is set to 60 Hz). The next 6 phases represent a multiphase transformer. The AR notation
is used representing following matrices:

 2.4311266503345 
 − 29.04015078715 316.43763967638 
 .06629545237001 − .7919085305828 2.4311266503345 
[ L] = 
−1
 1/H
 − .7919085305828 23.900085059572 −29.04015078715 316.43763967638 
 .06629545237001 − .7919085305828 .06629545237001 − .7919085305828 2.4311266503345 
 − .7919085305828 23.900085059572 − .7919085305828 23.900085059572 
− 29.04015078715 316.43763967638

1.369233463069 
 0.0 .0095961038351 
 0.0 0.0 1.369233463069 
[ R] =  9
 0.0 0.0 0.0 .0095961038351 
 0.0 0.0 0.0 0.0 1.369233463069 
 0.0 0.0 0.0 0.0 0.0 .0095961038351

The high-precision format ($VINTAGE, 1) is also used, because the transformer needs this
format to be as accurate as possible.

Remark the use of $UNITS, –1, –1 which resets the old units of the inductors (XOPT = 60) and
capacitors (COPT = 0). This is indispensable because when using the AR notation, the program
automatically changes the units to $UNITS, 0.1591549, 0.

Finally, there is a multiphase PI-equivalent which will be referred to the first multiphase PI-
equivalent. As mentioned in section IV.B.3. only the first phase bears the reference nodes.
IV. Linear branch cards - 17

IV.C. Branch cards for mutually coupled RL elements


(type 51,52,53,…)
IV.C.1 Application
1. General usage:

This class of branches provides for the representation of lumped-element, mutually-coupled R-L
branches.

R L
1 1

R L
2 2

R L
N N

Coupling

The input cards for these branches do not differ much from the previous type 1,2,3 branches,
except that there is no provision for inputting a shunt capacitance matrix ([C] = [0]). On the
other hand, the inductance data field provides for 12 columns rather than only 6, allowing for
greater precision. This is primarily intended for representing the coupled impedances of
transformers, as with lower precision the leakage impedances, obtained by subtracting the
mutual impedances from the self impedances, would be badly lost in the magnetizing
impedance. However, this drawback can be circumvented by using the high-precision format for
type 1,2,3 (see section IV.B). Also network equivalents can be represented using coupled R-L
equivalents. Following data generators create punched cards in the type 51,52,53-format:

- XFORMER (section XIX.A): transformer model


- NETEQV (section XXIV.): network equivalent
- CHANGE TRANSFORMER (section XIX.J): convert SATURABLE
TRANSFORMER data into XFORMER punched card output format.

In the above cases of the type 51, 52, 53 modeling it is assumed that the [R] and [L] matrices are
symmetric referring to the diagonal. The newer extension allows to model unsymmetric [R] and
[L] matrices. This more general model will be described below in Section IV.C.4.

2. Special usage:

2a) Sequence value:


For transposed (balanced) lines, the associated [R] and [L] matrices (phase values) have a
special structure: all diagonal elements have a common value Zs and all off-diagonal elements
have a common value Zm. When in addition, we only consider transposed three-phase cases, an
easier notation, based on Fortesque decomposition, exists. In this case, it is no longer necessary
to input the entire matrix (or even the lower-diagonal part). It is more convenient to specify only
the associated zero- and positive-sequence values (R0,L0) and (R1,L1) of a purely diagonal
matrix.
18 - IV Linear branch cards

 Zs Zm Zm  Z0 0 0
Zm Zs Z m ⇐ Fortesque ⇒  0
 Z1 0
Z Zm Z s  0 0 Z1 
 m 

The relation between phase values (Zs, Zm) and sequence values (Z0,Z1) is simple:
Z 0 = Z s + 2Z m Z1 = Z s − Z m
Furthermore, sequence values can be calculated automatically using supporting routines LINE
CONSTANTS (section XXI-C or section XXI-D) or CABLE CONSTANTS.
Note, however those data manually must be put in the correct input format. This input format
will be discussed in more detail in section IV.D.2-3 and 3-2.

2b) AR notation:
In the ideal case of a transformer having non-existing (or very low) P.U. excitation currents, the
inductance matrix does not even exist. For this special situation, a special option (AR notation)
is used. Here, "A" stands for L-1 (the inverse of the inductance), which does exist. Remark,
however, that the supporting routine XFORMER is not able to create output in AR notation in
order to treat such an "ideal" transformer. On the other hand, BCTRAN can, but it does not
create the type 51,52,53 branch format being discussed here.

IV.C.2 Card format


For this card-type, 2 different formulations exist: phase value and sequence value formulation.
For the phase value formulation, in addition 2 different notations exist: the RL-notation and the
AR-notation. In both notations, three different card formats can be used:
- normal format ($VINTAGE, 0)
- high-precision format ($VINTAGE, 1)
- free format.

These card formats first will be explained for the RL-notation (normal usage). Next, the AR-
notation will be discussed. These notations, which belong to the phase value formulation, will
be followed by another part, where an extra format used for the sequence value formulation will
be discussed.

1. Phase values

1a) RL notation:
Normally the RL notation is used. You can stack the values for [R] and [L] in the way explained
in section IV.C.3. If previously the AR notation was used, you can toggle to the RL notation by
using the following card:

1 2 3 4 5 6 7 8
12 345678 901234567890123456789012345678901234567890123456789012345678901234567890
USE RL
IV. Linear branch cards - 19

- Normal card format ($VINTAGE, 0):


To specify N mutually coupled R-L elements, the following format is used:
1 2 3 4 5 6 7 8
12 35678901234 567890123456 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
node names reference br. elements (k, m) elements (k, m+1) elements (k, m+2)
ITYPE

BUS1 BUS2 BUS3 BUS4 R L R L R L

I2 A6 A6 A6 A6 E6.2 E12.2 E6.2 E12.2 E6.2 E12.2

- High-precision card format ($VINTAGE, 1):


Even in this case there is a high-precision format available. All value formats are now switched
to the E16.0 format. Next table shows the input structure.
1 2 3 4 5 6 7 8
12 35678901234 5 6 7 89 0 12 3 45 6 7890123456789012 3456789012345678 9012345678901234567890
node names reference br. elements
ITYPE

BUS1 BUS2 BUS3 BUS4 R L

I2 A6 A6 A6 A6 E16.0 E16.0

- Free format:
Besides the regular format and the high-precision format, a third (but tricky) way can be used to
input type 51,52,53 RL branches. This input is called “free format”, but it is not totally "free".
Some important rules apply here:
− separate two adjacent fields by one comma (i.e. last character of the variable CHRCOM in
the STARTUP file);
− blanks are totally ignored, and node names are left adjusted;
− do not input node names after column 26;
− do not input values before column 27;
− Make sure there is always a total of five commas before column 26 (delimiting
one type field and four node name fields) and a total of six commas should
follow column 27 (delimiting six numeric fields for R and L).
− If the figures are to be continued on the next card because the number of
columns per card is exceeded, the continuation symbol (fifth character of
CHRCOM of STARTUP, usually "$") must be used. On such card, no extra commas
are needed.

With these rules, only column 27 must be determined as position information. On the other
hand, a painstaking count of commas is necessary. See section IV.C.3 (remarks) and section
IV.C.4 (examples) for further usage. Supporting routine XFORMER (section XIX.A) creates
punched card output in free-format notation.

1b) AR notation:
In some cases, the [L]–1-matrix is ill-conditioned or singular, so [L] does not exist. Therefore the
AR notation is used. "A" stands for the [L]–1-matrix and "R" stands for the [R]-matrix.

Switching to the AR notation can be done by the following card:


1 2 3 4 5 6 7 8
12 3 4 5 67 8 901234567890123456789012345678901234567890123456789012345678901234567890
USE AR

Now we have to be careful when punching the data in the input format. The [L]–1-matrix
replaces R in the input format. In the same way, the [R]-matrix replaces L in the input format.
20 - IV Linear branch cards

2. Sequence values

When using the sequence value formulation, only one card format exists:
1 2 3 4 5 6 7 8
12 3 5 6 7 8 9 0 1 2 3 4 5 6 7 89 0 12 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
node names reference br. sequence values
ITYPE

BUS1 BUS2 BUS3 BUS4 R L

I2 A6 A6 A6 A6 E6.2 E12.2

IV.C.3 Parameters
Following is an explanation of the parameters used in the above card formats. A distinction
should be made between phase value and sequence value usage.

1. Phase value usage (normal, high-precision or free format)

ITYPE: Specifies N phases by numbering 51, 52, 53, ...(50+N) in this field. N is not
limited to 49. Although the 2-digit type code of columns 1-2 (assuming fixed
format rather than free-format data) remains, wraparound is allowed. After 99
comes 00, then 01, etc. for phases numbered 100, 101, etc. Continuation cards
should have blank ITYPE fields.
BUS1, BUS2: Terminal node names of the elements in the phase, indicated by the ITYPE
field. A node may be grounded (indicated by blank field name) if desired. In
fact, both terminal nodes can be grounded.
BUS3, BUS4: Equally to mutually coupled RLC branches, referencing can be used here. The
same rules must be taken into account as typing only the node names of the first
phase of the reference set in the same sequence.
R, L: The numerical values of the matrices [R] and [L] are to be put in these fields.
The units for R will be in ohms and for L there are two cases:
Inductance L : mH, if XOPT = zero;
Reactance 2π(f(L in Ohm at frequency f = XOPT
Remarks:
Matrices [R] and [L] are symmetric, so only need to be specified on and below the diagonal.
When one card is not sufficient to specify all R-L values, then continuation cards are used, with
columns 1-26 left blank. The following format applies:

a) for $VINTAGE, 0:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 23 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 345678 9 0 1 2 3 4 5 6 7 8 9 0
51 SA RA R11 L11

52 SB RB R21 L21 R22 L22

53 SC RC R31 L31 R32 L32 R33 L33

54 SD RD R41 L41 R42 L42 R43 L43

R44 L44

55 SE RE R51 L51 R52 L52 R53 L53

R54 L54 R55 L55

⋮ Etc.
IV. Linear branch cards - 21

b) for $VINTAGE, 1:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 901234 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9012345678901234567890
51 SA RA R11 L11

52 SB RB R21 L21

R22 L22

53 SC RC R31 L31

R32 L32

R33 L33

54 SD RD R41 L41

R42 L42

R43 L43

R44 L44

⋮ Etc.
There is no branch current output possible for this branch type. However, the branch voltage can
be obtained on the first two phases (column 80 is not being used).

There is a supporting routine that can be used to generate the data in the proper input format:

XFORMER: to derive [R] and [ωL] for single-phase transformers in free format, RL
notation (phase value formulation). See also section XIX.A.

2. Sequence values usage

ITYPE: Specifies N phases by numbering 51, 52, 53, ... (50+N) in this field N is limited
to 40.
BUS1, BUS2: Terminal node names of the phase, indicated by the ITYPE field. Nodes may be
grounded (indicated by blank field name) if desired.
BUS3, BUS4: Terminal node names of the first branch (phase) of the reference set.
R, L: The first card (type 51) carries the homopolar or zero sequence values (R0, L0).
The second card (type 52) contains the direct or positive sequence values (Ri,
Li) and the R and L field of the third card has to be left blank. The units for R
and L are the same as mentioned for the previous format. For L:
Inductance L : mH if XOPT = zero;
Reactance 2πf(L in Ohm at frequency f = XOPT

Remark:
If columns 15-80 of the third and further cards for sequence values are not left blank, the EMTP
will not recognize the coupled branches as being specified with sequence values. In this case,
the phase domain format will be assumed, with the result being an erroneous representation.

IV.C.4. Representation of unsymmetric series [R] and [L] matrices


Type-51,52, … branches have been used for the task since year one, but they suffer from the
restriction that both [R] and [L] must be symmetric. This limitation is avoided by the new more
general code. For a coupled three-phase branch sequence impedances can be entered, where
Z 0 ≠ Z1 ≠ Z 2 . Symmetrical components inspired the keyword “Z0Z1Z2”. For balanced, 3-phase
systems, the symmetrical component transformation will decouple branch equations into zero,
22 - IV Linear branch cards

positive, and negative-sequence impedances. The Type-51,52,53 branch allowed such input for
symmetric matrices by detecting zero or blank parameter values of the third (Type-53) branch
card. For that case, Z2 and Z1 were identical. But in general they are not. The new type Z0Z1Z2
model requires that all 3 sequence impedances be keyed on the three branch cards as illustrated
by new standard test case DCNEW-23.

For unbalanced 3-phase cases, or for other numbers of coupled phases, the symmetrical
component transformation will not decouple branch equations, so are of little practical use for
data specification. Instead, full [R] and [L] in the phase domain are specified. This, too, is
illustrated in DCNEW-23.

The format of data input is shown below for both options, i. e. how to enter sequence
impedances as well as unsymmetric [R] and [L] matrices. MODEL Z0Z1Z2 or MODEL [R][L]
are to be keyed in the BUS3, BUS4 data fields of columns 15-24.

a) Data input option MODEL Z0Z1Z2:

1 2 3 4 5 6 7 8
12 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 78 9 0 12 3 456 7 8 90 1 23 4 56 7 89 0
I
O
BUS1 BUS2 M O D EL Z0 Z 1Z 2 R L U
ITYPE

I
I2A6 A6 E6.2 E12.2
1

ITYPE: 51, 52, 53 (three cards for a three-phase branch)


BUS1, BUS2: Terminal node names of the phase, indicated by the ITYPE field. Nodes
may be grounded (indicated by blank field name) if desired.
“MODEL Z0Z1Z2”: Special request in columns 15-26 to input sequence impedances
R, L: The first card (ITYPE=51) carries the zero sequence values (R0, L0). The
second card (ITYPE=52) contains the positive sequence values (R1, L1)
and into the R and L field of the third card (ITYPE=53) negative
sequence values (R2, L2) has to be entered. The units for R and L are the
same as mentioned for the previous format. For L:
Inductance L : mH if XOPT = zero;
Reactance 2πf(L in Ohm at frequency f = XOPT
IOUT: The options for printing and/or plotting have to be specified in this area.
There are four main output possibilities (In fact there are in total 16
choices as shown in Benchmark DC-37):
1 : branch current,
2 : branch voltage,
3 : branch current and branch voltage,
4 : branch power and energy consumption.

b) Data input option MODEL [R][L]:

Alternative and general way is to input the full [R] and [L] matrices in phase quantities instead
of symmetrical components. Up to two phases the R and L values can be entered in the same
data line as shown in Section IV.C.3. If the number of mutually coupled phases are greater than
2, then the [R] and [L] matrices are to be entered following type 51, 52, 53,… cards. In this case
the columns 27-44 in the first data line (first phase with ITYPE=51) must be left blank. The data
input format is shown below.
IV. Linear branch cards - 23

1 2 3 4 5 6 7 8
1 2 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 56 7 8 9 0
I
O
BUS1 BUS2 M O D EL [R ] [L ] R1 L1 R2 L2 U
ITYPE

I
I2 A6 A6 E6.2 E12.2 E6.2 E12.2
1

ITYPE: 51, 52, 53, …


BUS1, BUS2: Terminal node names of the phase, indicated by the ITYPE field. Nodes
may be grounded (indicated by blank field name) if desired.
“MODEL [R][L]”: Special request in columns 15-26 to input full [R], [L] matrices
R1, L1, R2, L2: In case of a two-phase mutually coupled branch the 2x2 [R] and [L]
matrices are entered in the two data lines. The first card (ITYPE=51)
carries R1=R11, L1=L11, R2=R12, L2=L12. The second card (ITYPE=52)
contains R1=R21, L1=L21, R2=R22, L2=L22. The units for R and L are
the same as mentioned for the previous format. For L:
Inductance L : mH if XOPT = zero;
Reactance 2πf(L in Ohm at frequency f = XOPT
IOUT: The options for printing and/or plotting have to be specified in this area.
There are four main output possibilities (In fact there are in total 16
choices as shown in Benchmark DC-37):
1 : branch current,
2 : branch voltage,
3 : branch current and branch voltage,
4 : branch power and energy consumption.

If the number of phases is greater than 2, then the values of [R] and [L] are entered immediately
following type-51, 52,.. cards using following format. In this case columns 27-44 of the first
card (type = 51) should be left blank.
1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 45 6 78 9 01 2 3 45 6 789 0
R11 R12 R13
L11 L12 L13
R21 R22 R23
L21 L22 L23
R31 R32 R33
L31 L32 L33

IV.C.5. Examples
Next example will show the use of normal mutually coupled RL elements, where the [R] and
[L] matrices are symmetrical. We'll use the output of the supporting routine XFORMER (see
section XIX-A) which uses a high-precision and free format.
C l 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
51,H1 , , , , 0.9272618817281E-01 , 0.3493188082966E+03 , ,,,,
52,L1 , , , , -0.5411077293636E-01 , 0.2037410770117E+03 $
0.3157657837292E-01 , 0.1189555285801E+03 , ,,,,
C l 2 3 4 5 6 7 8
24 - IV Linear branch cards

C 345678901234567890123456789012345678901234567890123456789012345678901234567890

A second example shows the special case of sequence values:

N1A R L N2A

N1B R L N2B

N1C R L N2C

Coupling

The sequence parameters for example could be:

R0 = 4.5 9 R1 = 3.1 9
L0 = 87.6 mH L1 = 66.4 mH

C l 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
51 N1A N2A 4.5 87.6
52 N1B N2B 3.1 66.4
53 N1C N2C
C l 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890

For the examples of modeling of type-51,52,53 elements to represent


unsymmetric series connection of [R] and [L] matrices refer to Benchmark
DCNEW-23.
IV. Linear branch cards - 25

IV.D Branch cards for distributed-parameter elements (type -1,-2,…)


1. Introduction

A generalized frequency dependent model with frequency dependent matrix is not yet available in
EMTP. Hence, this section only deals with distributed-parameter models with constant
transformation matrix.
Taking the geometry of the power carrier (line or cable) into account, one can distinguish between
transposed or untransposed power carriers. Further distinction is made between constant
parameters and frequency-dependent parameters.
Depending on the geometry of the power carrier, for constant parameter models one distinguishes:
• Clarke model : transposed
• K.C. Lee model: untransposed
The constant parameter models further can be subdivided into:
• distortionless models
• lumped resistance models
• exact PI models (for steady state only)
The frequency dependent parameter models currently available in EMTP are:
• JMARTI setup (for lines and cables)
• SEMLYEN setup (for lines and cables)
• NODA setup (for lines and cables)

Description of NODA line model data input has not been included in the Rule Book yet!

For all these models, usually, phase values will be obtained as a result of simulation. When the
user wants, he can also obtain mode voltage output. Then, the special request "MODE VOLTAGE
OUTPUT" is needed (see section II-2). Benchmark DC38 illustrates such special usage.

2. General model

A number of possibilities can be chosen by the user to get the required model. The general scheme
is shown in the figure below.

This figure represents just one incremental section, of a line with only one phase. In general, the
equations of a multiphase line can be written as follows:
26 - IV Linear branch cards

∂υ ∂i
− = [ L] + [ R]i
∂x ∂t
∂i ∂υ
− = [C ] + [G ]υ
∂x ∂t

[R], [L] and [C] can be determined from a supporting program. See "LINE CONSTANTS"
(section XXI) or "CABLE PARAMETERS" (section XXIII).

It should be stressed that none of the above models uses phase value notation. Modal values and
sequence values are used instead. Both notations will be explained here after.

3. Modal value notation:

For untransposed transmission lines, one relies on the modal analysis (eigenvalue-eigenvector
calculation). Input data thus contain modal quantities (Rmode, Lmode. Cmode) as well as a modal
transformation matrix [TA] (see theory book). The number of modes is equal to the number of
phases. Strictly speaking, [TA] is complex, frequency dependent and dependent on the line
configuration. This frequency dependency is certainly true for strongly unbalanced power carriers
as well as for most practical cases of double-circuit transmission lines. However, this frequency
dependency cannot be taken into account. On the other hand, all supporting routines (LINE
CONSTANTS, CABLE CONSTANTS, SEMLYEN, JMARTI) allow the user to specify the
frequency at which the transformation matrix should be calculated. Hence the user is advised to
take the value for this frequency equal to a value within the frequency region of interest for
transients to be studied
.
For transposed transmission lines, one can also rely on the modal analysis. Some peculiarities
exist, however, making the modal value notation less useful in case of transposition:

Some of the modes are equal amongst themselves (and hence do not need to be calculated).
Furthermore, most numerical techniques used for eigenvalue-eigenvector calculations fail on a
transposed system since they are unable to determine the multiple modes correctly. Hence, for this
special situation, an alternative called "sequence value notation" was developed (see next
paragraph).

The transformation matrix may be real (not complex), constant (frequency independent) and
independent of the power carrier configuration (as long as it is balanced).

Input data only contain modal quantities (Rmode, Lmode, Cmode) not a modal transformation matrix
[Ti].

Again, the number of modes is equal to the number of phases.

Similar remarks can be made for specially transposed double circuit overhead lines (see section
IV.D.2).
IV. Linear branch cards - 27

4. Sequence value notation

Out of the previous explanations on modal value notation, it can be derived that a sequence value
is nothing more than a modal value. But the number of sequences is always smaller than the
number of modes (some of the modes are equal amongst themselves):
full transposed: only two distinct values:
Zs Zm Zm Zm Zm Zm  ZG 0 ⋅ ⋅ ⋅ 0 
Z Zs Zm Zm Zm Z m  0 ZL ⋅ 
 m
Zm Zm Zs Zm Zm Z m  ⋅ ⋅ ⋅ 
 ⇒ 
Zm Zm Zm Zs Zm Z m  ⋅ ⋅ ⋅ 
Zm Zm Zm Zm Zs Z m  ⋅ ⋅ 0 
   
 Z m Zm Zm Zm Zm Z s  0 ⋅ ⋅ ⋅ ⋅ Z L 

One ground mode or sequence: ZG = Zs + (N-l)·Zm


and (N-l) identical line modes or sequence: ZL = Zs-Zm, (N = number of phases)

In the remainder of this text, we will first deal with the following models:

- Constant distributed-parameter line models for a N-phase system. Here, we will discuss
the distortionless model, the lumped resistance model, as well as the exact PI model
Further, reference will be made to the Clarke model (transposed) and the K.C. Lee model
(untransposed).
- Constant-parameter distributed line models for specially transposed double three-phase
circuits
- JMARTI model
- SEMLYEN model

Most models do not work with the full values for (Rmode, Lmode, Cmode), but rather with per unit
length values. Hence it is important that the length specification uses units which are consistent
with the per unit of length modal values.

IV.D.1 Constant-parameter distributed line model


1. General

The general figure of a power carrier (line or cable) with distributed-parameters is shown below:

All input parameters must previously be transformed to modal quantities. This is done by the
supporting routine "LINE CONSTANTS" or "CABLE PARAMETERS". Depending on the line
configuration one can distinguish between transposed (Clarke model) and untransposed (K.C. Lee
28 - IV Linear branch cards

model) situations. Depending on the internal representation of all parameters in the model, one can
distinguish between distortionless model, lumped resistance model and exact PI model:

1a) Distortionless line modeling


A transmission-line mode is well known to be distortionless if the parameters for that mode satisfy
the relation R = G . Of course, actual shunt conductance for an overhead line is nearly zero, and no
L C
provision for inputting a nonzero value is provided.

If the user wants distortionless-line modeling, it is presumed that the input value of R’ is meant to
be a measure of the total line losses. Therefore, the program splits the losses into series and shunt
losses by computing the series resistance R’series and the leakage conductance G’leak from the
relation
R'series G'  R'
= leak = 0.5 
L' C'  L'
With this formula, the ac steady-state results are practically identical whether the line is modeled
as distortionless or in the other two ways to follow. Transient responses differ mainly in the initial
rise of a voltage pulse.

1b) Lumped-resistance line modeling


In this distributed model, the series resistance is pulled outside of the distributed line and
represented as a lumped element. This is the most common representation used in BPA studies, the
standard representation which is assumed unless the user specifically requests otherwise (see
section IV.D.2-3). The program automatically cuts the line in two, inserting half of the resistance
in the middle, and one quarter at each end.
R R R
4 2 4

The half-length distribution sections then become lossless. But at a high frequency steady state
results of this model may be quite erroneous. Therefore, an extra option called "exact phasor
equivalent" was developed.

1c) Exact PI equivalent


For the phasor solution, resistance is lumped (1/4 on each end and half in the middle) for constant-
parameter distributed lines. This agrees with the modeling of the time-step loop, of course. But
sometimes the user may want the correct (exact) representation for the phasor solution, using long-
line formulas. It can be obtained by the request:

2. Exact Phasor Equivalent

“EXACT PHASOR EQUIVALENT” is a special request explained in Section II-A-29. An


example of such usage can be found in the second sub case of BENCHMARK DC11.
IV. Linear branch cards - 29

3. Card formats

As in most cases, also here one can provide input data in a normal or in high-precision format.
3a) Normal card format:
The normal card format in his general form looks as follows:

1 2 3 4 5 6 7 8
12 2345678901234 5 6 7 89 0 12 3 45 6 78901 2 34567 8 90123 4 56789 0 1 2 34 56 78901234567890123456789 0

resistance

length]
node names reference br.
ITYPE

LENGTH

IPUNCH
A B

ILINE

IPOSE
R’[ /

IOUT
BUS1 BUS2 BUS3 BUS4

I1
I2 A6 A6 A6 A6 E6.2 E6.2 E6.2 E6.2 I2 I2 I2

3b) High-precision format:


In this case there is also a high-precision format available. Specifically the resistance, A, B and
length fields are now switched to the E12.0 format, as can be observed on the next grid. Note that
for IPOSE, an I1 field rather than an I2 field is available. This will have some consequences (see
remark 7).

1 2 3 4 5 6 7 8
12 345678 901234 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 56 78 9 0

IPUNCH
Resistance
ITYPE

ILINE

I1 IPOSE
BUS1 BUS2 BUS3 BUS4 A B LENGTH

I1 IOUT
R’[ /length]

I2 A6 A6 A6 A6 E12.0 E12.0 E12.0 E12.0 I2 I2

4. Parameters

Branch card input:

ITYPE: indicates the sequence of the phases by punching -l,-2,-3, …,-N. There is one such
card for each phase. Recall that the number of modes equals the number of phases.
See remarks 1 and 2.
If N is greater than 9, phase indication is alphabetical (10 = A, 11 = B, etc.). In
practice, such lines are believed to be transposed always. Hence, not ITYPE but
IPOSE is the actual indication of the number of phases (see remark 7).
BUSI, BUS2: terminal node names of each phase. Nodes may be grounded (indicated by a blank
name field) if desired.
BUS3, BUS4: Equally to PI-equivalents, referencing can be used here. This option has no
memory saving advantages, but makes true copy of the data and increase
readability of the input file. The same rules must be taken into account, so that
only the first card (first phase) bears the reference nodes, specified as the nodes
appearing on the first card used as reference set. The following cards (following
phases) just specify the consecutive type numbers and the node names of the other
input ports, not the nodes of the reference set or the RLC values.
Resistance: modal resistance in ohms/length. Be sure to keep length-units consistent for "A",
"B" and "LENGTH". See remarks 1 and 2.
30 - IV Linear branch cards

A: dependent on "ILINE", "A" will be punched as shown in following table. See


remarks 1 and 2. No confusion should be made with the AR-notation, it should be
noted!
B: dependent on "ILINE", "B" will be punched as shown in following table. See
remarks 1 and 2.
LENGTH: value of the total length of the line to be represented. See remark 3. Value should
be positive for transposed cases (IPOSE = 0) and negative for untransposed cases
(IPOSE > 0).
ILINE: determines the definition of "A" and "B". See remarks l, 2 and 3. Following table
represents the possibilities:

ILINE “A” “B”


− modal inductance L’ in mH/length − modal capacitance C’ in )F/length
0 if XOPT = 0 if COPT = 0
(not − modal reactance ω L’ in Ω/length at − modal susceptance ωC' in )mho/length
blank) frequency ω = X O PT ⊗ at frequency ω = COPT ⊗
2π 2π
Modal surge impedance Zs in ohms Modal propagation velocity in length/sec
1 L' 1
Zs = υ=
C' L' C '
Modal surge impedance Zs in ohms Modal travel time τ of line, in sec
2 L' l
Zs = τ = = L' C ' ⋅ l
C' υ
Recall that XOPT and COPT can be specified on the floating-point miscellaneous data cards or
via the $UNITS request.

IPUNCH: specifies the type of modeling to be used on the mode of the card in question:
0 ⇒ lumped-resistive modeling (usual case), unless the special request "EXACT
PHASOR EQUIVALENT" was made in the input.
1 ⇒ distortionless-mode modeling
Note that it is not obligatory to model the different modes of a multiphase power
carrier all in the same way!
IPOSE: specifies whether or not the line is assumed to be transposed or untransposed:
0 ⇒ transposed line: Clarke model - no transformation matrix is to be specified.
N ⇒ untransposed line with N phases: K.C. Lee model - a transformation matrix
should be defined following the N-th branch card (see remark 8). Please
refer to remark '7 in case N > 9.
IOUT: can be used for branch output requests:
‘1’: branch current;
‘2’: branch voltage;
‘3’: branch current and branch voltage;
‘4’: branch power and energy consumption.

Remarks:
1. For an N-phase continuously-transposed line, there exist only two distinct modes. Specify the
zero-sequence parameters on the first card (card for the first phase), and the positive-sequence
parameters on the second card (card for the second phase). Leave the modal parameters blank
IV. Linear branch cards - 31

on the third and later branch cards. For specially-transposed double-circuit 3-phase lines, we
refer to section IV.D.2.
2. For an N-phase untransposed line, there exist N different modes. Specify the modal parameters
for the first mode on the first card, for the second mode on the second card, etc., for the third
and later modes.
3. Be sure to keep length units consistent for "Resistance", "A", "B" and "Length".
4. There is a restriction when using the IOUT output request. All phases should be keyed equally
whenever requesting branch current output, which is also involved in the power and energy
output requesting. The reason for this is that a vector-matrix computation is involved to find
the line current, so all components of the current vector must be available. If the user does not
want such symmetric current output, he is advised to leave column 80 blank and instead to do
his current sampling with either a series switch or a low-impedance branch.
5. The time step Bt of the simulation must be sufficiently smaller than the travel times of the
modes of the line. If not, the program will stop with an error message.
6. Both L' and C' must be nonzero for each mode.
7. When using the alternate high-precision format, the length of the IPOSE-field will be I1 rather
than I2. If N (number of phases) is less than 10, IPOSE will be equal to N. If N is greater than
9, the assignment of IPOSE is:

N IPOSE
10 A
11 B
: :
35 Z
36 a
37 b
: :
61 z
62 ASCII(123)
: :
193 ASCII(254)

8. Transformation matrix input:


Only when "IPOSE" is nonzero, the transformation matrix [Ti] is read immediately after the
N-th branch card. Following format is to be used:
1 2 3 4 5 6 7 8
123456789012 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 34567 890
TIk,1 TIk,2 TIk,3 TIk,4 TIk,5 TIk,6

E12.0 E12.0 E12.0 E12.0 E12.0 E12.0

The elements of the matrix [Ti] are read in by rows (row 1 first, then row 2, etc.). For a given row,
the real parts of matrix elements for all columns come first; then the imaginary parts follow on a
new card. Within each row, elements are read in order of increasing column number. Each row
begins with a new card and there are 6 or fewer elements per card.

If the transmission line had only 3 phases, the final three fields (columns 37-72) would not be
used. For N ≤ 6 phases, exactly 2N data cards are involved; for 7 ≤ N ≤ 12 phases, exactly 4N data
cards are involved, etc. Note that there must be exactly 2N2 elements for [Ti].
32 - IV Linear branch cards

5. Examples

Exampe 1) Consider the 3-phase continuously-transposed line shown in the next figure, so only
two different modes should be considered; ground mode (or zero sequence value) and line mode
(or positive sequence value). Furthermore, no transformation matrix should be specified.

Suppose the line length is 180 miles, with sequence parameters per unit of length as follows:

R’[Ohm/mile] L’[H/mile] C’[)F/mile]


Zero sequence 10.9 .0774 .0107
Pos. sequence .0484 .0294 .0192

This could be the result of a LINE CONSTANTS run requesting Clarke model output (see section
XXI-F). Indeed, recall that, for the Clarke model, ATP only creates a table of sequence values.
This table is not the correct input format for type -1,-2,-3 branches. So the user has to put the
results in the correct input format as follows:
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
$UNITS, 0., 0.
-lGEN-A END-A 10.9 77.4 .0107 180. 0 0 0
-2GEN-B END-B .0484 29.4 .0192 180. 0 0 0
-3GEN-C END-C
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890

Remarks:
$UNITS,0.,0. was needed to specify XOPT = 0. and COPT = 0.
ILINE = 0 (col 52); "A" represents the modal inductance, in mH/mile (XOPT = 0)
"B" represents the modal capacitance, in )F/mile (COPT = 0)
Lumped resistance model is in use: IPUNCH = 0 (col 54).
IPOSE = 0 (col 56): transposition assumed.
"Length" has positive value.

Example 2) The next example will treat four separate, uncoupled single-phase lines. Data are
shown below.

R R R
4 2 4

R R R
4 2 4

R R R
4 2 4
IV. Linear branch cards - 33

The corresponding input card might be as follows:


C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
$UNITS, 60., 60.
-lLEFT RIGHT 0.3 0.4 12.6 0.1 0
-110-A 10-B 0.0 260. .66 200. 2
$UNITS, 50., 50.
-1PT XY 0.2 300. 3.0E8 200. 1
$UNITS. -1., -1.
-1L1 R1 LEFT RIGHT
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890

Remark:
For the second case (lossless case) , the length specification is not really needed.

Example 3) Last example treats the output of the supporting routine "LINE CONSTANTS" in
case of a 3-phase untransposed line. Such an output can be punched as follows:

C <++++++> Cards punched by support routine on 17-May-14 00:19:04 <++++++>


C **** UNTRANSPOSED K.C. Lee line calculated at 7.500E+02 HZ. ****
C LINE CONSTANTS
C $ERASE
C BRANCH IN___AOUT__AIN___BOUT__BIN___COUT__C
C METRIC
C 10.192 0.116 4 2.19 0.0 16.4 16.4
C 20.192 0.116 4 2.19 3. 16.4 16.4
C 30.192 0.116 4 2.19 6. 16.4 16.4
C BLANK CARD ENDING CONDUCTOR CARDS
C 100. 750. 100. 1-9
C The transformation matrix was calculated at 7.50000000E+02 Hz.
$VINTAGE, 1
-1IN___AOUT__A 2.08184E+00 9.07803E+02 2.43113E+05-1.00000E+02 1 3
-2IN___BOUT__B 1.42420E-01 3.81049E+02 2.96702E+05-1.00000E+02 1 3
-3IN___COUT__C 1.42067E-01 3.26155E+02 2.96627E+05-1.00000E+02 1 3
$VINTAGE, 0
0.60111374 0.70710678 -0.40791755 => real part of row 1 of [Ti]
-0.00117975 0.00000000 -0.00076210 => imag. part of row 1 of [Ti]
0.52660819 0.00000000 0.81682614
0.00236237 0.00000000 -0.00066764
0.60111374 -0.70710678 -0.40791755
-0.00117975 0.00000000 -0.00076210

Remark that neither XOPT nor COPT should be specified because ILINE = l.
34 - IV Linear branch cards

IV.D.2 Special double-circuit distributed line with zero-sequence coupling


1. General
In the introduction to section IV.D, we already dealt with the full transposed 6-phase circuit. Here,
only two distinct parameters were in use: Zs and Zm.

 Zs Zm Zm Zm Zm Zm   ZG 
Z Zs Zm Zm Zm Z m   ZL 
 m 
Zm Zm Zs Zm Zm Zm   . 
 ⇒ 
Zm Zm Zm Zs Zm Zm   . 
Zm Zm Zm Zm Zs Zm   . 
   
 Z m Zm Zm Zm Zm Z s   Z L 

− ZG = Z s + 5Z m (multiplicity 1)
− Z L = Z s − Z m (multiplicity 5)

This phase value impedance matrix agrees under following conditions:

• tower configuration:

• transposition scheme:
IV. Linear branch cards - 35

A special case of transposed lines is when two multiphase circuits are physically separated and
when these two circuits are individually transposed, but mutually untransposed. This is valid under
following conditions:

• tower configuration:

• transposition scheme:
1a
1b
1c
2a
2b
2c

In the matrix, only three distinct elements are allowed: Zs, Zm and Zp.

Zs Zm Zm Zp Zp Zp Z G 
Z Zs Zm Zp Zp Zp   
 m  Z IL 
Z m Zm Zs Zp Zp Zp  ZL 
 ⇒ 
Z p Zp Zp Zs Zm Zm   . 
Z p Zp Zp Zm Zs Zm   . 
   
 Z p Zp Zp Zm Zm Z s   Z L 

The three distinct elements Zs, Zm and Zp are associated with three sequence parameters. The
relationship is:

Z G = Z s + 2 Z m + 3Z p (multiplicity 1)
Z IL = Z s + 2 Z m − 3Z p (multiplicity 1)
Z L = Zs − Zm (multiplicity 4)

Here ZG is the ground-mode parameter, corresponding to the value for the zero-sequence mode of
the continuously-transposed line of section IV.D.1, if parameters Zp and Zm happen to be equal (all
conductors are continuously transposed). Parameter ZL corresponds to the familiar line-mode of
36 - IV Linear branch cards

the continuously-transposed line. Finally, parameter ZIL is new. It is an interline-mode associated


with intercircuit zero-sequence coupling.

The next table shows the submatrices of the previously mentioned matrix.

Z(1,1) Z(2,1)
Z(1,2) Z(2,2)

Submatrices Z(1,1) and Z(2,2) (which are equal amongst each other) are matrices which conform
to the matrices of continuously transposed lines. This means that each circuit individually is
continuously transposed. All elements of [Z(1,2)] or [Z(2,1)] are equal to the same value (Zp), the
mutual coupling between any one of the conductors of one circuit and any one of the conductors
of the other circuit.

2. Card formats

Again, data can be provided either in a normal or in a high-precision format. No transformation


matrix should be specified, because in this case, the program uses the directly converted sequence
parameters. An ordinary run of the supporting routine "LINE CONSTANTS" will generate the
sequence values for this double-circuit special transposition case, when the request “SPECIAL
DOUBLE CIRCUIT TRANSPOSED” is inserted before the normal data cards. This is explained
in the example of section XXI-F-3. The SEMLYEN SETUP can be used in an alternatively way, as
explained in section XXII-D. Finally, remark the obligatory input sequence (section 3, remark 1),
which is different from the sequence in which the parameters are normally obtained by an
automatic procedure.

1 2 3 4 5 6 7 8
123456789012345678901234567890123 45678901234567890123456789012345678901234567890
SPECIAL DOUBLE CIRCUIT TRANSPOSED

2a) Normal card format

The same format as in section IV.D.1-2 can be used here:


1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 23 4 5 6 7 8 9 0 1 2 3 4 5 6 78901 2 34567 8 90123 4 56789 0 1 2 34 56 78901234567890123456789 0
resistance

length]

node names reference br.


ITYPE

LENGTH

IPUNCH

A B
ILINE

IPOSE
R’[ /

IOUT

BUS1 BUS2 BUS3 BUS4


I1

I2 A6 A6 A6 A6 E6.2 E6.2 E6.2 E6.2 I2 I2 I2

2b) High-precision format

Also here, we use the same format as in section IV.D.1-2


1 2 3 4 5 6 7 8
12 345678 901234 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 56 78 9 0
IPUNCH

Resistance
ITYPE

ILINE

I1 IPOSE

BUS1 BUS2 BUS3 BUS4 A B LENGTH


I1 IOUT

R’[ /length]

I2 A6 A6 A6 A6 E12.2 E12.2 E12.2 E12.2 I2 I2


IV. Linear branch cards - 37

3. Parameters

ITYPE: The numbering of these circuits must be done consecutively by numbering the
first circuit in the normal way (-1, -2, -3) and continuing this numbering at the
second circuit (-4, -5, -6).
BUS1, BUS2: terminal node names of each phase. Nodes may be grounded (indicated by a blank
name field) if desired.
BUS3, BUS4: Equally to PI-equivalents, referencing can be used here. This option has no
memory saving advantages, but makes true copy of the data and increase
readability of the input file. The same rules must be taken into account, so that
only the first card (first phase) bears the reference nodes, specified as the nodes
appearing on the first card used as reference set. The following cards (following
phases) just specify the consecutive type numbers and the node names of the other
input ports, not the nodes of the reference set or the RLC values.
Resistance: modal resistance in ohms/length. Be sure to keep length-units consistent for "A",
"B" and "LENGTH". See remarks 1 and 2.
A: dependent on "ILINE", "A" will be punched as shown in following table. See
remarks 1 and 2. No confusion with "AR-notation" should be made!
B: dependent on "ILINE", "B" will be punched as shown in following table. See
remarks 1 and 2.
LENGTH: total length of the line to be represented. See remarks 1 and 2. Value should be
positive for transposed cases (IPOSE = 0) and negative for untransposed cases
(IPOSE > 0).
ILINE: determines the definition of "A" and "B". See remarks 1 and 2. Following table
represents the possibilities:

ILINE “A” “B”


− modal inductance L’ in mH/length if − modal capacitance C’ in )F/length if
XOPT = 0 COPT = 0
0
− modal reactance ω L’ in Ω/length at − modal susceptance ω C’ in )mho/length
frequency
ω
= XOPT ⊗ at frequency ω = COPT ⊗
2π 2π
Modal surge impedance Zs in ohms Modal propagation velocity in length/sec
1 L' 1
Zs = υ=
C' L' C '
Modal surge impedance Zs in ohms Modal travel time τ of line, in sec
2 L' l
Zs = τ = = L' C ' ⋅ l
C' υ
Recall that XOPT and COPT can be specified on the miscellaneous data cards or via the
$UNITS request.

IPUNCH: specifies the type of modeling to be used on the mode of the card in question:
0⇒ lumped-resistive modeling (usual case), unless the special request "EXACT
PHASOR EQUIVALENT" was made in the input.
1⇒ distortionless-mode modeling
Note that it is not obligatory to model the different modes of a multiphase
power carrier all in the same way!
38 - IV Linear branch cards

IPOSE: will always be blank because the line is assumed to be transposed, be it specially
transposed.
IOUT: can be used for branch output requests:
‘1’: branch current;
‘2’: branch voltage;
‘3’: branch current and branch voltage;
‘4’: branch power and energy consumption.

See also remark 3 for further usage.

Remarks:
1. Only three sequence values have to be put on the input card. That is: the G-sequence
(ground mode) goes on card of conductor l, the L-sequence (line mode) goes on card of
conductor 2 and the IL-sequence (interline mode) goes on card number 3. Cards 4 through
2N are to be left blank for the input values. The node names must of course be inputted.
2. Be sure to keep length units consistent for "Resistance", "A", "B" and "Length".
3. There is only one restriction when using the IOUT output request: All phases should be
keyed equally whenever requesting branch current output, which is also involved in the
power and energy output request. The reason for this is that a vector-matrix computation is
involved to find the line current, so all components of the current vector must be available.
4. If the user does not want such symmetric current output, he is advised to leave column 80
blank and instead to do his current sampling with either a series switch or a low-
impedance branch.
5. The time step Bt of the simulation must be sufficiently smaller than the travel times of the
modes of the line. If not, the program will stop with an error message.
6. Both L' and C' must be nonzero for each mode.

4. Example

Consider a 180-mile double-circuit line having the one-line diagram as sketched below.

Note that termination of both lines at one end is on the same 3-phase bus "SEND", while on the
other end, the termination is different ("REC1" and "REC2").

The sequence parameters for this line are assumed to be taken as follows:
R [Ohm/mile] L [H/mile] C [)F/mile]
G-mode 0.58 0.00340 0.0091
L-mode 0.034 0.00068 0.0166
IL-mode 0.035 0.00110 0.0116

Note on generation of double-circuit special transposition sequence values:


IV. Linear branch cards - 39

Supporting routine “LINE CONSTANTS” can generate such sequence values automatically with
the request “SPECIAL DOUBLE CIRCUIT TRANSPOSED” inserted, but this example shows
the case where the modal quantities are keyed directly. This requires additional manual
calculations are involved, as explained in section XXI-F-3.

The data card for input to the EMTP appears as follows:


C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
$UNITS, 0., 0.
-lLEFTRIGHT 0.3 0.4 12.6 0.1 0
-110-A 10-B 0.0 260. .66 200. 2
$UNITS, 50., 50.
-1PT XY 0.2 300. 3.0E8 200. 1
-lSENDA REClA .58 3.4 .0091 180. 0 0 0
-2SENDB REClB .034 .68 .0166 180. 0 0 0
-3SENDC REClC .035 1.1 .0116 180. 0 0 0
-4SENDA REC2A
-5SENDB REC2B
-6SENDC REC2C
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890

Remarks:

XOPT and COPT both are assumed to be zero ($UNITS, 0., 0.).
ILINE = 0 (col 52); "A" represents the modal inductance, in mH/mile (XOPT = 0 and length
specifier also expressed in miles)
"B" represents the modal capacitance, in )F/mile (COPT - 0 and length specifier also expressed in
miles)
IPUNCH = 0 (col 54): lumped resistance model is in use
IPOSE = 0 (col 56): transposition assumed (here: special double-circuit transposition).
LENGTH = 180, expressed in miles.
40 - IV Linear branch cards

IV.D.3 JMARTI line model


The JMARTI supporting routine described in section XVII will generate the punched output
(LUNIT7) for traveling wave modeling. In case of steady-state computations at different
frequencies like FREQUENCY SCAN the frequency-dependence of fitted line parameters is taken
into consideration.

In this particular model, both the characteristic impedance Zc and the propagation function A1 are
obtained using modal analysis, calculated over a user-defined frequency range, under the
assumption of a constant transformation matrix (phase-mode transformation). Then, both Zc and
A1 undergo a high-order rational function approximation. In the time domain, this fitting is
represented by a sum of real exponential functions, thus allowing usage of recursive convolution
methods in the time domain. Typical values for the order are 5...10.

In order to allow the program to calculate the necessary modal characteristics for the conductor
system under study, the JMARTI code imbeds the LINE CONSTANTS code. This is explained in
section XVII in sufficient detail. JMARTI code can also imbed CABLE PARAMETERS or
CABLE CONSTANTS (not recommended by Prof. Ametani) code. Except for single-phase cases,
results are believed for cable modeling to be erroneous though, because the transformation matrix
for cables is highly frequency dependent.

The LUNIT7 (punched) data output, resulting from such run immediately is in the correct input
format.
The generated model data (punched cards) always contain the following sequence for each phase
or mode:

• branch card
• card grouping for frequency dependent representation of Zc
• card grouping for frequency dependent representation of A1

At the very end, the card grouping specifying the current transformation matrix [Ti] should only
follow in cases where the line is assumed to be untransposed (NP > 0, see first branch card).
Let us discuss these different card types in more detail now.
IV. Linear branch cards - 41

1. Branch card for mode K

1 2 3 4 5 6 7 8
12 345678 901234 5 6 7 8 9 0 123456 789012 3 4 5 6 7 8 9 0 1 23 4 56 7 89 0 12 34 56 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
ITYPE

IOUT
BUS1 BUS2 BUS3 BUS4 SKIP PDTO -2 NP

I1
I2 A6 A6 A6 A6 E6.2 E6.2 I2 I2

Parameters:

ITYPE: negative value of the phase number (-1, -2, -3, ...). Phases should be stacked in
natural order.
BUSl, BUS2: names of the terminal nodes of the phase under consideration. Recall: blank
means connection to ground.
BUS3, BUS4: reference branch indication.
SKIP: control flag for the amount of branch data that will be displayed as part of the
data card interpretation.
0: or blank: display and interpretation of all data cards
1: omit the display of data cards carrying poles and residues
2: omit the display of both the declaration of the function order as well as the
data cards carrying poles and residues. Only the branch cards and the cards
defining the transformation matrix (only in case of an untransposed line) will
remain visible.
PDTO: control flag for possible order reduction of the approximating rational functions
0 or blank: full function approximation as created on LUNIT'7 will be used.
≥l: request for automatic order reduction (i.e. elimination of low-time-
constant poles), taking the user's time step size DELTAT (see first
miscellaneous data card) into account. Poles which have no physical
meaning will be eliminated. Such reduction will speed up the
simulation and save memory storage. For details, we refer to the
minutes of the 1986 LEC Spring Meeting, contribution 86-13,
J.Allen Lima: "Replacement of low-time constant poles by a single
equivalent pole in recursive convolution line models". The second
subcase of DCNEW4 illustrates such order reduction. Results are to
be compared with the first subcase, omitting such reduction.
-2-flag: fixed flag, typical for the JMARTI branch cards (to distinguish this model from
the other distributed line models).
NP: transposition flag
0: all mutually coupled phases belonging to the JMARTI branch cards are
assumed to be continuously transposed. At the end of the card sequence,
no transformation matrix should be specified.
>0: in case the coupled phases are untransposed, one should specify the total
number of phases in the NP-field. Furthermore, at the end of the card
sequence, a transformation matrix should be specified.
IOUT: branch output request flag
0: no output
1: branch current output 2: branch voltage output
3: both branch voltage and current output
4: branch power and energy output
42 - IV Linear branch cards

Note:
All phases should be keyed equally whenever branch current, power or energy are involved.
Remember that a vector-matrix computation is involved to find the line currents. Hence, all
components of the current vector must be available. If the user does not want such symmetric
current output, he is advised to leave column 80 blank, and instead request current sampling using
either a series measuring switch or a low-impedance branch.

2. Characteristic impedance (Zc) fitting, mode K

Such card grouping consists of two parts:

• initial card, defining function order and final value, ZCINF


• card grouping defining the approximating rational function. The first half will carry all
residues, the second half will carry all poles.

The characteristic impedance of mode K is fitted as


N
ci
Zc (s) ≈ ∑ + d with N = NORDER, d = ZCINF and using only real values.
i =1 s + ai

The card formats are as follows:

2a) Initial card


1 2 3 4 5 6 7 8
12345678 9 0 1 23 4 56 7 89 0 12 3 4 56 7 890 1 2 34 5 67 8 90 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
NORDER ZCINF

I8 E32.20

Parameters:

NORDER: Order of the approximating rational function for Zc for mode K. From this, the
program learns the number of residue or pole cards that will follow in the card
grouping defining the approximating rational function.
ZCINF: limiting value of Zc for mode K as frequency goes to infinity.

2b) Card group defining the approximating rational function


1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 4 5 67 8 90 1 23 4 56 7 8 90 1 234 5 6 78 90
FUN(I) FUN(I+1) FUN(I+2)

E26.0 E26.0 E26.0

Parameters:

FUN(I): fitting parameters of Zc for mode K


− first come all residues for Zc (mode K), three per card, for as many cards that are
needed (see preceding NORDER card).
− next come all poles for Zc (mode K), starting on a new card, three per card, for
as many cards that are needed (same number as for the residues.
IV. Linear branch cards - 43

3. Propagation function (A1) fitting, mode K

Such card grouping consists of two parts:

• initial card, defining function order and TRAVINF


• card grouping defining the approximating rational function. The first half will carry all
residues, the second will carry all poles:

The propagation function of mode K is fitted as


N
ci
A1 ( s) ≈ ∑ ⋅ e− s⋅τ with N = NORDER, τ = TRAVINF and using only real values.
i =1 s + ai

The card formats are as follows.

3a) Initial card


1 2 3 4 5 6 7 8
12345678 9 0 1 23 4 56 7 89 0 12 3 4 56 7 890 1 2 34 5 67 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
NORDER TRAVINF

I8 E32.20

Parameters:

NORDER: order of the approximating rational function for A1 for mode K. From this, the
program learns the number of residue or pole cards that will follow in the card
grouping defining the approximating rational function.
TRAVINF: infinite-frequency travel time for mode K

3b) Card group defining the approximating rational function


1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 4 5 67 8 90 1 23 4 56 7 8 90 1 234 5 6 78 90
FUN(I) FUN(I+1) FUN(I+2)

E26.0 E26.0 E26.0

Parameters:

FUN(I): fitting parameters of A1 for mode K


− first come all residues for A1 (mode K) , three per card, for as many cards as
needed (see preceding NORDER card).
− next come all poles for A1 (mode K), starting on a new card, three per card, for as
many cards as needed (same number as for the residues).

Note:
These groups 1, 2 and 3 should be repeated for each mode/phase; stacked in natural order.
44 - IV Linear branch cards

4. Transformation matrix (untransposed case)

At the end of this grouping, the specification of a transformation matrix [Ti] should follow, except
in case the line is assumed transposed (i.e. NP = 0 on all branch cards).
This matrix is complex, and input is ordered row by row. Each new row begins on a new data card.
Within a row all real parts come first, in increasing column order, for as many data cards as
required. They are followed by all imaginary parts, beginning on a new input card (whether or not
the preceding real parts completely filled the preceding card).

The general format for all such numbers is as follows:


1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 34567 890
TI(L,M) TI(L,M+1) TI(L,M+2) TI(L,M+3) TI(L,M+4) TI(L,M+5)

E12.0 E12.0 E12.0 E12.0 E12.0 E12.0

Note:
• Recall that via the first frequency card of the imbedded LINE CONSTANTS case, the
user has control over the frequency at which the transformation matrix will be
calculated.
• Further recall that, strictly speaking, such transformation matrix can become highly
frequency dependent.
• It hence is advised that the user carefully select the frequency to calculate [Ti], in close
relation to the transient behavior (frequency range) one wants to observe.
• For transposed lines, this is not an issue because in such case, [Ti] is known apriori.
Furthermore, [Ti] is constant all over the frequency range.

5. Example

JMARTI model data cannot be calculated manually, so it is felt useless to give more details. The
user is referred to supporting routine JMARTI SETUP (see description in chapter XVII).
For examples illustrating the output sequence, we refer to benchmarks DCNEW3, DCNEW5 and
DCNEW6. DCNEW3 generates cards to be used in DCNEW4. DCNEW5 and DCNEW6 generate
cards that are used in DCNEW7.
IV. Linear branch cards - 45

IV.D.4 SEMLYEN-model
The SEMLYEN-model is the oldest of the implemented frequency dependent travelling wave line
model. In this model, both the propagation response and the admittance response are obtained
using modal characteristics calculated over a user-defined frequency range, under the assumption
of a constant transformation matrix (phase-mode transformation). Both the propagation response
and the admittance response are approximated in the time domain, using only two real
exponentials. Results are represented in the form of partial-fraction expansion. This enables a fast,
recursive convolution in the time domain.

Input to the SEMLYEN model can be generated by SEMLYEN SETUP (see section XXII-A), but
DC41.DAT documents usage of an alternative HAUER SETUP not embedded in the ATP. This
input is in general called the LUNIT7 punched output for traveling wave modeling.

In order to allow the program to calculate the necessary modal characteristics for the conductor
system under consideration, the Semlyen code imbeds either the LINE CONSTANTS or the
CABLE PARAMETERS / CABLE CONSTANTS code. In chapter XXII, both cases are explained
in detail.

The LUNIT7 data (punched) output, resulting from such run immediately is in the correct input
format. The punched card format always contains the following sequence for each phase or mode:

• branch card
• steady state information
• one card containing partial-fraction expansion specifications for the wave propagation
response
• one card containing partial-fraction expansion specifications for the characteristic
admittance response.
• Next come cards that define the voltage transformation matrix [Tv] and current
transformation matrix [Ti].

Let us discuss these different card types in more detail now:

1. Branch card for mode K


1 2 3 4 5 6 7 8
12 345678 901234 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 345 678 901 234 5678 9 0

BUS1 BUS2 BUS3 BUS4 Y0 TAU N1 N2 N3 N4


IOUT
N5

-1 A6 A6 A6 A6 E12.5 E12.5 I3 I3 I3 I3 I4 I1

Parameters:

−1: Fixed type code for each Semlyen branch


BUS1, BUS2: Six-character alphanumeric node names for the sending and receiving ends of the
branch under consideration. Blank means: connection to ground.
BUS3, BUS4: Reference branch indication.
Y0: Infinite-frequency characteristic modal admittance for the mode under
consideration.
46 - IV Linear branch cards

TAU: Modal travel time for the mode under consideration.


N1, N2: Mode number indicators; Nl and N2 are always equal in value (K).
N3: The number of exponential curves used in the propagation step response fitting.
For Semlyen setup, by definition, this number is 2 (double-exponential fitting).
N4: The number of exponential curves used in the characteristic admittance fitting. For
Semlyen setup, by definition, this number is 2 (double-exponential fitting)
N5: The number of coupled conductors (or modes) making up this transmission
circuit. This number is used as a flag so that the program knows when the
transformation matrix should follow. The value for this variable is the same on all
branch cards for a certain line.
IOUT: Used to control the availability of branch variables for printing and/or plotting. As
usual,
"1"-punch produces branch current output;
"2"-punch produces branch voltage output;
"3"-punch produces both branch current & voltage output;
"4"-punch produces branch power and energy consumption.

Remark:
The column-80 punch (IOUT) on the branch cards must always be supplied by the user if branch
output variables are desired. The punched-card output of SEMLYEN SETUP will always leave
column 80 of the branch cards blank (corresponding to no such output).

2. Steady state information for mode K


1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 67 8 90 1 23 4 56 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 890
R(ω) ωL(ω) G(ω) ωC(ω) FREQ

E15.8 E15.8 E15.8 E15.8 E15.8

Parameters:

R(ω), ωL(ω): Total series modal impedances for mode number K. This is in Ohms, at the
frequency FREQ of the steady-state phasor solution which may be performed to
find EMTP initial conditions.
G(ω), ωC(ω): Total shunt modal admittance for mode number K. This is in mhos, at the
frequency FREQ of the steady-state phasor solution which may be performed to
find EMTP initial conditions.
FREQ: The steady-state frequency at which R, ωL, G and ωC are calculated. Hence,
XOPT and COPT (miscellaneous data parameters) have no importance here.

Remark:
Note that $VINTAGE,0 is required here.

3. Partial fraction expansion specification cards for mode K

Both the modal wave propagation response and the modal characteristic admittance response are
specified using the same partial fraction expansion format. For each exponential, 2 fields (real and
imaginary part) are needed. The number of exponentials is set in the branch specification card,
recall N3 for propagation response, N4 for characteristic admittance. In addition, 2 fields (real and
IV. Linear branch cards - 47

imaginary part) are needed for each residue. Each card can contain up to 6 values. Hence, for
SEMLYEN SETUP, we only need one card for each response function for each mode K.

First comes the propagation response:


N3
The propagation response can be expressed as h(t − τ) ≈ ∑ ck ⋅ e − ak ⋅t with τ = TAU
k =1

ck = −δk + jεk ak = −α k + jβk


where and .

The format to be used is as follows:

1 2 3 4 5 6 7 8
1 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 567890
Vk,1 Vk,2 Vk,3 Vk,4 Vk,5 Vk,6

E12.5 E12.5 E12.5 E12.5 E12.5 E12.5

Real poles and residues (two functions per card):

Vk,1=0, Vk,2=αk, Vk,3=δk, Vk,4=0, Vk,5=αk+1, Vk,6=δk+1

Complex poles and residues (one function per card):

Vk,1=1, Vk,2=αk, Vk,3=δk, Vk,4=1, Vk,5=βk, Vk,6=εk

Next comes the characteristic admittance, now with N3 replaced by N4.


N4
The characteristic admittance can be expressed as yc (t ) ≈ ∑ ck ⋅ e − ak ⋅t + d ⋅ δ(t ) with d = Y0
k =1

ak = −α k + jβk ck = −δk + jεk


where and .

The SEMLYEN SETUP outputs a fitting with two real poles and this gives two cards; one for the
characteristic admittance and one for the propagation function.

The above sequence (1, 2, 3) must be repeated for all K modes. Next follows specification of the
voltage transformation matrix and current transformation matrix (even in case of transposition, it
should be noted).

4. Voltage transformation matrix

Complex matrix elements are specified by rows, in natural order (row 1 first, then row 2, etc.) and
are in terms of the real and imaginary pairs. However, the imaginary part of each element is set to
be zero. Within any row, elements are specified in order of increasing column number. Each row
begins with a new card, and there are six or fewer numbers per card. The following format is
applicable to row "K" for a 3-phase transmission circuit:

1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 34567 890
TV RK,1 TV IK,1 TV RK,2 TV IK,2 TV RK,3 TV IK,3

E12.5 E12.5 E12.5 E12.5 E12.5 E12.5


48 - IV Linear branch cards

5. Current transformation matrix

The number of elements and their ordering is identical to that for the voltage transformation
matrix, which has just been described.

1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 9 0 1 23 4 56 7 89 0 1 2 3 45 6 78 9 01 2 34567 890
TIRK,1 TIIK,1 TIRK,2 TIIK,2 TIRK,3 TIIK,3

E12.5 E12.5 E12.5 E12.5 E12.5 E12.5

For an example, we refer to section XXII-C.


IV. Linear branch cards - 49

IV.E. Saturable transformer component


The saturable transformer model is not a supporting routine; it has to be used in the actual
electrical network simulation data set and should be placed in the grouping of normal branch
cards. On the other hand, a supporting routine exist to convert saturable transformer cards to linear
equivalent [R], [L] (type 51-52-53 branch cards). Details and restriction of this new feature are
described in the section XIX-J.

As output variables of the saturable transformer model, following variables can be obtained by
proper flagging in column 80:

- the branch voltage of the magnetizing reactance branch


- the branch current of the magnetizing reactance branch
- current in winding 1

Following will explain the input data-deck structure for single-phase and 3-phase N-winding
transformers.

The single-phase and 3-phase 3-leg shell-type or 5-leg core-type transformer basically are using
the same model, although a storage-saving option (called "Reference-component procedure") is
recommended to use for the 3-phase 3-leg shell-type or 5-leg core-type case.

For the 3-phase 3-leg core-type transformer on the other hand, a totally different model is needed,
taking into account the homopolar reluctance of the magnetic circuit.

Therefore these models will be discussed separately.

IV.E.1 Single-phase case

A single-phase two-winding transformer can be represented in the following way (Fig. l).

Fig.1: Single-phase two-winding case

There is one single-phase 2-winding ideal transformer involved, thus providing the correct
transformation ratio for the winding 2 with respect to winding 1.

Both windings "k" have an associated leakage-impedance, characterized by resistance Rk and


inductance Lk. Note that the value for this leakage-impedance can be obtained out of the short-
circuit impedance. Leakage inductance L2 has to be non-zero, but L1 can have a zero value.
50 - IV Linear branch cards

The saturation effect is confined to a single nonlinear reactor (SATURA, see Fig. l) in the circuit
of winding 1. Ideally the nonlinear inductance should be connected to that point of the equivalent
circuit where the integrated voltage equals the iron-core flux. Normally, this is only true for the
winding which is closest to the iron core. One can consider three different excitation behaviors:

- In case of saturation, the TYPE-98 pseudo-nonlinear reactor model is used internally. In


order to obtain the necessary data, excite the single phase and measure the voltages and
corresponding currents at several voltage levels, thus creating a (Vrms, Irms) characteristic.
Next, use supporting program "SATURA" (section XIX-G) to create the necessary (flux,
current) peak value characteristic.

- In the linear case, only one (flux, current) peak value should be entered for the
magnetizing impedance input data. This value can be obtained from the excitation test.
- In case no flux-current characteristic is specified, the magnetizing reactance is assumed
not to exist (magnetizing current can be neglected).

- Excitation losses (iron core) are confined to a linear resistance (RMAG, see Fig. l) which
is in parallel to the saturation branch. This is all right in the single-phase case, even for
multiple windings.

The extension to a single-phase N-winding transformer is easy. Fig. 2 depicts the schematic
representation.
IDEAL
BUS1P1 BUSTOP N1 : N2 BUS2P1
L1 R1 R2 L2

winding 1 winding 2

BUS1P2 BUS2P2

IDEAL
N1 : NN BUSNP1
RN LN

winding N

BUSNP2

Fig.2: Extension to a single-phase N-winding transformer

1. Input rules:

Suppose that a user wants to represent a single-phase transformer using the saturable transformer
component. The following card sequence should then be inserted in the group of branch cards of
the electrical network:

- TRANSFORMER-special request card


IV. Linear branch cards - 51

- flux-current specification;
o to be omitted if the magnetizing reactance is assumed not to exist;
o only one card in the linear case;
o card grouping (see TYPE-98 pseudo-nonlinear reactor element) for the saturated
case. Use supporting routine SATURA (see section XIX-G).
- flag card ending flux-current specification grouping
- "N" winding cards

Note:
In case the user desires to specify a transformer having parameters identical to those of a
previously-defined transformer, the special time- and memory-saving option ("reference-
component procedure") should be used. This will be explained in section IV-E-2.

Let's discuss the normal card format in more extensive detail now. Recall that this card sequence
needs to be inserted in the normal group of branch cards for a normal network simulation run.
First comes the special request card. Besides the special request word "TRANSFORMER", this
card also bears steady state information of the flux, as well as an output request option.

1 2 3 4 5 6 7 8
12 34567890123 4567890123456 789012 345678 901234 567890 12345678901234567890123456789 0
T R A NS F OR M ER E6.2 E6.2 A6 E6.2 I

flag
I FLUX
request word BUSTOP Rmag
steady-state

Parameters:

I, FLUX: (current, flux) pair used to define the linear inductance, representing the
magnetizing branch in the first winding during the phasor steady-state solution.
Only during a transient run, the saturated part of the (flux-current)-curve can be
taken into account, it should be noted.
Note the following, in order to avoid problems during the time step loop:
- Both current and flux are expressed as peak values. I in Ampere and FLUX in
Volt-second.
- Take the steady-state (current, flux)-pair equal to the first point used in the
description of the flux-current characteristic, as obtained using SATURA (see
section XIX-G). It is recommended to take this value larger than or equal to 70
percent of the maximum saturated flux value.
BUSTOP: A name for the internal star point in winding 1, used to represent the magnetizing
branch (see fig. l). This name always should be mentioned, since it uniquely
identifies the transformer.
Note that this name also can be used as a reference name, should the user desire
to specify another unit having parameters identical to those of a previously-defined
transformer (see section IV-E-2 for more details).
Rmag: Constant and linear resistance (in Ohms), parallel to the magnetizing reactance (see
Fig. l). This resistance takes account for the excitation losses (core) and can be
calculated as:
52 - IV Linear branch cards

VR21
Rmag = , where VR1 is the rated voltage of winding 1.
Pex , loss
Note that a zero or blank in this field is taken to mean Rmag equal to infinity (no
excitation losses), which is the normal case for single-phase transformers.
Flag: Output specification flag for the magnetizing-reactance branch.
= 1 : branch current output
= 2 : branch voltage output
= 3 : both branch current and branch voltage output

Next comes a group of cards specifying the flux-current characteristic (see Fig. l). A distinction
between several possible cases is necessary:

− In cases where no flux-current characteristic is specified, the magnetizing reactance is assumed


not to exist (exciting current can be neglected). Don’t forget to use the flag card, which will be
explained in point 3 of this section.
− In a linear case, the flux-current characteristic is represented by one point only (= linear
magnetizing impedance). This point merely defines the slope of the current-flux-characteristic,
which then is assumed to extend to infinity. The values can be derived from excitation test
data.
− For the saturated case, however, several current-flux pairs are needed, each such pair
representing a breakpoint of the pseudo-nonlinear characteristic (TYPE-98 element) which is
used to approximate the saturation curve. Use supporting routine SATURA (see section XIX-
G) for data creation. The last point merely defines a slope of the characteristic, which then is
assumed to extend to infinity.

For both latter cases, the card format is the same:

1 2 3 4 5 6 7 8
1234567890123456 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 345678901234567890123456789012345678901234567890
E16.0 E16.0

I FLUX

one current – flux pair

Notes:

− Take the steady-state (current, flux) pair (see first card, bearing the special request word
"TRANSFORMER") equal to the first point, used in the description of the saturation curve.
− The steady-state flux value should be larger than or equal to 70 percent of the saturated flux
value.
− The supporting routine SATURA (see section XIX-G) can be used as data generator to create
the pseudo-nonlinear saturation characteristic (current, flux) (peak values) out of the measured
curve (VRMS, IRMS).
− The preceding (flux-current) specification group should be terminated by following flag card
(even in the case where no flux-current characteristic has been specified!!).

1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 6 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 45 6 78 9 01 2 3 45 6 789 0 1 23 4 56 7 89 0 12 3 4 56 7 890
9999
IV. Linear branch cards - 53

Finally, the winding specification cards (one such card per winding) should follow. The card
format is as follows:

1 2 3 4 5 6 7 8
1 2 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 12 3 45 6 78 9 0 12 3 456 7 8 90 1 23 4 56 7 89 0
I2 A6 A6 E6.2 E6.2 E6.2 I1

BUS1 BUS2 R L VRAT


K IP
leakage
node names
impedance

Parameters:

K: Winding reference number (1, 2, …, N)


Note that the cards need to be placed in their natural order (1, 2, …, N).
BUS1, BUS2: Terminal node names of the transformer winding "K". Thus, each winding will
be interpreted as a branch between "BUS1" and "BUS2" (see fig. 1). Note that a
blank field is taken to mean "ground-connection".
R, L: Leakage resistance (in Ohm) and inductance (in Ohm or mH depending on value
XOPT), associated with the winding "K" in question.

Notes:
L in mH if XOPT = 0 on first miscellaneous data card.
L in Ohms at frequency "XOPT" Hz if XOPT > 0 on first miscellaneous data
card.
The resistance part may be zero without restriction.
The inductance part must be non-zero however, except for reference winding "1"
where it can be zero only if, at the same time, the resistance part for this winding
is non-zero.
VRAT: Rated voltage (in kV) of winding "K".
IP : Output specification flag (should only be mentioned on the card for the first
winding !!
1: branch current flowing from "BUSl" of the first winding to the internal node
"BUSTOP" will be printed as a time step loop variable.

2. Example:

Consider the case of a one-phase 2-winding transformer with both primary and secondary winding
earthed at one terminal point. The other terminal points are called "P1" and "S1" for primary and
secondary, respectively. Further assume "TT1" being the name of the internal star point of winding
1. Finally, following data were obtained by measurement for this transformer:

Power rating S : 0.0063 MVA


Excitation losses Pex, loss : 65 W
Excitation current Iex : 1.85 A
Short-circuit losses Psh, loss : 95 W
Short-circuit current Ish : 16 A
Short-circuit voltage Ush : 8.3 V
Voltage rating Vprim/Vsec : 220/377 V
54 - IV Linear branch cards

Assuming a linear magnetizing impedance, supporting routine SATURA (section XIX-G) should
have following data entry:

FREQ = 50. Hz
PBASE = 0.0063 MVA
UBASE = 0.22 kV (RMS)
IPUNCH = 0
KTHIRD = 0

The only point of the linear curve is defined by the excitation test results. Indeed, under nominal
voltage, the transformer is assumed to have no saturation.
0.22
I ( p.u.) = 1.85 ⋅10−3 ⋅ = 0.0646 ( p.u.)
0.0063
V ( p.u.) = 1.0 ( p.u.)
As a result, we then obtain following values (peak values):

I peak = 2.6161665255 A
Φ peak = 0.9903479478 V sec

Note that 2.6161/ 2 = 1.849, thus almost reconstructing the RMS value 1,85 for the current. In
case of a real saturation curve, a similar method should be used to derive other points too.
In this linear case, a more direct way for obtaining the (flux-current) peak values can be used,
however:

I peak = I ex ⋅ 2 = 2.616 A
2 ⋅ U ex 220
Φ peak = = = 0.990 V sec
2π ⋅ f 4.44 ⋅ 50

The derived values for the other parameters are:

VRATLV2 220 2
Rmagn = = = 744.6 Ohms; core excitation losses
Pex , loss 65
Psh , loss 95
Rsh = 2
= = 0.3711 Ohms; short circuit losses
I sh 162

Since in addition, N = 2, the leakage resistance of winding 1 (LV) equals

R1 = 0.3711/2 ( (220/377)2 = 0.063 Ohms

and the leakage resistance of winding 2 (HV) equals

R2 = 0.3711/2 = 0.185 Ohms.


IV. Linear branch cards - 55

2
1 2
Psh, loss 1 2 952
X sh = U sh − 2 = 8.3 − 2 = 0.3624 Ω
I sh I sh 16 16

Thus, the leakage reactance X1 of winding 1 (LV) equals

0.3624/2 ( (220/377)2 = 0.0617 Ohms

and the leakage reactance X2 of winding 2 (HV) equals

0.3624/2 = .1812 Ohms.

Conversion to inductance values (dividing by 2(π(50) gives

L1 = 0.196 mH and L2 = 0.576 mH.

The data input for this transformer hence looks as follows:


C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C 1 2 3 4 5 6 7 8
$UNITS, 0.,0.
C TRANSFORMER¦ ¦ I¦ FLUX¦BUSTOP¦ Rmag¦ flag
TRANSFORMER 2.6161.99034TT1 744.6 1
C I¦ flux ¦
2.6161665255 0.9903479478
9999
C ¦BUS1 ¦BUS2 ¦ ¦ R¦ L¦ Vrat¦ IP
1L1 .0632 .196 .220 1
C ¦BUS1 ¦BUS2 ¦ ¦ R¦ L¦ Vrat¦
2H1 .1855 .576 .377
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C 1 2 3 4 5 6 7 8

Recall that this is part of the normal branch data in a network simulation data deck.

IV.E.2 Reference-component procedure


Should the user desire to specify a transformer having parameters identical to those of a
previously-defined unit, a handy time- and memory-saving option is available, using the
transformer’s unique identification name "BUSTOP" as a reference name.

1. Input rules

The following card sequence should then be inserted in the group of branch cards:

- TRANSFORMER-REFBUS special request card


- "N" winding cards

Notes:
In this case, the flux-current specification and corresponding flag card is omitted. This is because
we refer to such curve, defined earlier.

Let’s discuss the normal card format in detail now.


56 - IV Linear branch cards

First comes the special request card. Besides the special request word "TRANSFORMER", this
card only bears two bus names:

1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 23 4 5 6 7 89 0 1 2 3 45 6 78 9 01 2 34 5 6 78 9 0 1 23 4 5 6 7 89 0 12 3 45 6 78 9 0 12 3 456 7 8 90 1 23 4 56 7 89 0
T R A NS F OR M ER A6 A6 I

flag
request word REFBUS BUSTOP

Parameters:

REFBUS: This field should carry the internal node name which was used as variable
"BUSTOP" for the previously-defined reference component of which a copy is
desired (Fig. l).
BUSTOP: A name for the internal star point in winding "1", used to represent the magnetizing
branch. This name should never be omitted since it uniquely identifies the
transformer (Fig. l).
FLAG: Output specification flag for the shunt magnetizing reactance branch.
= 1: branch current output
= 2: branch voltage output
= 3: both branch current and branch voltage output

Finally, "N" winding specification cards should follow. The card format is as follows:

1 2 3 4 5 6 7 8
12 345678 901234 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
I2 A6 A6 I1

BUS1 BUS2
K IP
node names

Parameters:

K: Winding reference number (1, 2, .... N)


Note that the cards need to be placed in their natural order (1, 2, ..., N). Number
"1" corresponds to the LV-side.
BUS1, BUS2: Terminal node names of the transformer winding "K". Thus, each winding will be
interpreted as a branch between "BUS1" and "BUS2". Note that a blank field is
taken to mean "ground-connection".
IP: Output specification flag (should only be mentioned on the card for the first
winding).
= 1 : branch current flowing from "BUS1" of the first winding to the internal
node "BUSTOP" will be printed as a time step loop variable.

Notes:
No other values are necessary, since they are taken the same as the previously-defined reference
component.

Examples of such reference component usage are discussed extensively in the next section.
IV. Linear branch cards - 57

IV.E.3 Three-phase transformers with low homopolar reluctance


For three-phase 3-leg shell-type or 5-leg core-type transformers, an iron-core path is provided for
the return of the zero-sequence flux. Further, it is reasonable to assume that:

- the magnetic induction of the 3 phases is independent;


- the zero sequence parameters are the same as the positive sequence parameters. This
implies that only the saturation curve for one core leg is needed. Thus, it seems
reasonable to model this type of transformer by using 3 separate, identical single-phase
units.

For this reason, a storage-saving option (called "Reference-component procedure" - see section
IV-E-2) has been developed.

No new rules are needed. Caution should be made for the measurement of the saturation curve,
however. The curve needed here should NOT be obtained from one winding of one phase, with all
others open-circuited. The curve needed here can be obtained correctly by balanced excitation of
the three phases, thus averaging both the currents and voltages of the three phases. Next, use
supporting routine SATURA (see section XIX-G) to turn this measured curve (Vrms, Irms) into a
(flux, current) (peak values) characteristic.

1. Input rules

The following card sequence has to be applied and needs to be inserted in the group of branch
cards for the actual electrical network:

1st unit:
1. TRANSFORMER -special request card
2. flux-current specification
- to be omitted if the magnetizing reactance is assumed not to exist
- only one card in the linear case
- card grouping (see TYPE-98 pseudo-nonlinear reactor element) for the saturated case
3. flag card ending flux-current specification grouping
4. "N" winding cards (terminal node names and winding data specified)

Subsequent units:
1. TRANSFORMER-REFBUS -special request card
2. "N" winding cards (only terminal node names specified)
58 - IV Linear branch cards

Remark: Modeling of delta-connected transformers

Delta transformer connections can sometimes be a little tricky. Since they are not uncommon in
usage, a more specific explanation of this configuration seems to be in order. Three points need to
be explained:

− How to derive the equivalent circuit?


− Need for a path to ground on the delta side of the bank.
− What about homopolar behavior?

First, there is the problem of how to derive the equivalent circuit. Suppose that the primary
winding is D-connected and the secondary winding Y-grounded. Fig. 3 shows the resulting
interconnection of elementary components. Remark the following:

− R1 and L1 are the primary winding leakage-impedance parameters (the same for all three
phases; reference component option).
− R2 and L2 are the secondary leakage-impedance parameters (the same for all three phases).
− Bus T1 is the internal node "BUSTOP" for the first single-phase unit, with primary terminals
"PA" and "PB", and secondary terminals "SA" and "TERRA".
− Bus T2 is the internal "BUSTOP" for the second single-phase unit, with T1 as reference name
"REFBUS" (first transformer), primary terminals "PB" and "PC", and secondary terminals
"SB" and "TERRA".
− Bus T3 is the internal "BUSTOP" for the third single-phase unit, with T1 as reference name,
"REFBUS" (first transformer), primary terminals "PC" and "PA" and secondary terminals
"SC" and "TERRA".

Thus the primary windings (PA-PB, PB-PC, PC-PA) indeed are delta-connected and the secondary
windings (SA-TERRA, SB-TERRA, SC-TERRA) are Wye-connected to ground. Note that
through the node name allocation, the clock-system declaration can be established.
IV. Linear branch cards - 59

Fig.3: Delta connected transformer

A second problem concerns the need for a path to ground on the delta-side of the transformer
bank. Indeed, a floating delta is not honored by the program, since mathematically the voltage
there would then only be defined within an arbitrary constant.
Of course there is no problem if a transmission line were connected to the delta side. In such cases
the line capacitance indeed provides the connection to the ground.
Likewise, a connection to one or more voltage sources (either direct, or through other, simple
elements) will satisfy this requirement.

The common case of an isolated, delta-connected tertiary of a three-winding transformer requires


special attention, though:
60 - IV Linear branch cards

a) Unbalanced method: simply ground one corner of the delta side (Fig. 4a).
Use this option only if one is not interested in the voltage value on the delta side.

Fig.4a: Unbalanced method

b) Balanced solution: connect three equal capacitors from the corners of the delta to the ground.
Take care to use realistic values (e.g. 0.003 )F) in order to avoid matrix singularity (Fig.4b)!
Use this option whenever it is necessary to preserve the inherent balance on the delta side.
C

C C

Fig.4b: Balanced method

A third problem concerns the homopolar behaviour of the delta-connection. In such case, the core
construction (shell or core type) is of minor importance since the excitation test really becomes a
short-circuit test (a closed delta acts as a short-circuit for zero-sequence currents). Accordingly,
neither the value of the zero-sequence exciting current nor the value of the zero sequence
excitation loss is critical.

Only in the case where the delta is artificially opened, the actual zero-sequence test can be
performed. In this case, the homopolar flux will close its path through the air and the tank. Such
situation cannot be represented by this saturable transformer component model. It can only be
represented by the 3-leg core-type option, explained in section IV-E-4.

2. Example

Consider a delta-connected shell-type transformer of the preceding remark. Further assume


following values for the input parameters:

Rmagn = 3.E5 Ohms


VLV = VHV = 3.03E5 Volts
RLV = RHV = 0.25 Ohms
XLV = XHV = 25. mH (XOPT = 0. on miscellaneous data card)
IV. Linear branch cards - 61

The input data format would look as follows:


C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C ------------------------------------------------------------------------------
$UNITS, 0.,0.
C first transformer: “BUSTOP” = Tl
TRANSFORMER 2.0 1137.Tl 3.00E5
2. 1137. {saturation curve: first point
50. 1365. {second point
10000. 1476.6 {third point
9999 {flag card, terminating saturation curve data
1TA TB .25 25.3.03E2 1
2SA .25 25.3.03E2
C second transformer: “BUSREF” = Tl : referencing to first transformer
C "BUSTOP" = T2
TRANSFORMER T1 T2
1TB TC
2SB
C third transformer: “BUSREF” = Tl ; referencing to first transformer
C "BUSTOP" = T3
TRANSFORMER T1 T3
1TC TA
2SC
C ------------------------------------------------------------------------------
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C 1 2 3 4 5 6 7 8

IV.E.4 Three-phase 3-leg core-type transformer


In this case, the homopolar reluctance is high and the zero sequence flux is forced to return
through the air and the tank, outside the windings. Because of the air gap, the zero-sequence
magnetizing curve is nearly linear, quite unlike the positive sequence magnetizing curve, which is
highly nonlinear. It seems therefore reasonable to approximate the zero-sequence magnetizing
curve as a linear magnetizing inductance Lo. The core-leg (positive sequence) nonlinear
inductance SATURA can again be added across the first winding of each phase. Because of this, a
whole new model (depicted in Fig.5) is needed to represent such type of transformer.

On the other hand, this complicated model is not recommended to use since it is not possible to
represent magnetic coupling between the phases. This type of 3-phase transformer better can be
modeled using the supporting routine BCTRAN (see section XIX-C) , with the external addition
of nonlinear elements at the proper winding connection points (i.e. those windings which are
closest to the iron core).
62 - IV Linear branch cards

Fig. 5: 2 winding 3-leg core type transformer, to be Y:y connected

• There are (2 + 3((N−1)) single-phase 2-winding ideal transformers involved.


N = number of windings.
- Two of them are used as ideal isolation transformer (turn ratio 1:1). In combination with
the zero sequence induction LO, they form the equivalent for an ideal three-phase 3-leg
core-type transformer.
- The remaining 3((N - 1) ideal units provide the correct turn ratio's for the windings 2, 3, ...,
N with respect to winding "1", for the three phases respectively.

• Each of the N windings "k" has 3 associated leakage impedances (one per phase),
characterized by resistance R and inductance L. Note that the values for these leakage
impedances can be obtained out of the short circuit impedances.

• Saturation effects are confined to 3 nonlinear reactors "SATURA" (one per phase) on the low-
voltage side. This saturation branch is connected to a fictitious internal star point, which is not
always the best connection point; ideally, the nonlinear inductance should be connected to the
point in the equivalent star circuit where the integrated voltage is equal to the iron-core flux.
Further, it should be clear that this model cannot take magnetic coupling between phases into
account. A distinction between several cases is necessary.
- In case of saturation, the TYPE-98 pseudo-nonlinear reactor model is used internally. In
order to obtain the necessary input data, use balanced excitation of the three phases and
average the voltages and their corresponding currents over the three phases, thus creating a
(Vrms, Irms) characteristic. Next use the supporting routine "SATURA" (see section XIX-
G) to create the necessary (flux, current) characteristic using peak values. The same curve
has to be applied to all 3 phases (use the reference branch option of section IV-E-2).
IV. Linear branch cards - 63

Note: This is NOT the curve obtained from one winding (one phase), with all others open
circuited.
- In the linear case, only one value should be entered for the magnetizing impedance input
data. Data can be obtained from the direct excitation test.
- In case no flux-current characteristic is specified, the magnetizing reactance is assumed not
to exist (magnetizing current can be neglected).

• Excitation losses (core) are confined to 3 linear mutually coupled resistances Rmag (dotted
elements in Fig.5) one should add manually across the low-voltage winding terminals of all
three phases. Such mutual coupling is mandatory for representing homopolar excitation losses
in a correct way. It is hence recommended NOT to use the non-coupled resistance Rmag
provided by the model (cfr. Fig.l).

1. Input rules

As explained before, a whole new transformer model is needed to represent this 3-leg core-type
transformer. Therefore new rules are needed. The next card sequence should then be inserted in the
group of branch cards of the actual electrical network:

1. TRANSFORMER THREE PHASE -special request card (3-leg flag)

1st UNIT:
2. TRANSFORMER -special request card
3. flux-current specification
− omitted if the magnetizing reactance is assumed not to exist
− only one card in the linear case
− card grouping (see TYPE-98 pseudo-nonlinear reactor element) for the saturated case
4. flag card ending flux-current specification grouping
5. "N" winding cards

Subsequent units:
1. TRANSFORMER-REFBUS -special request card
2. "N" winding cards

Let's discuss the card input in more detail now:

First comes the "TRANSFORMER THREE PHASE" special request card. This is a flag u card,
indicating the fact that the homopolar reluctance option has to be used. At this point, the program
will automatically introduce the two ideal isolation transformers, as well as their proper
interconnection (see fig.5). Further, this card bears the value for the constant magnetic reluctance
R0 (representing the linear zero-sequence inductance L0, recall) and also a unique name
"BUS3PH".
64 - IV Linear branch cards

Card 1:

1 2 3 4 5 6 7
12 3 4 5 67 8 90 1 23 4 56 7 8 90 1 234 5 6 7 8 9 01 2 3 4 5 67 8 8
9 0 1 23 4 56 7 89 0 12 3 4 56 7 890 1 2 34 5 67 8 90 1 23 4 5 67 8 9
0
T R A NS F OR M ER TH R E E P HAS E A6 E6.2

specials request word BUS3PH R0

Parameters:

BUS3PH: Unique name, associated with the homopolar reluctance of the transformer. This
name refers to an internal (hidden) node, that cannot be connected with other
branches of the electrical network. Accordingly, the name should be distinct from all
other names used in the same network study!
R0: Reluctance of the zero-sequence air-return path for flux. This reluctance can be
calculated as follows:

VRATLV2
R0 =
3L0

with VRATLV (kV): rated equivalent phase voltage (see card 5)


L0 (H): homopolar inductance (single-phase value)

Next, the first transformer unit needs to be specified. This is done using the card sequence
explained in section IV-E-1. Special care should be devoted to the following:

Card 2:

1 2 3 4 5 6 7 8
1 2 3 4 5 67 8 90 1 23 4 5 6 78 9 01 2 34 5 6 7 8 9 01 2 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 89 0
TRANSFORMER E6.2 E6.2 A6 E6.2

flag
I FLUX BUSTOP Rmag
request word
steady-state

For current and flux, we refer to card 3.

RMAG = 0: we don't want to add a non-coupled resistance branch representing excitation


losses at the internal star point, in parallel with the magnetizing branch, because
without coupling, homopolar excitation losses would be represented inaccurately.
On the other hand, one should manually add mutually coupled resistance branches
(type 51. 52, 53) over the winding terminals of all three phases on the low voltage
side. The values to be used can be derived as follows:

1 1
Rself = ( Rhom + 2 Rdir ) Rmutual = ( Rhom − Rdir )
3 and 3
2

R dir
(V )
= dir
2

R hom =
(V hom ⋅ 3 )
Pex , dir Pex , hom
where and
IV. Linear branch cards - 65

In these formulas, Vdir and Pex,dir are the excitation voltage (RMS value) and the excitation losses
for the direct excitation test (i.e. the usual test). Similarly, Vhom and Pex.hom apply to the homopolar
excitation test. In the latter case, do not forget to open the delta winding (if such winding would
exist).

Card 3:

1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 34 5 6 78901 2345 6789 012 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
E16.0 E16.0

I FLUX

one current-flux) pair

− In case of saturation, the TYPE-98 pseudo-nonlinear reactor model is used internally. In


order to obtain the necessary input data, use balanced excitation of the three phases and
average the voltages and their corresponding currents over the three phases, thus creating a
per-phase (Vrms, Irms) characteristic. Next use the supporting routine "SATURA" to create the
necessary (Flux, Current) peak value characteristic. Hence it is clear that this model cannot
take the magnetic coupling between phases into account.
− This is NOT the curve obtained from one winding (one phase), with all others open circuited.
− In the linear case, only one per-phase (Flux-current) peak value should be entered for the
magnetizing impedance input data. This value can be obtained from the direct excitation test.
− In case no flux-current characteristic is specified, the magnetizing reactance is assumed not
to exist (magnetizing current can be neglected).

Card 4:

1 2 3 4 5 6 7 8
1 2 3 45 6 78 9 01 2 3 4 5 6 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 45 6 78 9 01 2 3 45 6 789 0 1 23 4 56 7 89 0 12 3 4 56 7 890
9999

Card 5:

1 2 3 4 5 6 7 8
12 345678 9 0 1 23 4 567890123456 789012 345678 9 0 1 2 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
I2 A6 A6 E6.2 E6.2 E6.2 I

BUS1 BUS2 R L VRAT


K IP
leakage
node names
impedance

One should work in equivalent phase values while deriving values for R, L and VRAT
WYE connection: VRAT = V / 3 (line-to-ground)
DELTA connection: VRAT = V (line-line)
Card 6-9: The two other single-phase units are defined using the reference branch option. The
rules are already described in section IV-E-2 and thus won't be documented here again. For
allocation of internal nodes, we refer to the example explained hereafter.

Remark: Modeling of delta-connected transformers:


For delta-connection, we refer to section IV.E.3. for some explanation.
66 - IV Linear branch cards

2. Examples

Consider the case of a three-legged core type three-phase transformer with both primary and
secondary winding WYE-connected, and with both STAR points grounded (YNyn0). The other
terminals are called BUS1_R, BUS1_S, BUS1_T and BUS2_R, BUS2_S, BUS2_T respectively.
Further, following data were obtained by standard measurement on this transformer (at 50 Hz).

Power rating : 35 MVA


Voltage rating : 132./11.05 kV

Direct measurements:
Excitation losses : 18.112 kW
Excitation current : 2.39 A
Excitation voltage : 11.01 kV
Short-circuit losses : 192.53 kW
Short-circuit current : 153.1 A
Short-circuit voltage : 35.213 kV

Homopolar measurements:
Excitation losses : 115.325 kW
Excitation current : 500.0 A
Excitation voltage : 1.183 kV
Short-circuit losses : 8.825 kW
Short-circuit current : 70. A
Short-circuit voltage : 2.86 kV

Following data can be obtained for the saturable transformer component model:

card type 1:
BUS3PH = INHOM
R0 = 642.6

This reluctance of the homopolar air-return path for the flux can be calculated via an estimation of
the homopolar inductance:

Lo =
( pu
U ex , hom ⋅ 1 − I ex pu
, hom ⋅ Z sh , dir / 2 )
(I ex , hom / 3)⋅ 2πf
Note the approximation for the voltage drop over the LV short-circuit impedance (fig. 5).
Following intermediate results easily can be obtained:

Iex,hom = 49.15 % (see section XIX-C-3, value IEXZERO)


Zsh,dir = 26.69 % (see section XIX-C-3, value ZP0S12)

Using these intermediate results, the above formula yields


1183 (1 − 0.4915 ⋅ 0.2669 / 2 )
Lo = = 0.021113 H
( 500 / 3) ⋅ 2π ⋅ 50
IV. Linear branch cards - 67

Finally, this results in

Ro =
(11.05 / 3 ) 2
=
11.05 2
= 642.6
3L o 9L o

1st unit:

First comes the normal "TRANSFORMER" request card.


I = 3.37997 A (peak)
FLUX = 28.6335 Vsec (peak)

If we assume a linear behaviour for the magnetizing branch, it is sufficient to specify the direct
magnetizing impedance, using RMS values for excitation current and voltage:

Iex = 2.39 A (RMS)


Vex = 11.01 kV (RMS)

This results in following peak values for current and total flux:

I = 2.39 ⋅ 2 = 3.37997 A (peak)


11010 / 3
Ψ= = 28.6335 V ⋅ s (peak)
4.44 ⋅ 50

BUSTOP = TOP_R
RMAG = 0

Indeed, if one wants to be able to represent homopolar excitation losses with enough accuracy, the
magnetizing loss should not be confined to one single resistance branch, but one should place
mutually coupled resistance branches (type 51, 52, 53) over the terminals of LV windings 1
manually. The values for these self and mutual resistances can be calculated as follows, using
excitation voltages:
110102
R
− direct: dir = = 6692.8 Ohm
18112

− homopolar: R dir =
(1183 ⋅ 3 ) 2

= 36.4 Ohm
115325

Finally, this results in


FLAG = 1

This will result in branch current output.

Next comes the linear (flux-current) characteristic, as obtained by supporting routine SATURA.
This curve should be terminated by a flag card (9999 in columns 13 through 16). Of course, in this
simple linear case, it is sufficient to repeat the values of the steady state working point, as obtained
before:
68 - IV Linear branch cards

I = 3.379 A (peak)
Ψ = 28.6148 V·s (peak)

Finally, two winding specification cards should follow. Using the direct short-circuit test results,
following values can be obtained (equivalent phase values):

192530 / 3
R sh = = 2.738 Ohm
153.12

35.213/ 3
Zsh = = 132.79 Ohm
0.1531

2 2
X sh = Zsh − R sh = 132.76 Ohm

For the high-voltage winding (number 2) we thus obtain


2.738
R2 = = 1.369 Ohm
2
132.76
X2 = = 66.381 Ohm or 211.mH at 50 Hz
2
VRAT2 = 132 / 3 = 76.2102 kV
For the low-voltage winding (number 1) we obtain:
2
 11.05 
R1 = R 2 ⋅   = 0.00959 Ohm
 132 
2
 11.05 
X1 = X 2 ⋅   = 0.465 Ohm or 1.48 mH at 50 Hz
 132 
VRAT1 = 11.05 / 3 = 6.3797 kV

Further units:

For the 2nd and 3rd unit, we only have to use the special reference component option. Hence, only
the node name allocation still needs to be explained. For the winding terminals, we have:

Winding 1 Winding 2 phase


BUS1–R BUS2–R
R
BUSL BUSH
BUS1–S BUS2–S
S
BUSL BUSH
BUS1–T BUS2–T
T
BUSL BUSH

Fig.6: Node name allocation


IV. Linear branch cards - 69

For internal nodes, we have (see fig.5):

BUS3PH = INHOM
BUSTOP_R = TOP_R
BUSTOP_S = TOP_S
BUSTOP_T = TOP_T

Further remarks:
In this example, the homopolar short-circuit losses cannot be covered only by winding resistance
losses. Hence additional losses can be confined to a single resistance, to be placed between BUSH
(star point of HV-side) and ground. The value of this resistance is calculated as follows:

2
 153.09 
P sh , hom = 8.825  = 379.94 kW
 70 / 3 

Indeed, we had to upgrade the losses, since the homopolar short circuit test was not performed
under nominal conditions.

Psh ,extra = Psh ,hom − Psh ,dir (both under nominal conditions)
= 379.94 – 192.53 = 187.41 kW

Finally we find:
187410
R sh , extra = = 0.889 Ohm
(3 ⋅ 153.09)2
This results in following input file:
C Manually added type 51-53 cards
C ------------------------------------------------------------------------------
C shunt resistance matrix across winding 1 with R-self [ohm] =4.47446552E+03
C and R-mutual [ohm] = -2.21891079E+03 added manually
51BUS1_RBUSL 4474.5 0.
52BUS1_SBUSL -2219. 0. 4474.5 0.
53BUS1_TBUSL -2219. 0. -2219. 0. 4474.5 0.
C ------------------------------------------------------------------------------
C 1 2 3 4 5 6 7 8
C 34567890123456789012345678902345678901234567890123456789012345678901234567890
C SATURABLE TRANSFORMER COMPONENTS
$UNITS, 50.,0.,
TRANSFORMER THREE PHASE INHOM 632.08
C --------------------> 1ST UNIT
C TRANSFORMER| || I ||flux|BUSTOP|RmagH| flag
TRANSFORMER 3.379928.633TOP_R 0. 1
C I|| flux |
3.37997 28.6335
9999
C |BUSl| |BUS2| | R|| L||Vrat| IP
1BUS1_RBUSL .00959.4652 6.3797 1
2BUS2_RBUSH 1.369 66.36 76.210
C ------------------ > 2ND UNIT
TRANSFORMER TOP_R TOP_S
1BUS1_SBUSL
2BUS2_SBUSH
C -------------------> 3RD UNIT
TRANSFORMER TOP_R TOP_T
1BUS1_TBUSL
2BUS2_TBUSH
C end of data entry for three-phase transformer unit "BUS3PH"
C 1 2 3 4 5 6 7 8
C 34567890123456789012345678902345678901234567890123456789012345678901234567890
70 - IV Linear branch cards

IV.E.5 Applications of the "SATURABLE TRANSFORMER MODEL"

This model can be used to simulate a single-phase or 3-phase (both shell- and core-type), 2-
winding transformer, using test data of the exciting test and the short-circuit test at the rated
frequency. In the 3'winding case, numerical problems might occur. The obvious symptom of
trouble will be following message: "TROUBLE AT 73912 ON TYPE-99 OR 98 ELEMENT
NUMBER …."

This message is somewhat deceptive, since there really is no trouble with this TYPE-98 element at
all. If one looks at the network node voltages, however, one will observe an exponential blow-up
of the solution without any abrupt change or discontinuity. It rather appears to be that roundoff
error (numerical noise) was amplified as the simulation progressed, although up to now, the origin
of the hash could not yet be located.

Excitation losses can be taken into account by this model, although these losses can be neglected
for both single-phase transformers as well as 3-phase (3-leg shell-type or 5-leg core-type)
transformers. On the other hand, for 3-phase, 3-leg core-type transformers, the exciting current is
fairly high in the zero-sequence test and these excitation losses should therefore be included. The
short-circuit losses can (and always should) be taken into account.

Stray capacitances are ignored in this representation, which therefore is only valid up to a few
kHz. Because internally, the resistive and inductive parts of all impedances are treated separately,
this model also is invalid for extremely low frequencies (as was the case for the "BCTRAN"
model).

The model can be used in both the linear and the saturated case, depending on the input data
entered for the flux-current characteristic (TYPE-98 pseudo-nonlinear reactor model). Hysteresis
can be simulated by adding type 96 elements connected to the proper transformer terminals (i.e.
the terminal ends of the winding that is closest to the iron core) or at the internal star-point
BUSTOP, during the steady-state or transient run.

On the other hand, this complicated three-leg core-type model is not recommended to use since it
is not possible to represent magnetic coupling between the phases. This type of 3-phase
transformer better can be modeled using the supporting routine BCTRAN (see section XIX-C),
with the external addition of nonlinear elements at the proper winding connection points (i.e. those
windings which are closest to the iron core).

Delta transformer connections can be simulated, although sometimes this can be a little tricky.
Important points to keep in mind:

How to derive the equivalent circuit? Need for a path to ground on the delta side of the bank.
What about homopolar behavior?
IV. Linear branch cards - 71

IV.F. Branch input using "CASCADED LINE" feature

IV.F.1. Applications

1. General usage
The CASCADED LINE feature was introduced in 1998 to replace the older CASCADED PI that
eventually was reintroduced in 2009 for punching of branch matrix, [Y].
The CASCADED LINE feature enables both steady-state and time-domain, transient simulations
and is not restricted to PI-type line sections described in Section IV.B. Any type of transmission
line is supported including the frequency dependent models. Also nonlinear elements can be
included. Transposition and insertion of additional series and shunt RLC uncoupled elements is
possible.

A representation of such a model, you can find in the figure below.


Balanced 3-phase voltages

Balanced 3-phase voltages


RA1 1A1 2C1 4C1 5B1 6B1 7A1 GA1
2A1
RB1 1B1 2A1 4A1 5C1 6C1 7B1 GB1
2B1 OPEN
RC1 1C1 2B1 4B1 5A1 6A1 7C1 GC1
2C1

5G1 7G1

Fig. 7: Cascaded line sections.

2. Data input structure

In order to utilize the CASCADED LINE modeling feature as part of an EMTP data case, the
following classes of data are involved in the order indicated:

Class 1 : "CASCADE LINE"; special request card which begins the definition process.
Class 2 : Cards which specify the line section to be repeated (can be PI-equivalent, JMarti, etc) as
well sending and receiving end node names of the entire line.
Class 3 : “TRANSPOSITION”; Line position card
Class 4 : Cards defining series and shunt R-L-C branches, if any.
Class 5 : “REPETITION” card; how many times to repeat the line section.
Class 6 : "STOP CASCADE" card, to close the definition process.

Classes 1 and 6 are used once for the sending and receiving end of the line in question. Classes 2-
5 apply to the interior of the line, to be repeated, once for each section.
72 - IV Linear branch cards

IV.F.2. Card formats


1. Cascaded PI header card

To begin the definition of a cascaded PI section, the following special request card must be used:
1 2 3 4 5 6 7 8
1 2 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 78 9 0 12 3 456 7 8 90 1 23 4 56 7 89 0 1 23 4 567 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0
C A S CA D E L IN E

2. Specification card of line section and bus names

Any type of line type section can be added here; PI-equivalent, JMarti etc. The node names used
here will become the sending and receiving and sending end node names of the entire line.
Referred to Fig. 1 the RA1, RB1, RC1 are the receiving end nodes names and GA1, GB1, GC1 are
the receiving end node names that should be used. Any of the intermediate node names 1A1, 2B1,
5C1 etc. are provided by ATP internally.

Supporting routines LINE CONSTANTS, CABLE CONSTANTS, JMARTI SETUP or SEMLYEN


SETUP can be used as data generators.

3. Line position and series/shunt card

For the other segments, the general format of the line position card, which is shown below, can be
used. This card can be swapped with the series/shunt cards that are defined next.

1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 23 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 23 4 56 7 89 0 12 3 4 56 7 890 1 2 34 5 67 8 90 1 23 4 5 67 8 901 2 3 45 6 78 9 0
T R A NS P OS I TI O N I4 I4 I4

Keyword 1-? 2-? 3-?

4. Series or Shunt R-L-C branch cards

Series R-L-C branches may be connected in shunt between any two nodes which are either
conductor nodes or intermediate extra nodes, including local ground. Following format will be
used:

1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 23 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
PHASE BRANCH
NUMBERS PARAMETER VALUES
N1 N2 R L C

I6 I6 E6.2 E6.2 E6.2

Parameters:

N1, N2: Phase numbers (typically 1-3), ground (0) or local neutral point (-1). Series elements
must use the same phase number for N1 and N2.

R, L, C: Same as Section 4.A.


IV. Linear branch cards - 73

5. Cascading control

This card is required actually perform the cascading. The optional keyword “INCLUDE
TRANSPOSITION IN LOOP” will add the TRANSPOSITION card as well as the Series/Shunt
cards to the loop.
1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 2 3 3 4 5 6 7 8 9 0 1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 89 1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 89 0
0
R E P ET I TI O N I3 I N C LU D E T RA N SP O S IT I ON I N L O OP

Keyword NC Optional Keyword

Parameters:

NC: Number of repetition of the line section (and transposition scheme, series/shunt elements).

The cards 2-5 can be repeated several times to capture variations in the transposition scheme or the
series/shunt elements.

6. Termination of cascaded PI data

The last card in the cascaded PI definition sequence is a record reading "STOP CASCADE". This
card indicates the end of processing all segments making up the line which connects the sending-
end and receiving-end busses.

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4
STOP CASCADE

IV.F.4. Examples
In order to show the power of this feature, let us compare the input files for a given configuration:

− manual setup (benchmark DC10)


− cascaded PI setup (benchmark DC9 or DCP25).

Remark the differences in length of the input files. Further remark that the cascaded PI setup has
less memory requirements but is less flexible: in the manual setup, all intermediate nodes are
accessible too!!

1. Manual EMTP data setup


BEGIN NEW DATA CASE
C BENCHMARK DC-10
C Companion to "CASCADED PI" test of preceding data case. Same answer
C Use batch-mode solution only, since SPY sets TMAX to nearly infinity.
C and then the zero DELTAT will result in an error stop.
C dT >< Tmax >< Xopt >< Copt ><Epsiln>
1.E-4 0.1 60.
500 1 1 1 1
1RA1 1A1 .877 8.40 .1628
2RB1 1B1 .747 4.14 -.0252 .852 8.43 .1559
3RC1 1C1 .735 3.47 -.0067 .723 4.17 -.0277 .829 8.46 .1571
11A1 2A1 RA1 1A1
74 - IV Linear branch cards

21B1 2B1
31C1 2C1
02B1 3B1 13.1449.071 3
12C1 4C1 RA1 1A1
23A1 4A1
33B1 4B1
04C1 5C1 13.14 1
04A1 5A1 13.1449.071 2
04B1 5B1 4C1 5C1
05C1 5G1 2B1 3B1
05A1 5G1 2B1 3B1
05B1 5G1 2B1 3B1
5G1 5.0 13. 14
15B1 6B1 RA1 1A1
25C1 6C1
35A1 6A1
6A1 7A1 4B1 5B1
6B1 7B1 4C1 5C1
6C1 7C1 4A1 5A1
7A1 7G1 2B1 3B1
7B1 7G1 2B1 3B1
7C1 7G1 2B1 3B1
7G1 5G1
17A1 GA1 1.658 16 .92 .3142
27B1 GB1 1.446 8 .34-.0554 1.704 16.86 .3118
37C1 GC1 1.470 6 .94-. 0134 1.494 8.28-.0504 1.754 16.80 .3256
BLANK card ending branch cards
BLANK card ending switch cards (none, for this problem)
14GA1 424.35 60. 0.0 -.1
14RA1 424.35 60. 10.0 -.1
14GB1 424.35 60. -120.0 -.1
14RB1 424.35 60. -110.0 -.1
14GC1 424.35 60. 120.0 -.1
14RC1 424.35 60. 130.0 -.1
----------------- +--------------------------------------
C From bus name ¦ Names of all adjacent busses.
----------------- +--------------------------------------
C RA1 ¦1A1 * >
C 1A1 ¦RA1 *2A1 *
C RB1 ¦1B1 *
C 1B1 ¦RBI *2B1 *
C RC1 ¦Id *
C 1C1 ¦RC1 *2C1 *
C 2A1 ¦XAX *
C 2B1 ¦1B1 *3B1 *
C 2C1 ¦1C1 *4C1 *
C 3B1 ¦2B1 *4B1 *
C 4C1 ¦2C1 *5d *
C 3A1 ¦4A1 *
C Etc. (many more connections!)
BLANK card ending all source cards
C Total network loss P-loss by summing injections = 9.311041032866E+03
C End injection:-12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
C End injection: -42.48741206788 -106.9593405-6888.171205186 -0.6825172
RA1
BLANK card ending output variable requests
C Selective branch outputs follow (for column-80 keyed branches only). Any req
C augmented to include branch voltage. But the converse is not true (a request
C From To (====== Branch voltage Vkm = Vk - Vm ========) (==
C bus K bus M Magnitude Degrees Real part Imag part Magni
C 2B1 3B1 1.6180264E+03 -139.359766 -1.2277813E+03 -1.0538323E+03 3.9545
C 4C1 5C1 3.9925372E+O2 -138.975087 -3.0120669E+02 -2.62O6500E+02 3.0384
C 4A1 5A1 2.9415954E+00 92.386571 -1.2249239E-01 2.9390439E+00
BLANK card ending plot cards
BEGIN NEW DATA CASE
BLANK

2. Cascaded line modeling


BEGIN NEW DATA CASE
C BENCHMARK DC-9, 27th of 28 subcases. Modified to illustrate time-loop
C 1 2 3 4 5 6 7 8
C 34567890123456789012345678902345678901234567890123456789012345678901234567890
C dT >< Tmax >< Xopt >< Copt ><Epsiln>
1.E-4 0.1 60.
500 1 1 1 1
IV. Linear branch cards - 75

CASCADE LINE
1RA1 GA1 .877 8.40 .1628
2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559
3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
REPETITION 1
C Now we are at nodes 2A1, 2B1, and 2C1 of Fig. 1
TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
2 2 1.E18
3 3 13.1449.071
REPETITION 1
C Now we are at nodes 4A1, 4B1, and 4C1 of Fig. 1
TRANSPOSITION 2 3 1 { Transpose 3 phases A --> B, B --> C, C --> A
1 1 13.14 { series L
2 2 13.14 { series L
3 3 13.1449.071 { series LC
1 -1 13.1449.071 { shunt LC to neutral point
2 -1 13.1449.071
3 -1 13.1449.071
0 -1 5.0 13.14 { This connects local neutral point to ground
REPETITION 2 INCLUDE TRANSPOSITION IN LOOP
C Now we are at nodes 7A1, 7B1, and 7C1 of Fig. 1
REPETITION 1 { Final section double length, so repeat
STOP CASCADE { Terminate cascading that began with "CASCADE LINE" request
BLANK card ending branch cards
BLANK card ending switch cards (none for this problem)
14RA1 424.35 60. 10.0 -.1
14RB1 424.35 60. -110.0 -.1
14RC1 424.35 60. 130.0 -.1
14GA1 424.35 60. 0.0 -.1
14GB1 424.35 60. -120.0 -.1
14GC1 424.35 60. 120.0 -.1
BLANK card ending source cards
RA1
BLANK card ending selective node voltage outputs (none for this problem)
BLANK card ending plot cards (none allowed for CASCADED PI use, actually)
BEGIN NEW DATA CASE
BLANK
76 - IV Linear branch cards

IV.G. Branch input using "CASCADED PI" feature

IV.G.1. Applications

1. General usage
The CASCADED PI was removed from ATP between 1998 and 2009 but was then restored to
once again enable punching of steady-state branch matrices as described in Section IV. H. When
restored CASCADED PI was also restructured so that DIAGNOSTICS no longer is required for
Y-matrix outputs.

In Section IV.B we already discussed the multi-phase nominal Pi-equivalent. This appeared to be a
good model to simulate transient behavior on short lines and cables. By connecting many short
sections in series, keeping track of the actual transposition (if any), even a transient model for a
long line can be obtained. Yet, because of the enormous memory requirements, more sophisticated
models were formulated. More details can be found in section 4.2 of the Theory Book.
For transient analysis, the models of section IV.D are more appropriate, alternatively the
CASCADE LINE feature describe in Sect. IV. F.

For steady state (at any frequency), the CASCADED PI option dealt with in this section is a better
alternative, since it is less memory consuming. On the other hand, some important limitations
exist:
CASCADED PI uses the long-line equivalent (not the nominal Pi-equivalent). Hence, the model is
only valid at one specific frequency. Accordingly, only steady state calculations (TMAX <0 on
miscellaneous data card) at that specific frequency FREQCS (see IV.G.2-1: Cascaded PI header
card) are honored. The frequency of the type-l4 sources should have the same value as FREQCS.
The user can only obtain results at the line terminals, not at the interconnection points

A representation of such a model, you can find in the figure below.


Balanced 3-phase voltages

RA1 1A1 2C1 4C1 5B1 6B1 7A1 GA1 Balanced 3-phase voltages
2A1
RB1 1B1 2A1 4A1 5C1 6C1 7B1 GB1
2B1 OPEN
RC1 1C1 2B1 4B1 5A1 6A1 7C1 GC1
2C1

5G1 7G1

Fig. 8: Cascaded PI circuit.

The mathematical modeling of this can be interpreted as follows. The components representing the
line are defined sequentially as a chain, from one end (sending end) to the other (receiving end).
For each such section, a long-line equivalent PI is used. This data is in its turn processed as it is
read, sequentially, so as to produce at any stage of the process a mathematical equivalent for all
IV. Linear branch cards - 77

components between the sending end and the last component read. This is shown in the next
figure.

Equivalent for Component Equivalent for


components components
1, 2, 3, ..., K-1 K 1, 2, 3, ..., K

Fig. 9: Cascade PI sections.

To represent this mathematical model, only the nodal admittance matrix [Y] is used. Hence, when
input processing of the last component of the chain is completed, an admittance matrix among the
terminal nodes of the lines exists, as shown in the following matrix.

 YSS YSR 
Y YRR 
 RS

Remarks:
− The number of elements Y^ of the matrix [Y], only depends on the number of transmission
lines; it is independent of the number of components which are cascaded together.
− The number of cascaded components has its effect on the computational effort to produce an
equivalent. Only the computer time for translating the input data to the global nodal matrix [Y]
will increase with the number of cascaded components. The time figure for the steady-state
solution remains the same, because finally, only one admittance matrix will be withheld.

2. Specific usage of "cascaded PI"

Following rules must be taken into account when using the cascaded PI feature.
The first line segment of the chain of elements which are to be cascaded may not have any series
or shunt connections. That is, the sending end must begin with a Pi-circuit.
Second and later sections can each consist of up to four types of sub-components, in the order as
shown below:

a) Series uncoupled R-L-C branches, if any.


b) Shunt uncoupled R-L-C branches, if any.
c) New line-position (transposition) specification, if any.
d) specification of new (i.e. changed) Pi-circuit parameter matrices [R], [L] and [C].

Beware: diagnostic should be activated in column 26 (overlay 3 = branch input). The minimum
IPRSUP(3)**value equals three. This will give you only the final values for the phasor branch
admittance matrix to be used as input (see section IV.H). A higher IPRSUP(3)-value will list all
intermediate results of the section elimination too.

3. Input structure

In order to utilize the "CASCADED PI" modeling feature as part of an EMTP data case, the
following classes of data are involved in the order indicated:
78 - IV Linear branch cards

Class 1 : "CASCADED PI" header card; special request card which begins the definition process.
Class 2 : Cards which specify the sending end and receiving end bus names, as well as the [R], [L]
and [C] matrices which apply to the first Pi-circuit.
Class 3 : Line position card for the first Pi-circuit, the one at the sending end of the line.
Class 4 : Line position card, if any.
Class 5 : Cards defining series R-L-C branches, if any.
Class 6 : Cards defining shunt R-L-C banches, if any.
Class 7 : Cards specifying new [R], [L] and [C] parameter matrices, if any.
Class 8 : "STOP CASCADE" card, to close the definition process.

Classes 1, 2, 3 and 8 are used once for the sending and receiving end of the line in question.
Classes 4, 5, 6 and 7 apply to the interior of the line, to be repeated, once for each section.

IV.F.2. Card formats


1. Cascaded pi header card

To begin the definition of a cascaded PI section, the following special request card must be used:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 567890123456 78901 2 3 4 5 67 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
NPHCAS FREQS

CASCADED PI I6 E6.2

2. Specification card of bus names and matrices [r], [l] and [c]

These data cards are used to specify the sending-end and receiving-end bus names of the line as
well as the [R], [L] and [C] matrices which characterize the line or cable geometry of the first
section. The format and meaning are identical to that of the conventional Pi-circuit (type 1,2,3):

1 2 3 4 5 6 7 8
12 3 5 6 7 8 9 0 1 2 3 4 5 6 7 89 0 12 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
node names reference br. elements (k, m) elements (k, m+1) elements (k, m+2)
ITYPE

BUS1 BUS2 BUS3 BUS4 R L C R L C R L C

I2 A6 A6 A6 A6 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2 E6.2

Supporting routines LINE CONSTANTS, CABLE CONSTANTS or SEMLYEN SETUP can be


used as data generators. Be sure to select output that corresponds to the nominal PI (see section
IV.B.). Further, be sure to run the supporting routines at the correct frequency (FREQCS on
cascaded PI header card).

3. Line position card for sending end section

In this line position card, one can specify control parameter pertaining to the associated line
section and lumped elements, only for the first segment, the beginning of the cascading process.
For this, the format under section 4 will be used, specifying only the first segment.
IV. Linear branch cards - 79

4. Line position card

For the other segments, the general format of the line position card, which is shown below, can be
used.

1 2 3 4 5 6 7 8
12 345678 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
Phase-location indicator MAPCAS(I)
DSECTJ

MULTIP

MSECT
MSER

Phase 1

Phase 2

Phase 3
MBR

Etc. for all phases


....
(MAPCAS(I),I=1, NPHCAS)

E6.2 I4 I4 I4 I4 I4 I4 I4 ....

5. Series R-L-C branch card

Each series R-L-C branch, connected in series with any particular conductor of the line, can be
punched in the following format:

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 789012 3 4 5 6 7 8 901234 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
ITYPE

Series Series Series


R L C

I2 E6.2 E6.2 E6.2

6. Shunt R-L-C branch card

Series R-L-C branches may be connected in shunt between any two nodes which are either
conductor nodes or intermediate extra nodes, including local ground. Following format will be
used:

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
TERMINAL
BRANCH
NODE
PARAMETER VALUES
NUMBERS
N1 N2 R L C

I6 I6 E6.2 E6.2

7. Change of line parameters FRL. FL1 and FC1

During the cascading process, the line geometry can be altered if desired, which necessitates the
redefinition of the matrices [R], [L] and [C]. If this is the case, the previously specified line
position card must be adapted as evaluated in section IV.F.3-4. The general format used for this
change of line parameters, is the same format as shown in point 2 of this section, but notice the
remarks in section IV.F.3-7.
80 - IV Linear branch cards

8. Termination of cascaded PI data

The last card in the cascaded PI definition sequence is a record reading "STOP CASCADE". This
card indicates the end of processing all segments making up the line which connects the sending-
end and receiving-end busses.

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4
STOP CASCADE

IV.F.3. Parameters

1. Cascaded PI header card

CASCADED PI: Request word to indicate the beginning of processing all segments of the
cascaded PI circuit.
NPHCAS: The number of phases or conductors in the circuit to be cascaded. See also the
remark following.
FREQCS: The frequency in Hz of the sinusoidal steady-state phasor solution that is to be
performed. Recall that on the miscellaneous data cards, TMAX<0 should be
specified (see section IV.F. 1-1: general usage).

Remark:
The maximum permissible number of NPHCAS is dependent upon VARDIM dimensioning (see
section I-G). Execution should terminate with an overflow error message, if the user attempts to
represent a line or cable having too many conductors.

2. Specification card of bus names and matrices [R] [L] and [C]

ITYPE: Fill out the number of phases, beginning with 1, 2, 3, etc. up to NPHCAS (see
point 1 of this section).
BUS1, BUS2: Node names at both ends of the circuit consisting of NPHCAS phases. Nodes may
be grounded (indicated by a blank field name) if desired. See also remark 2.
BUS3, BUS4: If the cascaded PI circuit we are now specifying, is identical with another
previously specified cascaded PI circuit, following storage-saving option may be
used: Repeat only the first node names of the reference cascaded PI circuit in the
same sequence in the BUS3-BUS4 fields. Leave the R-L-C fields blank. On the
second and later phases, only the node names of these phases must be specified.
See also remark 3.
R: Resistance value in Ohms.
L: Inductance value (in mH or Ohms, depending on XOPT).
− an inductance L: mH (XOPT = zero or blank)
− a reactance 2nf· L: ohms (XOPT = f)
C: Capacitance value (in )F or )Mho's, depending on COPT).
− a capacitance C : )F {COPT = zero or blank)
− a susceptance 2πf·C: )mhos (COPT = f)
IV. Linear branch cards - 81

Remarks:

− Supporting routines LINE CONSTANTS or CABLE CONSTANTS can be used as data


generators. Be sure to select output that corresponds to the long-line equivalent. Further,
be sure to run the supporting routines at the correct frequency (FREQCS on cascaded PI
header card).
− The node names on a particular card do not necessarily correspond to the R-L-C matrix
values on the same card. The line position card takes care of the relation between bus
name and R-L-C matrix values. See section IV.F-3-3-
− When using reference cascaded PI circuits, the program will properly process the
reference data with or without the CASCADED PI header card and STOP CASCADE
terminator card. Care must be taken that either both or none of these cards should
appear.
− At least one of the matrices [R] and [L] must be nonzero. Matrix [C] may be zero.
Specifically, [R]+jω [L] must be non-singular.
− Matrices [R], [L] and [C] are symmetric, so they are only need to be specified on and
below the diagonal. The following format applies:

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 SA RA R11 L11 C11

2 SB RB R21 L21 C21 R22 L22 C22

3 SC RC R31 L31 C31 R32 L32 C32 R33 L33 C33

4 SD RD R41 L41 C41 R42 L42 C42 R43 L43 C43

R44 L44 C44

5 SE RE R51 L51 C51 R52 L52 C52 R53 L53 C53

R54 L54 C54 R55 L55 C55

⋮ Etc.

− No branch voltage or branch current output is possible for this feature. Don't put any of
these special punches in col. 80. Of course, the complete steady-state solution will show
all branch flows.

3. Line position card for sending end section

The general explanation, you can find in the following section.

4. Line position card

DSECTJ: Specifies the total length of segments. This length is determined as a per unit
length, where this unit is the base length of a line represented by the
equivalent PI matrix.
Example: If we have a total length of a line of 5 miles and the equivalent PI
matrix is per mile, then DSECTJ = 5.0. If the equivalent PI matrix represents
the total line, being 5 miles, then DSECTJ = 1.0.
MULTIP: Multiplicity factor. If N identical sections are cascaded together without any
transposition, then MULTIP can be set to N rather then include N line
position cards. See also remark 1.
82 - IV Linear branch cards

MSER: Specification of series R-L-C connections.


MSER = 1: this indicates that there is a R-L-C series connection for this section(s) and
data for this is to follow.
MSER = 0: this indicates that there is no R-L-C series connection for this section(s).
MSER = −l: this indicates that there is a R-L-C series connection for this section(s). The
data from the last R-L-C series connection is to be used.
See also remark 2.

MBR: Specification of R-L-C shunt connections.


MBR = 1: this indicates that there is a R-L-C shunt connection for this section(s) and
data for this is to follow.
MBR = 0: this indicates that there is no R-L-C shunt connection for this section(s).
MBR = −1: this indicates that there is a R-L-C shunt connection for this section(s). The
data from the last R-L-C shunt connection is to be used.

MSECT: Specification of the line-section parameters R, L and C.


MSECT = 0: (or blank) means old R-L-C values are used for following section(s).
MSECT = 1: a new R-L-C matrix is to be read in.

Phase1, Phase2, ..: Specification of line position. These numbers are a map of the position of the
phases of the cascaded circuit. The sequence of the fields (phase1, phase2,
phase3,...) as they appear in this card, correspond to the order (1, 2, 3, …) of
the phases as they appear in the equivalent PI card (which specify the node
names and R-L-C values). The number entered in these phase-fields is the
row number of the equivalent PI matrix where this phase takes effect on the
electrical properties specified by this row.

Example: If phase 3 has electrical properties which are specified by the


second row of the PI equivalent matrix, then number 2 must be entered in the
field under "phase3" (column 33-36). See also remark 3 for further usage.

Remarks:

1. If MULTIP is set greater than 1 (default is 1 or blank), so that there are more than one
identical sections being cascaded, then there may be series and shunt connections between
these sections. However, these connections must be the same for all sections handled by
this multiplicity feature.
2. Should the user desire to put the same R-L-C connection between every other (unequal)
section, then this can be easily accomplished as follows:
3. The first section preceded by such a R-L-C series connection would have MSER=1. The
next section would have MSER=0. The third section, which is to be preceded by a R-L-C
connection would have MSER=-1.
4. For 14 or less conductors, cols. 25-80 of the data card are sufficient, as shown. For 15 or
more conductors, the following data spills over onto as many extra cards as are required to
complete the data input. On such extra cards, columns 1-24 must be left blank and the data
must be punched from column 25.
IV. Linear branch cards - 83

5. Series R-L-C brunch card

ITYPE: This is the conductor number of which the R-L-C branch being defined is to be placed in
series with.
R: Resistance value in Ohms.
L: Inductance value (in mH or Ohms, depending on XOPT).
− an inductance L: mH (XOPT = zero or blank)
− a reactance 2πf(L: ohms (XOPT = f)
C: Capacitance value (in )F or )Mho's, depending on COPT).
− a capacitance C : )F (COPT = zero or blank)
− a susceptance 2πf(C: )mhos (COPT = f)

Remarks:

− If a short circuit is desired, simply do not enter a data card of this class for that conductor.
− If an open circuit is desired, punch field "R" of columns 27~32 with "999999" to be
interpreted by the EMTP as a special flag meaning "open circuit".
− At least one of the parameter values R, L or C must be nonzero.
− If the branch has no R, L or even C, just leave the corresponding field blank. In case of a
capacitor, the EMTP will interpret this as a short-circuit, where normally a zero value
capacitor has an infinite impedance.
− The end of these kind branches is indicated by a blank card.

6. Shunt R-L-C branch card

N1, N2: These are the numbers of the terminal nodes between which a shunt R-L-C branch occurs.
If one of the nodes of such a branch is connected to a conductor, then the number of this
conductor (phase) has been used. If there are new intermediate nodes (not connected to
the conductors) then negative numbers (-1, -2, ...) are used. A zero or blank is used when
one wants to specify the ground.
R: Resistance value in Ohms.
L: Inductance value (in mH or Ohms, depending on XOPT).
− an inductance L: mH (XOPT = zero or blank)
− a reactance 2πf(L: ohms (XOPT = f)
C: Capacitance value (in )F or )Mho's, depending on COPT).
− a capacitance C : )F (COPT = zero or blank)
− a susceptance 2πf(C: )mhos (COPT = f)

Remarks:

− At least one parameter values R, L or C must be nonzero.


− If the branch has no R, L or even C, just leave the corresponding field blank In case of a
capacitor, the EMTP will interpret this as a short-circuit, where normally a zero value
capacitor has an infinite impedance.
− The end of these kind branches is indicated by a blank card.
84 - IV Linear branch cards

7. Change of line parameters [R] [L] and [C]

ITYPE: Fill out the number of phases, beginning with 1, 2, 3 etc. up to NPHCAS (see
point 1 of this section)
BUS1, BUS2: In contrast with the format of class 2, there are no. node names to be specified.
Leave these fields blank.
BUS3, BUS4: No storage saving (referencing) is possible. These fields are also to be left blank.
R: Resistance value in Ohms.
L: Inductance value (in mH or Ohms, depending on XOPT).
− an inductance L: mH (XOPT = zero or blank)
− a reactance 2πf(L: ohms (XOPT = f)
C: Capacitance value (in )F or )Mho's, depending on COPT).
− a capacitance C : )F (COPT = zero or blank)
− a susceptance 2πf(C: )mhos (COPT = f)

Remarks:
− If this card has to be added, the associated line-position card must contain value "1" in field
"MSECT".
− At least one of the matrices [R] and [L] must be nonzero. Matrix [C] maybe zero.
Specifically, R+jωL must be non-singular.
− Matrices [R], [L] and [C] are symmetric, so they only need to be specified on and below
the diagonal. The following format applies:
1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 SA RA R11 L11 C11

2 SB RB R21 L21 C21 R22 L22 C22

3 SC RC R31 L31 C31 R32 L32 C32 R33 L33 C33

4 SD RD R41 L41 C41 R42 L42 C42 R43 L43 C43

R44 L44 C44

5 SE RE R51 L51 C51 R52 L52 C52 R53 L53 C53

R54 L54 C54 R55 L55 C55

⋮ Etc.
No branch voltage or branch current output is possible for feature. Don't put any of these special
punches in col. 80. Of course, the complete steady-state solution will show all branch flows.

8. Termination of cascaded PI data

STOP CASCADE: Indication that all sections, making up the line, are processed.

IV.F.4. Examples
In order to show the power of this feature, let us compare the input files for a given configuration:

− manual setup (benchmark DC10)


− cascaded PI setup (benchmark DC9 or DCP25).
IV. Linear branch cards - 85

Remark the differences in length of the input files. Further remark that the cascaded PI setup has
less memory requirements but is less flexible: in the manual setup, all intermediate nodes are
accessible too!!

1. Manual EMTP data setup


BEGIN NEW DATA CASE
C BENCHMARK DC-10
C Companion to "CASCADED PI" test of preceding data case. Same answer
C Use batch-mode solution only, since SPY sets TMAX to nearly infinity.
C and then the zero DELTAT will result in an error stop.
0.0 0.0 60.
1 1
1RA1 1A1 .877 8.40 .1628
2RB1 1B1 .747 4.14 -.0252 .852 8.43 .1559
3RC1 1C1 .735 3.47 -.0067 .723 4.17 -.0277 .829 8.46 .1571
11A1 2A1 RA1 1A1
21B1 2B1
31C1 2C1
02B1 3B1 13.1449.071 3
12C1 4C1 RA1 1A1
23A1 4A1
33B1 4B1
04C1 5C1 13.14 1
04A1 5A1 13.1449.071 2
04B1 5B1 4C1 5C1
05C1 5G1 2B1 3B1
05A1 5G1 2B1 3B1
05B1 5G1 2B1 3B1
5G1 5.0 13. 14
15B1 6B1 RA1 1A1
25C1 6C1
35A1 6A1
6A1 7A1 4B1 5B1
6B1 7B1 4C1 5C1
6C1 7C1 4A1 5A1
7A1 7G1 2B1 3B1
7B1 7G1 2B1 3B1
7C1 7G1 2B1 3B1
7G1 5G1
17A1 GA1 1.658 16 .92 .3142
27B1 GB1 1.446 8 .34-.0554 1.704 16.86 .3118
37C1 GC1 1.470 6 .94-. 0134 1.494 8.28-.0504 1.754 16.80 .3256
BLANK card ending branch cards
BLANK card ending switch cards (none, for this problem)
14GA1 424.35 60. 0.0 -.1
14RA1 424.35 60. 10.0 -.1
14GB1 424.35 60. -120.0 -.1
14RB1 424.35 60. -110.0 -.1
14GC1 424.35 60. 120.0 -.1
14RC1 424.35 60. 130.0 -.1
----------------- +--------------------------------------
C From bus name ¦ Names of all adjacent busses.
----------------- +--------------------------------------
C RA1 ¦1A1 * >
C 1A1 ¦RA1 *2A1 *
C RB1 ¦1B1 *
C 1B1 ¦RBI *2B1 *
C RC1 ¦Id *
C 1C1 ¦RC1 *2C1 *
C 2A1 ¦XAX *
C 2B1 ¦1B1 *3B1 *
C 2C1 ¦1C1 *4C1 *
C 3B1 ¦2B1 *4B1 *
C 4C1 ¦2C1 *5d *
C 3A1 ¦4A1 *
C Etc. (many more connections!)
BLANK card ending all source cards
C Total network loss P-loss by summing injections = 9.311041032866E+03
C End injection:-12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
C End injection: -42.48741206788 -106.9593405-6888.171205186 -0.6825172
BLANK card ending output variable requests
86 - IV Linear branch cards

C Selective branch outputs follow (for column-80 keyed branches only). Any req
C augmented to include branch voltage. But the converse is not true (a request
C From To (====== Branch voltage Vkm = Vk - Vm ========) (==
C bus K bus M Magnitude Degrees Real part Imag part Magni
C 2B1 3B1 1.6180264E+03 -139.359766 -1.2277813E+03 -1.0538323E+03 3.9545
C 4C1 5C1 3.9925372E+O2 -138.975087 -3.0120669E+02 -2.62O6500E+02 3.0384
C 4A1 5A1 2.9415954E+00 92.386571 -1.2249239E-01 2.9390439E+00
BLANK card ending plot cards
BEGIN NEW DATA CASE
BLANK

2. Cascaded PI modeling
BEGIN NEW DATA CASE
C BENCHMARK DC-9
C Illustration ofmany "CASCADES PI" features. See DCPRINT-25 if any
C trouble, and DC-10 for comparison (same solution only manual cascade).
0.0 0.0 60. {TMAX=0.; only steady state
0 0 1 1
CASCADED PI 3 60.0 {FREQCS=60 Hz
1RA1 GA1 .877 8.40 .1628
2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559
3RC1 GC1 .735 3.47-.O067 .723 4.17-.0277 .829 8.46 .1571
1.0 2 0 0 1 1 2 3
1.0 1 1 0 0 2 3 1
2 999999
3 13.1449.071
BLANK card ending first Class-5 (Series R-L-C) set of data
1.0 1 1 1 0 3 1 2
1 13.14
2 13.14
3 13.1449.071
BLANK card ending 2nd Class-5 (Series R-L-C) set of data
1 -1 13.1449.071
2 -1 13.1449.071
3 -1 13.1449.071
-1 5.0 13.14
BLANK card ending first Class-6 (Shunt R-L-C) set of data
2.0 1 -1 -1 1 1 2 3
1 .829 8.46 .1571
2 .723 4.17-.0277 .852 8.43 .1559
3 .735 3.47-.0067 .747 4.14-.0252 .877 8.40 .1628
STOP CASCADE
BLANK card ending branch cards
BLANK card ending switch cards (none for this problem)
C All steady state sources (type-14) work at a frequency equal to FREQCS
14GA1 424.35 60. 0.0 -.1
14RA1 424.35 60. 10.0 -.1
14GB1 424.35 60. -120.0 -.1
14RB1 424.35 60. -llO.O -.1
14GC1 424.35 60. 120.0 -.1
14RC1 424.35 60. 130.0 -.1
BLANK card ending source cards
C Total network loss P-loss by summing injections = 9.311041032866E+03
C 1st gen: RA1 417.90316999073 424.35 -.0131358847782 .05382578726276
C 1st gen: 73.687604192962 10.00000 .05219831324431 104.1253709
C End last gen: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975
C End last gen: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172
BLANK card ending selective node voltage outputs (none for this problem)
PRINTER PLOT
BLANK card ending plot cards (hone allowed for CASCADED PI use. actually)
BEGIN NEW DATA CASE
BLANK
IV. Linear branch cards - 87

IV.H Phasor branch [Y] input if no transient simulation


IV.H.1 General
When only a phasor solution (no transient simulation) is to occur, then a branch may be described
by steady-state phasor admittances. These phasor admittances are represented by the branch
admittance matrix [Y].

Matrix [Y] has a row and a column for each node at each end of the branch. Hence a 3-phase
branch has a 6x6 branch admittance matrix [Y], More generally, a N-phase circuit will have a
2Nx2N [Y] matrix.

The "CASCADED PI" case is the only data generator currently available to retrieve the branch
admittance matrix [Y]. To see this matrix in the output, we need to PUNCH the data from the
input of the CASCADED PI case. The output is immediately in the correct input format for phasor
branch [Y] usage.

For steady state solution, the PHASOR BRANCH option dealt with in this section is an alternative
for the CASCADED PI option (of section IV.G.). Like for CASCADED PI, some important
limitations exist:

− the phasor branch solution uses the long-line equivalent (not the nominal PI-equivalent).
Hence, the model is only valid at one specific frequency. Accordingly, only steady state
calculations ( TMAX ≤ 0 on miscellaneous data card) at that specific frequency are
honored. The frequency of the type l4 sources should have the same value as the frequency
for which the phasor branch [Y] has been calculated.
− the user can only obtain phasor results at the line terminals, not at the interconnection
points.
− when using the CASCADED PI case as a data generator, two runs are necessary: the first
run results in the creation of the branch admittance matrix. The second run results in the
steady state calculation. On the other hand, CASCADED PI alone was capable to give you
this steady state result in one run.

The steady state solution of a case will be the same, whether the final branch admittance input will
be generated by the CASCADED PI representation or directly represented by the phasor branch
[Y] representation. This is logical, because the branch admittance matrix [Y] will be resolved in
the CASCADED PI solution too. There can be a little difference in the output results depending on
whether the solution is obtained by the CASCADED PI feature or by the phasor branch [Y]
feature. The reason for this is the numerical accuracy of the matrix [Y] representation. The
CASCADED PI feature has the greatest accuracy, since the matrix [Y] is calculated at high
precision, during the solution process. The phasor branch option on the other hand will be less
accurate since it uses a lower precision for the input format of the phasor branch admittance.

IV.H.2 Card format:


Now, three different formats exist:
− normal format ($VINTAGE, 0)
− high precision format ($VINTAGE, 1)
− highest precision format ($VINTAGE, 2)
88 - IV Linear branch cards

The card format to input the phasor admittances basically is the same format as used in section
IV.C. (type 51,52,53)- But the meaning of the parameters is entirely different. The only way the
program recognizes the difference between a mutually coupled RL input and a phasor branch
admittance input is the unnamed extra phases for the extra rows of the branch admittance matrix.
The resolution request card can be put just in front of the STOP CASCADE card.

1. Normal card format ($VINTAGE, 0)


1 2 3 4 5 6 7 8
12 345678901234 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 90 1 2 34 5 6 7 89 0 12 3 45 6 78 9 0 12 3 4 5 67 8 90 1 23 4 56 7 8 90
node names reference br. elements (k, m) elements (k, m+1) elements (k, m+2)
ITYPE

BUS1 BUS2 BUS3 BUS4 TR TX TR TX TR TX

I2 A6 A6 A6 A6 E6.2 E12.2 E6.2 E12.2 E6.2 E12.2

2. High precision format ($VINTAGE, 1)

The same format as in section IV.C. will apply here.

1 2 3 4 5 6 7 8
12 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 90 1 2 3 4 5 67 8 90 1 23 4 56 7 8 9 0 1 23 4 56 7 89 0 12 3 4 56 7 890
node names reference br. elements
ITYPE

BUS1 BUS2 BUS3 BUS4 TR TX

I2 A6 A6 A6 A6 E16.0 E16.0

3. Highest precision format ($VINTAGE, 2)

The same format as in section IV.C. will apply here.


1 2 3 4 5 6 7
12 3 4 5 67 8 90 1 23 4 5 6 7 89 0 12 3 45 6 7 8 9 01 2 34 5 67 8 90 1 2 34 5 678 9 0 12 3 8
4 5 6 78 9 01 2 34 5 67 8 9 01 2 345 6 7 89
0
node names reference br. elements
ITYPE

BUS1 BUS2 BUS3 BUS4 TR TX

I2 A6 A6 A6 A6 E27.0 E27.0

IV.H.3 Parameters
ITYPE: Specifies N phases by numbering 51, 52, 53, ...50+2·N in this field. N is limited
up to 20. In case of 3 phases, the numbering will be: 51, 52, 53, 54, 55, 56, since
there are 6 rows. Continuation cards must have blank ITYPE fields. See also
remark 4.
BUS1, BUS2: Terminal node names of the elements in the phase, indicated by the ITYPE field.
Nodes may be grounded (indicated by blank field name) if desired. In case of 3
phases, there will be 6 cards to be specified, but only the first three cards will
contain the node names. See also remark 4. This is the only difference between the
ordinary type 51, 52, 53 element of section IV.C and the phasor branch admittance
discussed in this section.
IV. Linear branch cards - 89

BUS3, BUS4: Equally to mutually coupled RLC branches, referencing can be used here. The
same rules must be taken into account as typing only the node names of the first
phase of the reference set in the same sequence.
TR, TX: These fields are occupied with the phasor branch admittance values (TR contains
the real part, TX contains the imaginary part), expressed in mho and calculated at
the frequency for which the steady state calculation will be performed. When the
CASCADED PI feature was used as data generator, this frequency has the value
FREQCS.

1
Unlike previous cases, XOPT always should be put equal to 2π
, in order to avoid scaling. The
value of COPT has no importance for type 51, 52, 53 cards.

Note:
TR and TX are the table headers, as obtained by the data generator as illustrated in DC-9, 28th
subcase:

C $VINTAGE, 2, { Request maximum of 27 columns of precision (not 16) for TR, TX


STOP CASCADE
BLANK card ending branch cards
C In 1998, [Y] was obtained from diagnostic output of overlay 3. As code is
C restored in August of 2009, this no longer is necessary. [Y] automatically
C is placed on branch cards in the punch buffer. It only remains for the user
C to flush them. Any time after STOP CASCADE should work. WSM.
$PUNCH

a) for $VINTAGE, 0:

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
51 SA RA TR1 TX1

52 SB RB TR2 TX2 TR3 TX3

53 SC RC TR4 TX4 TR5 TX5 TR6 TX6

54 TR7 TX7 TR8 TX8 TR9 TX9

TR10 TX10

55 TR11 TX11 TR12 TX12 TR13 TX13

TR14 TX14 TR15 TX15

56 TR16 TX16 TR17 TX17 TR18 TX18

TR19 TX19 TR20 TX20 TR21 TX21


90 - IV Linear branch cards

b) for $VINTAGE, 1:

1 2 3 4 5 6 7 8
12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 01 2 34 5 67 8 90 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
51 SA RA TR1 TX1

52 SB RB TR2 TX2

TR3 TX3

53 SC RC TR4 TX4

TR5 TX5

TR6 TX6

54 TR7 TX7

TR8 TX8

TR9 TX9

TR10 TX10

55 TR11 TX11

TR12 TX12

TR13 TX13

TR14 TX14

TR15 TX15

56 TR16 TX16

TR17 TX17

TR18 TX18

TR19 TX19

TR20 TX20

TR21 TX21

$VINTAGE, 2 gives the similar output as $VINTAGE, 1, but with column width 27.

Remarks:
− Matrices [TR] and [TX] are symmetric, so only need to be specified on and below the
diagonal. When one card is not sufficient to specify all TR-TX values, then continuation
cards are used, with columns 1-26 left blank. The only way the program recognize the
difference between a mutually coupled RL input (type 51.52,53) and the phasor branch [Y]
input is the unnamed extra phases for the extra rows of the matrix. The following format
applies for a 3-phase case:
− There is no branch current output possible for this branch type. However, the branch
voltage can be obtained on the first two phases (column 80 is not being used).
− There must be added two $UNITS cards.
o The first one "$UNITS, 0.1591549431, 0." is mandatory whenever [Y] input is
used, so loading [Y] into List-3 tables TR and TX (see diagnostic output) has been
done without any scaling. In this first $UNITS card XOPT must then be equal to
IV. Linear branch cards - 91

 1 
0.1591549431  =  , since the scaling factor should be unity. COPT can be
 2π 
anything, since it will not be used.
o The second "$UNITS, −1., −1." card is needed to restore the previous values of
XOPT and COPT.

IV.H.4. Example
Data generator:
BEGIN NEW DATA CASE
C BENCHMARK DC9-28 Diagnostic version of DC-9.
0.0 0.0 60.
0 1 1
CASCADED PI 3 60.0
1RA1 GA1 .877 8.40 .1628
2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559
3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571
:
$VINTAGE, 2, { Request maximum of 27 columns of precision (not 16) for TR, TX
STOP CASCADE
BLANK card ending branch cards
C In 1998, [Y] was obtained from diagnostic output of overlay 3. As code is
C restored in August of 2009, this no longer is necessary. [Y] automatically
C is placed on branch cards in the punch buffer. It only remains for the user
C to flush them. Any time after STOP CASCADE should work. WSM.
$PUNCH { Output the branch [Y] as could be used for data in DC-11
BLANK card ending switch cards (none for this problem)
:

Generated branch admittance output:

Following is an extract of the critical portion: TR-TX table.


$VINTAGE, 2,
51RA1 GA1 4.8444770218002665000E-09 1.2281121515166443000E-04
52RB1 GB1 -1.2966757938385503000E-07 -2.2422696957930567000E-05
9.4417532274453427000E-03 -2.5739900230249368000E-02
53RC1 GC1 4.3614506153222071000E-08 -1.4625372832170572000E-05
-8.4632380893782180000E-03 1.6729093574486539000E-02
1.6594972493589873000E-02 -4.7475977904406920000E-02
54 -1.4966885422269850000E-07 -9.4264247756440286000E-06
1.8713630821201258000E-02 -5.0301488934157097000E-02
-1.4459054141970202000E-02 2.4097575606600845000E-02
4.6314833594475698000E-02 -1.1561169864637746000E-02
55 1.4960460151828029000E-06 6.4589654580526712000E-06
-1.6805985386192282000E-02 5.9717178267722409000E-02
1.8974698648408121000E-02 -4.2455555642932317000E-02
-3.2714575208587053000E-02 3.0475665567539150000E-02
3.6071399714361796000E-02 -6.0620444683943307000E-02
56 1.1898901751366362000E-06 4.4856452772409789000E-06
2.0941533495336369000E-03 -2.0626892820102705000E-02
-2.2406862694773879000E-03 3.6895278780495581000E-02
3.6614377966236963000E-03 -6.5323940733637453000E-02
-2.2585036293310244000E-05 2.7425036208339425000E-02
4.8540828463550130000E-03 9.9393080703349714000E-03

Using branch admittance an input:

BEGIN NEW DATA CASE


C 5th of 5 subcases has the same solution as the 4th. It differs in that
C the phasor [Y] is what would be produced by DC-9 if that $VINTAGE, 2,
92 - IV Linear branch cards

C data card were uncommented. For 64-bit computation, precision is full.


C Note that the same $VINTAGE, 2 request of DC-9 is required here, too.
0.0 0.0 60. { Note XOPT = 60 here --- never actually used
1 1
$UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi)
$VINTAGE, 2, { Of 3 alternatives, this is widest, requiring FORMAT ( 2E27.0 )
51RA1 GA1 4.8444770277573491700E-09 1.2281121515163583300E-04
52RB1 GB1 -1.2966757938532132400E-07 -2.2422696957929919700E-05
9.4417532274453028200E-03 -2.5739900230249322700E-02
53RC1 GC1 4.3614506153007997000E-08 -1.4625372832163987600E-05
-8.4632380893781746600E-03 1.6729093574486542100E-02
1.6594972493589866400E-02 -4.7475977904406906100E-02
54 -1.4966885422339314900E-07 -9.4264247756427733400E-06
1.8713630821201195800E-02 -5.0301488934157152800E-02
-1.4459054141970184600E-02 2.4097575606600894100E-02
4.6314833594475780800E-02 -1.1561169864637796700E-02
55 1.4960460151833065100E-06 6.4589654580511652000E-06
-1.6805985386192243800E-02 5.9717178267722430300E-02
1.8974698648408130900E-02 -4.2455555642932338300E-02
-3.2714575208587087800E-02 3.0475665567539195200E-02
3.6071399714361830600E-02 -6.0620444683943348900E-02
56 1.1898901751368022500E-06 4.4856452772413896800E-06
2.0941533495336460200E-03 -2.0626892820102635900E-02
-2.2406862694774026100E-03 3.6895278780495553700E-02
3.6614377966236264600E-03 -6.5323940733637467200E-02
-2.2585036293308193800E-05 2.7425036208339411600E-02
4.8540828463550763200E-03 9.9393080703350303300E-03
$UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1.
BLANK card ending branch cards
C To show the effect of precision, consider P-loss for the 3 subcases. There
C is little difference between 2E16.0 data (subcase 4) and 2E27.0 (subcase 5).
C But for subcase 1, with [R] limited to E6.2, loss differs in the 3rd digit:
C 1: Total network loss P-loss by summing injections = 9.326316227367E+03
C 4: Total network loss P-loss by summing injections = 9.311041032869E+03
C 5: Total network loss P-loss by summing injections = 9.311041032866E+03
C This is using Salford ATP. WSM. 10 August 2009
BLANK card ending non-existent switch cards
14GA1 424.35 60. 0.0 -.1
14RA1 424.35 60. 10.0 -.1
14GB1 424.35 60. -120.0 -.1
14RB1 424.35 60. -110.0 -.1
14GC1 424.35 60. 120.0 -.1
14RC1 424.35 60. 130.0 -.1
BLANK card ending source cards
-5RA1 GA1 RB1 GB1 { Mar, 95. Illustrate 2 phasor branch voltage outputs
BLANK card ending output requests
PRINTER PLOT
BLANK card ending non-existent plot cards
BEGIN NEW DATA CASE
BLANK

Remarks:

TR-TX table is already in the proper input format.

Although the type 51,52,53 data are preceeded by a $UNITS card, data are only valid for the
frequency for which they are created (value FREQCS = 60 Hz in DCPRINT25). So only type-14
sources at that very frequency are allowed. Furthermore, only steady state calculations at the same
frequency are allowed.
IV. Linear branch cards - 93

IV.I High-order rational admittance function


IV.I.1 Applications
Any impedance or admittance seen from a port of a passive network or network component can be
expressed as a rational function in the frequency domain. The poles and zeros of the rational
function reflect the dynamic behavior of the system and indicate resonant frequencies of the
network under consideration. This electrical branch allows direct representation of a port-
admittance given in form of a rational function for electromagnetic transients simulations.
Rational function expression for port-admittances can be gained by approximation of frequency
response curves using external fitting/optimization techniques.

The high-order rational admittance function Y(s) (or Y(z)) has been used to represent low-order
network equivalents in the EMTP for switching surge computations. An application of this branch
can be found in the paper of M. Kizilcay, Low-order network equivalents for electromagnetic
transients studies, European Trans, on Electr. Power Eng. (ETEP), vol. 3, no. 2, pp. 123-129,
Mar./Apr. 1993. Theoretically, the developed model can be used to represent any individual power
system component, provided that the poles and zeros of its admittances are known in a frequency
interval, that is relevant to the type of transient studies.

The rational admittance function of the branch connecting nodes BUS1 and BUS2 shown in the
above figure may be described either in s (Laplace transform) or z (Z-transform) domain as
follow:

− in Laplace domain:
a0 + a1s + ⋯ + am s m
Y (s) = K
b0 + b1s + ⋯ + bn s n

− in z domain:
A0 + A1 z −1 + ⋯ + Am z − m
Y ( z) = K
B0 + B1 z −1 + ⋯ + Bn z − n

IV.I.2 Card formats


The data input of this new EMTP-branch is slightly tricky. The node pair for this branch and the
output option (branch current, branch voltage, etc.) must be declared on a preceding RLC branch
card (type 0). A dummy resistance value (columns 27-32), that has no meaning, typically is
supplied on the RLC branch card.

The following card sequence must be inserted in the group of branch cards of the electrical
network:
94 - IV Linear branch cards

1. Lumped series RLC branch card


2. KIZILCAY F-DEPENDENT special request card
3. Specification of coefficients of numerator and denominator polynomials

1. Lumped series RLC branch card:


1 2 3 4 5 6 7 8
12 345678 9 0 1 23 4 5 6 7 89 0 12 3 45 6 789012 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
dummy
I2 node names I1
resis.
BUS1 BUS2 R( )
K IP
A6 A6 E6.2

The parameters used in the above card are the same of uncoupled, lumped series RLC branch
explained in Section IV.A.2

2. KIZILCAY F-DEPENDENT special request card:

A special request card with the request ‘KIZILCAY F–DEPENDENT'’ (columns 1-20) follows
immediately the RLC branch card.

1 2 3 4 5 6 . 7 8
12345678901234567890 1234 5 6 7 89 0 12 3 4 5 67 8 90 1 23 4 56 7 8 90 1 234 5 6 7 8 9 0 12 3 4 5 6 7 8 90 1 23 4 56 7 89 0
S
Z
F
K I Z IL C AY F- D EP E N DE N T ORDER GAIN
L
A
G
A
A20 4X I8 E25.0
1

Parameters:

ORDER: maximum value between m and n, which are the orders of the numerator and
denominator polynomials of the rational function, respectively (please refer to the
equations of Y(s) and Y(z) given above).
GAIN: gain factor K as defined in equations of Y(s) and Y(z) above.
SZFLAG: flag to indicate the type of rational function (Y(s) or Y(z)) to be entered. Please enter
‘S’ for Laplace–transform or ‘Z’ for Z–transform modeling in capital letters. Leaving
blank is the same as ‘S’.

3. Specification of coefficients of numerator and denominator polynomials:

Depending on the value of ORDER, a sequence of (ORDER+1) cards with the coefficients of
numerator and denominator polynomials follow:

1 2 3 4 5 6 7 8
1234567890123456789012345 6 7 8 90 1 23 4 56 7 89 0 1 23 4 567 8 9 0 1 2 3 45 6 78 9 01 2 34 5 6 78 9 012 3 4 56 7 89 0
coefficients of coefficients of
numerator polynomial denominator polynomial

ai or Ai bi or Bi
i = 0,1,...,ORDER i = 0,1,...,ORDER
E25.0 E25.0
IV. Linear branch cards - 95

Parameters:

ai / Ai: coefficients of numerator polynomial in increasing order. Missing coefficients should be


given as zero or left blank.
bi / Bi: coefficients of denominator polynomial in increasing order. Missing coefficients should
be given as zero or left blank.

IV.I.3 Remarks
It is recommended to check the stability and realizibility of the rational function to be represented.
For example, the orders of the numerator and denominator polynomials may differ at most by
unity '1' according to network theory.

In an electrical network maximum 30 such branches with maximum order of 25 each are allowed.
Time step DELTAT (see II.B.l floating-point miscellaneous data card) must be consistent with the
sampling period of Z-transform applied to obtain the rational function Y(z).

IV.I.4 Examples
Series RLC–circuit R L C
GEN RES
This simple data case is selected to show data
input format. A series RLC-circuit will be 0.05 Ω 1 mH 5 mF
represented by a rational admittance function Y(s)
and the results of the simulation can be compared 0.05 Ω RL
10 V
with those of an ordinary RLC-branch.

The rational function Y(s) is derived from the series RLC-branch:

Cs 5 ⋅ 10 −3 s
Y(s ) = =
1 + RCs + LCs 2 1 + 2.5 ⋅ 10 − 4 s + 5 ⋅ 10 − 6 s 2

EMTP data cases comparing the representation of Y(s) with the ordinary RLC-branch are given
below (taken from 3rd and 4th subcases of BENCHMARK DC-23):
BEGIN NEW DATA CASE
C
C Ordinary RLC branch representation:
C Series R-L-C: R = 0.05 , L = 1 mH, C = 5 mF
C + RL = 0.05
C
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
.0005 0.05 0. 0.
10 1 1 1 1 2
RES 0.05
GEN RES 0.05 1.0 5000. 1
BLANK
BLANK
96 - IV Linear branch cards

11GEN 10.
C Use type-14 source with sample data case 2 (Z-transform)
C 14GEN 10. 50. -1.
BLANK
1
BLANK
BEGIN NEW DATA CASE
BLANK

BEGIN NEW DATA CASE


C
C Series R-L-C, modelled by KIZILCAY F-DEPENDENT element:
C R = 0.05 , L = 1 mH, C = 5 mF
C + RL = 0.05
C
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
0.0005 0.05 0. 0.
10 1 1 1 1 1
C
RES 0.05
C -- preceding R branch defines node names and output option
C <....>: dummy value!
GEN RES 99. 1
C ---Request-------> < Order><-------- Gain ---------> |
KIZILCAY F-DEPENDENT 2 1.0 S-transform
C -coeff. of numerator--><-coeff. of denominator->
0.0 1.0
0.005 2.5E-4
0.0 5.0E-6
BLANK ending branch cards
BLANK ending switch cards
11GEN 10.
BLANK ending source cards
1
BLANK ending plot cards
BEGIN NEW DATA CASE
BLANK

1. Z-Transform Application

The same series RLC branch in the figure above is represented by a rational function Y(z). The
coefficients of s given above are converted into Z-transform quantities by applying the bilinear
transformation:
2 (1 − z −1 )
s= ⋅
∆t (1 + z −1 )

Following rational function is obtained for a Bt = 0.0005 s

10 − 10z −1
Y(z) =
41 − 79z −1 + 40z − 2

Note, for a different time step Bt, these coefficients are no longer valid, i.e. they must be
recalculated for each new DELTAT. The EMTP data case looks as follows:
IV. Linear branch cards - 97

BEGIN NEW DATA CASE


C
C Series R-L-C, modelled by KIZILCAY F-DEPENDENT element (Z-transform):
C R = 0.05 , L = 1 mH, C = 5 mF
C + RL = 0.05
C
C DELTAT TMAX XOPT COPT
0.0005 0.05 50.
C IOUT IPLOT IDOUBL KSSOUT MAXOUT ICAT
10 1 1 1 1 2
RES 0.05
C -- preceding R branch defines node names and output option
C <....>: dummy value!
GEN RES 99. 1
C 1 2 3 4 5 6 7 8
C 345678901234567890123456789012345678901234567890123456789012345678901234567890
C ---Request-------> < ORDER><-------- GAIN ---------> |
KIZILCAY F-DEPENDENT 2 1.0 Z-transform
C -coeff. of numerator--><-coeff. of denominator->
10.0 41.0
0.0 -79.0
-10.0 40.0
BLANK ending branch cards
BLANK ending switch cards
14GEN 10. 50. -1.
BLANK ending source cards
1
BLANK ending plot cards
BEGIN NEW DATA CASE
BLANK *** ending data case ***
V. Nonlinear elements - 1

V. NONLINEAR ELEMENTS

Single-phase nonlinear elements are those consisting of a single, nonlinear network branch
having two terminal nodes. Both resistors R and inductors L fall into this class. Although such
elements are usually installed in 3-phase banks at some location of the network, the elements
themselves are inherently single-phase. It is not the elements themselves, but rather the network, which
provides coupling among such elements. This is to be contrasted with multiphase nonlinearities of
rotating electric machinery, which are not treated in the present single-phase section (for machinery,
see Section VIII and IX) .

In addition to nonlinear elements, time-dependent elements are also treated in the present
section. Although linear, such elements can not conveniently be solved together with those linear
elements that are constant (and which can be built into a constant nodal admittance matrix [Y]. Time-
varying linear elements are grouped with nonlinear elements because they can be solved by the same
specialized solution techniques. The Type-97 staircase time-varying resistance of Section V-C is
solved along with pseudo-nonlinear elements, whereas the Type-91, piecewise-linear, time-varying
resistor of Section V-F is solved along with true nonlinear elements using compensation and
superposition.

The dominant distinction among the various nonlinear and time-varying elements of the present
chapter has to do with the solution method that is used. Half are solved "exactly" as "true"
nonlinearities, using compensation and superposition. The other half, called "pseudo-nonlinear", are
only solved approximately (although this may be perfectly adequate for engineering purposes. Pseudo-
nonlinearities are represented at each time step by a single linear segment that was selected from the
known solution of the preceding time step. Whereas true nonlinearities are rigorously solved using
Newton's method to iterate on all coupled nonlinear equations of an isolated subnetwork, pseudo-
nonlinearities have no such coupling, and the resulting solution may involve error (if operation does
not remain on assumed linear segment). A pseudo-nonlinearity is really only appropriate if the user
knows that the resulting operation will vary smoothly along the characteristic as a function of time.

The various subsections of this chapter are devoted to specific nonlinear elements. They have
been ordered according to the solution method that is used. First come the pseudo-nonlinear models
(Section V-A through V-D), followed by the true nonlinear models (Section V-E through V-J). The
Table of Contents (Section 0) provides a summary list of all of them.

The computational burden of true nonlinearities is quite different from that of pseudo-
nonlinearities, and this difference should be understood by the user. For the case of inductors, this
aspect is important in selecting between the two alternate forms of modeling. Pseudo-nonlinearities are
represented within the nodal admittance matrix [Y] for the linear network. Each time the operating
point of any pseudo-nonlinear element of the network changes from one linear segment to another of
the piecewise-linear characteristic, the affected four elements of [Y] must be modified, and the entire
matrix must be retriangularized. Case summary statistics show the number of times this has happened
upon the completion of execution (see "No. times=" in the line of List 5). As network size grows to
infinity, reliance upon pseudo-nonlinear modeling would result in segment changes on nearly every
time step, and hence very slow simulation. Users who assemble network with thousands of nodes and
hundreds or thousands of nonlinearities should be aware of this disturbing asymptotic limit. As for true
nonlinearities, these are not a part of [Y] at all. Instead, they are handled as current injections (using
2 -V. Nonlinear elements

superposition) after the nonlinear elements’ currents have been found by a solution that involves a
Thevenin equivalent of the linear network . This is the compensation approach. Provided distributed-
parameter transmission circuits isolate nonlinearities into subnetworks of reasonable size ( e.g.,
involving just 3, or 6 or even 12 nonlinearities for each subnetwork), compensation has the advantage
that computational effort only varies linearly with network size, and repetitive triangularization of [Y]
is avoided.

Smoothness of operation is even more important than computational efficiency in selecting


between "true" and "pseudo" nonlinear element modeling, however. After all, if a simulation is
erroneous, it matters little how quickly the computer produced it. Unless the user is sure that operation
will be smooth, he should consider avoiding pseudo-nonlinear modeling, since the error might be
intolerable. On the other hand, if the user does know that operation will be smooth, he is advised to
consider avoiding true nonlinear modeling in order to minimize the burden and/or conflicts of
compensation. Resistors and inductors are quite different in this respect.

As a general rule, nonlinear resistors may undergo unpredictable and discontinuous operation.
For example, a resistor in parallel with a linear inductor will have voltage that is equal to the derivative
of the inductor current, and this derivative need not be continuous. On the other hand, resistors in
parallel with lumped, linear capacitance will necessarily operate smoothly, since voltage is the integral
of capacitor current. So, pseudo-nonlinear modeling of a resistor in parallel with a linear inductor is
generally suicidal, whereas pseudo-nonlinear modeling of a resistor in parallel with a capacitor is
generally acceptable. But if such details are unclear, the general rule is that nonlinear resistors should
be modeled as true nonlinear elements. I.e., in the absence of knowledgeable advice to the contrary,
avoid Type-99 modeling of Section V-A, and use Type-92 modeling of Section V-E and V-F instead.

As a general rule, nonlinear inductors will operate smoothly, since flux is the integral of
voltage. Hence pseudo-nonlinear modeling (Type-98 of Section V-B, or Type-96 of Section V-D) is
acceptable, and is to be preferred over the true nonlinear modeling (Type-93 of Section V-H). This
assumes that the network is not too large (resulting in too much triangularizing), and that the
characteristic is not represented by too many segments (resulting in too many or too fast changes
among segments). The general principle is simple: compensation is too good and too powerful to be
wasted on something as simple as a saturable reactor. Save the compensation for those cases where it
may be needed (e.g., ZnO modeling, or maybe the U.M.).

Pseudo-nonlinear elements involve no inherent prohibitions regarding connectivity. Not so for


true nonlinear elements, which must be isolated in subnetworks (by distributed transmission circuits)
that do not contain compensation-based U.M. usage. This is because any of the true nonlinearities of
the present Section V can be solved together as a coupled set. However, the solution method does not
allow for U.M. equations, which are completely different. The U.M. can be present in the same
subnetwork, but it must be represented without compensation.

Because user-supplied FORTRAN has been connected to true nonlinear elements, but has not
yet been connected to pseudo-nonlinear elements, there is much greater potential variability of true
nonlinearities. If the reader does not notice the nonlinear modeling that he is looking for, perhaps he
could write his own. Details are covered in Section V-J.
V. Nonlinear elements - 3

"TACS CONTROL" to Modify Any True Nonlinear Element

TACS can be used to modify or enhance any basic, true, nonlinear element in any one or a
combination of the following three elementary ways:

1) A TACS-controlled series voltage source can be added;


2) A TACS-controlled shunt current source can be added;
3) The nonlinear characteristic can be scaled by TACS.

Each true nonlinear element can use up to three TACS variables to control these three
functions. The names are declared on a special-request card that must immediately follow the ""9999"-
card that terminates the nonlinear element to be controlled. The format of the declaration is as follows:

1 2 3 4 5 6 7 8
12345678901234 567890123456 789012 345678901234567890123456789012345678901234567890

TACS CONTROL NAME1 NAME2 NAME3


A6 A6 A6

The three TACS variable names of columns 15-32 correspond to the three functions listed, in
order. Any name that is left blank is interpreted as a request for no such TACS control. In the cases of
sources, the value (voltage or current, respectively) is set equal to the controlling TACS variable at
each time step. As for the usage of NAME3 to scale the characteristic, it is the current that is
multiplied by the TACS variable in question. Examples of such usage can be found in the
BENCHMARK test cases. For series voltage ("NAME1") control, see the 2nd subcase of
BENCHMARK DC-37; For shunt current ("NAME2") control, see the 2nd subcase of BENCHMARK
DC-45; For scaling of the characteristic ("NAME3" usage), see the 3rd subcase of BENCHMARK
DC-45.

The interpretation of the "TACS CONTROL" declaration can be illustrated by the solution to
the 2nd subcase of BENCHMARK DC-37:
--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC37_2.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Comment card. NUMDCD = 4. |C 2nd of 3 subcases. Same basic network as just solved, only with modified
<< Comment cards removed for brevity >>
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Misc. data. 5.000E-05 2.000E-02 0.000E+00 | .000050 .020
Misc. data. 1 1 1 0 1 -1 0 0 0 0 | 1 1 1 0 1 -1 0
Printout : 2 10 33 1 40 10 | 2 10 33 1 40 10 100 50
Electric network, too. But TACS data first ... |TACS HYBRID { We use TACS only to produce series voltage "BATTER" of ZnO
Free-format TACS supplemental variable defined. |99BATTER = 10000. { Small battery (dc source) is inserted in series with ZnO
Names of TACS variables for output vector. |33BATTER { Output the only this one TACS variable that controls ZnO source
TACS initial condition. "BATTER" 1.000000E+04 |77BATTER 10000. { Initial condition required for smooth electrical step 1
Blank card terminating all TACS data cards. |BLANK card ending all TACS data
3.060E-01 5.820E+00 1.200E-02 6.964E+02 1.671E-03|-1SEND REC .306 5.82 .012 200.
Type-92 R(i) 0.0000E+00 0.0000E+00 5.5550E+03 |92REC 5555. 1
Comment card. NUMDCD = 28. |C =============================================================================
Comment card. NUMDCD = 29. |C 92REC TYP11 5555. 1
Comment card. NUMDCD = 30. |C The preceding comment card is just for verification of solution. See the
Comment card. NUMDCD = 31. |C explanation on comment cards below the blank card ending switch cards.
Comment card. NUMDCD = 32. |C =============================================================================
Comment card. NUMDCD = 33. |C VREF VFLASH VZERO COL
Zinc oxide. 7.7800E+05 1.0000E+00 0.0000E+00 | 0.778000000000000E+06 1.0
Comment card. NUMDCD = 35. |C COEF EXPON VMIN
4 -V. Nonlinear elements

Breakpoint. 2.9480E-21 1.0000E+00 9.0000E+00 | 0.294795442961157E-20 1.0 .900000E+01


Special termination-of-points card. | 9999 { Bound on exponentials of 1st, pre-flash v-i curve
Breakpoint. 2.9480E+04 2.6530E+01 5.4505E-01 | 0.294795442961157E+05 0.265302624185338E+02 0.545050636122854E+00
Special termination-of-points card. | 9999 { Bound on exponentials of 2nd, post-flash v-i curve
3 TACS NL control variables. 40 0 0 | TACS CONTROLBATTER { Only 1st of three A6 names, for series voltage, is used
Blank card ending branches. IBR, NTOT = 1 3 |BLANK card terminating branch data

Convergence of Newton Iteration for True Nonlinear Elements

While it is possible that no solution will be found using Newton's method (in which case an
EMTP error termination would result), the nonlinear element solution should be correct if the
simulation runs to completion. This is a dominant advantage of the compensation-based approach. A
disadvantage is that isolating, distributed-parameter transmission lines must be used to separate a
subnetwork containing such single-phase nonlinear elements from any compensation-based U.M.
modeling. But since the U.M. generally can be used without compensation if necessary, the artificial
separation using stub lines is almost a thing of the past. Such isolation is almost never necessary for
single-phase, nonlinear elements, although it might be used as a matter of computational convenience
(to reduce the maximum number of nonlinearities within any one subnetwork).

Consider controls of the Newton iteration, which may require adjustment for difficult
configurations. It is the "ZINC OXIDE" special-request card of Section II-A that allows the user to
redefine Newton controls at the beginning of execution.

A possible error termination for true nonlinear elements is associated with singularity of the
equations being solved. To invert the Jacobian matrix [J] of Newton's method, pivoting is used , and
miscellaneous data parameter EPSILN provides the measure for "how small is small". If a solution is
diverging ("blowing up"), it is not uncommon for there to be an EMTP error termination complaining
about a singular [J]: KILL = 209, LSTAT(19) = 3501. This is particularly true for ZnO arresters of
Section V-E, since excess voltage is fed back into the ZnO nonlinearity to produce astronomical
currents. Elements of the Jacobian matrix thus can be quite abnormal, and it is the singularity test that
not infrequently terminates the simulation. BPA production users have had this problem in cases where
ZnO protection of series capacitors was used, with a fault placed on the system in the phasor sinusoidal
steady state solution for initial conditions (Ref. 8, Vol. X, Page MIOG-12, "Rule", 8 March 1980). So
if a simulation ends prematurely due to a singular Jacobian matrix, the user is advised to examine the
voltages across the nonlinear elements at the time of difficulty, since these provide the initial guess for
Newton's method. Unless such voltages are reasonable physically, the iteration has little hope for
convergence. Possibly the iteration limit would simply be reached, but more likely, singularity of the
Jacobian would be detected.

Should the Newton iteration of coupled nonlinear elements somehow terminate abnormally, the
user of interactive execution, observation, and control (SPY of Section XVI) will be given an
opportunity to observe and correct the trouble . First, there will be an abbreviated explanation of the
trouble, followed by suspension of the simulation, and a disaster-level audible alarm and prompt as
follows:
SEND REMEDY (SPY, SOLVE, LOOK, STOP) :

The simplest of possible responses is "STOP", which is to be used if the user surrenders, and if he
wants to terminate program execution. But more optimism is always appropriate. Simple "LOOK"
will result in repetition of the failed Newton iteration with DIAGNOSTIC printout turned on. The user
can control the level, since there will be a subsequent prompt for it in this case:
V. Nonlinear elements - 5

SEND DIAGNOSTIC LEVEL IPRSUP (I2 FORMAT):

The response "9" is generally appropriate here. From the resulting diagnostic output, the source of the
trouble may be evident, in which case the user might attempt an on-line correction using SPY (which
will be available after sending "SPY"). The user might want to change control parameters of the
Newton iteration via "DEPOSIT", and for this, the following information about the storage of variables
of the "ZINC OXIDE" special-request card is critical. The maximum number of iterations is stored in
variable MAXZNO, the convergence tolerance is EPSZNO, the warning tolerance is EPWARN, and
the fatal error tolerance (resulting in the present interruption) is EPSTOP. Finally, corrections of the
Newton iteration are limited by ZNOLIM(1) and ZNOLIM(2). The interactive user only relinquishes
control by sending "SOLVE". Yet, if the resulting, resumed iteration fails to converge, the "SEND
REMEDY" prompt will reappear in short order.
6 -V. Nonlinear elements

V-A. Type-99 Pseudo-Nonlinear Resistance R(i)

Data cards for Type-99, pseudo-nonlinear resistor R(i) begin with a single branch card bearing
type code "99" in columns 1-2:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 567890 12345678901234567890123456789 0

99 BUS1 BUS2 BUS3 BUS4 VFLASH TDELAY JUMP VSEAL K


A6 A6 A6 A6 E6.0 E6.0 E6.0 E6.0 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and
BUS4 of columns 15-26 are used for reference-branch or branch-naming purposes. As usual,
column 80 can be used for branch output requests. In between are four variables VFLASH, TDELAY, JUMP,
and VSEAL – all related to flashover of the built-in gap or opening on a current zero. The Type-99
branch is an open circuit during the phasor solution, and it is only connected when the branch voltage
exceeds (in absolute value) the threshold VFLASH. Then operation will begin on segment number JUMP,
and conduction will continue for a while (usually until a current zero).

When a current zero occurs, there will be opening, provided a time interval greater than or
equal to TDELAY has elapsed since the most recent flashover. The current zero is noted by reversal in the
sign of the current, and it is assumed that this reversal will occur only while operation is on the first
segment of the characteristic. If the current zero occurs while operation is on some higher segment, a
warning message will be issued:

!!! Tracking trouble with Type-99 or 98 element number I = XX.

If such a message is ever seen, the user should be skeptical of the solution, and should either
look for an error in his choice of parameters, or he should consider switching to true nonlinear
modeling.

An alternative opening strategy uses a voltage criterion rather than a current zero. If keyed
positive, parameter VSEAL provides for this: there will be disconnection when the branch voltage falls
below (in absolute value) this threshold. This allows opening before a current zero (useful in some
cases).

Next come cards that specify the nonlinear i-v characteristic point by point, from left to right
(in order of increasing device current), with one data card for each pair of values defining the
piecewise-linear curve. The format is:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

Current (i) Voltage (v)

E16.0 E16.0
V. Nonlinear elements - 7

The origin (0,0) is an implied point number zero that the user is to skip. The v-i characteristic is
assumed to be symmetric, so no negative values are to be keyed by the user. The user merely keys 2 or
more positive points (for a nonlinearity; one point would result in a linear branch), and terminates this
characteristic with a "9999"-card (a special value of current, in effect).

The user of Type-99 modeling must resist the illusory idea that accuracy improves as the
number of segments that define the characteristic approaches infinity. The trouble is this: operation is
only allowed to move from one segment to an adjacent segment during a single time step. Too many
segments means that operation sometimes will be on a wrong segment, leading to error.

If the user wants to allow a Type-99 element to flash only once, then he can use the "SINGLE
FLASH" option. This is declared on a "9999"-card as follows:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

9999. SINGLE FLASH

Within any data case, the "SINGLE FLASH" request is to be keyed only once, on the first
element (in order of data input) to be controlled in this way. Any other Type-99 element that has the
same first breakpoint voltage will be assumed to have such modeling, too. Hence any number of
Type-99 elements can be constrained to flash only once, but all must have the same characteristic (or
more precisely, the first voltage of each must be identical).

The interpretation of input data cards for the Type-99 pseudo-nonlinear resistance R(i) can be
illustrated using the solution to BENCHMARK DCPRINT-6. The initial branch card confirms the
values of parameters VFLASH, TDELAY, and JUMP, whereas (x,y) values of the characteristic are
confirmed for each such card:
--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DCP6.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C BENCHMARK DCPR-6
Comment card. NUMDCD = 4. |C Test of Type-99 pseudo-nonlinear resistance. 1-phase line energization.
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Debug print. 0 9 9 9 9 9 0 9 9 9 9 9 |DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
Misc. data. 2.000E-04 2.000E-02 6.000E+01 | .000200 .020 60. 60.
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 1 1 -1
Printout : 2 -1 5 5 20 20 | 2 -1 5 5 20 20
Series R-L-C. 1.000E+02 0.000E+00 0.000E+00 | REC 100. 3
3.000E-01 4.000E-01 1.260E+01 1.782E+02 5.955E-04|-1SEND REC 0.3 0.4 12.6 100.
Type-99 nonlinear R. 5.000E+00 0.000E+00 2 |99REC 5.0 2 1
Breakpoint. 1.00000E+00 1.00000E+02 | 1.0 100.
Breakpoint. 2.00000E+00 2.00100E+02 | 2.0 200.1
Special termination-of-points card. | 9999
Blank card ending branches. IBR, NTOT = 2 3 |BLANK card ending branch cards

Should the "SINGLE FLASH" option be used on the "9999"-card, then the interpretation of this
final card is augmented as follows
Special termination-of-points card. 1-flash | 9999
8 -V. Nonlinear elements

V-B. Type-98 Pseudo-Nonlinear Reactor L(i)


Data cards for a Type-98, pseudo-nonlinear reactor L(i) begin with a single branch card bearing
type code "98" in columns 1-2:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 90123456789012345678901234567890123456789 0

98 BUS1 BUS2 BUS3 BUS4 isteady østeady K

A6 A6 A6 A6 E6.0 E6.0 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and
BUS4 of columns 15-26 are used for reference-branch or branch-naming purposes. As usual,
column 80 can be used for branch output requests. In between are the coordinates ( i , ø) in the current-
flux plane for the linear representation during the steady-state phasor solution.

Next come cards that specify the nonlinear i – ø characteristic point by point, from left to right
(in order of increasing device current), with one data card for each pair of values defining the
piecewise-linear i – ø curve. The format is:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

Current (i) Flux (Ø)

E16.0 E16.0

The origin (0,0) is an implied point number zero that the user is to skip. The i – ø characteristic
is assumed to be symmetric, so no negative values are to be keyed by the user. The user merely keys
2 or more positive points (for a nonlinearity; one point would result in a linear branch), and terminates
this characteristic with a "9999"-card (a special value of current, in effect).

For typical production usage, the Type-98 pseudo-nonlinear inductance works well, and is
recommended ahead of the compensation-based, Type-93 model of Section V-H. The Type-98 reactor
is a subcomponent of the saturable TRANSFORMER model of Section IV-E, and can be connected
almost anywhere, in any number, without much concern by the user. The only general concerns are
about computational efficiency for very large cases (see Section V), problems with a large number of
short segments to represent the characteristic, and excessive flux during the phasor solution.

The user of Type-98 modeling must resist the illusory idea that accuracy improves as the
number of segments that define the characteristic approaches infinity. Operation is only allowed to
move from the current segment to an adjacent segment during a single time step, and this may cause
trouble. Too many segments means that operation will sometimes be on the wrong segment, leading
to error. Note that the use of 2 segments always avoids this problem (each segment is adjacent to the
other). On the other hand, two segments is too crude for typical, modern modeling. The use of 3 to 5
is common, and generally without trouble.
V. Nonlinear elements - 9

Trouble with excessive flux during the phasor solution refers to operation on other than the
first segment of the nonlinear characteristic. Actually, the characteristic is not used, since an equivalent
linear inductor of the user's choice is used to represent the branch during the phasor solution. But when
the phasor solution is complete, and the flux at time zero is calculated from it, there is a problem if this
initial flux exceeds the end of the first segment of the characteristic. Since flux is continuous, step one
of the transient simulation will involve an abrupt change of current, as the operating point moves
toward the appropriate 2nd or later segment. The associated surge of current produces voltage spikes
in other inductors, of course. In general, then, there may be bothersome discontinuities at time zero, if
the phasor flux exceeds the first segment of the magnetization curve. This is good reason to have a
long first segment, and also to consider adjusting the angular reference of phasors so that no one
problem flux is at its maximum at time zero.

The interpretation of input data cards for the Type-98 pseudo-nonlinear reactance L(i) can be
illustrated using the solution to the second subcase of BENCHMARK DCPRINT-15. The initial
branch card confirms the values of parameters i and ø , whereas (x,y) values of the characteristic are
confirmed for each such card:

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DCP15_2.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C 2nd of 2 subcases replaces the Type-93 reactor by a Type-98 one
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Debug print. 0 9 9 9 9 9 0 9 9 9 9 9 |DIAGNOSTIC 0 9 9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9
DELTAT-loop printout. 0 0 0 0 |ALTERNATE DIAGNOSTIC PRINTOUT, 0, 0, 0, 0, { Required for 2nd or later case only
Misc. data. 5.000E-03 1.000E+00 0.000E+00 | .005 1.0
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 1 1 -1
Printout : 2 -1 5 5 20 20 | 2 -1 5 5 20 20
Series R-L-C. 1.000E+03 0.000E+00 0.000E+00 | LOAD 1.0E3 3
Sat. Xformer. 0.000E+00 0.000E+00 0.000E+00 | TRANSFORMER TRAN
Special termination-of-points card. | 9999
Winding 1. 5.0000E+00 5.0000E+01 5.0000E+01 | 1GENT 5.0 5.E4 50. 1
Winding 2. 2.0000E+01 2.0000E+02 1.0000E+02 | 2LOAD 20. 2.E5 100.
Type-98 pseudo-nonlinear L. 5.000E-03 3.000E+01 |98TRAN .005 30. 3
Breakpoint. 5.00000E-03 3.00000E+01 | .005 30.
Breakpoint. 1.00000E-02 4.00000E+01 | .01 40.
Breakpoint. 2.00000E-02 4.50000E+01 | .02 45.
Breakpoint. 1.00000E-01 5.00000E+01 | 0.1 50.
Breakpoint. 5.00000E+00 1.00000E+02 | 5.0 100.
Special termination-of-points card. | 9999
10 -V. Nonlinear elements

V-C. Type-97 Staircase Time-Varying Resistance R(t)

If a staircase representation of resistance is acceptable, then the Type-97 branch may be


appropriate for modeling a time-varying resistance. On the other hand, if continuity of the time-varying
resistance is desired, the reader is advised to consider the piecewise-linear alternative that is provided
by Type-91 modeling in Section V-F. Or the user could control the resistance himself from TACS
(using the TACS-controlled R(t) of Section V-I).

Even though it is linear, the staircase time-varying resistance is solved by the same
computational procedure as are pseudo-nonlinear elements. That is, each time there is a change of
resistance (from one step to another), [Y] must be modified and retriangularized. As a result, for
simplicity, the Type-97 element is sloppily referred to as a pseudo-nonlinear element.

Data cards for Type-97 staircase, time-varying resistance R(t) begin with a single branch card
bearing type code "97" in columns 1-2:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 90123456789012345678901234567890123456789 0

97 BUS1 BUS2 BUS3 BUS4 VFLASH TDELAY K

A6 A6 A6 A6 E6.0 E6.0 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and
BUS4 of columns 15-26 are used for reference-branch or branch-naming purposes. As usual,
column 80 can be used for branch output requests. In between are the flashover voltage VFLASH in
columns 27-32 and a delay time TDELAY in columns 33-38. These two parameters control when the
element is connected to, and when it is to be disconnected from, the network. There are just three
common cases:

Case 1: If TDELAY = –1, then VFLASH is ignored, and the element is assumed to be connected for all
time, including the phasor solution for initial conditions. In effect, the first segment or step
is extended horizontally to the left to cover all negative times (this is the resistance used
for phasor solution).

Case 2: If TDELAY > 0 , the element will never be connected before the simulation time t reaches
this minimum time TDELAY . If no such delay is wanted, leave the field blank, or key zero.

Case 3: If VFLASH > 0 , and TDELAY –1 , then the element will never be connected before the
branch voltage reaches this flashover value VFLASH. Yet the user must remember that
positive TDELAY also inhibits such connection (see case 2). By leaving VFLASH blank or
zero, there is no such flashover gap.

Next come cards that specify the staircase resistance values point by point, from left to right (in
order of increasing time), with one data card for each pair of values defining the staircase R(t) curve.
V. Nonlinear elements - 11

The format is:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

Time (t) Resistance (R)

E16.0 E16.0

Such data (2 or more such cards) are to be terminated by a 9999-card (a special value of time,
in effect). The user need not worry about times larger than his last point, since the program
automatically extends the final step to infinite time.

The interpretation of input data cards for the Type-97, staircase, time-dependent resistance R(t)
can be illustrated using the solution to BENCHMARK DC-42. The initial branch card confirms the
values of parameters VFLASH , TDELAY , whereas (x,y) values of the characteristic are confirmed for each
such card:
--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC42.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C BENCHMARK DC-42
Comment card. NUMDCD = 4. |C Test of batch-mode Fourier series and "X-Y PLOT" capability. Also, a
Comment card. NUMDCD = 5. |C Type-97 staircase time-varying resistance element, and Type 1-10 source
Comment card. NUMDCD = 6. |C is present. A Type-91 compensation-based nonlinear resistor was added.
Comment card. NUMDCD = 7. |C For answer to Fourier series, see EMTP Rule Book, page 43-m, HWD example
Comment card. NUMDCD = 8. |C 1st of 3 data subcases, of which only two are real (3rd is a near-dummy)
Request preceding 5 printout number pairs. |CHANGE PRINTOUT FREQUENCY
Printout : 10 5 0 0 0 0 | 10 5
Misc. data. 1.000E+00 6.000E+01 0.000E+00 | 1.0 60.
Misc. data. 1 1 0 0 0 0 0 0 0 0 | 1 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | VALUE 1.0
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | COS 1.0 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | SIN 1.0 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | GEN LOAD 1.0
Type-97 R(T). 0.0000E+00 -1.0000E+00 |97LOAD -1. 1
Breakpoint. 0.00000E+00 1.00000E+00 | 0.0 1.0
Breakpoint. 2.01000E+00 5.00000E-01 | 2.01 0.5
Breakpoint. 6.01000E+00 2.00000E+00 | 6.01 2.0
Breakpoint. 7.01000E+00 1.00000E+35 | 7.01 1.E35
Special termination-of-points card. | 9999.
12 -V. Nonlinear elements

V-D. Type-96 Pseudo-Nonlinear Hysteretic Inductor L(i)

The pseudo-nonlinear hysteretic inductor is very similar to the Type-98 pseudo-nonlinear


inductor described in Section V-B. The major difference is that the Type-96 element represents the
hysteretic behavior of the magnetic core, whereas the Type-98 element does not.

Data cards for a Type-96, pseudo-nonlinear, hysteretic inductor L(i) begin with a single branch
card bearing type code "96" in columns 1-2:

1 2 3 4 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 56789012345678901234567890123456789 0

96 BUS1 BUS2 BUS3 BUS4 isteady østeady RESID K

A6 A6 A6 A6 E6.0 E6.0 E6.0 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and
BUS4 of columns 15-26 are used for reference-branch or branch-naming purposes. As usual,
column 80 can be used for branch output requests. In between are the coordinates ( i , ø) in the current-
flux plane for the linear representation during the steady-state phasor solution. There also is RESID of
columns 39-44, which is for an optional residual flux. More about these final three data fields later.

Next come cards that specify the nonlinear i – ø characteristic point by point. There is assumed
symmetry to the hysteresis loop, so only points of the lower half of the loop are to be inputted. These
begin with the first point to the right of the negative saturation point (where the two curves meet in the
3rd quadrant), and they end one point to the right of the positive saturation point (where the two curves
meet in the first quadrant). Points are inputted from left to right (in order of increasing device current),
with one data card for each pair of values defining the piecewise-linear lower curve. The format is:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

Current (i) Flux (Ø)

E16.0 E16.0

Such data are terminated by "9999"–card (a special value of current, in effect).

If a hysteretic inductor is not energized during the phasor solution for initial conditions, then
residual flux is to be keyed in data field RESID of columns 39-44. On the other hand, if the inductor
is energized during the steady-state, then value RESID generally will be ignored. In any case, RESID
must lie within the major hysteresis loop. If not, execution will be terminated with an error message
(KILL = 205) .
V. Nonlinear elements - 13

The steady-state phasor solution for initial conditions is the trickiest aspect of the Type-96
hysteresis element. Although only the ratio of østeady and i steady is actually required to define the phasor
reactance, østeady is taken to be the limit of the linear region of operation. If initial flux exceeds this
value, the EMTP prints out a warning message after the steady-state solution. In addition, the point
(i steady, østeady) must lie within the major hysteresis loop. If it does not, the program will halt execution
with an error message (KILL = 204). As a general rule, the user should avoid a phasor inductance
smaller than that corresponding to the positive saturation point.

The user also has the option of allowing the program to calculate i steady and østeady itself. This
option is chosen by keying i steady = 8888 and leaving østeady (columns 33-38) blank. Then the program
will select the steady-state point by the following method. First, an energization trajectory extending
from the origin to the positive saturation point is imagined. On this curve, the point having flux equal
to 70% of the saturation flux will then be chosen as the steady-state point. I.e., the phasor inductance
will pass through this point.

Whenever a Type-96 element is being used, there must be a phasor solution, whether it is used
for the subnetwork of the hysteretic inductor or not. If this is not the case, execution will be terminated
with an error message (KILL = 203). The remedy to such a complaint is easy enough: add an isolated,
dummy source and a one-ohm resistor to ground.

An additional restriction must be imposed on any phasor solution for initial conditions of the
hysteretic inductor. If the initial condition is found to lie outside of the major hysteresis loop, this is
impossible, so can not be allowed. The program will move any such illegal initial condition so that it
does lie within the major loop. Logic for this is simple enough. In effect, the program draws a line of
constant current through the illegal initial point, noting the two flux values where this line intersects
the upper and lower halves of the major hysteresis loop. An average of these two flux values is used
along with the solution current for the required initial condition. Whenever such correction is required,
the program will issue a detailed warning message. It is the user's responsibility to determine whether
the change made is acceptable or not. It should be realized that transients due to sudden changes in
flux (such as those being made here) may die out very slowly. It is strongly suggested that the user
make legitimate alterations that cause all such messages to disappear.

It is anticipated that many users will have difficulty obtaining hysteresis characteristics for
type-96 modeling. Those who lack all data are referred to Section XIX-H for a simple, first attempt
based on standard magnetic core materials. An example is provided by the third subcase of
BENCHMARK DC-13.
14 -V. Nonlinear elements

The interpretation of input data cards for the Type-96 hysteretic inductor L(i) can be illustrated
using the solution to BENCMARK DC-33. The initial branch card confirms the three floating-point
parameters i , ø, and RESID, whereas (x,y) values of the characteristic are confirmed for each such
card:

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC33.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Misc. data. 5.000E-05 2.000E-02 0.000E+00 | .000050 .020
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 1 1 -1
Printout : 5 5 20 20 0 0 | 5 5 20 20
Electric network, too. But TACS data first ... |TACS HYBRID
TACS function "FLUX ". Order = 1. 1.0000E+00 | 1FLUX +GEN
Numer. 1.00E+00 0.00E+00 | 1.0
Denom. 0.00E+00 1.00E+00 | 0.0 1.0
TACS source. 0.000E+00 0.000E+00 0.000E+00 |90GEN
TACS source. 0.000E+00 0.000E+00 0.000E+00 |91GROUND
Fixed-format TACS supplemental variable defined. |99CURR -1.0* GROUND
Names of TACS variables for output vector. |33FLUX GEN GROUNDCURR
Blank card terminating all TACS data cards. |BLANK card terminates all TACS data
Hysteresis. 8.8880E+03 0.0000E+00 1.0000E-09 |96GROUNDGEN 8888. 1.E-9 1
Breakpoint. 1.00000E+00 -7.00000E-01 | 1.0 -0.7
Breakpoint. 2.00000E+00 9.00000E-01 | 2.0 0.9
Breakpoint. 3.50000E+00 1.00000E+00 | 3.5 1.0
Special termination-of-points card. | 9999
Blank card ending branches. IBR, NTOT = 0 3 |BLANK card ending all BRANCH cards

The diagram above shows the characteristic of the hysteretic inductor defined by entering the three
points 1, 2 and 3. The hysteretic curve is assumed to be symmetric about the origin.
V. Nonlinear elements - 15

V-E. Exponential ZnO surge arrester R(i) (Type-92; "5555")

The model of this section provides for true (as opposed to pseudo) nonlinear representation of
an arbitrary number of ZnO surge arresters. The original theory and implementation are documented
in Ref. 22, Vol. 1, No. 2, December 1979, pages 6-9. Extension to multiple exponentials and a static
gap is documented in Ref. 22, Vol. 1, No. 3, April 1980, pages 8-13.

The basic constraint equation for ZnO modeling is resistive, and is highly nonlinear :

where "i" is the arrester current, "v" is the arrester voltage, and "p", Vref , and "q" are constants of the
device. Typically one picks the reference voltage Vref to be twice the rated voltage, or something close
to this. In theory, the choice is arbitrary (it is an extra parameter, note). However, it normalizes the
equation, and prevents numerical overflow during the exponentiation. Then constants "p" and "q" are
unique parameters of the device.

The nonlinear V-I arrester characteristic can be approximated by an arbitrary number of


exponential segments. Both gapped and gapless arresters can be represented. The gapped arrester
requires the specification of two sets of exponential segments, while the gapless arrester requires only
one set. The choice of exponentials can be made automatically by a separate supporting program (use
the request "ZNO FITTER" of Section XIX-I). Least-mean-square fitting is used.

Although the exponential modeling of the present section can be applied to other cases than
ZnO, as a general rule, it should not be wasted on less extreme nonlinearities. If a piecewise-linear
characteristic of only a few segments would be sufficiently accurate, the alternative of Section V-G
probably should be considered. Unless there is a real need, the use of exponentials is wasteful
computationally, and is more cumbersome to use.

Due to the extreme nonlinearity of ZnO characteristics, very little current is drawn for voltages
that are substantially below the rated voltage Vref (e.g., 0.530 = 9.E–10). So, in order to avoid the
possibility of underflow during exponentiation, and also to speed the numerical solution, a linear
model is actually used for low voltages. But this is hidden, out of sight of the user, and it need not
concern him. In physical terms, the solution is unaffected by such simplification (no ammeter could
detect the difference).

There is some application of the present model to silicon carbide (SiC) arresters, although
serious (perhaps unacceptable) approximations must be made. No dynamics of the gap can be
provided. Hence the possibilities of such usage will not be emphasized. The interested reader is
referred to Ref. 22, Vol. 1, No. 3, April 1980, pages 8-13. In essence, such usage represents the block
very accurately ( "two exponential segments appear to provide a very adequate fit") while ignoring
totally the dynamics of the gap (the gap modeling after flashover) .
16 -V. Nonlinear elements

Data for a ZnO surge arrester begin with a single branch card for a Type-92 nonlinear element
(nonlinear resistance). Invariant data of such a ZnO request consists of "92" in columns 1-2 and the
special ZnO identifier "5555." in columns 39-44:

1 2 3 4 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 56789012345678901234567890123456789 0

92 BUS1 BUS2 BUS3 BUS4 K

A6 A6 A6 A6 5555. I

As usual, terminal names are BUS1 and BUS2 ( columns 3-14 as 2A6 information), and BUS3
and BUS4 (columns 15-26) can be used for the reference branch feature, if data of this arrester is to be
copied from a preceding one. Variable K is for branch output requests (keyed in column 80 as usual,
with values 1 through 4).

The second data card of a ZnO surge arrester contains control variables VREF, VFIASH, VZERO, and
COL as follows:

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890 1234567890123456789012345 67890

VREF VFLASH VZERO COL

E25.0 E25.0 E25.0 E5.0

VREF (cols. 1-25) is the reference voltage of the ZnO constraint equation, in units of voltage
(nominally, volts).

VFLASH (cols. 26-50) is the normalized (i.e., divided by VREF) flashover voltage of the gap. If the
arrester is gapless, any negative number should be keyed .

VZERO (cols. 51-75) is the initial arrester voltage (the value at time zero, in effect) in the same
units as VREF . In almost all cases, leave it blank. The Newton iteration then will begin with
zero current.

COL (cols. 76-80) is the number of columns (parallel copies or elements) of the characteristic.
If blank, zero, or unity, one column is assumed, and the characteristic is to be used without
modification. But for positive COL (normally an integer), the coefficient COEF of all
following cards will be internally multiplied by COL during data input, prior to storage
and usage.
V. Nonlinear elements - 17

Next come cards that specify the exponential segments. These begin with the characteristic
before flashover (the only characteristic if there is no gap). Each characteristic is to be terminated by
a special "9999"-card (this value is to be keyed in columns 22-25). The following format is used for
each exponential segment of each characteristic, in natural order (of increasing current and voltage):

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890 1234567890123456789012345 67890

COEF EXPON VMIN

E25.0 E25.0 E25.0

COEF (cols. 1-25) is the coefficient "p" of the ZnO constraint equation (see the start of this
section). This is in units of current (normally amperes) .

EXPON (cols. 26-50) is the dimensionless exponent "q" of the ZnO constraint equation.

VMIN (cols. 51-75) is the minimum voltage for usage of the just-stated characteristic, in per unit
based on the reference voltage VREF.

All such cards describing the exponential segments of a ZnO characteristic are to be in their natural
order of increasing device current. Terminate each grouping with a "9999"-card. If the arrester is
equipped with a gap, the preflashover characteristic comes first, followed by the post-flashover
characteristic.

Control of the Newton iteration is provided by various parameters that initially are defined by
the STARTUP file, but which may be redefined by a "ZINC OXIDE" special-request card. See details
of the latter in Section II-A for an explanation of the six controls.

Illustrations of ZnO usage can be found in the several subcases of BENCHMARK DC-37 (for
single-phase ZnO) and DC-38 (which involves a 3-phase bank of ZnO).

The interpretation of input data cards for a ZnO surge arrester can be illustrated using the
solution to the second subcase of BENCHMARK DC-37:

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC37_2.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C DIAGNOSTIC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Comment card. NUMDCD = 4. |C 2nd of 3 subcases. Same basic network as just solved, only with modified
Comment card. NUMDCD = 5. |C ZnO characteristic as derived by DC-39. One exponential with flashover.
<< Comment cards removed for brevity >>
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Misc. data. 5.000E-05 2.000E-02 0.000E+00 | .000050 .020
Misc. data. 1 1 1 0 1 -1 0 0 0 0 | 1 1 1 0 1 -1 0
Printout : 2 10 33 1 40 10 | 2 10 33 1 40 10 100 50
Electric network, too. But TACS data first ... |TACS HYBRID { We use TACS only to produce series voltage "BATTER" of ZnO
Free-format TACS supplemental variable defined. |99BATTER = 10000. { Small battery (dc source) is inserted in series with ZnO
Names of TACS variables for output vector. |33BATTER { Output the only this one TACS variable that controls ZnO source
TACS initial condition. "BATTER" 1.000000E+04 |77BATTER 10000. { Initial condition required for smooth electrical step 1
Blank card terminating all TACS data cards. |BLANK card ending all TACS data
3.060E-01 5.820E+00 1.200E-02 6.964E+02 1.671E-03|-1SEND REC .306 5.82 .012 200.
Type-92 R(i) 0.0000E+00 0.0000E+00 5.5550E+03 |92REC 5555. 1
18 -V. Nonlinear elements

Comment card. NUMDCD = 28. |C =============================================================================


Comment card. NUMDCD = 29. |C 92REC TYP11 5555. 1
Comment card. NUMDCD = 30. |C The preceding comment card is just for verification of solution. See the
Comment card. NUMDCD = 31. |C explanation on comment cards below the blank card ending switch cards.
Comment card. NUMDCD = 32. |C =============================================================================
Comment card. NUMDCD = 33. |C VREF VFLASH VZERO COL
Zinc oxide. 7.7800E+05 1.0000E+00 0.0000E+00 | 0.778000000000000E+06 1.0
Comment card. NUMDCD = 35. |C COEF EXPON VMIN
Breakpoint. 2.9480E-21 1.0000E+00 9.0000E+00 | 0.294795442961157E-20 1.0 .900000E+01
Special termination-of-points card. | 9999 { Bound on exponentials of 1st, pre-flash v-i curve
Breakpoint. 2.9480E+04 2.6530E+01 5.4505E-01 | 0.294795442961157E+05 0.265302624185338E+02 0.545050636122854E+00
Special termination-of-points card. | 9999 { Bound on exponentials of 2nd, post-flash v-i curve
3 TACS NL control variables. 40 0 0 | TACS CONTROLBATTER { Only 1st of three A6 names, for series voltage, is used
Blank card ending branches. IBR, NTOT = 1 3 |BLANK card terminating branch data
Blank card ending switches. KSWTCH = 0. |BLANK card terminating all (in this case, nonexistent) switches
Comment card. NUMDCD = 43. |C =============================================================================

Recommendations in Case of Nonconvergence of a ZnO Iteration

Should the ZnO solution using Newton's method fail to converge, remedial action almost
always is possible provided the parameters of the model are realistic. Understanding of basic numerical
mathematics is the key. One potential source of failure, namely singularity of the Jacobian matrix [J],
has already been discussed toward the end of Section V. Although such solution failure applies to all
nonlinear elements, it is most commonly associated with one or more ZnO elements. This is because
of the extreme nonlinearity involved. Any ZnO user is advised to read the aforementioned paragraph
carefully. In addition, there are several more specific recommendations to correct failed Newton
iterations:

1. Really gross blunders by the user are the source of considerable difficulty with production
usage of ZnO modeling. For example, if there is confusion between sets of arrester data, it is
possible for lower-voltage ZnO data to be applied at a higher-voltage bus, with the result
typically being a nonconverged iteration. So, any user should always check that his ZnO
characteristic does in fact match the voltage that is being applied to it.

2. Reduction of the simulation time-step size DELTAT might help, sometimes. Recall that
Newton's method is guaranteed to converge if a solution exists, provided the initial guess is
close enough. This may translate into a need to track the transient closely, since the initial
guess for the Newton iteration comes from the solution of the preceding time step (for steps
numbered 2 or later). Too big a time step might make the shock too big for the Newton
iteration to survive.

3. Some spurious voltage oscillation can sometimes be removed by connecting a leakage


capacitance or bus capacitance in parallel with the arresters having trouble. A resistor in series
with a capacitor can provide useful damping. For further details of this concept, although
emphasis is on inductors rather than capacitors, see Ref. 22, Vol. 2, Number 3, February 1982,
pages 10-32.

4. Interactive execution, observation, and control (SPY) of Section XVI provides the most
convenient framework for the remedy of nonconverged groupings of ZnO. Even if the
correction is not made interactively, the diagnosis is so much simpler, particularly for big cases
(for which conventional, batch-mode DIAGNOSTIC printout can be overpowering). This was
summarized at the end of Section V.
V. Nonlinear elements - 19

V-F. Type-91 Multiphase Time-Varying Resistance R(t)

The Type-91 component of the present section provides for the continuous, piecewise-linear
representation of a time-varying resistance R(t). This is to be contrasted with the Type-97
representation of Section V-C, for which the function R(t) is necessarily a discontinuous, staircase
function. The present element uses compensation the same way "true" nonlinear elements do. Any
Type-91 elements are solved using Newton's method along with all true nonlinear elements of a
subnetwork.

The Type-91 resistive element begins as an open circuit, drawing no current. It is connected to
the circuit only when the terminal voltage exceeds (in absolute value) the user-specified initiation
voltage VSTART . At this instant, the timer of the resistance function R(t) is started. If TSTART is the
instant when voltage exceeds VSTART , then the resistance for larger times t is R( t – TSTART ). This is
the correct mathematical notation, although for simplicity we usually denote this using the shortened
form R(t). There is a time offset, however, and this offset usually is unknown ahead of time, since it
depends on the solution voltage.

Data cards for a time-varying resistance begin with a branch card bearing type code "91" in
columns 1-2 and the further identifier "3333." in columns 39-44:

1 2 3 4 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 56789012345678901234567890123456789 0

91 BUS1 BUS2 BUS3 BUS4 K

A6 A6 A6 A6 3333. I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and BUS4
of columns 15-26 are used for the reference-branch or branch-naming purposes. Finally, column 80
can be used for branch output requests. For an example of such usage, see BENCHMARK DC-42.

This initial branch card is to be followed by a separate card from which the starting voltage VSTART is
read:

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890

VSTART

E25.0

Present element logic requires a positive value for this datum. Hence, if the user really wants the
Type-91 timer to begin when voltage first becomes nonzero, he can key an arbitrarily small number
(e.g., 1.E-38, which should be valid for all modern scientific computers).

After these two initial cards come those that specify the piecewise-linear characteristic R(t)
point-by-point, with time increasing monotonically:
20 -V. Nonlinear elements

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890 123456789012345678901234567890

Resistance Time

E25.0 E25.0

Such data (two or more such cards) are to be terminated by a "9999"-card (a special value of
resistance, in effect).

Control parameters for the Newton iteration are defined by the STARTUP file. Yet they also
can be changed by the special-request word "ZINC OXIDE" (see Section II-A). But note that there is
no nonlinearity associated with the Type-91 element, which is time-dependent rather than nonlinear.
Hence the Newton iteration will converge exactly in a single step unless some Type-92 element
(nonlinear v-i) is involved in the same subnetwork, and hence must be solved as part of the same
coupled group.

The interpretation of input data cards for the Type-91 time-dependent resistance R(t) should be
self-explanatory from the illustration that follows (drawn from the solution to BENCHMARK DC-42):

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC42.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C BENCHMARK DC-42
Comment card. NUMDCD = 4. |C Test of batch-mode Fourier series and "X-Y PLOT" capability. Also, a
Comment card. NUMDCD = 5. |C Type-97 staircase time-varying resistance element, and Type 1-10 source
Comment card. NUMDCD = 6. |C is present. A Type-91 compensation-based nonlinear resistor was added.
Comment card. NUMDCD = 7. |C For answer to Fourier series, see EMTP Rule Book, page 43-m, HWD example
Comment card. NUMDCD = 8. |C 1st of 3 data subcases, of which only two are real (3rd is a near-dummy)
Request preceding 5 printout number pairs. |CHANGE PRINTOUT FREQUENCY
Printout : 10 5 0 0 0 0 | 10 5
Misc. data. 1.000E+00 6.000E+01 0.000E+00 | 1.0 60.
Misc. data. 1 1 0 0 0 0 0 0 0 0 | 1 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | VALUE 1.0
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | COS 1.0 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | SIN 1.0 1
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | GEN LOAD 1.0
Type-97 R(T). 0.0000E+00 -1.0000E+00 |97LOAD -1. 1
Breakpoint. 0.00000E+00 1.00000E+00 | 0.0 1.0
Breakpoint. 2.01000E+00 5.00000E-01 | 2.01 0.5
Breakpoint. 6.01000E+00 2.00000E+00 | 6.01 2.0
Breakpoint. 7.01000E+00 1.00000E+35 | 7.01 1.E35
Special termination-of-points card. | 9999
Series R-L-C. 5.000E+03 0.000E+00 0.000E+00 | A1 A2 5.E+3 1
Series R-L-C. 5.000E+03 0.000E+00 0.000E+00 | A2 5.E+3
Time-vary R, Type 91. 0.0000E+00 3.3330E+03 |91A2 3333. 1
Type-91 misc. data. V-start = 3.00000000E+05 | 300000.
Breakpoint. 3.00000E+02 0.00000E+00 | 300. 0.0
Breakpoint. 2.00000E+02 3.00000E+00 | 200. 3.0
Breakpoint. 1.50000E+02 6.00000E+00 | 150. 6.0
Breakpoint. 1.50000E+02 1.00000E+03 | 150. 1000.
Special termination-of-points card. | 9999.
Blank card ending branches. IBR, NTOT = 6 8 |BLANK card ends branch cards
V. Nonlinear elements - 21

V-G. Type-92, Multiphase, Piecewise-Linear Resistance with Flashover

The model of this section provides for true (as opposed to pseudo) nonlinear representation of
an arbitrary number of coupled, nonlinear resistances R(i) . The nonlinearity is represented by a
piecewise-linear characteristic of current and voltage.

The element of the present section is very similar to the ZnO representation of Section V-E.
Note that both use the same branch type code "92". The principal difference lies in the representation
of the nonlinearity. For accurate representation of the extreme nonlinearity of ZnO over the full range
of operation, the exponential segments of Section V-E really are required. But in the present section,
the simpler straight lines (hence the name " piecewise-linear " ) are used instead. Another difference
is that the ZnO representation of Section V-E allows two separate characteristics per element: one
before flashover, and one after. Not so for the piecewise-linear representation of the present section,
which is assumed to be an open circuit when the gap is not conducting. Another difference is that the
nonlinear element of the present section allows an extra, built-in linear resistance Rlin , for user
convenience. Distinction between the two different Type-92 nonlinear resistances is made by the
request number that is keyed in columns 39-44: the ZnO model of Section V-E uses "5555." whereas
the present piecewise-linear one uses "4444."

Data cards for a piecewise-linear resistance R(i) begin with a single branch card bearing type
code "92" in columns 1-2, and the further identifier "4444." in columns 39-44:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 901234 56789012345678901234567890123456789 0

92 BUS1 BUS2 BUS3 BUS4 NFLASH K

A6 A6 A6 A6 E6.0 4444. I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and BUS4
of columns 15-26 are used for reference-branch or branch-naming purposes. As usual, column 80 can
be used for branch output requests. Only variable NFLASH (columns 27-32) is new or slightly
complicated. It controls the logic of the gap.

If the user wants no series flashover gap (see later miscellaneous data parameter VFLASH), then
he can ignore variable NFLASH . But if a series gap is to be present, then NFLASH controls possible
clearing (gap opening) and reflashing (reclosing). There are three different cases of interest, requiring
NFLASH equal to either –1, 0, or +1. The rules are as follows:

1) Use NFLASH = +1 if the gap is to flash and clear only once (after the single clearing, the
gap remains open for the remainder of the study)
2) Use NFLASH = 0 (or leave columns 27-32 blank) if the gap is to flash and clear as many
times as required by the network conditions
3) Use NFLASH = –1 if the gap is to discharge only once, and remain closed continuously
thereafter (i.e., no clearing).
22 -V. Nonlinear elements

The second Type-92 data card is for miscellaneous data. It and the following characteristic
must be omitted if the reference-branch feature (where names BUS3 and BUS4 point to a previous
such branch) is being used, of course. But for cases without such copying of a previously-defined
Type-92 element, a second card must contain Type-92 miscellaneous data (variables Rlin, VFLASH, and
VZERO as follows:

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890 1234567890123456789012345 67890

Rlin VFLASH VZERO

E25.0 E25.0 E25.0

Rlin (cols. 1-25) is the linear resistance that is to be connected in series with the nonlinear (actually,
piecewise-linear) characteristic. It can be used to represent the grounding resistance of an
arrester, for example. A value of zero is permissible, if desired. The units for Rlin are to be
[voltage/current] , which nominally are [ohms].

VFLASH (cols. 26-50) is the gap flashover voltage in units of voltage (nominally [volts]). If the resistor
is to have no gap, key any negative number.

VZERO (cols. 51-75) is the starting (or initial) branch voltage in units of voltage (nominally [volts]). In
almost all cases, leave this data field blank. Then the Newton iteration will start from zero
current, which usually is satisfactory.

Finally come cards that specify the nonlinear i-v characteristic point by point, from left to right
(in order of increasing device current), with one data card for each pair of values defining the
piecewise-linear i-v curve. The format is:

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890 123456789012345678901234567890

Current Voltage

E25.0 E25.0

Such data (2 or more such cards) are to be terminated by a 9999-card (a special value of current, in
effect).

If the characteristic is symmetrical with respect to the origin, the following feature can be used
to save both program table space (storage of List 10) and also keyboard effort. Specify only the
positive portion of the characteristic (both current and voltage positive). Do not specify the origin
(0.0, 0.0) in this case, since it will automatically be added by the program as the characteristic is
inputted. Subsequent use will exploit the assumed symmetry of the characteristic. The user is advised
to specify a full characteristic (including third-quadrant points of negative current and voltage) only if
the characteristic is not symmetric about the origin.
V. Nonlinear elements - 23

For illustrative usage of the Type-92 piecewise-linear resistance R(i), see the first data case of
BENCHMARK DC-38. The following interpretation has been drawn from this example:

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC38_1.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C BENCHMARK DC-38
Comment card. NUMDCD = 4. |C ZnO simulation similar to DC-37, only here a 3-phase network is used.
Comment card. NUMDCD = 5. |C The same arrester having characteristic i = 2500 * ( v / V-ref ) ** 26
Comment card. NUMDCD = 6. |C is used, only here the coefficient has been cut in four (to COEF =625)
Comment card. NUMDCD = 7. |C so that the column multiplier COL = 4.0 can be used: 4 * 625 = 2500.
Comment card. NUMDCD = 8. |C Also, the usual, recommended (and more accurate) exponential modeling
Comment card. NUMDCD = 9. |C (Type-92 nonlinear R(i) requested by "5555.") is only used for two of
Comment card. NUMDCD = 10. |C the three phases. In order to illustrate the piecewise-linear alter-
Comment card. NUMDCD = 11. |C native (requested by "4444."), such less-accurate modeling (for the
Comment card. NUMDCD = 12. |C highly-nonlinear ZnO, anyway) has been placed in the 3rd phase ("c").
ZnO const. 20 1.000E-08 1.000E-03 1.000E-01 |ZO, 20, , , , 0.9, ,{ To improve ZnO convergence,control Newton ZnO iteration
Misc. data. 5.000E-05 2.000E-02 0.000E+00 | .000050 .020000
Misc. data. 1 1 1 0 1 -1 0 0 0 0 | 1 1 1 0 1 -1
Printout : 5 5 20 1 30 5 | 5 5 20 1 30 5 50 50
3.055E-01 5.819E+00 1.210E-02 6.935E+02 1.678E-03|-1SENDA RECA .305515.8187.01210 200. 0 { 200-mile, constant-
3.199E-02 1.556E+00 1.937E-02 2.834E+02 1.098E-03|-2SENDB RECB .031991.5559.01937 200. 0 { parameter, 3-phase
3rd or later transposed distributed phase. |-3SENDC RECC { transmission line.
Type-92 R(i) 0.0000E+00 0.0000E+00 5.5550E+03 |92RECA 5555. { 1st card of 1st of 3 ZnO arresters
Comment card. NUMDCD = 21. |C VREF VFLASH VZERO COL
Zinc oxide. 7.7800E+05 1.0000E+19 0.0000E+00 | 778000. -1.0 0.0 4.0
Comment card. NUMDCD = 23. |C COEF EXPON VMIN
Breakpoint. 6.2500E+02 2.6000E+01 5.0000E-01 | 625. 26. 0.5
Special termination-of-points card. | 9999.
Reference branch. Copy (RECA , ) |92RECB RECA 5555. { Phase "b" ZnO is copy of "a"
Type-92 R(i) 0.0000E+00 0.0000E+00 4.4440E+03 |92RECC 4444. { Phase "c" ZnO is piecewise-linear
Comment card. NUMDCD = 28. |C VREF VFLASH VZERO
Piecewise-lin. 0.000E+00 1.000E+19 0.000E+00 | 0.0 -1.0 0.0
Breakpoint. 1.00000E+00 5.82400E+05 | 1.0 582400. { First point of i-v curve.
Breakpoint. 2.00000E+00 5.90800E+05 | 2.0 590800. { Data is copied from DC-39
Breakpoint. 5.00000E+00 5.99200E+05 | 5.0 599200. { which was used to create
Breakpoint. 1.00000E+01 6.04800E+05 | 10. 604800. { the ZnO branch cards that
Breakpoint. 2.00000E+01 6.16000E+05 | 20. 616000. { are used in phases "a" &
Breakpoint. 5.00000E+01 6.30000E+05 | 50. 630000. { "b". But there is some
Breakpoint. 1.00000E+02 6.44000E+05 | 100. 644000. { distortion due to the use
Breakpoint. 2.00000E+02 6.61920E+05 | 200. 661920. { of linear rather than the
Breakpoint. 5.00000E+02 6.94400E+05 | 500. 694400. { more accurate exponential
Breakpoint. 1.00000E+03 7.21280E+05 | 1000. 721280. { modeling, of course.
Breakpoint. 2.00000E+03 7.56000E+05 | 2000. 756000.
Breakpoint. 3.00000E+03 7.78400E+05 | 3000. 778400. { Last point of i-v curve.
Special termination-of-points card. | 9999. { Terminator for piecewise-linear characteristic
Blank card ending branches. IBR, NTOT = 3 7 |BLANK card follows the last branch card

The second data card shown here actually carried the three input numbers ( 0.0, –1.0, 0.0 ). But
the second of these, the value of VFLASH , was converted by the program to FLTINF = 1.E19 prior to
interpretation of the data card. This represents a signal or flag to solution logic that in fact the element
has no gap.
24 -V. Nonlinear elements

V-H. Type-93 True-Nonlinear Inductance L(i)

For typical production usage, the Type-98 pseudo-nonlinear inductance is recommended


instead of the compensation-based, Type-93, true-nonlinear inductor of the present section. This was
explained in Section V.

Data cards for a Type-93, piecewise-linear inductance L(i) begin with a single branch card
bearing type code "93" in columns 1-2:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 789012345678 90123456789012345678901234567890123456789 0

93 BUS1 BUS2 BUS3 BUS4 isteady østeady K

A6 A6 A6 A6 E6.0 E6.0 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, and BUS3 and BUS4
of columns 15-26 are used for reference-branch or branch-naming purposes. As usual, column 80 can
be used for branch output requests. In between are the coordinates ( i , ø ) in the current-flux plane for
the linear representation during the steady-state phasor solution.

Next come cards that specify the nonlinear i – ø characteristic point by point, from left to right
(in order of increasing device current), with one data card for each pair of values defining the
piecewise-linear i-ø curve. The format is:

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 345678901234567890123456789012345678901234567890

Current (i) Flux (Ø)

E16.0 E16.0

Such data (2 or more such cards) are to be terminated by a 9999-card (a special value of current, in
effect). Usually the saturation curve is assumed to be symmetric about the origin. If this is the case,
ignore all negative values in the third quadrant, beginning with the origin ( 0, 0 ). This is illustrated in
BENCHMARK DC–4.

The interpretation of input data cards for the Type-93 true-nonlinear inductance L(i) is
illustrated by the solution to BENCHMARK DC–4. The initial branch card confirms the values of
parameters isteady and østeady , whereas (x,y) values of the characteristic are confirmed for each such
card:
V. Nonlinear elements - 25

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC4.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C BENCHMARK DC-4
Comment card. NUMDCD = 4. |C Solution agrees (key variables, anyway) with DC-5 saturable TRANSFORMER
Comment card. NUMDCD = 5. |C Here, there is no transformer, since the secondary impedance has been
Comment card. NUMDCD = 6. |C reflected to the primary. Also, the pseudo-nonlinear reactance of the
Comment card. NUMDCD = 7. |C saturable TRANSFORMER is here represented by a "true" nonlinearity.
Comment card. NUMDCD = 8. |C 2nd subcase will illustrate residual flux for Type-93 nonlinear induct.
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Misc. data. 1.000E-02 6.000E+00 0.000E+00 | .010 6.0
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 1 1 -1
Printout : 5 5 20 20 100 100 | 5 5 20 20 100 100
Moniker " " for next branch 1. Index = 3 | BRANCH NAME:First { Even though name could go on next card, use this instead
Series R-L-C. 5.000E+00 5.000E+01 0.000E+00 | GEN TRAN 5.0 5.E4 3
Series R-L-C. 1.000E+04 0.000E+00 0.000E+00 | TRAN NAME R-MAG 1.E4
Nonlinear L, Type 93. 5.0000E-03 3.0000E+01 |93TRAN NAME MAGNET .005 30. 3
Comment card. NUMDCD = 17. |C -5.0 -100. { No longer needed 3-rd quadrant point
Comment card. NUMDCD = 18. |C -.1 -50. { No longer needed 3-rd quadrant point
Comment card. NUMDCD = 19. |C -.02 -45. { No longer needed 3-rd quadrant point
Comment card. NUMDCD = 20. |C -.01 -40. { No longer needed 3-rd quadrant point
Comment card. NUMDCD = 21. |C -.005 -30. { No longer needed 3-rd quadrant point
Breakpoint. 0.00000E+00 0.00000E+00 | 0.0 0.0 { 1st point being origin is request to reflect
Breakpoint. 5.00000E-03 3.00000E+01 | .005 30.
Breakpoint. 1.00000E-02 4.00000E+01 | .01 40.
Breakpoint. 2.00000E-02 4.50000E+01 | .02 45.
Breakpoint. 1.00000E-01 5.00000E+01 | .10 50.
Breakpoint. 5.00000E+00 1.00000E+02 | 5.0 100.
Special termination-of-points card. | 9999

The diagram above shows the saturation curve of Type-93 nonlinear inductance defined by
entering six points in the first quadrant. Saturation curve is assumed to be symmetric about the origin.
26 -V. Nonlinear elements

V-I. Circuit Breaker or Electric Arc Modeling Using TACS/MODELS-


Controlled R(t)

The modeling of an electric arc, including the most practical case of the controlled arc within
a circuit breaker, is possible using a TACS-controlled resistance. This follows the research of
Prof. Mustafa Kizilcay during his research assistance period at the University of Hanover, Germany,
as first documented in the literature in Ref. 22, vol. 5, no. 3, July 1985, pages 15-26.

The dynamics of the arc are all modeled within TACS or MODELS. Electric voltages or
branch current represent inputs to the TACS or MODELS modeling. The output is a signal R(t) (name
BUS4 of columns 21-26 of the branch card), which is to be the arc resistance as a function of time. It
is this TACS signal that is to be connected to the electric network element of the present section, as
explained in rules that follow.

TACS/MODELS-controlled resistors are modeled using compensation in the same fashion as


conventional Type-91 time-dependent resistors ( see Section V-F ). The only difference is in the logic
to adjust R(t) at each time-step: rather than consult a static characteristic of resistance vs. time (the
conventional, static Type-91 case), the TACS/MODELS control imposes the value it has computed.

Each electric arc is requested by a single branch card that defines a degenerate, controlled,
time-varying resistor. This is a compensation-based, Type-91 element without any associated
characteristic. The data format is as follows:

1 2 3 4 5 6 7 8
12345678 901234 567890123456 78901234567890123456789012345678901234567890123456789 0

91 BUS1 BUS2 TACS BUS4 K

A6 A6 A6 I

The usual pair of terminal node names BUS1 and BUS2 occupy columns 3-14, following the type code
of "91" in columns 1-2. The special request word "TACS" must be keyed in columns 15-18, followed
by the name of the TACS/MODELS variable that defines the resistance R(t) in ohms. This is variable
BUS4 of columns 21-26. Finally, column 80 can be used for branch output requests as usual. For an
illustration of such usage, see the second subcase of BENCHMARK DC-22. But this is an artificial
test of the mechanics of connection only. For realistic parameters and time-step size, see the two
subcases of BENCHMARK DC-43, both of which come from the University of Hanover.

Interpretation of the input data confirms the name of the TACS/MODELS variable that
controls the resistor, of course. As an illustration, consider the first such usage in the second data
subcase of BENCHMARK DC-22:
V. Nonlinear elements - 27

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC22_2.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C 2nd of 5 subcases of DC-22 is a hybrid TACS example of the TACS-controlled
Comment card. NUMDCD = 4. |C resistance (Type-91 electric network branch type). All-resistive electric
Comment card. NUMDCD = 5. |C network allows easy checking with a pocket calculator at any step: For each
Comment card. NUMDCD = 6. |C branch, verify that program node voltages and branch currents correspond to
Comment card. NUMDCD = 7. |C the branch constraint equations v = R * i. There actually are two discon-
Comment card. NUMDCD = 8. |C nected subnetworks, with one having two TACS-controlled arcs (illustrating
Comment card. NUMDCD = 9. |C use of the multivariable solution code of "ZINCOX") and the other having 1.
Request preceding 5 printout number pairs. |CHANGE PRINTOUT FREQUENCY
Printout : 5 5 0 0 0 0 | 5 5
Misc. data. 2.000E-02 2.000E+00 0.000E+00 | .02 2.0 { Step size is immaterial since network has no dynamics
Misc. data. 1 1 1 1 1 0 0 0 0 0 | 1 1 1 1 1
Electric network, too. But TACS data first ... |TACS HYBRID { In a real case, arcs are on electric side, and equations in TACS
Free-format TACS supplemental variable defined. |99RESIS = 1.0 + SIN ( 3.0 * TIMEX ) { 1st R(t) signal -- constant + sine wave
Free-format TACS supplemental variable defined. |99RES = 1.0 + COS ( 3.0 * TIMEX ) { 2nd R(t) signal -- constant + cosine
Names of TACS variables for output vector. |33RESIS RES { Output the only 2 TACS variables: the 2 R(t) resistance functions
TACS initial condition. "RESIS " 1.000000E+00 |77RESIS 1.0 { Initial condition on 1st R(t) insures smooth start
TACS initial condition. "RES " 2.000000E+00 |77RES 2.0 { Initial condition on 1st R(t) insures smooth start
Blank card terminating all TACS data cards. |BLANK card ending all TACS data
Series R-L-C. 1.000E+00 0.000E+00 0.000E+00 | BUS1 BUS2 1.0 { Master copy of five 1-ohm resistors } 1
Reference branch. Copy (BUS1 , BUS2 ) | BUS2 BUS3 BUS1 BUS2 { 2nd of 3 linear branches in 1st subnetwork
Reference branch. Copy (BUS1 , BUS2 ) | BUS3 BUS1 BUS2 { 3rd of 3 linear branches in 1st subnetwork
Reference branch. Copy (BUS1 , BUS2 ) | BUS1 BUS4 BUS1 BUS2 { 1st of 2 linear branches in second subnetwork
Reference branch. Copy (BUS1 , BUS2 ) | BUS4 BUS1 BUS2 { 2nd of 2 linear branches in second subnetwork
TACS-controlled Type-91 R(t). "RESIS " |91BUS2 TACS RESIS { R(t) controlled by TACS variable "RESIS" } 1
TACS-controlled Type-91 R(t). "RES " |91BUS3 TACS RES { R(t) controlled by TACS "RES" --- 2nd of 2 } 1
TACS-controlled Type-91 R(t). "RES " |91BUS4 TACS RES { R(t) within 2nd, isolated subnetwork } 1
Blank card ending branches. IBR, NTOT = 5 5 |BLANK card ending electric network branches

Note that the just-described rules prohibit use of the reference branch feature, where columns
15-26 of the data card are used to name a preceding branch that is to be copied. Yet this is hardly a
loss, since neither program table space nor user data space could be saved by any such feature. This is
why the reference branch feature has not been provided for the arc model.

The arc model has no external gap. It is the user's responsibility to model any such dynamics
within TACS/MODELS. For an open gap, the user should define a signal R(t) with a very large
resistance (e.g., 1.E18 ohms).

If there is no automatic determination of TACS initial conditions, then a TACS


initial-condition card (identified by type code "77" in columns 1-2) generally should be used to define
the initial element resistance R(0). This initial value will be used within the electric network on the
first time step, recall. In the absence of either automatic or manual definition, there may be a
discontinuity on the first time step, as solution logic of the electric network first tries to cope with an
erroneous, zero resistance (the value of any otherwise-uninitialized TACS variable at time zero).

Should R(t) from TACS/MODELS ever be exactly zero, logic applicable to the electric
network will convert this value to the near-zero singularity tolerance EPSILN (see the floating-point
miscellaneous data card). This is necessary to avoid division by zero, since the admittance formulation
requires

As with all hybrid solutions involving both TACS/MODELS and the electric network, there is a one
time-step delay between the determination of R(t) within TACS/MODELS and its usage in the electric
network solution.
28 -V. Nonlinear elements

V-J. User-Supplied FORTRAN for Nonlinear Element Modeling


If the user wants true nonlinear element modeling that differs from program-supplied logic, he
might consider writing his own FORTRAN. Yes, user-supplied FORTRAN is connected easily enough
in many if not most cases, provided the user is willing and able to compile one subroutine
("SOLVNL"), and linkage-edit the result along with other object files to produce a modified
executable version of the program.

User-supplied FORTRAN was first described publicly in Ref. 22, Vol. 3, Number 3,
February 1983, pages 37-42. Although the general concept remains unchanged, there have been several
important improvements since that early work. The interface is better and more powerful, since there
now is a connection with the phasor solution for initial conditions (in the case of reactors), and input
no longer is tied to the cumbersome ZnO modeling of "M31." vintage. Most importantly, the new
user-supplied FORTRAN elements can be mixed in the same subnetwork with any program-supplied
modeling of the present Section V. All nonlinear equations including the user's are solved using the
same coupled Newton iteration.

The 2nd subcase of BENCHMARK DC-7 illustrates logic that has been built into the UTPF.
For simplicity, a hyperbolic magnetic saturation curve has been modeled:

where ø is the reactor flux, "i" is the reactor current, and "a", "b", and "c" are parameters read from
cards numbered one and two of the 3-card characteristic of the Type-93 element. The exceptional
nature of the Type-93 characteristic is indicated by keying "FORTRAN" in columns 33-39 of each of
the three cards preceding the "9999"-card that ends the component. The third card is an extra bounding
card that can contain an arbitrary pair (x, y), since the numbers are not used. But the card is required
to reserve space (3 cells of List 10 are required for each nonlinear element). There is no provision for
reference branch usage, so leave the BUS3 and BUS4 fields (columns 15-26) of the leading Type-93
card blank.

1 2 3 4 5 6 7 8
1234567890123456 7890123456789012 3456789 01234567890123456789012345678901234567890

-333777. value "a" FORTRAN

value "b" value "c" FORTRAN

any value any value FORTRAN

E16.0 E16.0

No interpretation of the input data cards need be illustrated, since this is no different than for the
conventional Type-93 element of Section V-H.

User-supplied FORTRAN can involve an arbitrary number of parameters, limited only by List
10 dimensioning. The 3 values that are used to describe the hyperbolic saturation curve within the
UTPF are limited in number only by the user's data, not by the code. The program will continue to read
(x,y) points of the characteristic until the "9999"-card , and two parameters can be decoded from each
V. Nonlinear elements - 29

card. But for Type-93 usage, just do not forget that extra, unused card at the end, to protect the final
real pair of parameters. The extra card is required because Type-93 logic redefines the final (x,y)
storage to reflect extension of the final segment to infinity (actually, just to l000 times the last real
point).

The user can add as many different types of nonlinear elements as he wants. These will be
distinguished by varying the numerical flag ("–333777" for the hyperbolic tangent function) on the
first point of the characteristic. These different numerical flags are required in no subroutine other than
the solution routine "SOLVNL". For more than a decade, there was just this one illustration, and
instructions explained how to add a second alternative. But today, there are several alternatives, so the
pattern should be obvious upon study. The change was the result of Orlando Hevia’s work with
smooth saturation (see pages 19-24 of the November, 1997, issue of EEUG News).

Interpretation of the input data will correspond to whatever type of nonlinear element is being
used. For inductor modeling, this will be the Type-93 element. An illustration is provided by the
second data subcase of BENCHMARK DC-7:

--------------------------------------------------+--------------------------------------------------------------------------------
Descriptive interpretation of input data cards. | Input data card images are shown below, all 80 columns, character by character
0 1 2 3 4 5 6 7 8
012345678901234567890123456789012345678901234567890123456789012345678901234567890
--------------------------------------------------+--------------------------------------------------------------------------------
Comment card. NUMDCD = 1. |C data:DC7_2.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C 2nd of 2 subcases illustrates user-supplied FORTRAN to provide for smooth
Comment card. NUMDCD = 4. |C modeling of magnetic saturation. Special logic presently is built into
<< Comment cards removed for brevity >>
Output global peak voltage of network. 3 |PEAK VOLTAGE MONITOR, 3, { Request network extrema of both node & branch voltage
Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, 2, { Request maximum precision (for 8 output columns)
Misc. data. 2.000E-02 4.000E+00 0.000E+00 | .020 4.0
Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 1 1 -1
Printout : 5 5 20 20 0 0 | 5 5 20 20
Series R-L-C. 1.000E+02 0.000E+00 0.000E+00 | GEN NODE 100. { Create unknown-voltage "NODE" for coupling
Series R-L-C. 5.000E+00 5.000E+01 0.000E+00 | NODE TRAN 5.0 5.E4 1
Nonlinear L, Type 93. 5.0000E-03 3.0000E+01 |93TRAN .005 30. 1
Breakpoint. 0.00000E+00 0.00000E+00 | 0.0 0.0
Breakpoint. 5.00000E-03 3.00000E+01 | .005 30.
Breakpoint. 1.00000E-02 4.00000E+01 | .01 40.
Breakpoint. 2.00000E-02 4.50000E+01 | .02 45.
Breakpoint. 1.00000E-01 5.00000E+01 | .10 50.
Breakpoint. 5.00000E+00 1.00000E+02 | 5.0 100.
Special termination-of-points card. | 9999
Series R-L-C. 1.000E+03 0.000E+00 0.000E+00 | TRAN 1000. { Need to damp hash within previous NL element
Series R-L-C. 5.000E+02 0.000E+00 0.000E+00 | NODE XXXX 500. { Current-limiting, phase-shifting resistor
Comment card. NUMDCD = 43. |C User-supplied fortran follows. This is a regular Type-93 NL inductor until
Comment card. NUMDCD = 44. |C the time-step loop. Note 3-card characteristic, followed by "9999" bound.
Comment card. NUMDCD = 45. |C The characteristic parameter usage is: PSI = a * tanh ( b * i ) + c * i.
Nonlinear L, Type 93. 8.0000E-02 3.5000E+01 |93XXXX .08 35.0 1
Breakpoint. -3.33777E+05 3.50000E+01 | -333777. 35.FORTRAN { -333777 = flag; a = peak iron flux
Breakpoint. 2.00000E+01 5.00000E+00 | 20. 5.0FORTRAN { b = current mult; c = linear series L
Breakpoint. 1.00000E+00 1.00000E+00 | 1.0 1.0FORTRAN { Dummy third card to protect card 2
Special termination-of-points card. | 9999 { End of user-supplied fortran (see request in cols. 33-39)
Blank card ending branches. IBR, NTOT = 4 5 |BLANK card ending program branch cards.

The first card confirms isteady and østeady whereas points of the characteristic involve parameters of the
hyperbolic saturation model: a = 35, b = 20, and c = 5, respectively. The third card of the characteristic
is unused (the values of unity were keyed just to insure legal numbers).
VIII. Three-phase dynamic synchronous machine source - 1

VIII THREE-PHASE DYNAMIC SYNCHRONOUS MACHINE


SOURCE

VIII-A. General description


T2 T3 Tgen Texc

Shaft stiffness

HP IP LP1 Generator Exciter

Mutual
damping
Self damping

a) mechanical parts
b)

b) electrical parts

Fig. 8.1. Schematic representation of a three-phase synchronous machine

The three-phase dynamic synchronous machine model assumes that the electrical part of the
machine has the following windings:
- three armature windings a, b, c, one per phase, connected to the network. The space
displacement among the a-b-c-phases must be 120 electrical degrees;
- one field winding f which produces flux in the direct axis;
- one hypothetical winding kd on the direct axis which represents the damper bar effects
- one hypothetical winding g on the quadrature axis representing the effects produced by
eddy-currents
2 - VIII. Three-phase dynamic synchronous machine source

- one hypothetical winding kq on the quadrature axis representing damper bar effects.
- The dynamic synchronous machine is internally balanced with respect to the armature
phases.
The armature windings are assumed to by Wye connected, with a possible R-L branch between the
neutral and local ground. However, the user is allowed to simulate a machine with delta-connected
armature windings too. One should be careful with the output interpretation of the DELTA
CONNECTION request (see section VIII-C-2-C).
The voltage applied to the field winding is assumed to be constant, determined by the EMTP at the
time of the sinusoidal steady-state solution. But the user is allowed to control this voltage by using
TACS. In this case, the TACS output variable is a normalized multiplicative variable (equal to unity if it
is to produce no effect) for scaling the otherwise-constant field voltage. Should the user desire a constant
field voltage representation, this can be readily provided by the TACS connection.

Note:
- Connection with MODELS is believed to be similar. It has not been tested yet.
- Directly assigning the field current would be more desirable, but this is not possible with the
current version of ATP, unfortunately.

Saturation effects can be studied by describing the open-circuit saturation curve for the d and q
axis. Hysteresis is not considered.
The user can simulate a three-phase dynamic synchronous machine model with any number of
lumped masses in the shaft-rotor system, see Figure 8.l. Each major element is considered to be a rigid
mass connected to adjacent elements by massless springs.
Each shaft mass, except generator and exciter masses, is allowed to have a constant mechanical
power applied to it (in addition to the torque of the mechanical viscous damping and the spring
connections to adjacent masses). The user specifies proportionality factors for each mass, with the actual
constant power then determined internally by the EMTP at the time of the sinusoidal steady-state
initialization. This is the basic scheme regarding mechanical input torque, in the absence of special
connections.
The user is also allowed to represent prime mover (e.g. governor, boiler, etc.) dynamics by using
TACS to control the total mechanical power. In this case, the required TACS output variable is a
normalized multiplicative constant (equal to unity if it is to produce no effect) for scaling the otherwise-
constant mechanical power. Should the user desire a constant-torque representation of the prime mover,
this can be readily provided by the TACS connection (TACS would divide the steady-state speed by the
instantaneous speed to produce the required control signal).
For output purposes, most machines parameters and variables of interest are available.
- Electrical variables: winding currents, certain d-q-0 variables.
- Mechanical variables: velocities and angles of rotor masses;
- Inter-mass shaft torques.
VIII. Three-phase dynamic synchronous machine source - 3

- Initial conditions.
- Electrical and mechanical parameters.
Electrical and mechanical variables are automatically appended to the end of the regular EMTP
output vector upon the request of the user, and hence are available for printing and plotting just like any
other EMTP variable.

VIII-A-1. The equations of the synchronous machine


A short explanation of the equations used to model the synchronous machine is given next.

VIII-A-2. Equations of the electrical part


The electrical part is described by two systems of equations.
a) The voltage equations

[υ ] = −[R][i] − d [λ ]
dt
Where
[υ ] = [υa ,υb ,υc ,−υ f ,0,0,0] t
(zero in last three components because k,d. g and kq windings are short-circuited)
[R] = diag [Ra , Ra , Ra , R f , Rkd , Rg , Rkq ]
(all phases have same Ra: internally balanced with respect to armature phases)
[i] = [ia , ib , ic , i f , ikd , ig , ikq ] t
[λ ] = [λa , λb , λc , λ f , λkd , λg , λkq ] t
Note:
For the meaning of the subscripts, we refer to the general description and Fig. 1.
The flux-current relationships

[λ ] = [L][i ]
The instantaneous values of the elements of matrix [L] are functions of the rotor position. The
coefficients of the resulting set of differential equations are periodic functions of the rotor angle and,
therefore, functions of time. If saturation effects are not taken into account and terms of order 3 and
higher in the Fourier expressions of the armature winding inductances are neglected, this time
dependence can be avoided by transferring armature quantities to a reference frame attached to the rotor.
The rotating fluxes produced by the armature are projected onto rotor axis, where they appear as
stationary. This transformation of variables, known as Park's transformation, is identical for fluxes,
current and voltages.
4 - VIII. Three-phase dynamic synchronous machine source

⎡λd ⎤ ⎡λa ⎤
⎢ λ ⎥ = [T ]−1 ⎢λ ⎥
⎢ q⎥ ⎢ b⎥
⎣⎢ λo ⎦⎥ ⎣⎢ λc ⎦⎥
where:
⎡cos θ cos(θ − 2π 3) cos(θ + 2π 3)⎤
2⎢
[T ] = sin θ sin (θ − 2π 3) sin (θ − 2π 3)⎥⎥
3⎢
⎢⎣1 2 1 2 1 2 ⎥⎦

where θ is the rotor position, in electrical radians.


Note that [T ] = [T ]{ } −1 t

Similarly

⎡υ d ⎤ ⎡υ a ⎤ ⎡id ⎤ ⎡ia ⎤
⎢υ ⎥ = [T ]−1⎢υ ⎥ ⎢i ⎥ = [T ]−1⎢i ⎥
⎢ q⎥ ⎢ b⎥ ⎢ q⎥ ⎢ b⎥
⎢⎣υo ⎥⎦ ⎢⎣υc ⎥⎦ ⎢⎣io ⎥⎦ ⎢⎣ic ⎥⎦

Since the rotor quantities remain uncharged, the transformation of variables yields the following ste
of voltage equations (assuming Ra = Rb = Rc)

⎡ υd ⎤ ⎡ Ra 0 0 ⎤ ⎡ id ⎤ ⎡ λd ⎤ ⎡− ωλd ⎤
⎢υ ⎥ ⎢0 ⎥⎢ i ⎥ ⎢λ ⎥ ⎢ ⎥
⎢ q ⎥ ⎢ Ra 0 ⎥⎢ q ⎥ ⎢ q ⎥ ⎢ ωλq ⎥
⎢ υo ⎥ ⎢0 0 Ra ⎥ ⎢ io ⎥ ⎢ λo ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ d ⎢ ⎥ ⎢ ⎥
⎢− υ f ⎥ = − ⎢ Rf 0 0 0 ⎥⎢ i f ⎥ − ⎢ λ f ⎥ + ⎢ 0 ⎥
⎢ dt ⎢ ⎥
⎢ 0 ⎥ 0 Rkd 0 0 ⎥ ⎢ikd ⎥ λkd ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 ⎥ ⎢ 0 0 Rq 0 ⎥ ⎢ ig ⎥ ⎢ λg ⎥ ⎢ 0 ⎥
⎢ 0 ⎥ ⎢ 0 0 0 Rkq ⎥⎦ ⎢⎣ikq ⎥⎦ ⎢λ ⎥ ⎢ 0 ⎥
⎣ ⎦ ⎣ ⎣ kq ⎦ ⎣ ⎦

If the machine is Wye-connected with a branch (parameters Rn and Ln) between neutral and the local
ground, then the following term must be added to the right-hand part of the zero-sequence equation

dio
3Rnio + 3Ln
dt

The d-q-o flux linkages are related to the d-q-o currents by means of the following relationships:
VIII. Three-phase dynamic synchronous machine source - 5

⎡ λd ⎤ ⎡ Ld La , f La ,kd ⎤ ⎡ id ⎤
⎢λ ⎥ = ⎢ L Lf

L f ,kd ⎥ ⎢⎢ i f ⎥⎥
⎢ f ⎥ ⎢ a, f
⎢⎣λkd ⎥⎦ ⎢⎣ La ,kd L f ,kd Lkd ⎥⎦ ⎢⎣ikd ⎥⎦
⎡ λq ⎤ ⎡ Lq La ,q La ,kq ⎤ ⎡ iq ⎤
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ λg ⎥ = ⎢ La , g Lg Lg ,kq ⎥ ⎢ ig ⎥
⎢λkq ⎥ ⎢ La ,kq Lg ,kq Lkq ⎥⎦ ⎢⎣ikq ⎥⎦
⎣ ⎦ ⎣
λo = Loio

The Park's transformation converts the three armature windings into two fictitious windings located
on the rotor axes and a third static winding, completely uncoupled from the other windings. The
coefficients of the resulting equations are time-invariant. Figure 8.2 shows the schematic representation
of the electrical part after the transformation of variables.
ω ω
Direct axis
ib
Vb Direct axis id

Vd
θ
ikd ikd θ
if if
Vf Vf
ia ig
ig
Vc ikq Va ikq
Quadrature axis

ic Quadrature axis Vq iq

Fig. 8.2. Physical interpretation of the Park's transformation

The set of resistances and inductances of the above equations are not directly available from
measurements. Generally, data from standardized tests are known. According to international standards,
parameters available from machine tests are:
Ra armature resistance
Xi armature leakage inductance
Xo zero-sequence reactance
Xd , Xq transient reactances
Xa”, Xq” subtransient reactances
τd’, τq’ transient short-circuit time constants
τd”, τq” subtransient short-circuit time constants
6 - VIII. Three-phase dynamic synchronous machine source

Instead of short-circuit time constants, open-circuit time constants could be known


τdo’, τqo’ transient open-circuit time constants
τdo”, τqo” subtransient open-circuit time constants
Parameters of machine equations, hereafter called internal parameters, can be derived from test data,
hereafter called manufacturer's data or external parameters, by using a procedure for data conversion.
However, if parameters from machine tests are known, the synchronous machine to be simulated can be
described by the set of external parameters since a data conversion procedure is available within the
ATP machine model (see PARAMETER FITTING request: section VIII-C-2-b).
Reactances and time constants must be unsaturated values; for this reason, short-circuit time
constants are preferred over open-circuit time constants, because these are influenced by saturation
effects. If the user chooses to describe the machine by the set of external parameters, either open-circuit
or short-circuit time constants can be input (see FM-parameter on PARAMETER FITTING request
card: section VIII-C-2-b).

VIII-A-3. Equations of the mechanical part

Figure 8.3 shows the connection of the shaft system around mass i

Ki-1,i Ki,i+1

Ji-1 Ji Ji+1

Di-1,i Di,i+1

Di-1 Di Di+1

Fig. 8.3. Shaft system around mass i

The mechanical system is assumed to be linear; therefore, the spring-connected rotating masses can
be described by the rotational form of the Newton's second law.

[J ] d 2 [θ ] + [D] d [θ ] + [K ][θ ] = [Tturbine ] − [Tgen exc ]


2

dt dt
d
[θ ] = [ω ]
dt
where

[θ] the vector of angular positions


[ω] the vector of angular speeds
VIII. Three-phase dynamic synchronous machine source - 7

[J] the diagonal matrix of moments of inertia


[D] the tridiagonal matrix of damping coefficients (see below)
[K] the tridiagonal matrix of stiffness coefficients (see below)
[Tturbine] the vector of torques applied to the turbine stages
[Tgen/exc] the vector of electromagnetic torques of generator and exciter

The following should be noted:


⎡ D1 + D12 − D12 ⎤
⎢ −D D12 + D2 + D23 − D23 ⎥
⎢ 12 ⎥
[D] = ⎢ − D23 D23 + D3 + D34 − D34 ⎥
⎢ ⎥
⎢ . . . . . . ⎥
⎢ − Dn−1,n Dn−1,n + Dn ⎥⎦

⎡ K12 − K12 ⎤
⎢− K ⎥
⎢ 12 K12 + K 23 − K 23 ⎥
[K ] = ⎢ − K 23 K 23 + K 34 − K 34 ⎥
⎢ ⎥
⎢ . . . . . . ⎥
⎢ − K n−1,n K n−1,n ⎥⎦

The simplest mechanical model is the single-mass representation

d 2θ dθ
J 2
+D = Ttur − Tgen
dt dt


dt

For hydro units a one-mass model can be used, but it is not accurate enough for thermal units. For
these cases a lumped-mass representation is necessary, specially in sub-synchronous resonance studies.
Generally the inertia constant H rather than the moment of inertia J is specified. This new constant is
a per unit representation of the kinetic energy at synchronous speed. Following relation exists:

Jω 2 2
H= (seconds)
S rating

The link between the equations of the electrical and the mechanical part is provided by the rotor
position and the electromagnetic torques
8 - VIII. Three-phase dynamic synchronous machine source

θ elec
θ mech =
NP 2

Tgen =
NP
(λd iq − λqid )
2
−υ f i f
Texc =
ωexc

where NP equals the number of poles.

VIII-B. Data format

The input data deck of a dynamic synchronous machine source component within an EMTP data
case has the following structure:
CLASS 1 S.M. DATA CARDS: Steady state and network connectivity specification
CLASS 2 S.M. DATA CARDS: Special request cards (optional)
CLASS 3 S.M. DATA CARDS: Machine ratings and electrical parameters
CLASS 4 S.M. DATA CARDS: Mechanical parameters (mass cards)
BLANK CARD ending mass cards
CLASS 5 S.M. DATA CARDS: Output requests
BLANK CARD ending output requests
CLASS 6 S.M. DATA CARDS: Connections with TACS
CLASS 7 S.M. DATA CARDS indicating whether the machine is paralleled by an additional
machine (FINISH PART card) or not (FINISH card).
Rules and general description of card groups in order of data input are given next.

VIII-B-1. Class 1 SM data cards


First come three cards (one per phase) which specify the component type code (59), the phase
voltage magnitude and angle in the steady-state, and names for the network nodes to which the armature
windings of the phase under consideration are to be connected. Balanced as well as unbalanced steady
state can be specified (see remark 2). The first of these 3 cards is for phase "a", next phase "b" and
finally phase "c". Following format should be used:

Parameters:
Type code for the dynamic synchronous machine component is fixed: 59. It should only be specified
for the first phase (a).
VIII. Three-phase dynamic synchronous machine source - 9

1 2 3 4 5 6 7 8
12 345678 90 1234567890 1234567890 1234567890 1234567890123456789012345678901234567890
59 BUS VOLT FREQ ANGLE

A6 2X E10.6 E10.6 E10.6

BUS: Six-character EMTP network node name. The armature winding of the phase under
consideration is to be connected to this node of the electric network. Only one node name
per winding can be specified. Usually, all armature windings are assumed to be Wye
connected. Only via the special request "DELTA CONNECTION" (VIII-C-2-c), another
setting can be obtained.
VOLT: The steady-state voltage magnitude at the terminals of the machine. This is peak voltage
(1.414 times RMS), line to neutral (0.577 times line-to-line). Use units of volts. See remark
2.
FREQ: The electrical frequency of the generator in Hz, for steady-state operation.
ANGLE: The steady-state voltage phasor angle at the terminals of the machine, for the phase under
consideration. Units are degrees. See remark 1 and 2.
Remarks:
1. Conventional positive sequence is assumed. That is, phase '"b" voltage lags phase "a"
voltage by 120 degrees and phase "c" voltage leads phase "a" voltage by 120 degrees.
2. If the values of VOLT and ANGLE on cards No. 2 and 3 (i.e. for phase "b" and "c") are
not specified, the program assumes the presence of a three-phase balanced source at the
machine terminals. Otherwise, the presence of an unbalanced three-phase source is
assumed. This allows the user to specify an unbalanced steady state.

VIII-B-2. Class 2 SM data cards optional


Next in order of data input come optional special-request cards (if any) which are associated with
the machine. Please note the application restrictions for each special request card individually! There are
three such possible cards, with format and meaning as described immediately below. Ordering of such
cards (if two or more) within the Class 2 grouping is arbitrary. Identification of the card is via one of the
following keywords: TOLERANCES, PARAMETER FITTING or DELTA CONNECTION.
a. TOLERANCES special-request card (see remark 1)

1 2 3 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 12345678901234567890
TOLERANCES E10.0 E10.0 E10.0 10X I10

EPSUBA EPOMEG EPDGEL NIOMAX


10 - VIII. Three-phase dynamic synchronous machine source

Parameters:

EPSUBA: Number specifying the ratio between the built-in damping resistors and the resistive
models of the inductive elements paralleled by these resistors, i.e., the following
relationship holds true for each inductive element
EPSUBA = Rp/(2L/∆t)
Should the columns 11-20 be left blank, a default value of EPSUBA = 100.0 would be
assigned (see remark 2). For cases of numerical instability, the recommended value is
20.0 - 50.0.
EPOMEG: Tolerance associated with the iterative calculation of S.M. rotor speed at each-time of
the simulation. The calculation is assumed to have failed when the relative speed
correction is greater than this tolerance after NIOMAX iterations. The program
execution is then terminated with an appropriate error message. A default value of I.OD-
15 is assigned (see remark 2).
EPDGEL: Tolerance associated with the iterative calculation of S.M. rotor speed at each time. The
calculation is assumed to have converged when the relative speed correction is less than
this tolerance. If the relative speed correction is larger than this tolerance but smaller
than EPOMEG the solution is assumed to have converged marginally and an appropriate
warning is printed. A default value of I.OD-16 is assigned (see remark 2).
NIOMAX: Maximum number of iterations which are allowed for the calculation of the S.M. rotor
speed, at any time-step (default NIOMAX = 10 - see remark 2).
Remarks:

1. It should be stressed that the TOLERANCE-parameters discussed here are scalar


variables only; they apply to the entire data case (all machines) rather to the specific
machine along with which they were defined.
2. The default values of all these parameters are specified in the STARTUP file, EPSUBA,
EPOMEG and EPDGEL in the Card 1 (lst Miscellaneous floating-point numbers),
NIOMAX in the Card 9 (2nd Miscellaneous integers).

b. PARAMETER FITTING special-request card


The PARAMETER FITTING card is used to distinguish between different types of data. The
presence of this card signals manufacturer's data, while its absence indicates the use of internal
parameters (Park's parameters) (recall section VIII-B-1).

1 2 3 4 5 6 7 8
12345678901234567 8901234 56789012 345678901234567890123456789012345678901234567890
PARAMETER FITTING 7X E8.0

FM
VIII. Three-phase dynamic synchronous machine source - 11

The equations of the synchronous machine require the knowledge of all the appropriate machine
inductances and resistances. If the available data come from a test, a parameter conversion is necessary.
The procedure used in the present version to calculate internal parameters was developed by M. Canay.
Documentation of the mathematics used for parameter determination is contained in Reference [48]. The
procedure is also explained in Chapter 8 and Appendix VI of the Reference Manual (Theory Book),
Reference [47].
Since only one procedure for data conversion is available, the value of the parameter FM is
unimportant for this purpose. In order to make compatible the present version and older versions of the
Type-59 S.M. model, this parameter has been preserved, but having a different function. Parameter FM
is used as a flag to distinguish the type of time-constants which are supplied in the Class 3 data in the
following way (also refer to section VIII-B-1 for some theoretical considerations regarding saturation
effect influences).
FM ≤ 2.0 the time-constants input with the manufacturer’s data are open-circuit time constants
(beware: avoid influence of saturation effects!).
FM > 2.0 short-time constants are supplied in Class 3 data (preferable since commonly not
influenced by saturation effects).
Ref.[48]: I.M. Canay, "Determination of model parameters of synchronous machines", IEE Proc.
Vol. 130, Pt. B, No. 2, pp. 86-94, March 1983.

c. DELTA CONNECTION special-request card


If the armature windings of the dynamic S.M. are delta-connected (rather than Wye-connected), then
a special-request card which bears the text DELTA CONNECTION in columns 1-16 must be used.

1 2 3 4 5 6 7 8
1234567890123456 7 8 9 0 1 2 3 4 56 7 8 9 0 1 2 3 45 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 23 4 5 6 7 8 9 0 12 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 890
DELTA CONNECTION

In absence of such a card, the armature windings are assumed to be Wye connected, which is the
most common situation for large power system generators. Except for the possible presence of this one
special-request card, no other portion of the S.M. data specification explicitely makes reference to how
the armature windings are connected.
For a machine of which the armature windings are delta-connected, a word about the interpretation
of armature current printout is in order. The labeling of variables is not altered (from that used for a Wye
connection), so the user must be very careful. There are four situations, depending upon whether one
considers initial conditions or time-step loop printout, and whether coil variables or Park's variables are
considered. Of these four, two will be incorrectly labeled.
1. For the time-step-loop output, "ID", "IQ" and "IO" are indeed armature winding
variables (albeit in Park's coordinates). But "IA", "IB" and "IC", see figure 8.4, are
armature coil variables. E.G., what is labeled "IA" in the S.M. initial condition printout
is actually iab, the current from "a" to "b" in the winding.
2. For the steady-state initial-condition output, the situation is identical to that in point 1)
12 - VIII. Three-phase dynamic synchronous machine source

(a) (b)

a b a b
IA
IA
IB IC IB

IC

c c

Fig.8.4. Armature current labeling


(a) Conventional Wye labeling
(b) Erroneous initial conditions labeling;
delta connection

Restriction: The option of DELTA CONNECTION, when used for parallel machines, applies to all
machines connected to the same bus. Consequently, it is not possible to have a
combination of Wye-connected and Delta-connected machines at the same bus. If such a
rare configuration should ever arise, the user is required to isolate the machines by a
small reactance or resistance.

VIII-B-3. Class 3 SM data cards


Next come either 4 or 5 cards, which specify the electrical parameters of the synchronous machine.
The first card of this group has the following format:

1 2 3 4 5 6 7 8
12 34 56 7 890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
MECHUN
NUMAS
KMAC
KEXC

NP SMOVTP SMOVTQ RMVA RKV AGLINE S1D S2D

I2 I2 I2 I1 I3 E10.6 E10.6 E10.6 E10.6 E10.6

Parameters:
NUMAS: The number of connected masses on the shaft system of this generator.
VIII. Three-phase dynamic synchronous machine source - 13

EPOMEG: The mass number witch corresponds to the generator (or motor) rotor, within the
interconnected mass-spring shaft system. Masses are to be numbered by the user for
identification, beginning with number one on either end, and continuing sequentially
(2,3,...) to the other end of the shaft.
KEXC: The mass witch corresponds to the exciter on the shaft system. If no exciter exists, leave
this field blank.
MECHUN: Flad used to distinguishe the type of units in which mechanical parameters are supplied
0 or blank: English units
1: Metric units

NP: The number of poles (not pole pairs) which characterize the machine rotor. The electrical
frequency of the machine is equal to the mechanical frequency times NP/2.
SMOVTP: Proportionality factor which is udes only to split the real power among the generators
constituting a multiple machine during initialization. If a single machine, this field may be
ignored. If a dual machine, suppose that the user punches value PA for this half of the dual, and
value PB for the other half; then the fraction PA/(PA+PB) of the total steady-state real power
output willbe assigned to this half of the dual during machine initialization.
SMOVTQ: The same as SMOUTP, only for reactive rather than real power.
RMVA: The total three-phase volt-ampere rating of the machine, in units of MVA (million volt-
amperes).
RKV: The rated line-to-line viltage of the macine, in units of RMS kV. Taken as a pair, “RKV” and
“RMVA” define the base values upon which per unit machine parameters are assumed to apply.
Should the machine in question have a delta-connected armature (DELTA CONNECTION
request, section VIII-C-2-c), specify RKV as SQRT(3)times the rated winding voltage in RMS
kV.
AGLINE: Value of the field current in amperes which will produce the rated armature voltage (1.0
per unit) on the sir gap line (direct axis). This is an indirect specification of the mutual
inductance between the field and the armature of the machine, see figure 8.5. If the S.M. is
saturable, append an extra minus sign (making "AGLINE" negative) as a flag for possible
saturation.
S1D: Value of the field current in amperes which will produce rated armature voltage (AD1 per
unit) on the no-load saturation curve, see figure 8.5. This field can be left blank if the S.M. is
not saturable (i.e. AGLINE positive).
S2D: Value of the field current in amperes which will produce the rated voltage (AD2 per unit) on
the no-load saturation curve, see figure 8.5. This field can be left blank if the S.M. is not
saturable (i.e. AGLINE positive).
14 - VIII. Three-phase dynamic synchronous machine source

|Vt| air gap line (characteristic if the


P.u. machine iron were not subject to

Phasor terminal voltage magnitude


saturation).
AD2

1.0
AD1 curve of terminal voltage phasor
magnitude as a function of field
current at rated speed and no load

S1D S2D
ANGLINE Field current, if

Fig.8.5. Air-gap line and no-load saturation curve (d-axis)

The parameters "AGLINE", "S1D" and "S2D" previously discussed actually apply to the d-axis of
the machine. A sećond card follows to provide extra Q-axis parameters. If there is no saturation
modelling (i.e. AGLINE ≥ 0 on previous card), this extra card should be left blank.

1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9 0 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
AD1 AD2 AQ1 AQ2 AGLQ S1Q S2Q

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

Parameters:
ADI: Per unit voltage at which current "S1D" was measured on the previous card. Should this field
be left blank, the default value of 1.0 would be automatically assigned.
AD2: Per unit voltage at which current "S2D" was measured on the previous card. Should this field
bę left blank, the default value of 1.2 will be automatically assigned.
AQI: Per unit voltage at which current "S1Q" is measured. Should this field be left blank, the
default value of 1.0 would be automatically assigned.
AQ2: Per unit voltage at which current "S2Q" is measured. Should this field be left blank, the
default value of 1.2 will be automatically assigned.
AGLQ: Value of the field current in amperes which will produce the rated armature voltage (1.0 per
unit) on the air gap line (q-axis). This is an indirect specification of the mutual inductance between the
fieeld and the armature of the machine (cfr. AGLINE).
A nonzero value of AGLQ indicates saturation as follows:
VIII. Three-phase dynamic synchronous machine source - 15

AGLQ > 0: Here the q-axis air-gap line is known, and AGLQ is the value of the field
current in amperes which will produce rated armature voltage on that line.
Data fields S1Q and S2Q must not be left blank (supply correct values).
AGLQ < 0: The negative value for AGLQ is a flag indicating that the user does not
know the air-gap line for the q-axis. The EMTP will proceed to internally
generate an approximate value, and use it for q-axis saturation modeling. In
this case, S1Q and S2Q can be left blank.

S1Q: Like S1D (see previous card), but applied to the q-axis.
S2Q: Like S2D (see previous card), but applied to the q-axis.

The remaining cards of Class 3 S.M. data depend upon whether standard manufacturer-supplied data
or internal parameters (Park's data) are being used. An extra note regarding the simulation of reduced
models is added too.

a. Manufacturer's data

If the PARAMETER FITTING card was used (i.e. request to use manufacturer's data), two
additional cards having the following format complete the Class 3 data:
1 1 1 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
RA XL XD XQ XDD XQQ XDDD XQQQ

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

1 2 3 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
TDOP TQOP TDOPP TQOPP XO RN XN XCAN

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

Parameters:
RA: Armature resistance, in per unit. This must be non-negative.
XL: Armature leakage reactance, in per unit.
XD: Direct-axis (d-axis) synchronous reactance, in per unit.
XQ: Quadrature-axis (q-axis) synchronous reactance, in per unit.
XDD: Direct-axis transient reactance, in per unit.
XQQ: Quadrature-axis transient reactance, in per unit.
XDDD: Direct-axis subtransient reactance, in per unit.
XQQQ: Quadrature-axis subtransient reactance, in per unit.
The meaning of the next four time-constants depend upon the parameter FM, in the PARAMETER
FITTING card
16 - VIII. Three-phase dynamic synchronous machine source

1) FM ≤ 2.0 (open circuit time constants - avoid influence of saturation effects! )


TDOP: Direct-axis open-circuit transient time constant, in seconds
TQOP: Quadrature-axis open-circuit transient time constant, in seconds
TDOPP: Direct-axis open-circuit subtransient time constant, in seconds
TQOPP: Quadrature-axis open-circuit subtransient time constant, in seconds
2)FM > 2.0 (short circuit time constants - preferable)
TDOP: Direct-axis short-circuit transient time constant, in seconds
TQOP: Quadrature-axis short-circuit transient time constant, in seconds
TDOPP: Direct-axis short-circuit subtansient time constant, in seconds
TQOPP: Quadrature-axis short-circuit subtransient time constant, in seconds
X0: Zero-sequence reactance, in per unit.
RN: The real part of the neutral grounding impedance, in per unit.
XN: The imaginary part of the neutral grounding impedance, in per unit.
Note: The machine is assumed to have a Wye-connected armature, with the neutral connected to
ground through the impedance Rn+jXn. If the machine is in fact ungrounded (but still Wye-
connected) simply use a large grounding impedance.
XCAN: Canay's characteristic reactance, in per unit.
Tf - this field is left blank, the program will set XCAN = XL (leakage resistance).
Note on simulation of reduced models:
If the user wants to simulate a reduced model, that is, a machine without one or more rotor
windings, the following rules are to be used:
1. The field coil must always be present, therefore XDD>0.0 and TDOP>0.0.
2. If the damper winding on the direct axis is to be dropped, the user should set XDDD =
XD and TDOPP = 0.0.
3. However, as the parameter XDDD is not going to be used, the user cen also leave this
field blank.
4. If a machine without the g-winding (eddy-current winding) on the quadrature axis is to
be simulated, punch XQQ equal to XQ (or XQQ = 0.0) and set TQOP = 0.0.
5. If the damper winding on the quadrature axis is to be dropped, the user should set
XQQQ = XQ (or XQQQ = 0.0) and TDOPP = 0.0.
6. If a machine without any damper winding at all on the quadrature axis is to be simulated,
set XQQ= XQQQ= XQ (or=0.0), and TQOP= TQOPP= 0.0.
VIII. Three-phase dynamic synchronous machine source - 17

b. Internal parameters

Should the user have chosen to describe the machine by means of internal per unit inductance and
resistance matrices (no PARAMETER FITTING card used), then the Class 3 S.M. data are completed
with three cards of the following format:
1 1 1 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
LF LAF LFKD LD LAKD LKD

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

1 1 1 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
LG LAG LGKQ LQ LAKQ LKQ

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

1 1 1 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
XO RA RF RKD RG RKQ RN XN

E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

Parameters:

LF: The self-inductance of the field winding, in per unit.

LAF: The mutual-inductance coefficient between the armature and the field winding, in per unit.

LFKD: The mutual-inductance coefficient between the field winding and the d-axis damper
winding, in per unit, characteristic reactance, in per unit.

LD: The self-inductance coefficient for the direct axis of the armature, in per unit.
LAKD: The mutual-inductance coefficient between the armature and the direct axis damper
winding, in per unit.

LKD: The self-inductance of the direct axis damper winding, in per unit.

LG: The self-inductance of the eddy-current winding, in per unit.

LAG: The mutual-inductance coefficient between the armature and the eddy-current winding, in per
unit.

LGKQ: The mutual-inductance coefficient between the eddy-current winding and the q-axis
damper winding, in per unit.

LQ: The self-inductance coefficient for the quadrature axis of the armature, in per unit.
18 - VIII. Three-phase dynamic synchronous machine source

LAKQ: The mutual-inductance coefficient between the armature and the quadrature axis damper
winding, in per unit.

LKQ: The self-inductance of the quadrature axis damper winding, in per unit.

X0: Zero-sequence reactance, in per unit.

RA: Armature resistance, in per unit.

RF: Resistance of the field winding, in per unit.

RKD: Resistance of the damper winding on the direct axis, in per unit.

RG: Resistance of the eddy-current winding, in per unit.

RKQ: Resistance of the damper wińding on the quadrature axis, in per unit.

RN: The real part of the neutral grounding impedance, in per unit.

XN: The imaginary part of the neutral grounding impedance, in per unit.
Note: The machine is assumed to have a Wye-connected armature, with the neutral connected
to ground through the impedance Rn+jXn. If the machine is in fact ungrounded (but still
Wye-connected) simply use large grounding impedance.

Note on the simulation of reduced models:


The simulation of a reduced model is also possible when internal parameters are used. Two rules
must be followed:
1. In order to avoid a zero-division error, whatever value different from 0. must be punched
for the self-inductance coefficient of the winding which is to be dropped.
2. All the mutual-inductance coefficients of this winding must be set equalt to 0.
For instance, if a machine without the q-axis damper winding is to be modeled then the user should
punch LAKQ = LGKQ = 0 and LKQ ≠ 0.

VIII-B-4. Class 4 SM data cards


Next come the mass cards which contain mechanical parameters for the shaft system. There is to be
one such card for each mass, punched according to the format immediately below. In number, there are
"NUMAS" such cards (see lst card of Class 3 data, columns 1-2); ordering is actually immaterial (the
mass cards can be shuffled) , though it is generally clearer to stack such cards in naturally-increasing
order of the mass number "ML". Further, the unit system to be used depends on MECHUM, which was
specified on the first card of class 3 data (column 7).
VIII. Three-phase dynamic synchronous machine source - 19

1 2 3 4 5 6 7 8
12 34567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
ML EXTRS HICO DSR DSM HSP DSD

I2 E10.6 E10.6 E10.6 E10.6 E10.6 E10.6

Parameters:
MF: The mass number. Recall that masses are to be numbered by the user beginning with number
one on either end of the shaft system, and continuing sequentially to the other end, see figures
8.1 and 8.3 at the beginning of this chapter.
EXTRS: The fraction of the total external mechanical torque (power) which is associated with mass
"ML":
Generator: For a generator, enter the fraction of the total external mechanical torque of
this shaft system which is applied to this particular mass. If a pump, enter a negative
value.
Motor: For a motor, enter the fraction of the total external mechanical torque of the shaft
system which is developed by this particular mass. If a pump, enter a positive value.
HICO: The moment of inertia of mass number "ML". This is to be in units of
(million pound-feet2) if MECHUN = 0
(million kg-m2) if MECHUN = 1
DSR: The speed-deviation self-damping coefficient for mass number "ML". By
definition,
Ti=DSR(ωi - ωs)
where
Ti is this particular damping torque under consideration for mass i
ωi is the angular velocity of mass i
ωs is the synchronous mechanical velocity for this shaft system.
Data is to be punched in units of
[(pound-feet)/(radians/second)] if MECHUN = 0
[(N-m)/(radians/second)] if MECHUN = 1
DSM: The mutual-damping coefficient. This pertains to the present mass (i = ML) and the mass
with the next higher number (i+1). The damping in question is function of the velocity
difference between the two masses
T=DSM(ωi - ωi+1)
The mutual-damping coefficient is to be punched in units of
[(pound-fee.t)/(radians/second)] i.f MECHUN = 0
[(N-m)/(radians/second)] if MECHUN = 1
20 - VIII. Three-phase dynamic synchronous machine source

HSP: The spring constant. This pertains to the elastic connection between the present mass (i = ML)
and the mass with the next higher number (i+1). Units for this data are
[(million pound-feet)/(radians)] if MECHUN = 0
[(million N-m)/(radians)] if MECHUN = 1
DSD: The absolute-speed self-damping coefficient for this mass number i. By definition,
Ti=DSD ωi
where
Ti is the associated damping torque on mass number i.
ωi is the angular velocity (absolute) of this mass.
Units for this data are:
[(pound-feet)/(radians/second)] if MECHUN = 0
[(N-m)/(radians/second)] if MECHUN = 1
It will be noted that fields "DSM" and "HSP" contain data which really does not belong exclusively
to mass number i = ML, they also pertain to the mass which is number i+l. For the last mass card
(number "NUMAS"), these two fields have no meaning, and are to be left blank.
Terminate the mass cards with a blank card.

VIII-B-5. Class 5 SM data cards

a. General remarks
The Class 5 (output request) cards follow the blank card terminating the Class 4 (mass) cards.
The requests for the output of S.M. variables are divided into five separate groups as follows:
1. Electrical variables
2. Mechanical angles of shaft masses
3. Mechanical speed deviations of shaft masses
4. Mechanical torques on shaft sections
5. Machine parameters and initial conditions
To request an output of any S.M. variable, the user has to specify the output group to which the
variable belongs and an unique number identifying that variable within that output group. The rules for
assigning those numbers are explained in the following sections.
There is a common data card format for all different output groups. The user must specify the
desired S.M. output(s) in the following format:
VIII. Three-phase dynamic synchronous machine source - 21

1 2 3 4 5 6 7 8
12 3 4 5678 901234 567890 123456 789012 345678 901234 567890 123456789012345678901234567890
GROUP
ALL

N1 N2 N3 N4 N5 N6 ...

2X I1 I1 4X I6 I6 I6 I6 I6 I6 ...

Parameters:
GROUP: Flag identifying the output group to which the variables specified on this card belong.
Presently, there are 5 possible output groups. All are explained in detail in the remainder
of section VIII-C-5 [points b) up to f)].
ALL: Flag identifying a request for the output of all possible variabl2s in this output group.
0 or blank: Selective specification of variables in columns 9-80
1: Al1 possible variables in this class are to be output; columns 9-80 will not be scanned.
Nl....N12: Identification of variables to be output (in I6 format). Depending on the GROUP code,
the meaning of output request parameters Nl. ...N12 is different. This is explained in
detail in the remainder of section VIII-C-5 [points b) up to f)].
The output request cards can be stacked in any order, i.e., a request for output group i does not have
to precede the request for output group i+1. Similarly, the variable numbers (columns 9-
80) can be specified in any order. It is also possible to stack any number of cards
specifying the requests for different variables within any output group.
For EMTP output and plotting purposes; the output variables are actually identified by a pair of 6-
character names. The first name identifies the machine in question, in order of data input;
for example, "MACH 3" would apply to the third machine. The second name identifies
the variable type mnemonically, as documented in sections b) up to f). Some examples of
such column headings are shown in section VIII.D.
A blank card terminates the Class 5. S.M. data cards.

Specification of variables in Output Group 1

Presently there are 15 possible electrical variables in this group. The actual number of variables
requested will vary depending on the complexity of the model used. The following Table summarizes
the meaning of the request values in case of GROUP = l.
22 - VIII. Three-phase dynamic synchronous machine source

Table I. Summary of variables in OUTPUT Group l.


A6 format
Variable Output request number Units
Output identification name
ID 1 A “ID”
IQ 2 A “IQ”
I0 3 A “I0”
IF 4 A “IF”
IKD 5 A “IKD”
IG 6 A “IG”
IKQ 7 A “IKQ”
IA 8 A “IA”
IB 9 A “IB”
IC 10 A “IC”
VF 11 V “VF”
MFORCE 12 A “MFORCE”
MANGLE 13 Rad “MANGLE”
TEG 14 Nmx106 “TQ GEN”
TEXC 15 Nmx106 “TQ EXC”

where ID current in the d-axis armature winding


IQ current in the q-axis armature winding
I0 armature winding zero-sequence current
IF field winding current
IKD current in the d-axis damper winding
IG current in the eddy-current winding
IKQ current in the q-axis damper winding
IA current in the phase "a" armature winding
IB current in the phase "b" armature winding
IC current in the phase "c" armature winding
VF voltage applied to the field winding; this will be a constant voltage, unless the
user explicitly specifies a connection to TACS exciter dynamics as part of the
Class 6 S.M. data cards
MFORCE the total mmf in the air-gap of the machine
MANGLE angle between the q- and d-axis components of the total mmf
TEG electromagnetic torque of the machine
TEXC electromagnetic torque of the exciter

b. Specification of variables in Output Group 2


This output group contains the mechanical angles of the different masses in the lumped mass model
of the turbine-generator set. The number of possible variables in this group depends on the number of
masses used in the representation of the machine (parametep NUMAS in Class 3 S.M. data cards).
Every mass of the turbine-generator set has been assigned a number ("ML") during the specification
of its parameters (Class 4 S.M. data cards). The same number is to be used when requesting the output
of the mechanical angle of that mass. The output is in units of degrees. The output identification name is
"ANGi".
VIII. Three-phase dynamic synchronous machine source - 23

c. Specification of variables in Output Group 3


This output group contains the deviations of the mechanical speeds of the different masses of the
machine shaft from the synchronous speed. Similarly to Output Group 2, specify the appropriate mass
number to obtain the desired output in units of radians/seconds. The identification name is "VELi".

d. Specification of variables in Output Group 4


This output group contains the mechanical torques on the different shaft sections of the turbine-
generator set. The shaft torque number i is the torque on the shaft section connecting masses number i
and i+l; therefore, there is no output possible for a single-mass model. The units of the output are million
Newton-meters. The output identification name is "TORi".
e. Specification of variables in Output Group 5
This output group can be printed only immediately following the steady-state solution. At present,
there are two possible requests in this group obtained by punching 1 and/or 2 in any of the variable
number fields (columns 9-80) or Group 5 card:
Punch"1"to request the printout of all machine parameters (reactances, resistances, shaft data, etc.)
following the steady-state solution
Punch"2"to request the complete printout of the initial conditions of a machine

VIII-B-6. Class 6 SM data cards


Following the blank card terminating the Class 5 SM data cards come cards which describe any
interface connections between the machine under consideration and TACS. Ordering of the different
possible cards is immaterial: they can be shuffled, without altering the results. Should a machine have
no connections at all to TACS, then no Class 6 data should be specified. This card grouping should NOT
be terminated by a blank card. Instead, class 7 cards immediately should follow the blank card of Class 5
or the last Class 6 data card. The general format for such Class 6 cards is as follows:

1 2 3 4 5 6 7 8
12 345678 901234 567 890123456789012345678901234567890123456789012345678901234567890
KK BUS KI

I2 A6 6X I3

Depending on the kind of TACS control one wants to model, following guidelines apply:
If the field voltage of the machine is to be controlled by exciter dynamics which have been modelled
using TACS, then the following is required:
KK: punch "71" in columns 1-2, as a special request for the exciter connection.

BUS: The 6-character name of a TACS variable is to be punched in columns 3-8. The numerical
value of this TACS variable will then be used by the EMTP logic for scaling the field
voltage value EFD of this machine.
24 - VIII. Three-phase dynamic synchronous machine source

Note:
- This "scaling" is not simply a multiplication factor: some "history terms” are involved.
Suppose that one wants to "scale" machine parameter EFD using a TACS variable called VF.
The following formulas apply:
EFD(l) = EFD(2) = EFD(0) * VF(0)
EFD(i) = EFD(i-1)*VF(i-2)/VF(i-3) (for i .GE. 3)
- Should the user want to code the logic of this TACS connection, but temporarily bypass the
associated dynamics, then set this TACS value to "UNITY". Recall that this is the name of
the built-in TACS source which has output identically equal to 1.0.
- If no such a card is used, the EMTP logic will simply hold the' field voltage for this machine
constant, at the value obtained by steady-state solution.
KI: to the left bank.
a) If the mechanical power applied to any mass on the shaft system is to be controlled by
dynamics which have been modeled using TACS, then the following is required:

KK: Punch "72" in columns 1-2, as a special request for the TACS control of mechanical
power.

BUS: The 6-character name of a TACS variable is to be punched in columns 3~8. The
numerical value of this TACS variable will then be used by the EMTP logic as a
multiplicative factor for scaling the otherwise-constant (steady-state) mechanical power
values.
Note:
- Should the user want to code the logic of this TACS connection, but temporarily bypass the
associated dynamics, then set this value to "UNITY".
- If no such a card is used for mass N, the EMTP logic will simply hold the external
mechanical power applied to that mass constant (at whatever value was dictated by the initial
condition calculation). Consequently, the user can selectively control the mechanical power
on different shaft sections.
KI: Should contain the mass number of the mass under consideration (see parameter "ML",
Class 4 data).
b) If the internal electrical machine variables are to be passed into TACS, then one data card
must be specified for each such variable. The data card format to be used is as follows:

KK: Punch "73" in columns 1-2, as a special request for the internal electrical machine
variables.

BUS: The 6-character name of a TACS source whose value is to be equal to the desired
electrical machine variable at each time-step.
KI: Punch variable number in columns 15-17. The following Table summarizes the variables
which can be passed to TACS.
VIII. Three-phase dynamic synchronous machine source - 25

Tab. VIII.C.1– Summary of variables accessible by TACS


Variable Output request number Units
ID 1 A
IQ 2 A
I0 3 A
IF 4 A
IKD 5 A
IG 6 A
IKQ 7 A
VD 8 V
VQ 9 V
VO 10 V
VF 11 V
MFORCE 12 A
MANG 13 Rad
TEG l4 Nmx106
TEXC 15 Nmx106
PSID 16 Weber-turn
PSIQ 17 Weber-turn

where
ID current in the d-axis armature winding
IQ current in the q-axis armature winding
I0 armature winding zero-sequence current
IF field winding current
IKD current in the d-axis damper winding
IG current in the eddy-current winding
IKQ current in the q-axis damper winding
VD voltage applied to the d-axis
VQ voltage applied to the q-axis
V0 zero-sequence voltage
VF voltage applied to the field winding; this will be a constant voltage, unless the
user explicitly specifies a connection to TACS exciter dynamics as part of the
Class 6 S.M. data cards.
MFORCE the total mmf in the air-gap of the machine
MANG angle between the q- and d-axis components of the total mmf
TEG electromagnetic torque of the machine
26 - VIII. Three-phase dynamic synchronous machine source

TEXC electromagnetic torque of the exciter


PSID d-axis flux linkage
PSIQ q-axis flux linkage
c) If mechanical variables (e.g. mechanical angles θi, angular velocities ωi, or shaft torques Ti) of
the shaft system are to be passed into TACS, then one data bard must be punched for each
such variable. The data card format is as follows:
KK: Punch "74" in columns 1-2, as a special request for the access to S.M. mechanical
variables.
BUS: This field is to be punched with the name of the TACS source whose value is to be
controlled by the mechanical machine variable at each time-step.
KI: Code number which identifies the mechanical variable in question:
for θi punch i
for ωi punch NUMAS + i
for Ti punch 2xNUMAS + i
where
i mass number "ML" as specified in Class 4 S.M. data cards (mass cards)
NUMAS number of connected masses on the shaft system of this S.M.
(specified in Class 3 S.M. data cards)
Note:

- Angles are passed into TACS in units of absolute radians: the value of the TACS variable is
increased 2Πf/(NP/2) radians every second. Remember that the output of a mass angle is in
degrees.
- The angular velocities passed into TACS, in radians/second, are absolute velocities, while
the output variables from Output Group 3 are deviations from the synchronous speed, in
radians/second too.
- Shaft torques are passed in million Newton-meters.

VIII-C. Class 7 SM data cards


The end of a machine data cards is to be indicated by a special terminator card. If the machine in
question is not paralleled by one or more additional dynamic S.M. source components, then a card
bearing the text "FINISH" in columns 3-8 is to be punched.

1 2 3 4 5 6 7 8
12 345678 90123 456789012 345678901 234567890 123456789 012345678 901234567 89012345 67890
FINISH
VIII. Three-phase dynamic synchronous machine source - 27

If a second dynamic synchronous machine is to be connected in parallel (armature windings


connected to the same busses) with the one just input, then the "FINISH" card must be modified to read
"FINISH PART", indicating to the EMTP that S.M data for this three-phase bus, to which armatures are
connected, have only been partially completed. Next come data cards for the second machine, beginning
with Class 2 and ending with Class 7.
This procedure can be generalized to apply to as many machines as the user wants to parallel on the
same bus. For M machines, the first M-1 has data cards which end with a "FINISH PART" card, while
the final one ends with a "FINISH" card indicating to the EMTP that no other machines follow on that
machine bus. Only the first of the M machines has any Class 1 data cards, since this applies to the
common bus; all M-1 following machines skip this data.

VIII-D. Illustrative examples


To show the structure of data files which involve three-phase dynamic synchronous machine
modeling, some simple examples are shown in this section. The comments for each case are aimed to
help the user to understand the options chosen for each test machine and the information contained in the
output listing generated by the program.

VIII-D-1. Example 1
Consider the system shown in Figure 8.6. A synchronous generator is connected to u power network
consisting of a transformer, a transmission line, compensated by a series capacitor, and an infinite bus

BUS3 BUS2 BUS1 BUS0


S.M.
R0=0.075 X0=0.610 X0=X1=0.045
R1=0.021 X1=0.236 XC=75% Infinite
of X1 Bus
26/500 kV
X=0.100

Impedances in p.u. on generator base power


Fig.8.6 System diagram for Example 1

The synchronous machine has the following data:


a) Ratings
892.4 MVA, 2 poles, 26 kV, 60 Hz
b) Air-gap line and saturation curve
1800 A Field current which produces rated voltage on the air-gap line
1907 A Field current which produces rated voltage (1 p.u.) on the no load saturation curve
3050 A Field current which produces 1.2 p.u. voltage on the no-load saturation curve
All these values apply to the direct axis. The air-gap line and the saturation curve of the quadrature
axis are not known.
28 - VIII. Three-phase dynamic synchronous machine source

c) Electrical data
Ra = 0.0pu
Xl = 0.130pu
Xd = 1.790pu
Xq = 1.710pu

Xd’ = 0.169pu τq0’ = 0.130sec


Xq’ = 0.130pu τd0” = 0.032sec
Xd” = 0.135pu τq0” = 0.130sec
Xq” = 0.130pu τd0’ = 4.300sec

X0 = 0.130pu
The Canay's characteristic reactance is not known, it is supposed to have the same value that the
leakage reactance has, Xl.
The armature winding are Wye-connected and the neutral is solidly grounded Ra = 0.0 and Xn = 0.0).
d) Mechanical data

Ma Torque Inertia Spring constant


Fraction (sec) (pu Torque/rad)
HP 0.30 0.0928970 19.303
IP 0.26 0.1555890 34.929
LP 0.22 0.8586700 52.038
LP 0.22 0.8842150 70.858
GE O.868495O 2.822
EX 0.0342165
C

The transformer has no losses and the reactance value is in per unit on the machine base power.
The system is running under balanced steady-state with the following operating conditions:
a.Infinite bus voltage
Voltage magnitude: 1.00 p.u. (p.u. value on 500 kV base)
Phase "a" angle: 0.0 degrees
b.Generator terminal voltage
Voltage magnitude: 1.05 p.u. (p.u. value on 26 kV base)
Phase "a" angle: 36.5 degrees
VIII. Three-phase dynamic synchronous machine source - 29

Before creating the data file, some calculations are needed in order to convert data given in per unit
to physical quantities.
The base impedance in both sides of the transformer is
5002
High-voltage side Zbaseh = = 280.143 (Ω)
892.40
262
Low-voltage side Zbasel = = 0.75751 (Ω)
892.40
Taking into account that the lower side is delta-connected, the actual reactances of each side, using
the proper base, is
0.100
High-voltage side X h = ⋅ 280.143 = 14.01 (Ω)
2
0.100
Low-voltage side Xl = ⋅ 0.75751 ⋅ 3 = 0.1136 (Ω)
2

No conversion is necessary for the electrical data of the machine as they are standard manufacturer's
data in per unit, which are accepted by the EMTP. However, mechanical data are to be input in physical
units; should the user want to input these data in English units, the values can be calculated using the
following formula:
2 ⋅ S base
WR 2 = H ⋅ ⋅ 23.7304 (million pound − feet2)
ω 2
base

S base
K = Ku ⋅ ⋅ 0.73756 (million pound − feet / rad)
ω base
being: WR2 the moment of inertia
H the inertia constant, in seconds
Sbase the three-phase rated (base) power, in MVA
ωbase the rated (base) speed, in radians/second
K the spring constant
Ku the spring constant, in pu Torque/rad
The data input for the synchronous machine of this example looks as follows:
BEGIN NEW DATA CASE
C
C TYPE-59 S.M. TEST CASE - EXAMPLE 1
C STEADY STATE INITIALIZATION
C
POWER FREQUENCY, 60
C
0.0001 0.0100 60.0 60.0
1 1 -1
5 5 20 20
C ----- Source impedance
BUS1-ABUS0-A 12.61
BUS1-BBUS0-B 12.61
30 - VIII. Three-phase dynamic synchronous machine source

BUS1-CBUS0-C 12.61
C ----- Series capacitor (75% compensation)
BUSC-ABUS1-A 20168.
BUSC-BBUS1-B 20168.
BUSC-CBUS1-C 20168.
C ----- Transmission line
51BUS2-ABUSC-A 21.0 170.9
52BUS2-BBUSC-B 5.88 66.11
53BUS2-CBUSC-C
C ----- Step-up transformer
TRANSFORMER TRAN A
9999
1BUS3-ABUS3-C .1136 26.00
2BUS2-A 14.01 288.67
TRANSFORMER TRAN A TRAN B
1BUS3-BBUS3-A
2BUS2-B
TRANSFORMER TRAN A TRAN C
1BUS3-CBUS3-B
2BOS2-C
C ----- Connectivity capacitors
BUS3-A 1.0
BUS3-B 1.0
BUS3-C 1.0
BLANK CARD ENDING BRANCH DATA.
BLANK CARD ENDING SWITCH DATA.
C ----- Infinite bus voltages
14BUS0-A 408248.3 60. 0.0 -1.
14BUS0-B 408248.3 60. -120.0 -1.
14BUS0-C 408248.3 60. 120.0 -1.
C ----- Synchronous generator specifications
59BUS3-A22290.4 60. 36.5
BUS3-B
BUS3-C
TOLERANCES 20
PARAMETER FITTING 2.0
C --- Machine ratings
6 5 6 2 1.0 1.0 892.4 26.0 -1800.0 1907.0 3050.0
-1.
C --- Electrical parameters - Manufacturer's data
0.000 0.130 1.790 1.710 0.169 0.228 0.135 0.200
4.300 0.850 0.032 0.050 0.130
C --- Mechanical system data
1 0.30 0.0276843 33.70161
2 0.26 0.0463672 60.98344
3 0.22 0.2558931 90.85449
4 0.22 0.2635058 123.7128
5 0.2588211 4.927003
6 0.0101969
BLANK CARD ENDING MASS CARDS
C --- Output data request
11
21
31
41
51
BLANK CARD ENDING OUTPUT REQUEST
FINISH
BLANK CARD ENDING SOURCE DATA.
C ----- Node voltage output request
BUS3-ABUS2-A
BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST
PRINTER PLOT
BLANK CARD ENDING PLOT REQUEST.
BEGIN NEW DATA CASE
BLANK
BLANK
VIII. Three-phase dynamic synchronous machine source - 31

When inspecting this file the following points can be noted:


1. The code 59 has been punched in columns 1-2 of the first Class 1 card, indicating that a
three-phase dynamic S.M. source is going to be input.
The machine is connected to the nodes BUS3-A, BUS3-B and BUS3-C.
Remember that the specified value of the voltage magnitude at the terminals of the machine
is the peak value. Since the machine is supposed to run under balanced initial conditions,
voltage magnitude and phase angle of the second and third cards are not specified.
2. The maximum number of iterations for the calculation of the rotor speed, parameter
NIOMAX, has been redefined using the TOLERANCES card. This number is now 20.
3. A PARAMETER FITTING card is used to indicate that manufacturer's data (external
parameters) will follow in Class 3 data cards.
4. An extra minus sign has been added to parameter AGLINE. This sign is used as a flag to
indicate that the machine is saturable. A negative value (-1.0) for AGLQ, on the next card,
indicates that the air-gap line for the q-axis is not known; in this case approximate values
will be internally generated by the program.
5. The field XCAN is left blank since the Canay's characteristic reactance is not known; the
program will internally set XCAN = XL.
6. As an external mechanical torque is applied to several masses on the shaft system, a
fraction of the total torque is punched in the cards associated to those masses.
The field HICO (moment of inertia) is punched in every mass card, while the field HSP has
not been punched in the card associated to the highest number mass. Remember that the
moment of inertia is to be punched in units of million pound-feet2 when English units are
used.
7. All machine variables are requested by punching 1 in column 4 (field ALL) of every output
group card.
8. This machine has no connections to Control Systems (TACS). Hence no Class 6 data card
has been inserted.
9. The "FINISH" card at the end of the machine data deck indicates that this machine is not
paralleled by any additional S.M.
The output listing for this case is shown next.
Comment card. NUMDCD = 1. |C data:EXAMPLE1.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C
Comment card. NUMDCD =4. |C TYPE-59 S.M. TEST CASE - EXAMPLE 1
Comment card. NUMDCD = 5. |C STEADY STATE INITIALIZATION
Coaaent card. NUMDCD = 6. |C
New power frequency STATFR = 6.00000000E+01 Hz. |POWER FREQUENCY, 60
Comment card. NUMDCD = 8. |C
Misc. data. 1.000E-04 l.000E-02 6.000E+01 | 0.0001 0.0100 60.0 60.0
Misc. data. 1 1 0 0 0 -1 0 0 0 0 | 1 1 -1
Printout : 5 5 20 20 0 0 | 5 5 20 20
Comment card. NUMDCD = 12. |C ----- Source impedance
Series R-L-C. 0.000E+00 3.345E-02 0.000E+00 | BUS1-ABUS0-A 12.61
Series R-L-C. 0.000E+00 3.345E-02 0.000E+00 | BUS1-BBUS0-B 12.61
Series R-L-C. 0.000E+00 3.345E-02 0.000E+00 | BUS1-CBUS0-C 12.61
Comment card. NUMDCD = 16. |C ----- Series capacitor (75* compensation)
Series R-L-C. 0.000E+00 0.000E+00 5.350E-05 | BUSC-ABUS1-A 20168.
Series R-L-C. 0.000E+00 0.000E+00 5.350E-05 | BUSC-BBUS1-B 20168.
Series R-L-C. 0.000E+00 0.000E+00 5.350E-05 | BUSC-CBUS1-C 20168.
32 - VIII. Three-phase dynamic synchronous machine source

Comment card. NUMDCD = 20. |C ----- Transaisslon line


1st of coupled R-L. 2.10000E+01 4.53326E-01 |51BUS2-ABUSC-A 21.0 170.9
5.880E+00 1.754E-01 0.000E+00 0.000E+00 0.000E+OO|52BUS2-BBUSC-B 5.88 66.11
5.040E+00 9.265E-02 5.040E+00 9.265E-02 1.092E+01|53BUS2-CBUSC-C
Comment card. NUMDCD = 24. |C ----- Step-up transformer
Sat. Xformer. 0.000E+00 0.000E+00 0.000E+00 | TRANSFORMER TRAN A
Special termination-of-points card. | 9999
Winding 1. 0.0000E+00 1.1360E-01 2.6000E+01 | 1BUS3-ABUS3-C .1136 26.00
Winding 2. 0.0000E+00 1.4010E+01 2.8867E+02 | 2BUS2-A 14.01 288.67
Transformer copy using reference name "TRAN A" | TRANSFORMER TRAN A TRAN B
Winding 1. (No values read, since copy) | 1BUS3-BBUS3-A
Winding 2. (No values read, since copy) | 2BUS2-B
Transformer copy using reference name "TRAN A" | TRANSFORMER TRAN A TRAN C
Winding 1. {No values read, since copy) | 1BUS3-CBUS3-B
Winding 2. (No values read, since copy) | 2BUS2-C
Comment card. NUMDCD = 35. |C ----- Connectivity capacitors
Series R-L-C. 0.000E+00 0.000E+00 2.653E-09 | BUS3-A 1.0
Series R-L-C. 0.000E+00 0.000E+00 2.653E-09 | BUS3-B 1.0
Series R-L-C. 0.000E+00 0.000E+00 2.653E-09 | BUS3-C 1.0
Blank card ending branches. IBR. NTOT = 21 19 |BLANK CARD ENDING BRANCH DATA.
Blank card ending switches. KSWTCH = 0. |BLANK CARD ENDING SWITCH DATA.
Comment card. NUMDCD = 41. |C ----- Infinite bus voltages
Source. 4.08E+05 6.00E+01 0.00E+00 -1.00E+00 |14BUS0-A 408248.3 60. 0.0 -1.
Source. 4.08E+05 6.00E+01 -1.20E+02 -1.00E+00 |14BUS0-B 408248.3 60. -120.0 -1.
Source. 4.08E+05 6.00E+01 1.20E+02 -1.00E+00 |14BUS0-C 408248.3 60. 120.0 -1.
Comment card. NUMDCD = 45. |C ----- Synchronous generator specifications
Source. 2.23E+04 6.00E+01 3.65E+01 -9.99E+03 |59BUS3-A 22290.4 60. 36.5
2nd phase of S.M. 2.22904E+O4 -83.50 | BUS3-B
3rd phase of S.M. 2.22904E+04 -203.50 | BUS3-C
Epsilon. 1.00E+02 l.00E-15 1.00E-16 20 |TOLERANCES 20
Optimize Park's data. 2.000E+00 |PARAMETER FITTING 2.0
Comment card. NUMDCD = 51. |C --- Machine ratings
4th S.M. card. 6 5 6 0 2 1.000 1.000 | 6 5 6 2 1.0 1.0 892.4 26.0 -1800.0 1907.0 3050.0
g-axis. 0.000 -1.0000 0.0000 0.0000 | -1.
Comment card. NUMDCD = 54. |C --- Electrical parameters - Manufacturer's data
5th S.M. card. 0.0000 0.1300 1.7900 | 0.000 0.130 1.790 1.710 0.169 O.228 0.135 0.200
6th S.M. card. 4.30O0 0.8500 0.0320 | 4.3OO 0.850 0.032 0.050 0.130
Comment card. NUMDCD = 57. |C --- Mechanical system data
Mass card 1 1 3.000E-01 2.768E-02 0.000E+00 | 1 0.30 0.0276843 33.70161
Mass card 2 2 2.600E-01 4.637E-02 0.000E+00 | 2 0.26 0.0463672 60.98344
Mass card 3 3 2.200E-01 2.S59E-01 0.000E+00 | 3 0.22 0.2558931 90.85449
Mass card 4 4 2.200E-01 2.635E-01 0.000E+00 | 4 0.22 0.2635058 123.7128
Mass card 5 5 0.000E+00 2.588E-01 0.000E+00 | 5 0.2588211 4.927003
Mass card 6 6 0.000E+0 1.020E-02 0.000E+00 | 6 0.0101969
Blank card terminating S.M. mass cards. |BLANK CARD ENDING MASS CARDS
Comment card. NUMDCD = 65. |C --- Output data request
S.M. output request card for class 1. | 11
S.M. output request card for class 2. | 21
S.M. output request card for class 3. | 31
S.M. output request card for class 4. | 41
S.H. output request card for class 5. | 51
Blank card terminating S.M. output requests. |BLANK CARD ENDING OUTPUT REQUEST
End of 0 S.M.-TACS Interface variables. | FINISH
Blank card ends electric network sources. |BLANK CARD ENDING SOURCE DATA.
Top "TAPSAV". NCHAIN = 6
Top "TAPSAV". NCHAIN = 8
Total network loss P-loss by summing injections = 7.124544414325E+O6
MACH 1 Data parameters and initial conditions of next machine follow. ---------------------------------------------
"BUS3-A" Unit 1
Machine reactances and resistances, in [ohms]. Quantities labeled as inductances are in fact reactances):
1.72098998E+02 Lf = self-inductance of the d-axis field winding;
1.44444444E+01 Laf = mutual Inductance between field and armature;
1.65922951E+02 Lfkd = field-damper mutual inductance for the d-axis;
1.35593904E+00 Ld = self-inductance of the d-axis armature winding;
1.44444444E+01 Lakd = mutual inductance from armature to d-axis damper;
1.66468509E+02 LKd = self-inductance of the d-axis damper winding;
1.9O839217E+02 Lg = self-inductance of circuit 1 of the q-axis;
1.37483266E+01 Laq = mutual inductance, q-axis circuit 1 to armature;
1.57926664E+02 Lgkq = mutual inductance, q-axis circuit 1 to circuit 2;
1.29533841E+00 Lq = self-Inductance of the q-axis armature winding;
1.37483266E+01 Lakq = mutual inductance, q-axis circuit 2 to armature;
1.67342161E+02 Lkq = self-inductance of circuit 2 of the q-axis;
9.84760197E-02 Lo = zero sequence Inductance;
0.00000000E+00 Ro = zero sequence resistance;
1.40614091E-01 Rf = resistance of the d-axis field winding;
0.00000000E+00 Ra = resistance of the armature;
4.06799147E-01 Rkd = resistance of the d-axis damper winding;
1.41386210E+00 Rg = resistance of circuit 1 of the q-axis;
8.19040989E-01 Rkq = resistance of circuit 2 of the q-axis;
Mechanical parameters in physical units, as described by the column headings that follow.
Moment of inertia Self-damping coefficients of mass Mutual-damping coeff. Torsional spring constant
of rotor mass Speed-deviation Absolute-speed (with following mass) (with following mass)
Million [n-m/rad/sec**2] Million [n-m/rad/sec] Million [n-m/rad/sec**2] Million (n-m/rad]
1.1666434E-03 0.0000000E+00 0.0000000E+00 0.0000000E+00 4.5709696E+01
1.9539590E-03 0.0000000E+00 0.0000000E+00 0.0000000E+00 8.27122O6E+01
1.0783585E-02 0.0000000E+00 0.0000000E+00 0.0000000E+00 1.2322649E+02
1.11O4391E-O2 0.0000000E+00 0.0000000E+00 O.OOOOOOOE+00 1.6779241E+02
1.09O6973E-O2 0.0000000E+00 0.0000000E+00 0.OOOOOOOE+00 6.6825237E+00
4.2970730E-04 0.0000000E+00 0.0000000E+00 0.OOOOOOOE+00 0.0000000E+00
Tabulation of: negative sequence current. CMNEG. CANEG = 4.5842101835E-11 -1.6237270
zero sequence current. CMZER. CAZER = 3.OO745O8231E-11 -0.2547583
Total current injected into the network at the generator bus, in phase coordinates. For parallel machines, this is the combined
total for ail of them. The first line displays the currents as found by the phasor network solution, and they will be unbalanced
VIII. Three-phase dynamic synchronous machine source - 33

if the network is. The 2nd line shows only the positive-sequence components of these. Magnitudes of currents are in units of
(amps).
Phase "a" injection Phase "b" injection Phase "c" injection
Magnitude Degrees Magnitude Degrees Magnitude Degrees
Actual: 1.7283552E+04 15.8863853 1.7283552E+04 -104.1136147 1.7283552E+04 135.8863853
Pos. seq.: 1.72B3552E+04 15.8863853 1.7283552E+04 -104.1136147 1.7283552E+04 135.8863853
Armature currents of generator in rotating reference frame (d-q-o coordinates), in units of [amperes].
Id Iq Io
-1.67966646031E+04 1.28823054176E+04 5.0409313O459E-11
Positive-sequence component of generator armature current in phase coordinates. in units of [amperes].
Armature of phase "a" Armature of phase "b" Armature of phase "c"
Magnitude Degrees Magnitude Degrees Magnitude Degrees
1.7283552E+04 15.8863853 1.7283552E+04 -104.1136147 1.7283552E+04 135.8863853
Field current of the generator in units of [amperes]. Total dc component
3.6194579712E+03 3.6194579712E+03
Electromechanical torque of the generator in units of [million n-m]. total dc component
1.4347481106E+00 1.43474811O6E+00
Exciter electromechanical torque in units of [million n-m]. Total dc component
4.8863525859E-03 4.8863525859E-03
Critical level of total air-gap MMF to begin saturation, in units of [amps] : 1.71429884454E+03 1.60523487584E+03
All rotor masses have angular velocity OMEGA = 3.76991118E+02 [radians/sec]. Mechanical angles of rotor masses follow, in
units of [Degrees] : 160.5132877 159.9719257 159.4134641 158.8913500 158.3997606 158.3578651
Shaft torques T(i.i+l) between rotor masses "i" and "i+1", for i=1. 2, ... NUMAS - 1. Units are [million n-m]. It is to
be noted that the transient damping torque is absent from this calculation, due to the constant, uniform speed of the steady state.
0.4318903390E+00 0.8061952994E+00 0.1122914881E+01 0.1439634463E+01 0.4886352586E-02
Top "TAPSAV". NCHAIN = 8
Comment card. NUMDCD = 74. |C ----- Node voltage output request
++++ Type-59 S.M. number 1 begins operation on segments 2 and 3.
Card of names for time-step loop output. | BUS3-A3US2-A
Blank card ending requests for output variables. |BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST
Column headings for the 34 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
First 2 output variables are electric-network voltage differences (upper voltage minus lower voltage);
Next 32 output variables pertain to Type-59 S.M. components (names are generated internally);
Step Time BUS3-A BUS2-A MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
ID IQ I0 IF IKD IG IKQ IA
MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
IB IC EFD MFORCE MANG TQ GEN TQ EXC ANG 1 ANG 2 ANG 3
MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
ANG 4 ANG 5 ANG 6 VEL 1 VEL 2 VEL 3 VEL 4 VEL 5 VEL 6 TOR 1
MACH 1 MACH 1 MACH 1 MACH 1
TOR 2 TOR 3 TOR 4 TOR 5
0 0.0 17918.291 419759.041 -16796.665 12882.3054 .50409E-10 3619.45797 -.3677E-11 .36415E-13 -.476E-12 16623.4302
-4214.5157 -12408.915 -508.94679 2399.24255 .453027055 1.43474811 .004886353 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 .56843E-13 0.0 -.5684E-13 0.0 0.0 0.0 .431890339
.806195299 1.12291468 1.43963446 .004886353
1 .1E-3 17405.6518 418553.96 -16796.692 12882.2736 .56429E-12 3619.45817 .002168509 .540219E-3 .001886795 16433.3165
-3579.8018 -12853.515 -508.94679 2399.24239 .453026937 1.43474665 .004886353 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 .56B43E-13 .56643E-13 -.56B4E-13 .22737E-12 .670838E-8 -.3024E-10 .431890339
.806195299 1.12291488 1.43963446 .004886353
2 .2E-3 16868.6262 416750.586 -16796.72 12882.2394 .58791E-12 3619.45837 .004346248 .001119425 .003906633 16219.8535
-2939.9988 -13279.855 -508.94679 2399.24222 .45302681 1.43474509 .004886353 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 .56843E-13 .11369E-12 -.5684E-13 .20464E-11 .272816E-7 -.12085E-9 .431890339
.806195299 1.12291488 1.43963446 .004886353
3 .3E-3 16307.2578 414357.908 -16796.746 12882.2032 .23S99E-11 3619.45856 .006444689 .001734927 .006049899 15983.3429
-2296.0172 -13687.326 -508.94679 2399.24204 .453026675 1.43474334 .004886353 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 0.0 .17053E-12 -.5684E-13 .85834E-11 .630048E-7 -.26921E-9 .431890339
.806195299 1.12291488 1.43963446 .004886353
4 .4E-3 15723.0938 411373.419 -16796.773 12882.1688 .16503E-11 3619.45877 .00852544 .002320062 .008083569 15724.1213
-1648.7739 -14075.347 -508.94679 2399.24186 .453026546 1.43474173 .004886354 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 -.1137E-12 .22737E-12 -.5684E-13 .25125E-10 .114105E-6 -.46998E-9 .431890339
.806195299 1.12291488 1.43963446 .004886353
5 .5E-3 15116.1969 407807.164 -16796.798 12882.1339 .26025E-12 3619.45896 .010503858 .002912944 .010140944 15442.5561
-999.1679 -14443.368 -508.94679 2399.24169 .453026415 1.43474004 .004886354 160.513288 159.971926 159.413464
158.89135 158.399761 156.357865 -.1705E-12 .28422E-12 -.5684E-13 .59515E-10 .180312E-6 -.71509E-9 .431890339
.806195299 1.12291488 1.43963446 .004886353
10 .001 11778.991 381405.781 -16796.917 12881.959 -.1579E-12 3619.45997 .019792886 .005897038 .020446008 13714.6695
2251.53619 -15966.206 -506.94679 2399.2408 .453025755 1.43473133 .004886355 160.513288 159.971926 159.413464
158.89135 158.399761 156.357865 -.2274E-12 .45475E-12 .34106E-12 .929901E-9 .745869E-6 -.21616E-6 .431890339
.806195299 1.12291488 1.43963442 .004886354
15 .0015 8024.07399 341493.781 -16797.022 12881.7801 .47164E-13 3619.46096 .027788526 .008962382 .030950031 11500.9761
5422.5045 -16923.481 -508.94679 2399.23988 .453025071 1.43472183 .004886357 160.513288 159.971926 159.413464
156.89135 158.399761 158.357865 -.4547E-12 .73896E-12 .40927E-11 .475092E-8 .172632E-5 -.21248E-8 .431890339
.806195299 1.12291488 1.43963432 .004886358
20 .002 3985.34285 289484.626 -16797.113 12881.5971 .S1185E-13 3619.46194 .03460656 .01211099 .041659174 8679.89346
8401.38832 -17281.282 -508.94679 2399.23894 .453024362 1.43471156 .004886358 160.513288 159.971926 159.413464
158.89135 158.399761 158.357865 -.4547E-12 .73696E-12 .23363E-10 .152099E-7 .315254E-5 .323797E-8 .431B90339
.606195299 1.12291488 1.43963412 .004886366
40 .004 -12107.956 2289.96161 -16797.32 12880.8312 -.1613E-11 3619.46527 .048977131 .025415962 .086105131 -3676.5922
16463.4419 -12786.85 -508.94679 2399.23495 .453021297 1.43466283 .004886362 160.513288 159.971926 159.413464
158.89135 158.399762 158.357865 -.108E-11 .18872E-10 .151385E-6 .255972E-6 .138735E-4 .217413E-6 .431890339
.806195299 1.12291486 1.43963153 .00488647
60 .006 -21637.936 -286145.91 -16797.237 12880.0373 -.1064E-11 3619.46667 .040146994 .039414002 .131561803 -14239.885
15601.7182 -1361.8336 -508.94679 2399.23085 .453017939 1.43460233 .004886364 160.513288 159.971926 159.413464
158.89135 156.399764 158.357865 .71623E-11 .462535E-9 .176753E-7 .134761E-5 .33721E-4 .130879E-5 .431890339
.806195298 1.12291469 1.43962405 .004886768
80 .008 -19438.671 -419470.86 -16796.81 12679.3049 -.6232E-12 3619.46467 .00519098 .052573377 .172762947 -17084.229
6283.46554 10800.7635 -508.94679 2399.22717 .453014604 1.43453482 .004886362 160.513288 159.971926 159.413464
158.89135 158.39977 158.357866 .127272E-9 .460034E-8 .101013E-6 .436992E-5 .633156E-4 .445837E-5 .431890339
.80619529 1.12291405 1.43960892 .004887371
100 .01 -6702.3258 -325413.66 -16796.064 12878.7659 -.1709E-11 3619.45838 -.05277604 .062605733 .202015976 -10668.042
-6440.0962 17108.1385 -508.94679 2399.22463 .453011802 1.43447065 .004886353 160.513288 159.971926 159.413464
158.891351 158.399779 158.357866 .115853E-8 .270604E-7 .388211E-6 .107794E-4 .101371E-3 .113208E-4 .431890336
.806195256 1.12291232 1.43958391 .004888363
34 - VIII. Three-phase dynamic synchronous machine source

Note that every variable is identified by a pair of 6-character names, the first name (upper name of
the printed pair) identifies the synchronous machine in order of input; in this example there is only one
machine. The second name (lower name of the printed pair) identifies the variable as documented in
section VIII.C.5.
Since the machine has more than one mass on the shaft system, mechanical variables are identified
by using the number associated to each mass in the second 6-character name. The name ANG is used to
identify variables of the Output Group 2 (mechanical angles), the name VEL is used for variables of the
Output Group 3 (deviations of the mechanical speeds from the synchronous speed) and the name TOR is
used for variables of the Output Group 4 (torques between masses). Note that 6 variables of groups 2
and 3 are printed, but only 5 pertaining to group 4.

VIII-D-2. Example 2: Two machines running in parallel


Figure 8.7 shows the system diagram of this second example; two machines running in parallel are
connected to a power network consisting of a transformer, a transmission line and an infinite bus.
BUS3
S.M.1

BUS2 BUS1 BUS0

R0=0.003 X0=0.032 X0=X1=0.009


R1=0.001 X1=0.011 Infinite
Bus
S.M.2 13.8/220 kV
X=0.040

Impedances in p.u. on generator base power


Fig. 8.7 System diagram for Example 2

The synchronous machine has the following data:


GENERATOR 1
a) Ratings
90 MVA, 8 poles, 13.8 kV, 50 Hz, 280 A (field current)
b) Electrical data
Ra = 0.038pu

Xl = 0.220pu
Xd = 1.200pu
Xq = 0.700pu
VIII. Three-phase dynamic synchronous machine source - 35

Xd’ = 0.350pu
Xq’ = 0.230pu

Xd” = 0.250pu
τd0’ = 6.240sec

τq0’ = 0.060sec
τd0” = 0.032sec

X0 = 0.150pu

c) Mechanical data
H = 4.5sec
GENERATOR 2
a) Ratings
76 MVA, 8 poles, 13.8 kV, 50 Hz, 250 A (field current)
b) Electrical data
Ra = 0.004pu

Xl = 0.175pu
Xd = 1.150pu
Xq = 0.685pu

Xd’ = 0.310pu
Xq’ = 0.182pu
Xd” = 0.210pu

τd0’ = 5.850sec
τq0’ = 0.073sec
τd0” = 0.036sec
36 - VIII. Three-phase dynamic synchronous machine source

X0 = 0.132pu

c) Mechanical data
H = 5.7sec
Both machines are not saturable, they have the armature windings wye-connected and the neutrals
solidly grounded. Canay's characteristic reactance is not known for any machine.
The transformer has no losses and the value of its reactance is in per unit on 100 MVA base.
The system is running under balanced steady-state with the following operating conditions:
a. Infinite bus voltage
Voltage magnitude: 1.00 p.u. (p.u. value on 220 kV base)
Phase "a" angle: 0.0 degrees
b. Generator terminal voltage
Voltage magnitude: 1.04 p.u. (p.u. value on 13.8 kV base)
Phase "a" angle: 0.0 degrees
c. The power is split among the two generators assuming the following proportionality
factors
Real power - Machine 1 = 0.55 Machine 2 = 0.45
Reactive power - Machine 1 = 0.55 Machine 2 = 0.45
Procedures to convert p.u. reactance of the transformer and mechanical parameters of both
machines to actual values are similar to those studied in Example 1.
The data deck for both machines is given next.
BEGIN NEW DATA CASE
C
C TYPE-59 S.M. TEST CASE - EXAMPLE 2
C STEADY STATE INITIALIZATION
C
POWER FREQUENCY, 50
C
0.0002 0.0100 50.0 50.0
1 1 -1
5 5 20 10
C ----- Source impedance
BUS1-ABUS0-A 4.356
BUS1-BBUS0-B 4.356
BUS1-CBUSO-C 4.356
C ----- Transmission line
51BUS2-ABUS1-A 1.452 15.488
52BUS2-BBUS1-B 0.484 5.324
53BUS2-CBUS1-C
C ----- Step-up transformer
TRANSFORMER TRAN A
9999
1BUS3-ABUS3-C .1143 13.80
2BUS2-A 9.680 127.02
TRANSFORMER TRAN A TRAN B
1BUS3-BBUS3-A
VIII. Three-phase dynamic synchronous machine source - 37

2BUS2-B
TRANSFORMER TRAN A TRAN C
1BUS3-CBUS3-B
2BUS2-C
C ----- Connectivity capacitors
BUS3-A 1.0
BUS3-B 1.0
BUS3-C 1.0
BLANK CARD ENDING BRANCH DATA.
BLANK CARD ENDING SWITCH DATA.
C ----- Infinite bus voltages
14BUS0-A 179629.2 50.0 0.0 -1.0
14BUS0-B 179629.2 50.0 -120.0 -1.0
14BUS0-C 179629.2 50.0 120.0 -1.0
C ----- Synchronous machine specifications
59BUS3-A 11718.36 50.0 34.0
BUS3-B
BUS3-C
C ----- First generator
PARAMETER FITTING, 2.0
C --- Machine ratings
1 1 8 0.55 6.55 90.0 13.8 280.0
BLANK CARD'- NO SATURATION MODELING
C --- Machine parameters - Manufacturer's data
0.038 0.220 1.200 0.700 0.350 0.700 0.250 0.230
6.240 0.032 0.060 0.150
C --- Mechanical system data
1 1.0 3.116092
BLANK CARD ENDING MASS CARDS
C --- Output data request
51
1 1 2 3 4 5 6 7 8 11 14
21
31
BLANK CARD ENDING OUTPUT REQUEST
FINISH PART
C ----- Second generator
PARAMETER FITTING 2.0
C --- Machine ratings
1 1 8 0.45 0.45 76.0 13.8 250.0
BLANK CARD - NO SATURATION MODELING
C --- Machine parameters - Manufacturer's data
0.004 0.175 1.150 0.685 0.310 0.685 0.210 0.182
5.850 0.036 0.073 0.132
C --- Mechanical system data
1 1.0 3.333065
BLANK CARD ENDING MASS CARDS
C --- Output data request
51
1 1 2 3 4 5 6 7 8 11 14
21
31
BLANK CARD ENDING OUTPUT REQUEST
FINISH
BLANK CARD ENDING SOURCE DATA.
C ----- Node voltage output request
BUS1-ABUS2-ABUS3-A
BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST.
PRINTER PLOT
BLANK CARD ENDING PLOT REQUEST.
BEGIN NEW DATA CASE
BLANK

The following points can be remarked from this data file:


1. Since the two machines are connected to the same nodes, the Class 1 data cards are
common to both of them.
38 - VIII. Three-phase dynamic synchronous machine source

2. No saturation is considered for any machine; in this case, parameter AGLINE is positive
in the first Class 3 S.M. data card and the next card is left blank.
3. Reduced order models are used, the g-winding on the q-axis is to be dropped for both
machines. Note that field XQQ is punched equal to field XQ and TQOP is left blank.
4. A proportionality factor is used to split the power among the machines, the same values
for both, real and reactive powers, 55% for the first machine and 45% for the second one.
5. There is only one mass on each shaft system, therefore, the total external mechanical
torque is applied to this mass (EXTRS = 1.0), in both machines.
6. A selective request of variables is made for Output Group 1 (electrical variables) by
punching flag ALL = 0 and identifying the number of the variable to be output. Due to the
fact that there is only one mass per shaft system, flag ALL must be set to 1 for requesting
mechanical variables of Output Groups 2 and 3. For the same reason, no variable of
Output Group 4 (torques between masses) can be requested. The output groups are not in
order, because it is not necessary to keep the natural order.
7. A "FINISH PART" card indicates the end of data pertaining to the first machine and that
the machine is paralleled by one (or more) additional machine(s). A "FINISH" card at the
end of the second machine data deck indicates that there is no more machines connected
in parallel to the same nodes.
The output listing generated for this second case is shown next.
Comment card. NUMDCD = 1. |C data: EXAMPLE2. DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C
Comment card. NUMDCD = 4. |C TYPE-59 S.M. TEST CASE - EXAMPLE 2
Comment card. NUMDCD = 5. |C STEADY STATE INITIALIZATION
Comment card. NUMDCD = 6. |C
New power frequency STATFR = 5.00000000E+01 Hz. |POWER FREQUENCY, 50
Comment card. NUMOCD = 8. |C
Misc. data. 2.000E-04 1.000E-02 5.000E+01 | 0.0002 0.0100 50.0 50.0
Ml»c. data. 1 1 0 0 0 -1 0 0 0 0 | 1 1 -1
Printout : 5 5 20 10 0 0 | 5 5 20 10
Comment card. NUMDCD = 12. |C ----- Source impedance
Series R-L-C. 0.000E+00 1.387E-02 0.000E+00 | BUS1-ABUS0-A 4.356
Series R-L-C. 0.000E+00 1.387E-02 0.000E+00 | BUSl-BBUSO-B 4.356
Series R-L-C. 0.000E+00 1.387E-02 0.000E+00 | BUS1-CBUS0-C 4.356
Comment card. NUMDCD = 16. |C ----- Transmission line
1st of coupled R-L. 1.45200E+00 4.92998E-02 |51BUS2-ABUS1-A 1.452 15.488
4.840E-01 1.695E-02 0.000E+00 0.000E+00 0.000E+00|52BUS2-BBUS1-B 0.484 5.324
3.227E-01 1.078E-02 3.227E-01 1.078E-02 8.067E-01|53BUS2-CBUS1-C
Comment card. NUMDCD = 20. |C ----- Step-up transformer
Sat. Xformer. 0.000E+00 0.000E+00 0.000E+00 | TRANSFORMER TRAN A
Special termination-of-points card. | 9999
Winding 1. 0.0000E+00 1.1430E-01 1.3800E+01 | 1BUS3-ABUS3-C .1143 13.80
Winding 2. 0.0000E+00 9.6800E+00 1.2702E+02 | 2BUS2-A 9.680 127.02
Transformer copy using reference name "TRAN A" | TRANSFORMER TRAN A TRAN B
Winding 1. (No values read, since copy) | 1BUS3-BBUS3-A
Winding 2. (No values read, since copy) | 2BUS2-B
Transformer copy using reference name "TRAN A" | TRANSFORMER TRAN A TRAN C
Winding 1. (No values read, since copy) | 1BUS3-CBUS3-B
Winding 2. (No values read, since copy) | 2BUS2-C
Comment card. NUMDCD = 31. |C ----- Connectivity capacitors
Series R-L-C. 0.000E+00 0.000E+00 3.183E-09 | BUS3-A 1.0
Series R-L-C. 0.000E+00 0.000E+00 3.183E-09 | BUS3-B 1.0
Series R-L-C. 0.000E+00 0.000E+00 3.183E-09 | BUS3-C 1.0
Blank card ending branches. IBR, NTOT = 18 16 |BLANK CARD ENDING BRANCH DATA.
Blank card ending switches. KSWTCH = 0. |BLANK CARD ENDING SWITCH DATA.
Comment card. NUNDCD = 37. |C ----- Infinite bus voltages
Source. 1.80E+05 5.00E+01 0.00E+00 -1.00E+00 |14BUSO-A 179629.2 50.0 0.0 -1.0
Source. 1.80E+05 5.00E+01 -1.20E+02 -1.00E+00 |14BUS0-B 179629.2 50.0 -120.0 -1.0
Source. 1.80E+05 5.00E+01 1.20E+02 -1.00E+00 |14BUS0-C 179629.2 50.0 120.0 -1.0
Comment card. NUMDCD = 41. |C ----- Synchronous machine specifications
Source. 1.17E+04 5.00E+01 3.40E+01 -9.99E+03 |59BUS3-A 11718.36 50.0 34.0
2nd phase of S.M. 1.17184E+04 -86.00 | BUS3-B
3rd phase of S.M. 1.17184E+04 -206.00 | BUS3-C
Comment card. NUMDCD = 45. |C ----- First generator
Optimize Park's data. 2.000E+00 |PARAMETER FITTING 2.0
Comment card. NUMDCD = 47. |C --- Machine ratings
4th S.M. card. 1 1 0 0 8 0.550 0.550 | 1 1 8 0.55 0.55 90.0 13.8 280.0
VIII. Three-phase dynamic synchronous machine source - 39

q-axls. 0.000 0.0000 0.0000 0.0000 |BLANK CARD - NO SATURATION MODELING


Comment card. NUMDCD = 50. |C --- Machine parameters - Manufacturer's data
5th S.M. card. 0.0380 0.2200 1.2000 | 0.038 0.220 1.200 0.700 0.350 0.700 0.250 0.230
6th S.M. card. 6.2400 0.0000 0.0320 | 6.240 0.032 0.060 0.150
Comment card. NUMDCD = 53. |C --- Mechanical system data
Mass card 1 1 l.000E+00 3.116E+00 0.000E+00 | 1 1.0 3.116092
Blank card terminating S.M. mass cards. |BLANK CARD ENDING MASS CARDS
Comment card. NUMDCD = 56. |C --- Output data request
S.M. output request card for class 5. | 51
S.M. output request card for class 1. | 1 1 2 3 4 5 6 7 8 11 14
S.M. output request card for class 2. | 21
S.M. output request card for class 3. | 31
Blank card terminating S.M. output requests. |BLANK CARD ENDING OUTPUT REQUEST
End of 0 TACS interfaces. Parallel follows. | FINISH PART
Comment card. NUMDCD = 63. |C ----- Second generator
Optimize Park's data. 2.000E+00 |PARAMETER FITTING 2.0
Comment card. NUMDCD = 65. |C --- Machine ratings
4th S.M. card. 1 1 0 0 8 0.450 0.450 | 1 1 8 0.45 0.45 76.0 13.8 250.0
g-axis. 0.000 0.0000 0.0000 0.0000 |BLANK CARD - NO SATURATION MODELING
Comment card. NUMDCD = 68. |C --- Machine parameters - Manufacturer's data
5th S.M. card. 0.0040 0.1750 1.1500 | 0.004 0.175 1.150 0.685 0.310 0.685 0.210 0.182
6th S.M. card. 5.8500 0.0000 0.0360 | 5.850 0.036 0.073 0.132
Comment card. NUMDCD = 71. |C --- Mechanical system data
Mass card 1 1 1.000E+00 3.333E.00 0.000E+00 | 1 1.0 3.333065
Blank card terminating S.M. mass cards. |BLANK CARD ENDING MASS CARDS
Comment card. NUMDCD = 74. |C --- Output data request
S.M. output request card for class 5. | 51
S.M. output request card for class 1. | 1 1 2 3 4 5 6 7 8 11 14
S.M. output request card for class 2. | 21
S.M. output request card for class 3. | 31
Blank card terminating S.M. output requests. |BLANK CARD ENDING OUTPUT REQUEST
End of 0 S.M.-TACS Interface variables. | FINISH
Blank card ends electric network sources. |BLANK CARD ENDING SOURCE DATA.
Top "TAPSAV". NCHAIN = 6
Top "TAPSAV". NCHAIN = 8
Total network loss P-loss by summing injections = 1.851497291373E+05
MACH 1 Data parameters and initial conditions of next machine follow. ------------------------------------------
"BUS3-A" Unit 1
Machine reactances and resistances, in [ohms]. Quantities labeled as inductances are in fact reactances):
1.35748883E+03 Lf = self-inductance of the d-axis field winding;
4.92857143E+01 Laf = mutual inductance between field and armature;
1.17138692E+03 Lfkd = field-damper mutual inductance for the d-axis;
2.53920000E+00 Ld = self-inductance of the d-axis armature winding;
4.92857143E+01 Lakd = mutual inductance from armature to d-axis damper;
1.21755480E+03 LKd = self-inductance of the d-axis damper winding;
5.73740533E+02 Lg = self-inductance of circuit 1 of the q-axis;
0.00000000E+00 Lag = mutual Inductance, q-axis circuit 1 to armature;
0.00000000E+00 Lgkq = mutual Inductance, q-axis circuit 1 to circuit 2;
1.48120000E+00 Lq = self-inductance of the q-axis armature winding;
2.41399417E+01 Lakq = mutual inductance, q-axis circuit 2 to armature;
5.85947779E+02 Lkq = self-inductance of circuit 2 of the q-axis;
3.17400000E-01 Lo = zero sequence inductance;
8.040800000-02 Ro = zero sequence resistance;
7.10863533E-01 Rf = resistance of the d-axis field winding;
8.04080000E-02 Ra = resistance of the armature;
2.00343385E+01 Rkd = resistance of the d-axis damper winding;
0.00000000E+00 Rg = resistance of circuit 1 of the q-axis;
3.10854951E+01 Rkq = resistance of circuit 2 of the q-axis;
Mechanical parameters in physical units, as described by the column headings that follow.
Moment of inertia Self-damping coefficients of mass Mutual-damping coeff. Torsional spring constant
of rotor mass Speed-deviation Absolute-speed (with following mass) . (with following mass)
Million [n-m/rad/sec**2] Million [n-m/rad/sec] Million [n-m/rad/sec**2] Million [n-m/rad]
1.3131515E-01 0.0000000E+00 0.0000000E+00 0.0000O00E+00 0.0000000E+00
Tabulation of: negative sequence current. CMNEG, CANEG = 2.4066854341E-11 3.2401646
zero sequence current. CMZER. CAZER = 2.4063713984E-12 1.5707963
Total current injected into the network at the generator bus, in phase coordinates. For parallel machines, this is the combined
total for all of them. The first line displays the currents as found by the phasor network solution, and they will be unbalanced
if the network is. The 2nd line shows only the positive-sequence components of these. Magnitudes of currents are in units of
[amps].
Phase "a" Injection Phase "b" injection Phase "c" injection
Magnitude Degrees Magnitude Degrees Magnitude Degrees
Actual: 8.0509394E+03 3.6261425 8.0509394E+03 -116.3738575 8.0509394E+03 123.6?61425
Pos. seq.: 8.0509394E+03 3.6261425 8.0509394E+03 -116.3738575 8.0509394E+03 123.6261425
Armature currents of generator in rotating reference frame (d-q-o coordinates), in units of [amperes].
Id Iq Io
-3.70541628614E+03 3.25215311026E+03 2.55205363316E-28
Positive-sequence component of generator armature current in phase coordinates, in units of [amperes].
Armature of phase "a" Armature of phase "b" Armature of phase "c"
Magnitude Degrees Magnitude Degrees Magnitude Degrees
4.0254697E.03 3.6261425 4.0254697E+03 -116.3738575 4.0254697E.03 123.6261425
Field current of the generator In units of [amperes]. Total dc component
4.7259603654E+02 4.72596O3654E+02
Electromechanical torque of the generator in units of [million n-m]. total dc component
8.0214592897E-01 8.0214592897E-01
Critical level of total air-gap MMF to begin saturation, in units of [amps] : 1.71429884454E+03 1.60523487584E+03
All rotor masses have angular velocity OMEGA = 7.85398163E+01 [radians/sec]. Mechanical angles of rotor masses follow, in
units of [Degrees] : 35.5883776

MACH 2 Data parameters and initial conditions of next machine follow. ---------------------------------------------
"BUS3-A" Unit 2
Machine reactances and resistances, in [ohms]. Quantities labeled as Inductances are in fact reactances):
1.45541031E+03 Lf = self-inductance of the d-axis field winding;
5.52000000E+01 Laf = mutual inductance between field and armature;
40 - VIII. Three-phase dynamic synchronous machine source

1.24717949E+03 Lfkd = field-damper mutual Inductance for the d-axis;


2.88165789E+00 Ld = self-inductance of the d-axis armature winding;
5.52000000E+01 Lakd = mutual Inductance from armature to d-axis damper;
1.30694541E+03 LKd = self-inductance of the d-axis damper winding;
6.52370809E+02 Lg = self-inductance of circuit 1 of the q-axis;
0.00000000E+00 Lag = mutual inductance, q-axis circuit 1 to armature;
0.0000000OE+00 Lgkq = mutual inductance, q-axis circuit 1 to circuit 2;
1.71646579E+00 Lq = self-inductance of the q-axis armature winding;
2.88738462E+01 Lakq = mutual inductance, q-axis circuit 2 to armature;
6.61449528E+02 Lkq = self-inductance of circuit 2 of the q-axis;
3.30764211E-01 Lo = zero sequence inductance;
1.00231579E-02 Ro = zero sequence resistance;
8.15236448E-01 Rf = resistance of the d-axis field winding;
1.00231579E-02 Ra = resistance of the armature;
2.04594311E+01 Rkd = resistance of the d-axis damper winding;
0.00000000E+00 Rg = resistance of circuit 1 of the q-axis;
2.88419074E+01 Rkq = resistance of circuit 2 of the q-axis;
Mechanical parameters in physical units, as described by the column headings that follow.
Moment of inertia Self-damping coefficients of mass Mutual-damping coeff. Torsional spring constant
of rotor mass Speed-deviation Absolute-speed (with following mass) (with following mass)
Million [n-m/rad/sec**2] Million [n-m/rad/sec] Million [n-m/rad/sec**2] Million [n-m/rad]
1.4O45861E-O1 0.0000000E+00 0.0000000E+00 0.0000000E»O0 0.0000000E+00
Tabulation of: negative sequence current. CMNEG, CANEG = 1.9691062643E-11 3.2401646
zero sequence current. CMZER, CAZER = 1.9688493260E-12 1.5707963
Total current injected into the network at the generator bus, in phase coordinates. For parallel machines, this is the combined
total for all of them. The first line displays the currents as found by the phasor network solution, and they will be unbalanced
if the network is. The 2nd line shows only the positive-sequence components of these. Magnitudes of currents are in units of
[amps].
Phase "a" injection Phase "b" injection Phase "c" injection
Magnitude Degrees Magnitude Degrees Magnitude Degrees
Actual: 8.0509394E+03 3.6261425 8.0509394E+03 -116.3738575 8.0509394E+03 123.6261425
POS. seq.: 8.0509394E+03 3.6261425 8.0509394E+03 -116.3738575 8.0509394E+03 123.6261425
Armature currents of generator in rotating reference frame (d-q-o coordinates), in units of [amperes].
Id Iq Io
-3.03420547069E+03 2.657999998O8E+03 2.08804388168E-28
Positive-sequence component of generator armature current in phase coordinates, in units of [amperes].
Armature of phase "a" Armature of phase "b" Armature of phase "c"
Magnitude Degrees Magnitude Degrees Magnitude Degrees
3.2935661E+03 3.6261425 3.2935661E+03 -116.3738575 3.2935661E+03 123.6261425
Field current of the generator in units of [amperes]. Total dc component
4.0557732633E+02 4.O557732633E+O2
Electromechanical torque of the generator in units of [million n-m]. total dc component
6.3801747438E-01 6.3801747438E-01
Critical level of total air-gap MMF to begin saturation, in units of [amps] : 0.00000000000E.00 0.00000000000E+00
All rotor masses have angular velocity OMEGA - 7.85398163E+01 [radians/sec]. Mechanical angles of rotor masses follow, in
units of [Degrees] : 35.6018495
Top "TAPSAV". NCHAIN = 8
Comment card. NUMDCD = 82. |C ----- Node voltage output request
++++ Type-59 S.M. number 1 begins operation on segments 0 and 0.
++++ Type-59 S.M. number 2 begins operation on segments 0 and 0.
Card of names for time-step loop output. | BUS1-ABUS2-ABUS3-A
Blank card ending requests for output variables. |BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST.
Column headings for the 27 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
First 3 output variables are electric-network voltage differences (upper voltage minus lower voltage);
Next 24 output variables pertain to Type-59 S.M. components (names are generated internally);
Step Time BUS1-A BUS2-A BUS3-A MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 1
ID IQ I0 IF IKD IG IKQ
MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
IA EFD TQ GEN ANC 1 VEL 1 ID IQ I0 IF IKD
MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2 MACH 2
IG IKQ IA EFD TQ GEN ANG 1 VEL 1
0 0.0 180606.407 182019.752 9714.96073 -3705.4163 3252.15311 .26O36E-27 472.596037 -.4127E-12 0.0 .18721E-13
4017.41063 -335.95129 .802145929 35.5883776 0.0 -3034.2055 2658. .2129E-27 405.577326 .3O165E-12
0.0 -.2026E-13 3286.97233 -330.64142 .638017474 35.6018495 0.0
1 .2E-3 176039.698 172296.852 7444.26146 -3809.9352 3345.4032 -.1143E-12 473.452332 3.40524347 0.0 -3.8352715
4103.19727 -335.95129 .824891113 35.5883775 -.17321E-4 -3139.8055 2757.79364 -.110SE-12 406.590279 3.49174529
0.0 -4.350211 3378.14341 -330.64142 .661360932 35.6018494 -.16619E-4
2 .4E-3 183004.193 189076.909 10681.6801 -3802.8536 3345.33502 .562E-13 473.411982 3.15401508 0.0 -3.8197047
4061.75042 -335.95129 .824607779 35.5883771 -.51747E-4 -3133.5631 2758.47512 .52776E-13 406.546306 3.26672986
0.0 -4.3680164 3347.77476 -330.64142 .661249043 35.601849 -.49778E-4
3 .6E-3 172906.161 168798.787 6496.87745 -3806.3779 3338.9843 .40398E-12 473.457216 3.24984705 0.0 -3.5457957
4007.05538 -335.95129 .823487253 35.5883763 -.85103E-4 -3138.0018 2752.33996 .38962E-12 406.603762 3.396O98O5
0.0 -4.0886215 3304.77401 -330.64142 .660262501 35.6018483 -.82155E-4
4 .8E-3 178431.435 184089.018 9584.67811 -3801.5017 3344.27399 .1331E-12 473.43412 3.07141722 0.0 -3.7515552
3929.32505 -335.95129 .824360058 35.5883751 -.11827E-3 -3134.0339 2758.55853 .13328E-12 406.581165 3.24681003
0.0 -4.3485154 3238.70314 -330.64142 .661300593 35.6018471 -.11457E-3
5 .001 167109.736 162780.111 5461.7S263 -3804.7601 3338.73286 .19236E-12 473.476738 3.15909199 0.0 -3.5111707
3842.37911 -335.95129 .823390701 35.5883736 -.15136E-3 -3138.258 2753.13371 .19231E-12 406.636462 3.36919336
0.0 -4.1001391 3167.96659 -330.64142 .660441351 35.6018456 -.14711E-3
10 .002 148940.227 153586.669 5702.348 -3796.1328 3340.23062 .33787E-12 473.483749 2.7B78O677 0.0 -3.5145453
3176.54208 -335.95129 .823391936 35.5883603 -.31257E-3 -3134.5262 2755.95833 .34586E-12 406.675119 3.1586938
0.0 -4.1669177 2620.80934 -330.64142 .660872192 35.6018326 -.30796E-3
15 .003 100778.336 95107.9784 -1069.6774 -3793.1451 3333.10232 -.5991E-12 473.529769 2.60859345 0.0 -3.1652741
2205.54576 -335.95129 .821891994 35.5883379 -.46859E-3 -3136.3412 2747.59206 -.5565E-12 4O6.7643O5 3.13471406
0.0 -3.7474744 1822.82615 -330.64142 .659384186 35.6018104 -.465S3E-3
20 .004 57690.2849 60516.4666 -1799.05 -3787.8379 3338.168 -.5858E-12 473.55076 2.3607908 0.0 -3.3199569
1015.2989 -335.95129 .822735331 35.5883066 -.62195E-3 -3135.2279 2750.52816 -.5797E-12 406.823409 3.01621698
0.0 -3.8237415 843.108497 -330.64142 .65993767 35.6017793 -.61961E-3
30 .006 -54435.032 -53090.209 -8149.3475 -3782.4159 3340.02251 -.2535E-12 473.619369 2.05277934 0.0 -3.2896087
-1529.9164 -335.95129 .822977535 35.5882178 -.92923E-3 -3134.946 2744.12444 -.2991E-12 406.953245 2.85169082
0.0 -3.4474689 -1252.3379 -330.64142 .658769581 35.6016912 -.91664E-3
40 .008 -144760.29 -144178.68 -11022.785 -3781.0518 3343.12588 -.2679E-12 473.707391 1.89297498 0.0 -3.3092905
-3488.4195 -335.95129 .823635103 35.5880933 -.00124645 -3133.3509 2737.86741 -.3557E-12 407.061063 2.65468488
VIII. Three-phase dynamic synchronous machine source - 41

0.0 -3.0866228 -2867.0O52 -330.64142 .657569287 35.6015698 -.00119886


50 .01 -178990.49 -178414.52 -9431.6401 -3783.4054 3344.91149 -.1677E-13 473.820568 1.86040399 0.0 -3.2734702
-4114.1269 -335.95129 .824179475 35.5879317 -.00157615 -3130.7561 2732.74562 -.1331E-12 407.149562 2.43594414
0.0 -2.7833527 -3386.6965 -33O.64142 .656539552 35.6014169

Note that parameters and initial conditions of each machine are printed in order of input.
Since the g-winding is dropped for both machines, some electrical parameters (Laq, Lgkq and Rg)
associated to this winding are zero; however, the self-inductance of this circuit is positive; this is
internally done by the program in order to avoid a zero-division.
Output variables of each machine are named with two 6-character names, the first (upper) of the two
names is used to identify the machine, and this is done in the same order of data input.

VIII-D-3. Example 3: Connection to TACS


A very simple example will be used to illustrate the connection of the Type-59 S.M. model and
TACS. Consider a synchronous generator running alone and supplying power to a balanced load. The
machine has the same parameters as the first generator of the latter example; however, in this example
the neutral is grounded through the following impedance
Rn+ jXn = 0.005 + j0.005 (in p.u. on the generator base)
The generator is supplying 70 MVA, power factor 0.8 (lagging), being its terminal voltage
magnitude 1.0 per unit on generator base voltage.
The equivalent impedance per phase of the load can be calculated according to the following
formula
2
V
Z =
P + jQ
being |V| phase-to-phase voltage magnitude (rms) at the terminals
P, Q three-phase real and reactive power, respectively.
Taking into account the initial operating conditions of the generator, this equivalent impedance has
the following value
Z = 2.1765 + j1.6325 (Ω)
For this case, internal inductances and resistances, instead of manufacturer's data, will be punched
(No PARAMETER FITTING request card). By using the same procedure which has been implemented
in the EMTP to calculate internal parameters, see reference [48], the following values (in per unit) are
obtained
Ld = 1.20
Lq = 0.7000

Laf = 0.980000
Lag = 0.0000
Lakd = 0.98000
Lakq = 0.4800
42 - VIII. Three-phase dynamic synchronous machine source

Lf = 1.135696
Lg = 0.0000

Lkd = 1.018625
Lkq = 0.490213

Rf = 5.94719E-4
Rg = 0.00

Rkd = 1.67610E-2
Rkq = 2.60066E-2
The field voltage will be controlled by a TACS source; the rotor angle and the angular velocity will
be passed to TACS.
The machine data deck of this example looks as follows:
BEGIN NEW DATA CASE
C
C TYPE-59 3.M. TEST CASE - EXAMPLE 3
C AUTOMATIC INITIALIZATION
C
POWER FREQUENCY, 50
C
0.0002 0.0800 50.0 50.0
1 1 -1
5 5 40 20 100 100
TACS HYBRID
C ----- Field voltage control
98EFD = 1.0
C ----- Mechanical variables passed to TACS
92ANGLE
92SPEED
C ----- Output request
33EFD ANGLE SPEED
C ----- Initial conditions
77EFD 1.0
77ANGLE 0.46773069
77SPEED 78.5398163
BLANK CARD ENDING TACS DATA.
C ----- Generator load
BUS1-A 2.176 1.632
BUS1-B 2.176 1.632
BUS1-C 2.176 1.632
BLANK CARD ENDING BRANCH DATA.
BLANK CARD ENDING SWITCH DATA.
C ----- Synchronous generator specifications
59BUS1-A 11267.65 50.0 0.0
BUS1-B
BUS1-C
TOLERANCES 20
C --- Machine ratings
1 1 8 90.0 13.8 280.0
BLANK CARD - NO SATURATION MODELING
VIII. Three-phase dynamic synchronous machine source - 43

C --- Machine parameters - Internal parameters


1.1357 0.9800 0.9800 1.2000 0.9800 1.0186
0.4902 0.7000 0.4800 0.4902
0.1500 0.0380 5.9472E-4 1.6761E-2 2.6007E-2 0.005 0.005
C --- Mechanical system data
1 1.0 3.116092
BLANK CARD ENDING MASS CARDS
C --- Output data request
51
1 8 11 14
21
31
BLANK CARD ENDING OUTPUT REQUEST
71EFD
74ANGLE 1
74SPEED 2
FINISH
BLANK CARD ENDING SOURCE DATA.
C ----- Node voltage output request
BUS1-A
BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST.
PRINTER PLOT
BLANK CARD ENDING PLOT REQUEST.
BEGIN NEW DATA CASE
BLANK

The most interesting features of this new case are the following:
1. The electrical part is described by using internal parameters (Park's data), no
PARAMETER FITTING card is inserted.
2. Since the g-winding on the q-axis is to be dropped, the mutual-inductance coefficients and
the resistance of this winding are left blank, while the self-inductance coefficient is
punched equal to the self-inductance coefficient of the q-axis damper winding, Lkq.
3. The field voltage is controlled by a TACS source, therefore a Class 6 card (KK = 71 in
columns 1-2) has been inserted to indicate the TACS source name (BUS = EFD in columns
3-8) which performs this function.
4. The mechanical angle and speed of the rotor mass are passed to TACS, for both variables
field KK is punched equal to 74. Note the number punched in columns 5-7 (field KI) for
each variable.
5. Caution with TACS: the old way to initialize each TACS block will create a self-damped
transient during the transition of the SM and its regulators between steady state and non-
perturbed transient solution. In order to avoid that phenomenon, the user himself must
initialize the 77 card of each block.
The output listing for this case is given next.
Comment card. NUMDCD = 1. |C data:EXAMPLE3.DAT
Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE
Comment card. NUMDCD = 3. |C
Comment card. NUMDCD = 4. |C TYPE-59 S.M. TEST CASE - EXAMPLE 3
Comment card. NUMDCD = 5. |C AUTOMATIC INITIALIZATION
Comment card. NUMDCD = 6. |C
New power frequency STATFR = 5.00000000E.01 Hz. |POWER FREQUENCY, 50
Comment card. NUMDCD = 8. |C
Misc. data. 2.000E-04 8.000E-02 5.000E+01 | 0.0002 0.0800 50.0 50.0
Misc. data. 1 1 0 0 0 -1 0 0 0 0 | 1 1 -1
Printout : 5 5 40 20 100 100 | 5 5 40 20 100 100
Begin MODELS (new. Bore-powerful TACS). |TACS HYBRID
Comment card. NUMDCD = 13. |C ----- Field voltage control
Free-format TACS supplemental variable defined. |98EFD = 1.0
Comment card. NUMDCD = 15. |C ----- Mechanical variables passed to TACS
TACS source. 0.000E+00 0.000E+00 0.000E+00 |92ANGLE
TACS source. 0.000E+00 0.000E+00 0.000E+00 |92SPEED
44 - VIII. Three-phase dynamic synchronous machine source

Comment card. NUMDCD = 18. |C ----- Output request


Names of TACS variables for output vector. |33EFD ANCLE SPEED
Comment card. NUMDCD = 20. |C ----- Initial conditions
TACS Initial condition. "EFD " 0.100000E+01 |77EFD 1.0
TACS Initial condition. "ANGLE " 0.467731E+00 |77ANGLE 0.46773069
TACS initial condition. "SPEED " 0.785398E+02 |77SPEED 78.5398163
Blank card terminating all TACS data cards. |BLANK CARD ENDING TACS DATA.
Comment card. NUMDCD = 25. |C ----- Generator load
Series R-L-C. 2.176E+00 5.195E-03 0.000E+00 | BUS1-A 2.176 1.632
Series R-L-C. 2.176E+00 5.195E-03 0.000E+00 | BUS1-B 2.176 1.632
Series R-L-C. 2.176E+00 5.195E-03 0.000E+00 | BUS1-C 2.176 1.632
Blank card ending branches. IBR. NTOT = 3 4 |BLANK CARD ENDING BRANCH DATA.
Blank card ending switches. KSWTCH = 0. |BLANK CARD ENDING SWITCH DATA.
Comment card. NUMDCD = 31. |C ----- Synchronous generator specifications
Source. 1.13E+04 5.00E+01 0.00E+00 -9.99E+03 |59BUS1-A 11267.65 50.0 0.0
2nd phase of S.M. 1.12676E+04 -120.00 | BUS1-B
3rd phase of S.M. 1.12676E-04 -240.00 | BUS1-C
Epsilon. 1.00E+02 1.00E-15 1.00E-16 2O |TOLERANCES 20
Comment card. NUMDCD = 36. |C --- Machine ratings
4th S.M. card. 1 1 0 0 8 0.000 0.000 | 1 1 8 90.0 13.8 280.0
q-axia. 0.000 0.0000 0.0000 0.0000 |BLANK CARD - NO SATURATION MODELING
Comment card. NUMDCD = 39. |C --- Machine parameters - Internal parameters
5th S.M. card. 1.1357 0.9800 0.9800 | 1.1357 0.9800 0.9800 1.2000 0.9800 1.0186
6th S.M. card. 0.4902 0.0000 0.0000 | 0.4902 0.7000 0.4800 0.4902
7th S.M. card. 0.1500 0.0380 0.0006 | 0.1500 0.0380 5.9472E-4 1.6761E-2 2.6007E-2 0.005 0.005
Comment card. NUMDCD = 43. |C --- Mechanical system data
Mass card 1 1 1.000E+00 3.116E+00 0.000E+00 | 1 1.0 3.116092
Blank card terminating S.M. mass cards. |BLANK CARD ENDING MASS CARDS
Comment card. NUMDCD = 46. |C --- Output data request
S.M. output request card for class 5. | 51
S.M. output request card for class 1. | 1 8 11 14
S.M. output request card for class 2. | 21
S.M. output request card for claas 3. | 31
Blank card terminating S.M. output requests. |BLANK CARD ENDING OUTPUT REQUEST
TACS-controlled excitation. "EFD " |71EFD
Auxiliary S.M. input to TACS. 74 "ANGLE " 1 |74ANGLE 1
smdata search. IP. NDX1. BUS6. TEXVEC(NDXl) = 12 15ANGLE ANGLE
Auxiliary S.M. input to TACS. 74 "SPEED " 2 |74SPEED 2
smdata search. IP. NDX1. BUS6. TEXVEC(NDXl) = 12 15SPEED ANGLE
smdata search. IP. NDX1. BUS6. TEXVEC(NDXl) = 13 16SPEED SPEED
End of 2 S.M.-TACS Interface variables. | FINISH
Blank card ends electric network sources. |BLANK CARD ENDING SOURCE DATA.
Top "TAPSAV". NCHAIN = 6
Top "TAPSAV". NCHAIN = 8
Total network loss P-loss by summing injections = 5.6O1173670110E+07
MACH 1 Data parameters and initial conditions of next machine follow. -------------------------------------------
"BUS1-A" Unit 1
Machine reactances and resistances, in [ohms]. Quantities labeled as inductances are in fact reactances):
1.35749401E+03 Lf = self-inductance of the d-axis field winding;
4.92857143E+01 Laf = mutual Inductance between field and armature;
1.17138692E+03 Lfkd = field-damper mutual inductance for the d-axis;
2.53920000E+00 Ld = self-inductance of the d-axis armature winding;
4.92857143E+01 Lakd = mutual inductance from armature to d-axis damper;
1.21752522E+03 LKd = self-inductance of the d-axis damper winding;
5.85932520E+02 Lg = self-inductance of circuit 1 of the q-axis;
0.00000000E+00 Lag = mutual inductance, q-axis circuit 1 to armature;
0.00000000E+00 Lgkq = mutual Inductance, q-axis circuit 1 to circuit 2;
1.48120000E+00 Uq = self-inductance of the q-axis armature winding;
2.41399417E+01 Lakq = mutual inductance, q-axis circuit 2 to armature;
5.85932520E+02 Lkq = self-inductance of circuit 2 of the q-axis;
3.49140000E-01 Lo = zero sequence Inductance;
1.12148000E-01 Ro = zero sequence resistance;
7.10864521E-01 Rf = resistance of the d-axis field winding;
8.04080000E-02 Ra = resistance of the armature;
2.00343022E+0l Rkd = resistance of the d-axis damper winding;
0.00000000E+00 Rg = resistance of circuit 1 of the q-axis;
3.10859793E+01 Rkq = resistance of circuit 2 of the q-axis;
Mechanical parameters in physical units, as described by the column headings that follow.
Moment of Inertia Self-damping coefficients of mass Mutual-damping coeff. Torsional spring constant
of rotor mass Speed-deviation Absolute-speed (with following mass) (with following massl
Million [n-m/rad/sec**2] Million [n-m/rad/sec] Million [n-m/rad/sec**2] Million [n-m/rad]
1.3131515E-01 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
Tabulation of: negative sequence current. CMNEG, CANEG = 9.8819667455E-13 -1.0040671
zero sequence current. CMZER, CAZER = 7.8123806695E-13 -2.2531129
Total current injected into the network at the generator bus. in phase coordinates. For parallel machines, this is the combined
total for all of them. The first line displaya the currents as found by the phasor network solution, and they will be unbalanced
if the network is. The 2nd line shows only the positive-sequence components of these. Magnitudes of currents are in units of
[amps].
Phase "a" injection Phase "b" injection Phase "c" injection
Magnitude Degrees Magnitude Degrees Magnitude Degrees
Actual: 4.1425184E+03 -36.8698976 4.1425184E+03 -156.8698976 4.1425184E+03 83.1301024
Pos. aeq.: 4.1425184E+03 -36.B698976 4.1425184E+03 -156.8698976 4.1425184E+03 83.1301024
Armature currents of generator in rotating reference frame (d-q-o coordinates), in units of [amperes].
Id Iq Io
-4.10799644756E+03 2.97742388804E+03 -8.53282642705E-13
Positive-sequence component of generator armature current in phase coordinates, in units of [amperes].
Armature of phase "a" Armature of phase "b" Armature of phase "c"
Magnitude Degrees Magnitude Degrees Magnitude Degrees
4.1425184E+03 -36.8698976 4.1425184E+03 -156.8698976 4.142S184E+03 83.1301024
Field current of the generator in units of [amperes]. Total dc component
4.8398523199E+02 4.8398523199E+02
Electromechanical torque of the generator In units of [million n-m]. total dc component
7.3951654886E-01 7.3951654886E-01
VIII. Three-phase dynamic synchronous machine source - 45

Critical level of total air-gap MMF to begin saturation, in units of [amps] : 1.71429884454E+03 1.60523487584E+03
All rotor masses have angular velocity OMEGA = 7.8S396163E+01 [radians/sec]. Mechanical angles of rotor masses follow, in
units of [Degrees] : 26.7989943
Top "TAPSAV". NCHAIN = 8
Comment card. NUMDCD = 57. |C ----- Node voltage output request
++++ Type-59 S.M. number 1 begins operation on segments 0 and 0.
Card of names for time-step loop output. | BUS1-A
Blank card ending requests for output variables. |BLANK CARD ENDING SELECTIVE NODE VOLTAGE OUTPUT REQUEST.
Column headings for the 9 EMTP output variables follow. These are divided among the 5 possible classes as follows ....
First 1 output variables are electric-network voltage differences (upper voltage minus lower voltage);
Next 5 output variables pertain to Type-59 S.M. conponents (names are generated internally);
Next 3 output variables belong to TACS (with "TACS" an internally-added upper nave of pair).
Step Time BUS1-A MACH 1 MACH 1 MACH 1 MACH 1 MACH 1 TACS TACS TACS
IA EFD TQ GEN ANG 1 VEL 1 EFD ANGLE SPEED
0 0.0 11267.65 3314.01471 -344.04793 .739516549 26.79B9943 0.0 1.0 .46773069 78.5398163
1 .2E-3 11246.0205 3463.50574 -344.04793 .739504209 26.7989943 .939731E-8 1.0 .48343865 78.5398163
2 .4E-3 11178.6764 3599.33266 -344.04793 .739493687 26.7989943 .36204E-7 1.0 .499146613 78.5398164
3 .6E-3 11068.5134 3720.95843 -344.04793 .739483566 26.7989943 .787299E-7 1.0 .514854577 78.5398164
4 .8E-3 10913.5672 3827.90638 -344.04793 .739472952 26.7989943 .137045E-6 1.0 .53056254 78.5396165
5 .001 10716.4858 3919.75082 -344.04793 .739462531 26.7989943 .211378E-6 1.0 .546270503 78.5398166
10 .002 9115.57852 4141.90299 -344.04793 .739416746 26.7989943 .803126E-6 1.0 .62481032 78.5398171
15 .003 6622.75997 3958.69214 -344.04793 .739381689 26.7989944 .170345E-5 1.0 .703350138 78.539818
20 .004 3481.73148 3388.03094 -344.04793 .739357608 26.7989945 .282813E-5 1.0 .781889956 78.5398192
25 .005 -.51059875 2485.76224 -344.04793 .739342523 26.7969947 .41OO62E-5 1.0 .860429776 78.5398204
30 .006 -3482.0034 1340.19646 -344.04793 .739334461 26.798995 .545973E-5 1.0 .938969597 78.5398218
35 .007 -6623.5311 63.4614999 -344.04793 .739331034 26.7989954 .686128E-5 1.0 1.01750942 78.5398232
40 .008 -9115.662 -1219.4712 -344.04793 .739330599 26.7989958 .827643E-5 1.0 1.O96O4924 78.5398246
60 .012 -9115.2764 -4141.5299 -344.04793 .73933656 26.7989983 .138523E-4 1.0 1.41020855 78.5398302
80 .016 3482.36966 -1340.0648 -344.04793 .739339018 26.799OO21 .1928O2E-4 1.0 1.72436788 78.5398356
100 .02 11267.5575 3313.34064 -344.04793 .73933866 26.7990072 .246846E-4 1.0 2.03852724 78.539841
200 .04 11267.6494 3313.36942 -344.04793 .73933703 26.799051 .S187O8E-4 1.0 3.60932433 78.5398682
300 .06 11267.6324 3313.39744 -344.04793 .739336264 26.7991261 .791828E-4 1.0 5.18012197 78.5398955
400 .08 11267.6248 3313.42606 -344.04793 .739335871 26.7992325 .106542E-3 1.0 6.75092015 78.5399229

When inspecting this listing the following points should be noted:


1. The TACS source, which is controlling the field voltage, is set to 1.0. Since the value of
this source remains constant, the field voltage also remains constant.
2. All the electrical parameters in the output listing of this example match the parameters of
the first machine of Example 2, except the zero-sequence resistance and reactance due to
the fact that this machine is not solidly grounded.
3. The printed values of the machine variable ANG 1 and the TACS variable ANGLE pertain
to the same mechanical variable, the rotor angle. The output of the machine variable is
punched in degrees and remains constant, while the TACS variable is punched in radians
and increases steadily its value. Verify that after one period (2° milliseconds) the value is
increased in 2π/(Number of pole pairs) radians.
4. The output of the rotor speed (variable VEL 1) is in fact the deviation of the speed from the
synchronous speed, while the value passed to TACS (variable SPEED) is the absolute
speed, both values are given in units of radians/second.
IX. The universal and time domain machine models - 1

IX THE UNIVERSAL AND TIME DOMAIN MACHINE MODELS

IX-A The Universal Machine (U.M.) Model


Guide to the Universal Machine Module of ATM-EMTP

1. Overview
The term “Universal Machine” in ATP-EMTP denotes a unified analytical approach to the modeling
of electrical machines, using Park’s 0-d-q transformation in a modified form. Park’s transformation
matrix is used as a product of two matrices, one performing the d-q transformation, [P], and one the
rotational transformation,[S]. As shown in [1,2], the basic difference between the analytical treatments of
various types of machines lies in the constant coefficients of the [S] matrix.
U.M. can model three major machine groups, synchronous machines, induction machines and d.c.
machines. In each group more than one type is allowed as shown in the “Permutations” column of Table
1. The number of types available in U.M. is 12. The machines commonly encountered by ATP users are
Type 1 - synchronous machines, Type 3 – a.c. three phase cage rotor induction machines, Type 4 – a.c.
three phase wound rotor, and Type 6 – single phase induction machines. d.c. machines are not common
with ATP users.
The number of stator coils allowed by U.M. is 3, limiting U.M. a.c. machines to one, two and three
phases. The number of rotor coils is limited to five. While Table 1 lists 12 specific types, advanced ATP
users may create their own type by specifying shorted or excited coils on the rotor for ac machines.
2 - IX. The universal and time domain machine models

Table 1
Type-
Basic Machine Permutations Code
3-phase armature (stator) 1
Synchronous 2-phase armature (stator) 2
field (excitation side) and damper windings on the rotor
3-phase armature (stator), cage rotor 3
3-phase armature (stator), wound 3-phase rotor 4
Induction 2-phase armature (stator), cage rotor
field interpreted the rotor side 5
1-phase armature (stator)-1 phase rotor 6
Single phase a.c. 1-phase armature (stator) 2 phase rotor 7
Synchronous or induction field (excitation) on rotor
separate excitation 8
series compound (long shunt) field 9
series field 10
parallel compound (short shunt) field 11
Direct Current
parallel field (self-excitation) 12
armature winding on rotor to brush-commutator, field
winding on stator for all
the above types

*A special case of the wound rotor, Type 4, induction machine is the doubly fed induction machine.
This machine developed from the wound rotor machine by connecting a variable frequency voltage
source to the three phase terminals (slip ring) of the rotor winding. In this revision of the Rule Book the
more general form of this type, the simple wound rotor is used as the basic type.

2. Method of U.M. Analysis


2.1 Solution of the Machine Equation

The reader interested in the details of U.M. analysis is referred to Chapter 9 of the EMTP Theory
Book [1], as well the IEEE papers of Hian K.Lauw and W. Scott Mayer [ 2,3]

2.2 Co-ordinate Transformation

U.M. uses the 0-d-q (d-q for short) transformation, also referred to as Park’s transformation, to solve
the machine equations. The concept of the transformation is to convert both stator and rotor quantities
IX. The universal and time domain machine models - 3

(currents, voltages, mmf’s), to an orthogonal d-q reference frame, and make these reference frames rotate
synchronously fixed to d axis of the rotor, referred to as “rotational transformation”. The method was
originally designed for the treatment of synchronous machines, but it is equally applicable for induction
and d.c. machines. The d-q method also facilitates the development of equivalent machine circuit
diagrams, enabling a better understanding of machine performance.
The transformation eliminates the time dependent part of the mutual inductances in the machine
inductance matrix, and greatly simplifies the solution of the machine equations [4]. This method has been
widely used and is not unique to U.M. What makes U.M. unique in creating a unified approach for
various machine types, is the factoring of the transformation matrix [T] into the product of two
transformation matrices [P] and [S] giving
[T] = [S][P]
and
[T]-1 = [S]-1 [P]-1
Where the matrix [S] transforms the phase domain (usually stator) reference frame into a d-q frame,
and the matrix [P] causes this frame to rotate with the rotor. By convention, for three phase a.c. machines,
the canter line of the stator A phase is referred as the stator reference, and the center line through a rotor
pole as the reference for d axis. For two phase a.c. machines the stator reference is the center line of B
phase, with the A phase omitted.
The reference to “armature” taken from traditional usage originally applied to d.c. machine rotors, but
has also widely been adopted to the stator winding of synchronous machines, single, two and three phase
induction machines, as these windings are usually providing the connection to the power network.
While the above explanation is helpful for the understanding of the approach to universal machine
analysis, the data entry for the physical machine coils (or equivalent machine coils) is in terms of d-q
quantities. The S, d-q co-ordinate transformation, and its inverse are only used internally in the program,
typically in the time domain analysis, where interfacing with the network is required in each time step.
While internal calculations are in the d-q frame, current and voltage outputs are also available in the
phase domain.
In the data entry, the user is asked to specify the number of non-transformed coils on the excitation
side. As shown in Table 1, the excitation side is assumed to be the rotor for all a.c. machines, and the
stator for d.c. machines.

In preparing data (see Section 5), the constants NCLD and NCLQ the number of untransformed
excitation coils to be entered is:

- Two and three phase synchronous machines with no damper winding on the rotor: NCLD =1;
NCLQ = 0
- Two and three phase synchronous machines – salient pole, non connected damper winding
NCLD = 2, NCLQ = 0
- Two and three phase synchronous machines – salient pole, connected damper winding
NCLD = 2, NCLQ = 1
- Three and two phase induction machines with a single rotor cage: NCLD = 1; NCLQ =1
4 - IX. The universal and time domain machine models

- Three and two phase induction machines with a double cage or deep bar rotor NCLD = 2;
NCLQ = 2
- Single phase a.c. machine, cage rotor: NCLD =1; NCLQ = 0
- d.c. machines (excitation coil on stator): NCLD not applicable; NCLQ = 0

2.3 Saturation

The effect of the saturation of the major flux paths in a machine can be approximated through use of a
two-segment, piecewise-linear relation between flux-linkage and current in each axis in the d-q domain.
The approximation is applied only to the common (main) inductance, Lmj, shown in Figure 9.1.
Figure 9.1 shows the parameters used to define the segmented magnetization curve for each axis in
the d-q domain. The curve is specified by the flux linkage at the break point and the line slope
(inductance). This representation is very simple to implement in the U.M. algorithm, but it requires some
effort on the part of the user to transform known machine data into the d-q domain.

φ mj weber-
turns

φ3j '3'

φ2j '2' Lmsj


1
Lmuj
1
φ1j '1'

0
-i3j -i2j − φ1j i2j i3j imj, amperes

− φ2j
− φ3j

Fig. 9.1. Piecewise-linear approximation to the d-q domain saturation curve of


the direct axis (j = d) or of the quadrature axis (j = q)

2.4 The 0-d-q Domain Equivalent Circuit

After all the machine equations are solved in the d-q domain with the variables normalized, the equivalent
circuit shown in Figure 9.2 is obtained. Note that positive current directions are assigned for generator
operation (power out) and that the d and q axis circuits are isolated from each other except for the speed-
voltage coupling between the d and q axis circuits (vjs), meaning that the d and q axis equivalent circuits
IX. The universal and time domain machine models - 5

are not intercommoned. The values of all the parameters shown in figure 9.2, except vjs, constitute the
required, raw coil data. (See Section 5, Data Preparation)

Ifj1
Rfj1 Lfj1

Rj Lj Vjs Rfjn Lfjn Ifjn

Lmj Vfjn Vfj1


Vj

Fig. 9.2. Equivalent circuits representing the normalized d-q domain equations
used in the U.M. algorithm.
The circuit represents either of the d or q axis variables. The “0” equivalent is not shown above, it is
rarely used. The symbols are defined as follows:
- j denotes d or q axis quantity
- f denotes field (excitation) variables
- vfjn, are the coil voltages
- vjs, is the speed voltage which couples the direct and quadrature axis circuits

2.5 Representation Mechanical System of the Machine

The mechanical system associated with the Universal Machine is usually represented by an electrical
analogue circuit. When the load torque is acting on a single shaft on a single mass rotor, or a Type 1
synchronous machine using the S.M. 58/59 input, the mechanical parameters may be grouped with the
electrical data of the machine. In this case, the data which has to be provided is:
- the rotor inertia in N-m-sec2
- viscous damping coefficient in N-m-sec/rad
- TACS name of mechanical torque source, usually a type 14 source
See Section 5 for detailed data entry

The above type of data entry is only mandatory for the U.M. Type 1 S.M. 58/59 type, in all other
cases the electrical analogue network can be used and is the preferred usage. Use of the analogue network
6 - IX. The universal and time domain machine models

gives a greater freedom for data manipulation and the data preparation is as simple as the direct entry of
mechanical parameters.
As also known from transient stability studies, the differential equation to describe the dynamics of
the rotor is:


Tm = J + Dωm + Te
dt
Where
Tm = load torque on the shaft [N-m]
Te = motor air gap torque [N-m]
J = inertia of rotor and load [kg-m2]
D = viscous damping [N-m-sec/rad]
ω = rotor speed [rad/sec]
The above differentials equation can be simulated by an electrical circuit shown in Figure 9.3 if
mechanical parameters are replaced by electrical parameters as follows.
Tm = load torque [Nּm] = Im [A]
Te = air gap torque [Nּm] = Ie [A]
J = inertia [kgּm2] = Cm [F ]
D = viscous damping [Nּmּsec/rad] = 1/R [Siemens]
ω = rotor speed [rad/sec ] = Vm [V]

RSEP

Ie Vm Cm Rm Im

Fig.9.3. Electrical analogue circuit


Note:
1. Im = Type 14 d.c. current source representing the mechanical load in N-m. A source frequency
of 0.00001 Hz may be used.
2. Ie = air-gap torque, calculated internally by U.M.
3. RSEP = small resistance (1.E-5 ohm) to separate the type 14 source from the network
IX. The universal and time domain machine models - 7

2.6 Compensation and Prediction

U.M. provides two alternative methods to solve the non-linear machine equations in the electrical
power network: compensation and prediction.
2.6.1 Compensation
This method, used for other ATP non-linear elements, was adopted in the initial development of U.M.
While the general concept for machines is the same, the actual implementation, because of the complexity
of machine equations, is not trivial. The detailed description of the steps involved can be found in Chapter
9 of the EMTP Theory Book [1] and in [2]. The following is a brief, simplified description.

At a given time step, the network is solved without the universal machines connected and the
Thevenin impedance and voltage as seen from the open machine bus terminals extracted. The change in
rotor speed is then predicted for the time step. This allows the solution of the machine equations for stator
and rotor currents, as well as the calculation of the machine torque. The machine torque is then used to
recalculate the speed. If this differs from the predicted speed by more than a given margin, the above
steps are repeated with the new speed. Otherwise machine currents are superimposed on the previously
solved network and the calculation proceeds to the next time step

The limitation of the compensation method is that machines cannot be paralleled on the same bus as
this would result, generally, in an incorrect Thevenin equivalent seen from one machine... The EMTP
Theory Book states that the machines must be in disconnected sub networks, created by distributed lines
providing the interconnection of these subnetworks. While this is a requirement from a generalized point
of view, it has been shown that if a machine is connected at a network point having a short circuit level
substantially higher than the rating of the machines, the distributed line can be replaced by a small
resistance. By doing this, the time step ∆t has not to be reduced on account of the distributed line only,
unless this is required for other reasons. The user may check if this affects the required accuracy of the
simulation.
2.6.2 Prediction
Starting around 1985 a new method was programmed into the U.M. model for dealing with U.M.
non-linear ties, referred to as the Prediction method. The procedure is essentially the same as used for the
S.M. 59 model. The universal machine is represented by a voltage source, proportional to the flux, behind
an equivalent machine resistance Req. The network is solved including this equivalent. This enables, using
the machine equations, the calculation of speed, fluxes, and torque to be reconciled by iteration. Speed
and flux (voltages) are then predicted for the initial use in the next time step. In the next step the network
including the universal machine equivalent is recalculated and iterated on voltages until the speed
matches the predicted one. The process is then repeated. It is claimed that this type of prediction is very
stable as fluxes change very slowly. This was not entirely born out by experience and some stable cases
by compensation were found unstable with prediction. The reason seems to be that flux change rates for
sudden fast changes like short circuits close to machine terminals, can cause faster flux changes than
speed changes.
8 - IX. The universal and time domain machine models

3. Steady State Initialization


The purpose of the steady state initialization is to enable the starting of the simulation, in the initial
phasor solution, with a machine operating point as desired by the user. Two methods of initialization are
available: Automatic Initialization also referred to as coupled initialization, and Decoupled Initialization.
Once one type of initialization has been specified for a machine, all other machines in the same data case
have to have the same method of initialization.

3.1 Automatic Initialization

Aimed at achieving a desired steady state machine output for the phasor solution by specifying the
following:
- The amplitude of the armature terminal voltage, (stator for synchronous machines, rotor for
d.c. machines) in volts or per unit.
- The reference, A phase, terminal voltage phase angle in degrees (synchronous machines only).
- The field voltage for the proper field current at zero time (optional).
- The slip in percent for induction machines.
- Doubly fed induction machines: information to follow
The following should also be observed:
- The U.M. steady state solution may not yield the exact balance between all electrical and
mechanical machine variables and the network currents. In this case a small initial transient
occurs.
- The U.M. interface with the network does not accept an EMTP source connected directly to
the machine terminals or to the analogue network. Should this be required, a small resistance
in the interface has to be added (10-5 ohm)
- d.c. sources required for the excitation and the analogue network are represented by a very
low frequency Type 14 source of 0.0001Hz or less is recommended.
- The U.M. development documentation states the feasibility of an EMTP loadflow
initialization. No such data case has so far been located (instruction may be added later).
- If two or three machines share the same analogue network, the 14 source must be adjusted to
account for the total torque of the machines. The sharing must be entered in the data. (see
Section 5)
IX. The universal and time domain machine models - 9

3.2 Decoupled Initialization

While using automatic initialization, the user specifies a machine operating point to be obtained for
the steady state phasor solution. The decoupled (manual) initialization requires the user to enter as part of
the input data the following parameters to yield a certain operating point in the steady state solution:
- terminal voltage
- rotor speed
- torque angle (rotor angle)
- machine coil currents
analogue network injection currents (optional)
While the concept of decoupled initialization is simple, the effort to calculate the above data could be
complicated, time consuming, and prone to inaccuracies and errors. This method is recommended only
for users advanced in machine analysis. A simple form of decoupled initialization is when none of the
above parameters are entered as data. Such initialization is the equivalent of a D.O.L. (direct on line)
starting of a machine and once steady state is reached in the time domain, operating conditions can be
changed using TACS control.

4. U.M. Limits and Restrictions


The following is a list of U.M. restrictions and application difficulties commonly encountered.
The U.M. algorithm does not treat the following
- Asymmetrical windings either on the stator or the rotor
- Saturation of the coil leakage fluxes. Only saturation of the main direct and quadrature axis
common inductance is available. This is a deficiency of the model. Main flux saturation in
induction machines, except for the U.M. Type 1 S.M. 59, is rarely a significant factor, nor is
data readily available. Rotor leakage flux saturation is significant but cannot be modeled.
- Non sinusoidal air gap flux distribution
- Single phase and d.c. machine rotors with saliency
- Time varying parameters
- For a.c. machines, one two or three phase stator windings only are allowed
- For d.c. machines one, two or three field stator pole coils can be used but this has not been
verified
- For a.c. machines a total of five field (rotor) coils are allowed.
- The field (rotor) coils of a.c. machines cannot be connected to a network with nonlinear
elements or TACS controlled elements. (exception added later)
10 - IX. The universal and time domain machine models

- A total of three field coils belonging to different machines can be tied to a common linear
network. This application is recommended for advanced users only. Likewise, an electrical
analogue network for the mechanical part can be shared by three machines.
1. A universal machine or its electrical analogue circuit cannot be directly connected to a network
with a nonlinear element, even if that element is not a machine. This is also true of two
machines on the same bus. Should such a connection be required, to avoid program termination
on error, a distributed parameter line should be inserted between the U.M. and the part of the
network with nonlinear elements. The travel time of this line must be greater then the time step
used in the study. This line can be inserted anywhere, it does not have to be between the
terminals of the machine and the network. As long as it separates the network with the universal
machine from the network with the other non-linearity. The prediction option cannot be used
for single phase machines Types 6 and 7
- Automatic initialization can only be used for machines with three phase stator winding or d.c.
machines. If in a study machine types with automatic initialization are mixed with machines
which cannot be auto-initialized, the machines without auto initialization have to have their
initial condition specified according to the decoupled initialization.
- This type of data entry is confusing and not recommended.
- When auto initialization is used, the mechanical system has to be represented with the
electrical analogue network.
The Type-1 U.M. S.M. 59 machine invokes automatic initialization for all other machines in the study
with the restriction as above.

5. U.M. Data Preparation


The following is an overview of the data structure
(a) Enter Absolute U.M. DIMENSIONS and POWER FREQUENCY, both optional
(b) Enter Header record(s) in accordance with old or new data entry format
(c) Enter Class 1 data giving choice between Compensation and Predictions and choice
between Decoupled and Automatic Initialization. This record also includes flag for using
SM58/59 data for Type 1
(d) Terminate Class 1 data with “BLANK” for old format and “/UM” for new format
(e) Enter Class 2 data, records 1,2,3 and 4 as appropriate, see details below. These records
contain miscellaneous machine parameters, and U.M. output requests
(f) Enter Class 3 data only if Automatic Initialization is used
(g) Enter Class 4 data for coil tables of coil resistances and inductances and main flux
saturation
(h) Enter “BLANK” to terminate U.M. data in the old format. No terminator is required for
the new format
IX. The universal and time domain machine models - 11

5.1 Data preparation according to the original Rule Book IX method

Data required are divided into Classes. Each class consists of one or more records. Each record has
two parts:
- A table showing column numbers and data fields shown as a field between two column
numbers, and the name given to the data,
- and a list of data names with the specification of the field between two column numbers
- and any comments as appropriate

Dimension Information – Optional

Header record, first line after “BEGIN NEW DATA CASE”

1 2 3 4 5 6 7 8
1234567890123456789012345 6789012345678901234567890123456789012345678901234567890
ABSOLUTE U.M. DIMENSIONS, I,J,K,L

I.J.K.L is entered in free format


For all U.M. machines combined the maximum allowable values:
I = number of coils
this is the total number of coils on the stator and rotor
limit to be given later
J = number of machines max. Limit 50 (?)
K = number of machine variables which can be output
limit to be given later
L = 6-character names which can be assigned to variables in the output
limit to be given later

Power Frequency (optional)

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
POWER FREQUENCY, F

Free format
12 - IX. The universal and time domain machine models

For a.c. machines this record is required only if frequency in Hz is different from STATFR in the
STARTUP file

Machine Data Records - Alternative 1 -Old Format


Can be used with any ATP version

Class 1 – General Specification


Class 1 - record 1

1 2 3 4 5 6 7 8
12 345678901234567890123456789012345678901234567890123456789012345678901234567890
19

col. 1-2 – enter “19” to signal to ATP that the following records are U.M. data

Class 1 -record 2
For all UM data except Type 1 S.M. 59 format

1 2 3 4 5 6 7 8
1 2 345678 901234 5 67890123456789012345678901234567890123456789012345678901234567890
INITUM

ICOMP
INPU

B L A N K LIMASS

col. 1 INPU - flag for the units of the input quantities


0 - SI units
1 - per unit data (the whole data case)
col. 2 INITUM - flag for the form of initialization
0 - decoupled, variable specification
1 - automatic initialization
col. 3-8 - blank for U.M. data format
enter “SMDATA” for S.M. 59 data format see record 2b below
col. 9-14 LIMASS - limit of S.M. rotor masses for specification of output variables (usually
set to 0)
IX. The universal and time domain machine models - 13

col. 15 ICOMP - use compensation or prediction


0 - use compensation; 1 - use prediction
Note that type 2, 5, 6 and 7 cannot be automatically initialized. If automatic initialization is specified,
these machines will be skipped and initialized in the decoupled mode

Class 1 - Record 2b
To replace record 2 for Type 1 data specified in the S.M. 59 format
(PARAMETER Fitting)

1 2 3 4 5 6 7 8
1 2 345678 901234 5 67890123456789012345678901234567890123456789012345678901234567890
INITUM

ICOMP
INPU

SMDATA LIMASS

col.1 INPU flag for the units of the input quantities


0 – SI units
1 -per unit data (the whole data case)
col.2 INITUM - for the form of initialization
enter “1” as only automatic initialization can be used
col. 3-8 text -enter the word “SMDATA”
col. 9-14 LIMASS - S.M. rotor mass output limit
0 – default value of 10
1 – LIMASS = 1(usually set to 0)
col. 15 ICOMP - use compensation or prediction
0 – use compensation
1 – use prediction

Class 1 data is terminated by a BLANK record

For Type 1 S.M. 59 machine the Class 1 record 2b is followed by the regular S.M. 59 data entry, refer to
Rule Book Chapter 8 for details.
The following data records are the same in the old and new format:
14 - IX. The universal and time domain machine models

Class 2 – General Machine Data


Class 2 - Record 1

1 2 3 4 5 6 7 8
12 34 56 7 8 9 012345 678901 23 45678901234567 89012345678901 23456789012345 67890123456789 0
JTYPE

TQOUT
OMOUT
THOUT

NPAIR
NCLD
NCLQ

M MODE TACS RJ DCOEF EPSOM FREQ

cols. 1-2 JTYPE - U.M. type number J


cols. 3-4 NCLD - number of untransformed excitation coils in the direct axis, N. For
Types 1 to 7 these are on the rotor, for Types 8 to 12 they are on the
stator.
cols. 5-6 NCLQ - number of untransformed coils in the quadrature axis, L, otherwise as
for NLCD.
col. 7 TQOUT - d axis torque flag for quantities to be output (m-kg), I
0 = no output
1 = air-gap torque (recommended)
2 = air-gap torque plus d-axis flux
3 = as for 2 and d-axis magnetizing current
col. 8 OMOUT - q - axis speed flag for quantities to be output, K
0 = no output
1 = rotor shaft speed rad/sec (recommended)
2 = as 1 plus q-axis common flux
3 = as 2 plus q-axis magnetizing current
col. 9 THOUT - output flag for rotor position, all types except 1 and 2 in mechanical rad;
for types 1 and 2, the torque angle in electrical rad is output, M
0 = no output
1 = output torque angle
cols. 10-15 M NODE - name of the node at which the air-gap torque is coupled to the analogue
network.
NOTE: M NODE also serves as a flag. When the field is blank, TACS
RJ and DCOEF define the mechanical system for the machine
IX. The universal and time domain machine models - 15

cols. 16-21 TACS - name of the mechanical torque source when the network option is not
used; a TACS variable
cols. 22-23 NPAIR - number of machine pole pairs, P
cols. 24-37 RJ - rotor moment of inertia, m-kg2 when the network option is not used
Cols. 38-51 DCOEF - damping coefficient in (N-m-sec/rad) when the network option is not
used. This parameter is very difficult to find; Prof. Alexander
recommended a starting value of 0.083, Load Torque/speed) in SI units.
cols. 52-65 EPSOM - iteration convergence margin for rotor speed; the default value is 0.01%
of rated speed when the field is left blank
cols. 66-79 FREQ - override of steady state network frequency as per STATFR in the
STARTUP file

Class 2 - Record 2

1 2 3 4 5 6 7 8
12345678901234 56789012345678 9 01234567890123 45678901234567 89012345678901 234567890
JSATD

OMEGM LMUD LMSD FLXSD FLXRD

cols. 1-14 OMEGM - initial mechanical (rotor) speed in rad/sec for decoupled initialization,
otherwise blank; this field is normally left blank even for decoupled
initialization
cols. 15-28 LMUD - unsaturated d-axis common inductance, Henry;
NOTE (a) the following fields can be left blank if saturation is not used
(b) see Figure 9.1 for the definition of saturation parameter
(c) Inductance values are in Henrys or SI
(d) flux linkages may be given in Weber-turns or Volt-sec.
col. 29 JSATD - d-axis saturation flag
0 - no d-axis saturation
1 - apply d-axis saturation
5 - saturation option for uniform air-gap (no 2 or 3 option).
cols. 30-43 LMSD - saturated d-axis common inductance in Henry
cols. 44-57 FLXSD - flux linkage at the first (upper) break point of the magnetization curve
(Fig. 1) Volt-sec.
16 - IX. The universal and time domain machine models

cols. 58-71 FLXRD - residual flux linkage – leave blank

NOTE:The magnetization curve of an induction machine for the common inductance is rarely known. It
is not a significant factor in the performance of induction machines. It is recommended to leave
these fields blank

Class 2 - Record 3

1 2 3 4 5 6 7 8
12345678901234 56789012345678 9 01234567890123 45678901234567 89012345678901 234567890
JSATD

THETAM LMUQ LMSQ LMSQ FLXSQ

cols. 1-14 THETAM - initial position of he rotor with respect to the stator d-axis with assumed
to be phase A. For all machines except synchronous, in mechanical
radians. For synchronous machines leave blank. Difficult to calculate
manually, it is recommended to leave this field blank for all machines
cols. 15-29 LMUQ unsaturated q-axis common inductance, otherwise as for LMUD. For
induction machines usually the same as LMUD.

NOTE: The remaining variables for the q axis in this record have the same interpretation as those
in record 2 for the direct axis, but they are generally not available. They have little or no significance in
the simulation and should be left blank.

Class 2 - Record 4 (optional)

1 2 3 4 5 6 7 8
1 2 3 4 5 678901 234567 890123456789012345678901234567890123456789012345678901234567890
NUM2 NUM3
SHARE
(I6) (I6)

This record has only to be entered if there are two or three machines sharing the same mechanical
system or analogue network

cols. 1-5 SHARE - enter the flag word “SHARE” in cols. 1 through 5
IX. The universal and time domain machine models - 17

cols. 6-11 NUM2 - number of a machine with which a mechanical system is shared. Note
that the machine numbers are assigned sequentially as the machines data
is entered in the data file
cols. 12-17 NUM3 - another machine, leave blank if only two machines share a mechanical
system
NOTE: Neither Class 2, record 3 or 4 above is followed by a BLANK. These records are immediately
followed by the Class 3 records.

Class 2 record 4 is a time saver option, but prone to errors. Its usage is only recommended for advanced
U.M. users.

Class 3 – Initialization
This record is only required if automatic initialization is invoked by Class 1, record 2. For decoupled
initialization proceed to Class 4 record 1

Class 3 - record 1

1 2 3 4 5 6 7 8
12345678901234 56789012345678 901234 567890 1234567890123456789012345678901234567890

AMPLUM ANGLUM BUSF BUSM

cols. 1-14 AMPLUM - voltage/slip parameter


for synchronous and d.c. machines enter the initial magnitude of the
machine terminal peak phase to ground voltage in volts Vph-G-peak
for induction machines enter the initial slip in per cent
cols. 15-28 ANGLUM - for three phase synchronous machines enter the A phase
machine terminal voltage angle in degrees. This is not the torque
angle. It is the loadflow reference voltage angle
cols. 29-34 BUSF - field circuit excitation node
for synchronous or d.c. machines the name of the node in the
excitation network to which the adjustable EMTP Type 14 source is
connected; The excitation network in which the adjustable source is
embedded must be connected to the coil defined by the first record
in the rotor (excitation side) direct axis coil group; see Class 4,
record 2, Group 2
For induction machines this field should be left blank
18 - IX. The universal and time domain machine models

cols. 35-40 BUSM - torque source identifier


enter the name of the node in the mechanical network to which is
connected an EMTP Type 14 quasi d.c. source, the amplitude of
which can be adjusted for the load torque. The frequency of this 14
source should be 0.0001 Hz or less

NOTE: When machines share a mechanical system, the BUSM field for the second (and third) machine is
left blank. This means that the mechanical system initialization is entered with the first sharing machine
in the sequence which shares. The extension record described below, Class 3, record 2, is for the second
and third (if any) in the sharing group.

Class 3 - record 2-n extension record

Additional torque source identifiers, one record for the second (and third if any) machine in the
sharing group

1 2 3 4 5 6 7 8
1234 567890123456789012345678901234 567890 12345678901234 56789012345678901234567890

MORE BUSM2 DISTRF

cols. 1-4 MORE - enter the word “MORE”


cols. 35-40 BUSM2 - as BUSM in record 1 above ,name of the Type 14 source for the second
(third) machine
cols. 41-54 DISTRF - a factor by which the torque identified by BUSM in record 1 above is
multiplied
Note: the method of sharing the mechanical network by two or three machines is prone to data input
errors, and is not recommended.
Class 4– Coil Tables
The format of all coil tables is the same for each coil entered.

Class 4 - record 1 – list of armature coils


This group of record Class 4, record 1 entries list the armature coils, which are the stator coils for all
a.c. machines, rotor coils for d.c. machines.
IX. The universal and time domain machine models - 19

1 2 3 4 5 67 8
12345678901234 56789012345678 901234 567890 123456 7 89012345678901 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

CUROUT
RESIS LEAK BUS1 BUS2 XTACS CUR

Separate consecutive record 1’s are entered for coil parameters in the 0-d-q domain, in this order, and
for the axes that exist in the particular type of machine. E.g. three records for three phase machines, 0, d,
q coils, or one record for d.c. machines, q coil only. Resistance is in ohms, inductance in Henrys, both can
be given in per unit if the rest of the data case is in per unit.
Note that the “0” axis parameters are rarely known, it is recommended to leave the resistance and
inductance values blank.

cols. 1-14 RESIS - resistance ohms or per unit


cols. 15-18 LEAK - leakage inductance in Henrys or per unit (only if the whole data case is
in per unit)
cols. 29-34 BUS1 - name of the node to which the machine terminal side of the coil is
connected
cols. 35-40 BUS2 - name of the node to which the other end of the coil is connected; for
three phase star connected winding with the neutral solidly grounded,
leave this field blank; otherwise enter the name of the other node
cols. 41-46 XTACS - name of the TACS voltage source which may be internally connected in
series with this coil
cols. 47 CUROUT - coil current flag for printing
0 = no output
1 = physical coil current
2 = 0,d,q domain currents for all but single phase machines
cols.48-61 CUR - initial physical coil current as required for decouples initialization. Units
are in amperes or per unit depending on INPU in Class 1 record 2; also,
note comments in Section 3.2

Class 4 - record 2 - list of excitation coils


This group of Class 4, record 2 entries list the excitation coils, which are the rotor coils for all a.c.
machines, stator coils for d.c. machines.
20 - IX. The universal and time domain machine models

1 2 3 4 5 6 7 8
12345678901234 56789012345678 901234 567890 123456 7 89012345678901 2345678901234567890

CUROUT
RESIS LEAK BUS1 BUS2 XTACS CUR

The table format is the same as for Group 4, record 1.Note that the 1st item in the group for synchronous
machines, which is the first d-axis coil, must be connected to a type 14 d.c. (0.00001 Hz) voltage source,
the amplitude of which can be adjusted. The interpretation of all other entries is as for Group 4, record 1.

Class 5 - data termination

(Old format only)


- If the machine described by the above data set is a single machine in the data case, or the last
machine, the data is terminated by the record “BLANK ending UM data”
- If the machine described by the above data set is followed by another U.M. data set, there is
no termination record allowed, and the data for the next machine starts with the Class 2,
record 1 data

5.2 Data Preparation with the New Format


Referred to as Class n/ b data records. Can be used with any ATP versions after May 2007. Power
Frequency and U.M. dimension records are the same as for the old format.

Class 1b – General Specification


Class 1b - record 1

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
/REQUEST

U.M. HEADER CARD

Class 1b - record 2 (same as record 2 for Class 1)


For all UM data except Type 1 S.M. 59 format
IX. The universal and time domain machine models - 21

1 2 3 4 5 6 7 8
1 2 345678 901234 5 67890123456789012345678901234567890123456789012345678901234567890
INITUM

ICOMP
INPU

B L A N K LIMASS

col. 1 INPU - flag for the form of initialization


0 – SI units
1 - per unit data (the whole data case)
col. 2 INITUM - flag for solution method
0 – decoupled initialization
1 – automatic initialization
col. 3-8 blank for U.M. data format
enter “SMDATA” – for S.M. 59 data format
see record 2b below
col. 9-14 LIMASS - limit of S.M. rotor masses for specification of output variables (usually
set to 0)
col. 15 ICOMP - use compensation or prediction
0 – use compensation
1 – use prediction
(usually set to 0)
Note that type 2, 5, 6 and 7 cannot be automatically initialized. If automatic initialization is specified,
these machines will be skipped and initialized in the decoupled mode

Class 1b - record 2b (Same as Class 1 record 2b) to replace record 2 for Type 1 data specified in the
S.M. 59 format (PARAMETER Fitting)

1 2 3 4 5 6 7 8
1 2 345678 901234 5 67890123456789012345678901234567890123456789012345678901234567890
INITUM

ICOMP
INPU

B L A N K LIMASS

col. 1 INPU - flag for the form of initialization


22 - IX. The universal and time domain machine models

0 - SI units
1 - per unit data (the whole data case
col. 2 INITUM - initialization
enter “1” only automatic initialization can be used
col. 3-8 INITUM - enter the word “SMDATA”
col. 9-14 LIMASS - S.M. rotor mass output limit
0 - default value of 10
1 - LIMASS = 1 (usually set to 0)
col. 15 ICOMP - use compensation or prediction
0 - use compensation
1 - use prediction
Class 1b data is terminated by a “/UM” record
For Type 1 S.M. 59 machine the Class 1 record 2b is followed by the regular S.M. 59 data entry, refer
to Rule Book Chapter 8 for details.

Class 2b to Class 4b data is identical to the old format

Class 5b - data termination


If the data is headed by Class 1b data as described above, no data termination record required or allowed.
IX. The universal and time domain machine models - 23

5.3 Output definitions and location of flags

Table 2
Variable to be output Flag
Name Output label(s) Name Set Location in
to Class records
Armature current in IP0, IPD, IPQ CUROUT 2 Col. 47, Class 4, rec. 1/2
d-q domain
Coil currents to IPA,B,C
external network CUROUT 1 as above
IE1, IE2,..etc.
d axis magnetizing IMD TQOUT 3 Col. 7, Class 2, rec. 1
current
q axis magnetizing IMQ OMOUT 3 Col. 9, Class 2, rec. 1
current
d axis main flux FLUXMD TQOUT 2 Col. 7, Class 2, rec. 1
q axis main flux FLUXMQ OMOUT 3 Col. 8, Class 2, rec. 1
Rotor angle or THETAM THOUT 1 Col. 9. Class 2. rec. 1
torque angle
Rotor speed OMEGM OMOUT 1 Col. 8, Class 2, rec.1
Air gap torque TQGEN TQOUT 1 Col. 7, Class 2, rec.1

5.4 TACS (MODELS) control of U.M.

Only TACS control is demonstrated below. Also see BENCHMARK file DCN10. The U.M. variables
which can be passed to TACS are listed in Table 1.
1. At the top of the data file following BEGIN NEW DTA CASE, enter the request
word “UM TO TACS”
2. Pass any of the U.M. variables listed in Table 2, Section 5.3 to TACS by keying
“92” in cols.1-2. followed by the variable name shown in column 3-8 in Table 2.
for example:
92TQGEN for the air gap torque in N-m
92IPA for the stator current in A
92OMEGM rotor speed in rad/sec
This will allow manipulating these variables by the TACS code for a single machine case.
24 - IX. The universal and time domain machine models

The above procedure works only if there is a single U.M. machine in the data case. Due to the fact that
the TACS code is not an integral part of the U.M. code, and it is generated by the user separately, the
passing to TACS of a U.M. variable has to be identified by a code which is unique to the machine. .U.M.
does it by assigning a serial number to the machine at the time when the machine code is read from the
data file. It is this number which has to be used when passing a U.M. signal to TACS, to correctly identify
the originating machine.
Assuming that in the above example the three signals belong to machines n. 3, 4 and 5, the passing of
the signals to TACS would occur as follows:

1 2 3 4 5 6 7 8
12 345678 90123456789012345678901234567890 123456 7 8 9 0 1 23456789012345678901234567890
92 TQGEN3 UM-3 TQGEN
92 I P A 3 UM-4 I P A
92 OMEGM4 UM-5 OMEGM

col. 1-2 enter “92”


col. 3-8 user name given to UM variable
e.g. TORQG2 for UM name TQGEN
col. 41-46 enter UM-N, where N is the serial number of the machine
col. 47-51 UM 5 letter name of the variable
e.g. TQGEN, OMEGM etc.

The user is warned that because of the code separation between the machine related TACS and the
native U.M. code, a mix-up can occur in a multi-machine data file. This is possible if a data file is
modified and machines added and particularly if machines are inserted. Using ATPDraw, this can easily
occur as the connection of machines to the network can be by simply moving icons.
A unique situation arises when a non linear TACS controlled resistance is connected to the slip rings
of a wound motor Type 4 machine as it may be required for starting or speed control.. This creates two
compensated elements in parallel, and would send a KILL code. The solution was presented in
BENCHMARK DCNEW-1. The example below shows how a TACS controlled resistance ROTRES is
connected to the slip rings.

Rotor coils
1 2 3 4 5 6 7 8
12345678901234 56789012345678 9012345 67890123456 7 890123456789012 34567890123 4 567890
CUROUT

RESISB LEAKB ROTB TACS R-thev ROTRES


RESISC LEAKC ROTC TACS R-thev ROTRES
ROTA TACS R-thev ROTRES
IX. The universal and time domain machine models - 25

cols. 1 - 14 RESISB, C coil resistance in ohms or per units


cols. 15 - 28 LEAKB, C coil inductance in Henry or per unit
cols. 29 – 35 ROTB, C, A name of slip ring end of rotor coils
col. 47 CUROUT see Class 4 record 1
cols. 63 - 73 type “TACS R-thev” for all three phases (mote “thev” is lower
case)
cols. 75 -80 ROTRES name of the TACS controlled resistance connected to the slip ring .
Same for all three phases B,C and A. Different entries are not
supported

6. References

[1] EMTP Theory Book


[2] .Lauw and W. Scott Meyer. Universal Machine Modeling for the Representation of Rotating
Electrical Machinery in an Electromagnetic Transient Program; Hian K; IEEE Transactions on
PAS, PAS Vol. 10 No. 6; June` 1982
[3] Interfacing for Universal Multi-Machine System Modeling; Hian K. Lauw IEEE Transactions
Vol. PAS No. 9, November 1985
[4] Edward W. Kim bark. Synchronous Machines; Power System Stability Vol. III; 1955
26 - IX. The universal and time domain machine models

IX-B The IM 56 Induction Machine Model


Phase Domain Simulation

1 Overview
The IM 56 model is a phase domain simulation of a single cage induction machine developed by
TEPCO of Japan. This model corresponds to the U.M. model Type 3 with a single rotor cage, and it is,
for the time being, the only type available in the IM 56 series. The model was, however, developed with a
view of adding other machine models.
The concept of phase domain simulation of electrical machines has been known since the 1920’s but
the analytical solution of the differential equations of the machine in the phase domain has not been
practicable until recently, before the availability of high speed and capacity computers in the engineering
practice. The challenge presented by the phase domain solution is the time dependence of mutual
inductances between coils of the machine windings which makes the analytical solution difficult.
EMTP has used until recently the method of Park’s d-q transformation, which has been working
satisfactorily but has some limitation. Such limitations include amongst others the modeling of
asymmetrical windings in the three phases, including simulation of winding faults.
TEPCO provided the mathematical approach to IM 56. The nature of this description is highly
theoretical and is not in the nature of Rule Book model descriptions. The model theory provided by
TEPCO is shown in Appendix B.
The outline of the present Type IM 56 model is listed below.
- Phase domain modeling is applied, as for the Type-58 Synchronous Machine.
- Only the three-phase, single squirrel cage rotor type is available The other types of induction
machine will be available in the future.
- The prediction and compensation method is not used. Parallel operation of two or more Type-
56 IM’s is permissible.
- Saturation of the magnetization circuit is available in the model.
- Mechanical torque variation is available, either as a stepwise change or user specified in
TACS.
- For the initial steady-state solution, balanced three-phase network is assumed.
-
2. Data preparation

The data format required for the IM 56 model as provided by TEPCO is given below. The format of
the tables was changed to conform to the table formats used in Rule Book Chapter IX, but the contents of
the table has not been changed. Additional explanation for using IM 56 will be provided as it becomes
available.
IX. The universal and time domain machine models - 27

The table formats used below for IM 56 are explained in the U.M. Rule Book Section 5.1

IM 56 Input Data Formats

Class 1 - Node, Initial slip, Initial Output - three records

1 2 3 4 5 6 7 8
12 345678 90 1234567890 1234567890 12345678901234567890123456789012345678901234567890
56 B U S A SLIP TMO

56 B U S B

56 B U S C

record 1, 2 and 3
cols. 1- 2 IM 56 identifier type “56”
cols 3-8 bus name of first second and third phase, BUSA, BUSB, BUSC

record 1 only
cols 11-20 initial slip in percent
SLIP > 0 for power into the machine
SLIP < 0 for generation
Cols. 21-30 TM0 initial mechanical torque in per unit
Caution! Do not use TMO in the type-56 IM 56 model, TM0 will be calculated using SLIP

Class 2 induction machine parameters

Class 2 - record 1

1 2 3 4 5 6 7 8
12 34567 89 0 1234567890 1234567890 1234567890 1234567890123456789012345678901234567890
TY NP R M V A R S K V F R E Q

cols. 1-2 TY=0 or blank for single squirrel cage rotor machine
(Now only TY=0 is available, other types will be implemented later)
cols. 3-4 leave blank
cols. 8-9 NP = number of poles(*1)
cols. 11-20 RMVA : rated capacity [MVA]
cols. 21-30 RSKV : rated voltage [kV line-to-line r.m.s. value]
cols. 31-40 FREQ : rated frequency [Hz]
28 - IX. The universal and time domain machine models

(*1)
:The original source code is used “pole pairs”,

Class 2 - record 2

1 2 3 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
Rs Ls Rr Lr Msru Msrs Vsrs

cols. 1-10 Rs : stator winding resistance in per unit


cols. 11-20 Ls : stator winding leakage reactance in per unit
cols. 21-30 Rr : rotor winding resistance in per unit
cols. 31-40 Lr : rotor winding leakage reactance in per unit
cols. 41-50 Msru : unsaturated mutual inductance in per unit.
If saturation is considered, the parameters of Msru, Msrs and Vsrs are as
defined in the Fig. 9.4 below.. The saturation curve is expressed aa a
quadratic equation and its tangential line.
cols. 51-60 Msrs : saturated value of mutual inductance in per unit, Msrs see Fig. 9.4
cols. 61-70 Vsrs : knee voltage at characteristic change of saturation in kV phase to
ground peak

1.2 Vsrs (quadratic equation)

Msru
Msrs
Vsrs

Im

Fig. 9.4. Saturation Modeling in Type-56 IM

(*2)
The definition of Msrs is shown in above, same as in the U.M. model, but the quadratic equation is
used in the saturated region in Type-56 IM model, not piecewise linear.
IX. The universal and time domain machine models - 29

Class 3 record 1 - mechanical parameters


1 2 3 4 5 6 7 8
1234567890 1234567890 1234567890 1234567890 1 2345 67 89 01 23456789012345678901234567890
M D EMSOM NM JP JE JM

cols. 11-20 M. - moment of inertia in [sec] , (H constant)


cols. 21-30 D - damping coefficient in per unit
(*3)
cols. 31-40 EMSOM - tolerance for rotor speed [%], default 0.01[%]
cols. 42-45 NM - maximum number of iterations, default 50
cols. 46-47 JP - for output of active and reactive power JP=1
cols. 48-49 JE - for output of stator and rotor phase currents JE=1 :
cols. 50-51 JM - for output of angular velocity, angle, electrical and
mechanical torque JM=1

(*3)
In the original source code, the unit of slip is [PU].

Class 4 record 1 - mechanical torque change

1 2 3 4 5 6 7 8
1234567890 1234567890 1234 567890 12345678901234567890123456789012345678901234567890
T T M TBUS

cols. 1-10 T time of mechanical torque change


cols 11-20 TM desired mechanical torque after change [machine base P.U.]
cols. 25-30 TBUS blank or TACS name for mechanical torque variation
If TBUS is not blank, T and TM will be ignored
The initial value of TACS output must be 1.0 (per unit).
TACS output will be in terms of the ratio of the initial mechanical torque
TM0 (4*) TM,
the desired torque in per unit = TACS output times TM0(initial torque in
per unit.)
(4*)
TM0 is the initialized value by the model using the user-specified initial slip and machine
parameters.
30 - IX. The universal and time domain machine models

TM [T(2), TM(2)]
(pu)

[T(1), TM(1)]

TM0

[T(3), TM(3)]

time (s)

Fig. 9.5. Stepwise Torque Change

Class 5 record 1 - machine data terminator

1 2 3 4 5 6 7 8
123456789012 3456 7890123456789012345678901234567890123456789012345678901234567890
9999

Class 6 TACS transfer

Class 6 record 1 - TACS transfer

1 2 3 4 5 6 7 8
12 345678 90 1234567890123456789012345678901234567890123456789012345678901234567890
73 BUSNAM N

Each variable TACS transfer has its own record


cols. 1-2 Type “73” one record for each item passing to TACS ( MODELS)
cols. 3-8 BUSNAM - name of the TACS source Type-92 to which information is passed
cols. 9-10 N - type number from the table below of the IM 56 variable to be passed to
TACS
IX. The universal and time domain machine models - 31

N value N value
1 P, active power [W] 7 IRB, B-phase rotor current [A]
2 Q, reactive power [Var] 8 IRC, C-phase rotor current [A]
3 ISA, A-phase stator current [A] 9 WR, angular velocity [rad/sec]
4 ISB, B-phase stator current [A] 10 ANG, angle [rad]
5 ISC, C-phase stator current [A] 11 TQ, electrical torque [NM]
6 IRA, A-phase rotor current [A] 12 TM, mechanical torque [NM]

Class 6 record 2 - IM 56 data set terminator

1 2 3 4 5 6 7 8
12 345678 901234567890123456789012345678901234567890123456789012345678901234567890
FINISH

Cols. 1-2 leave blank


Cols. 3-8 type “FINISH”
32 - IX. The universal and time domain machine models

Error Messages:

message
1 == ERROR in type56 == number of IM is exceeded the max.=****. Reduce the number of
type56 model data.
2 == ERROR in type56, node=**** == Not specified the rated frequency of the IM.
3 == ERROR in type56, node=**** == Not specified the rated capacity of the IM.
4 == ERROR in type56, node=**** == Divided by zero in IM impedance. Confirm the values of
resistance and inductance in IM
5 == ERROR in type56, node=**** == Divided by zero in IM impedance. Confirm the value of
mutual reactance.
6 == ERROR in type56, node=**** == No IM saturation data. The values of X_SRS, V_SRS are
necessary, if saturation considered (M_SRU<0.0).
7 == ERROR in type56, node=**** == Divided by zero in IM saturation data. Confirm X_SRS,
V_SRS.
8 == ERROR in type56, node=**** == Negative value input of SQRT in IM saturation
calculation.
9 == ERROR in type56, node=**** == TACS or MODELS variable is not found.
10 == ERROR in type56, node=**** == Number of step-change data (T&TM) is exceeded 600.
11 == ERROR in type56, node=**** == Number of 73-cards is exceeded 13.
12 == ERROR in type56, node=**** == Not available other than 73-card.
13 == ERROR in type56, node=**** == IM data error, confirm data format
14 == ERROR in type56, node=**** == Not converged in initial saturation calculation. Max.
iteration=####
15 == ERROR in type56, node=**** == Not converged in angular velocity of IM. Max.iteration
=####
16 == ERROR in type56, node=**** == SLIP0 in IM is not specified.
(*5)
17 == ERROR in type56, node=**** == BUS name connected to IM is not found.
(*5)

20 == ERROR in type56, node=**** == N in 73-card must be 1,2, to 12.


(*5)

21 == ERROR in type56, node=**** == Reading error in IM data.


(*5)

Result of the Benchmark data DCN12.ATP

(*5)
Some of the error messages are different from in the original source. They may have been
modified or added by BPA.

IM 56 simulation sample cases

IM 56 simulation examples are presented in BENCHMARK data case DCN12


The mechanical analogue network used in DCN12 is shown below.
IX. The universal and time domain machine models - 33

BUSA2 BUSAS2
BUSMS BUSMG Armature 14
change at Torque
0.02sec
Induction
Machine
BUSMGR Model

Fig. 9.6. DCN12.dat model for UM type-3

This figure shows an example of UM model. In type-56 IM model, the secondary circuit which
models the mechanical system, is not necessary.

Appendix A
U.M. Sample Simulation Cases
Four sample data cases are presented. Each case includes the listing of the EMTP data file, followed
by a detailed explanation of each record in the data.

1. U.M. Type 1 Synchronous Machine in a Standard U.M. Data Format


2. U.M. Type 1 Synchronous Machine in a S.M. Type 59 Data Format
3. U.M. Type 3 Cage Rotor Induction Machine
4. U.M. Type 4 Wound Rotor Doubly Fed Induction machine

Sample Simulations of Three-Phase Machines


Listings of the data files used to simulate simple, three-phase-machine systems are shown in this
section, along with the variable labels produced at the start of the simulation output. The comments
accompanying each listing are keyed to the circled letters on the listing.
Simulations for a synchronous machine described in standard U.M. data format, a synchronous
machine described in U.M.-S.M. Type-59 data format, a cage-rotor induction machine, and a wound-
rotor, doubly-fed induction machine are discussed.
34 - IX. The universal and time domain machine models

Table V: Variables which can be displayed as output of the U.M. algorithm, and the U.M.-S.M.
Type-59 selection flags.

Variable to be Output Flag


Name Output Label(s) Name Set to Location of the Flag
armature coil current in 0-d- Col. 21-25 of request record
IPO, IPD, IPQ JIDQ0 1-9
q domain 1
coil current to the phase IPA, IPB, IPC Col. 61-65 of request record
JIABC 1-9
domain 1
Col. 26-30 of request record
field coil current IE1 JF1 1-9
1
Col. 31-35 of request record
current, d-axis damper IE2 JD2 1-9
1
Col. 36-40 of request record
current, q-axis damper IE3 JQ1 1-9
1
Col. 41-45 of request record
current, q-axis eddy (coil 2) IE4 JQ2 1-9
1
Col. 66-70 of request record
current, d-xis magnetizing IMD
1
JSAT 2
current, q-axis magnetizing IMQ (both currents are obtained)

flux, d-axis main (see


FLUXMD
LMUD)
JAST 1-2 (both fluxes are obtained)
flux, d-axis main (see
FLUXMQ
LMUQ)
speed, mass ’j’ See NOTE ? 1 or 3 Col. ’j’ of request record 2

rotor speed OMEGM JSAT 1-2


Col. 51-55 of request record
electromagnetic torque TQGEN JETM 1-9
1
Col. 66-70 of request record
torque angle THETAM JETE 3
1
torque, exciter JETE 1
torque, intermass: masses ’j’
See NOTE ? 2 or 3 Col. ’j’ of request record 2
and ’j=1’
NOTE: Mass speed and intermass torques are identified by the names on the mass records, columns
71-76.
IX. The universal and time domain machine models - 35

Synchronous Machine; Standard U.M. Format

The system used for the simulation of a three-phase, synchronous machine is shown in figure 9.7.
The listing of the input file is given in Table VI, p 41. The example consists of a three-phase fault at the
terminals of a synchronous generator connected to an infinite bus through a short transmission line
modeled with lumped parameters. Two sources of torque (current sources) and two-masses (capacitors)
are included in the mechanical network. Note that the common prefix 'BUS' used for node names in the
listing has been dropped in figure 9.7.
S A1 XL A0
FS RS F0 F Y
i N A
e S PE
C r
RCE l H m B1 XL BO
d R a
O M t
T u
MS1 o
N A S PE
O C r
r U e C1 XL C0
q H
D1 S I RC RC
M1 u
MG N RC
e S PE
E
DD
M2
MP
Mechanical
D2
Network
MS2

Fig. 9.7. System diagram for example simulation of a synchronous machine


with two sources of applied torque and two masses on the shaft. The
network elements are defined as follows:
Dl, D2, DD small, current-sensing resistors used to measure torques
at the masses;
Ml, M2 capacitive equivalents of the masses on the rotor, shaft;
PE series R-C elements which act as snubbers across the
switches;
RC, RCE large resistors which provide the connectivity required by
the EMTP;
RS small resistor used for ’isolation’;
S switches representing the fault;
XL R-L elements used as approximations to a transmission line
36 - IX. The universal and time domain machine models

TABLE VI: Listing of the Input File for the Simulation of Synchronous Machine Described in the
Standard U. M. Format
BEGIN NEW DATA CASE BUSMS1BUSMG 1.0E-6
BUSMS2BUSMP BUSMS1BUSMG
C UM143.DAT BLANK RECORD ENDING BRANCHES
C --------- TIME OF FAULT AND TIME OF CLEARING
C --------- TEST CASE FOR SM DATA ACCORDING TO FOUAD AND ANDERSON
TFAULT 0.15
C IN REAL UNITS ; AUTOMATIC INITIALIZATION
TCLEAR 0.28
ABSOLUTE U.M. DIMENSIONS, 20, 2, 50, 100
C --------- TACS CONTROLLED SWITCHES
C --------- TIME SET
11BUSA1 FIRE
0.0002 0.5
I1BUSB1 FIRE
1 1 0 0 1 -1 0 1
I1BUSC1 FIRE
C -------- REQUEST FOR CHANGE IN PRINTOUT INTERVAL
BLANK RECORD ENDING SUITHES ..............................................
10 490 500 500
C --------- BATTERIES FOR SUITCH CONTROL
TACS HYBRID
14BAT1 2.0 0.00001 -1
STEP1 +BAT1 -TFAULT
14BAT2 3.0 0.00001 -1.0
STEP2 +BAT2 -TCLEAR
C --------- INFINITE BUS SOURCE VOLTAGES
FIRE -STEPO +STEP1 -STEP2
14BUSA0 3000.0 60.0 0.0 -1.0
C --------- TACS UNITY SIGNAL SOURCE
I4BUSB0 3000.0 60.0 -120.0 -1.0
11STEP0 1.0 -1.0
I4BUSC0 3000.0 60.0 +120.0 -1.0
C --------- EMTP OUTPUT TO TACS
C --------- EXCITATION SOURCE VOLTAGE (ACTUAL VALUE SET BY SS INITIALIZATION)
90BAT1
14BUSFS 0.001 0.00001 -1.0
90BAT2
C --------- MECH INPUT TORQUE (ACTUAL VALUES SET BY SS INITIALIZATION)
90TFAULT
I4BUSMS1-1 0.0000001 0.00001 -1.0
90TCLEAR
14BUSMS2-1 0.0000001 0.00001 -1.0
BLANK RECORD ENDING ALL TACS DATA
C --------- UM DATA
C --------- EMTP CONNECTIVITY
19 UM
BUSA0 1.0E+8
1
BUSB0 1.0E+8
BLANK RECORD ENDING GENERAL UM SPECIFICATION
BUSC0 l.0E+8
C --------- UM-1 MACH-TABLE
C --------- TRANSMISSION LINES (0.001 OHMS AND 1.0 MILLI HENRY)
1 2 1111BUSMG
BUSA1 BUSA0 1.0E-3 1.0
0.0057815 0.0373
BUSB1 BUSBO BUSA1 BUSA0
0.0035850
BUSC1 BUSC0 BUSA1 BUSAO
303.0 15.0 BUSFS BUSMS1
C ---------- EMTP CONNECTIVITY REQUIREMENT
BUSMS2 -10.0
BUSFS 1.0E+6
MORE
BUSFS BUSF0 1.0E-5
C --------- UM-1 COIL-TABLE
C --------- PARASITIC ELEMENTS IN PARALLEL WITH SWITCHES (BUS1 TO GROUND)
BUSA1 1
BUSA1 10.0 3.0E+3
0.001542 0.0005595 BUSB1 1
BUSB1 BUSA1
0.001542 0.0005595 BUSC1 1
BUSC1 BUSA1
0.0010 0.0003767 BUSF0 1
C --------- CIRCUIT FOR SUITCH CONTROL
0.01834 0.0002075
BAT1 1.0
0.07560 0.0001335
BAI2 1.0
BLANK RECORD ENDING ALL UM DATA
BAT1 TFAULT 1.0
BLANK RECORD ENDING ALL SOURCES ....................
BAT2 TCLEAR 1.0
C ---------REQUEST FOR NODE VOLTAGE OUTPUT
C --------- MECH NETWORK
BUSAI BUSA0 BUSFS BUSMG
BUSMG 1.E+05
BLANK RECORD ENDING NODE VOLTAGE OUTPUT SPECIFICATION
BUSMP 1.E+09
PRINTER PLOT
BUSMP BUSMC 1.0E-6
BLANK RECORD ENDING PLOT RECORDS .....................
C SMALL RESISTANCES IN SERIES WITH TORQUE SOURCES ;
BEGIN NEU DATA CASE B
LANK DATA CASE
IX. The universal and time domain machine models - 37

The fault is represented by switches which are opened and closed under the control of
TACS signals. The infinite bus is established by a balanced set of EMTP Type 14 (sinusoidal)
voltage sources. EMTP Type 14 sources are also used to control the TACS signals, to provide
field excitation and to provide current equivalent to torque in the electrical analog of the
mechanical system at the machine shaft. The frequency of the latter sources is set to 0.00001Hz;
so, over the interval of 0.5 seconds covered by the simulation, their amplitudes are essentially
constant; i.e., the sources behave as d.c. sources. Thus, over the interval of the simulation, the
TACS reference signals (BAT1 AND BAT2), the excitation voltage (node FS) and the
mechanical torques (nodes MSI and MS2) are effectively constant.
The components of the data file related directly to the simulation of the synchronous
machine are indicated by the circled letters on the listing. The branches of the electrical network
representing the mechanical system (mechanical network) are specified in the same manner as
for the other electrical sub-networks and along with them (group C). The equivalent torque
sources (group f) are specified to be current sources by the entry of ’-1’ in columns 9 and 10.
Machines modeled in the U.M. algorithm are defined to be sources of EMTP Type 19. The
text string ’UM’ in the record containing ’19’ in columns 1 and 2 (see group F on the listing) is
not read during data input. The string serves to aid in reading the list. The information contained
in the second record of the General Specifications (group F) is as follows:
- a blank appears in column 1, indicating that all variables and parameters are to be
taken as specified in SI (physical) units;
- a ’1’ appears in column 2, specifying that automatic initialization is to be carried out.
- a blank appears in column 15, indicating that compensation, rather than prediction, is
to be used in interfacing the UM module to the 3-phase network.

Note the blank record which is required for termination of the General Specification group.

The non-zero entry in column 2 of the second record does not trigger initialization. It does
cause the proper incorporation of the U.M. module in the normal, phasor-solution initialization
of the EMTP. In the example simulation, the initialization process is invoked by the entry of ’-
1.0’ for TSTART (cols. 61-70) in the Type 14 source records.
The data in the machine table (group G on the listing) conveys the following information:
1. From record 1,
- work with U.M. Type 1 (1 in cols. 1-2);
- two d-axis field coils (2 in cols. 3-4);
- one q-axis field coil (1 in cols. 5-6);
- output the electromechanical torque, TQGEN (1 in col. 7);
- output the absolute rotor speed, OMEGM (1 in col. 8);
- output the torque angle, THETAM (1 in col. 9);
- use the node ‘BUSMG’ as the connection point of electromagnetic torque to the
mechanical network (BUSMG in cols. 10-14);
- two-pole machine (1 pole-pair; 1 in cols. 22-23);
- convergence margin for rotor speed = 0.0373 (cols. 52-65);
- default system frequency used (cols. 66-79 blank).
38 - IX. The universal and time domain machine models

NOTE: Since a mechanical network was specified, cols. 16-21 and cols. 24-51 were left
blank.
2. From record 2,
- initial condition on the mechanical speed is; not used (blank in cols. 1-14);
- unsaturated d-axis inductance = 0.0057815 hy (cols. 15-28);
- no d-axis saturation (blank in col. 29).
3. From record 3,
- initial condition on the torque angle is not used (blank in cols. 1-14);
- unsaturated q-axis inductance = 0.0035850 hy (cols. 15-28);
- no q-axis saturation (blank in col. 29).
4. From record 4,
- peak value of the initial, armature-terminal voltage - 3030v (cols 1-14);
- initial phase of the armature-terminal voltage = 15deg. (cols. 15-28);
- the type-14 source to be adjusted to meet the initial condition on the current in the
first direct-axis coil is connected at node BUSFS (cols. 29-34);
- the type-14 source to be adjusted to meet the initial condition on the electromagnetic
torque is connected at node BUSMS1 (cols. 35-40) in the mechanical network.
5. From record 5,
- an additional type-14 source is to be adjusted to meet the initial condition on
electromagnetic torque (MORE entered in cols. 1-4);
- the source is connected at node BUSMS2 (cols. 35-40) in the mechanical network;
- the torque of the second source is 10 times that of the source at node BUSMS1 and
is of opposite sign (-10.0 in cols. 41-54).
The coil-table records (group H on the listing) contain the following information:
1 From record 1,
- armature phase A of the U.M. model is connected between network node BUSA1
(cols. 29-34) and ground (blank in cols. 35-40);
NOTES: a. Positive sequence in the U.M. module is always A-B-C; regardless
of the sequence of the external network connected at the coil terminals.
b. Current into the external network at BUSA1 is taken as the positive
reference.
- the zero-component calculations are bypassed (blanks are entered for the zero-
component resistance and leakage inductance in cols. 1-28).
2 From record 2,
- armature phase B of the U.M. model is connected between network node BUSB1
(cols. 29-34) and ground (blank in cols. 35-40);
- direct-axis, armature-coil resistance is 0.001542 ohms (cols. 1-14);
- direct-axis, armature-coil leakage inductance is 0.0005595 hy (see cols. 15-28).
IX. The universal and time domain machine models - 39

3 From record 3,
- armature ph armature phase C of the U.M. model is connected between network
node BUSC1 (cols. 29-34) and ground (blank in cols. 35-40);
- quadrature-axis, armature-coil resistance and leakage reactance are equal to the
respective direct-axis values;
4 From record 4,
- the first direct-axis field coil is connected between node BUSF0 (cols. 29-34) and
ground (blank in cols. 35-40);
- by the automatic-initialization convention the first direct-axis field coil is the
excitation field;
- non-zero resistance and leakage inductance are given for the coil (cols. 1-28);
5 From record 5,
- the second direct-axis field coil is short circuited to ground (blanks in both cols. 29-
34 and 35-40);
- non-zero resistance and leakage inductance are given for the coil (cols. 1-28).
6 From record 6,
- the first quadrature-axis field coil is short circuited to ground (blanks in both cols.
29-34 and 35-40);
- non-zero resistance and leakage inductance are given for the coil (cols. 1-28).
Since two direct-axis field coils and one quadrature-axis field coil were specified in record
1 of the Machine-Table Group (group G on the listing), no more data is required for the first
machine. The blank record following the coil-table records terminates the input for machines
modeled through the U.M. algorithm.
The only records left in the listing are those specifying node voltages to be output, plot
controls and data-case termination. These are in the standard EMTP format.
Table VII, p. 46, gives the beginning of the modified output listing for the example
problem. Output of the voltages to ground at nodes BUSA1, BUSA0, BUSFS and BUSMG
were requested at the end of the input data file. Output of the currents in phases B and C of the
pseudo-transmission; line was specified by a “1” entered in column 80 of the respective branch
records. Output of the coil currents at the terminals of the machine was requested by a “1”
entered in column 47 of each coil-record. Output of electromagnetic torque (TQGEN), rotor
speed (OMEGM) and the torque angle (THETAM) were requested by setting the respective
flags to ‘1’ in record 1 of the Machine Table Group.

Synchronous Machine; U.M.-S.M. Type-59 Format


The system used for the simulation of a three-phase synchronous machine described by data
in the S.M. Type-59 format is shown in figure 9.8. The listing of the input file is given in Table
VIII, p 47. The example is Benchmark Case DC-26, and consists of a single-line-to-ground fault
on a model of a short transmission line connecting a synchronous generator to an infinite bus. A
constant torque: is applied to the shaft system of the rotor. Inertia and viscous damping are
associated with the single mass of the rotor system. The field voltage is supplied through an
interface to TACS.
40 - IX. The universal and time domain machine models

The fault is represented by a switch which is closed at 0.0199 sec and reopened at 0.0799
sec. The infinite bus consists of a balanced set of EMTP Type 14 (sinusoidal) voltage sources.
Excitation for the field is provided through an interface to a TACS signal, which, in this case, is
a constant.
The components of the data file related directly to the simulation of the synchronous
machine are indicated by the circled letters on the listing. The operating frequency is set to 50 hz
by the special request record (comment A).
The beginning of the Universal Machine source is indicated by the record in group C which
contains ‘19’ in columns 1 and 2. The comments given above for standard data input apply here.
The second record of the General Specifications (group C) contains the following
information:
- a blank appears in column 1, indicating that all variables and parameters are to be
taken to be specified in SI (physical) units;
- a blank appears in column 2, indicating that manual initialization is to be carried out;
however, the presence of S.M. Type-59 data overrides this flag;
- the text SMDATA (cols. 3-8) informs the algorithm that one or more machines in
the data groups which follow are described by data in the S.M. Type-59 format, and
automatic initialization is invoked for all U.M. machines;
- a blank appears in column 15, indicating that compensation, rather than prediction, is
to be used in interfacing the UM module to the 3-phase network.

VTACS1 S A1 TR A2 TRL A3 TL A4
F +
TACS Y
i
N A
Exciter e
C
l r
Model H m
d TR TRL TL
R a B1 B2 B3 B4
O M t +
N A u
O C r
U H e
S I C1 TR C2 TRL C3 TL C4
N +
E TC TC TC

S
Single
Rotor Mass

Fig. 9.8. System diagram for example simulation of a synchronous


machine specified in S.M. Type-59 format. The transmission
line consists of the following elements:
S switch representing the fault;
TC shunt capacitors;
TL pure inductive elements;
TR small, resistive, current-sensing element inter-
connecting the transmission line and machine
terminals;
TRL R-L elements;
TABLE VII: Beginning of the Output Listing for The Simulation of a Synchronous
Machine with the Data in the Standard U.M. Format

COLUMN HEADINGS FOR THE 28 EMTP OUTPUT VARIABLES FOLLOW. THESE ARE ORDERED ACCORDING TO THE FIVE
POSSIBLE EMTP OUTPUT-VARIABLE CLASSES, AS FOLLOWS ....
FIRST 4 OUTPUT VARIABLES ARE ELECTRIC-NETWORK NODE VOLTAGES (WITH RESPECT TO LOCAL GROUND)|
NEXT 0 OUTPUT VARIABLES ARE BRANCH VOLTAGES (VOLTAGE OF UPPER NODE MINUS VOLTAGE OF LOWER NODE)|
NEXT 6 OUTPUT VARIABLES ARE BRANCH CURRENTS (FLOWING FROM THE UPPER EMTP NODE TO THE LOWER)|
NEXT 0 OUTPUT VARIABLES PERTAIN TO DYNAMIC SYNCHRONOUS MACHINES, WITH NAMES GENERATED INTERNALLY|
NEXT 0 OUTPUT VARIABLES BELONG TO ‘TACS’ (NOTE INTERNALLY-ADDED UPPER NAME OF PAIR)|
FINAL 9 OUTPUT VARIABLES BELONG TO UNIVARSAL MACHINES (UM), UITH NAMES GENERATED INTERNALLY|
BRANCH POWER CONSUMPTION (POWER FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH VOLTAGE FOR THIS GROUPING|
BRANCH ENERGY CONSUMPTION (ENERGY FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH CURRENT FOR THIS GROUPING.

STEP TIME BUSA1 BUSA0 BUSFS BUSMG BUSB1 BUSC1 BUSMG BUSMP
(Mass M1 BUSB0 BUSC0 TERRA BUSMG
Speed) (Accelerating (Intermass
Torque at M1) Torque, M1-M2)

BU5MS1 BUSMS2 UM-1 UM-1 UM-l UM-1 UM-l UM-1


BUSMG BUSMP TQGEN OMEGM THETAM IPA IPB IPC
(Torque of (Torque of (Electro- (Rotor (Torque
Source 1) Source 2) magnetic Speed) Angle)
Torque)
UM-1 UM-1 UM-1
IE1 IE2 IE3
(Field
Current)
0 0.000000 0.292676E+04 0.300000E+04 0.380334E+01 0.376991E+03-0.866803E+03-0.1212S7E+04 0.000000E+00 0.316677E+05
-0.316677E+04 0.316677E+03 0.285010E+05 0.376991E-03 0.106896E+01 0.236319E+04-0.918935E+03-0.144425E+04
-0.376568E+04 0.000000E+00 0.000000E+00
1 0.000200 0.283936E+04 0.299148E+04 0.380334E+01 0.376991E+03 0.721215E+03-0.133751E+04 0.175184E+00 0.316677E+05
-0.3l6677E+04 0.316677E+05 0.285008E+05 0.376991E+03 0.106896E+01 0.233365E+04-0.750808E+03-0.158284E+04
-0.376570E+04-0.372960E-01-0.616817E-01
2 0.000400 0.277574E+04 0.296596E+04 0.380334E+01 0.376991E+03-0.571530E+03-0.145455E+04 0.509146E+00 0.316677E+05
-0.316677E+04 0.316677E+03 0.285004E+05 0.376991E+03 0.106896E+01 0.229085E+04-0.578414E+03-0.171243E+04
-0.376571E+04-0.645059E-01-0.134613E+00
3 0.000600 0.267632E+04 0.292358E+04 0.380334E+01 0.376991E+03-0.418600E+03-0.156334E+04 0.876911E+00 0.316676E+05
-0.316677E+04 0.316677E+05 0.284999E+05 0.376991E+03 0.106896E+01 0.223503E+04-0.402735E+03-0.183230E+04
-0.376573E+04-0.866473E-01-0.210212E+00

NOTE: The bracketed legends under the variable labels were not part of the output listing.
IX. The universal and time domain machine models - 41

They were added to clarify the interpretation of the output labeling.


42 - IX. The universal and time domain machine models

TABLE VIII: Listing of the Input File for the Simulation of a Synchronous Machine
Described in the U.M.-S.M. Type-59 Format.

STORE
BEGIN NEW DATA CASE
C THIS IS UM184.DAT WITH ADDITIONS FROM UM186.DAT
C TEST CASE FOR RUNNING SM TYPE-39 WITH THE UM CODE
C THE DATA CASE IS COPIED FROM BENCHMARK DC-26 WITH MODIFICATIONS ;
C * TRANSFORMER AND PI-SECTION REPLACED BY LINEAR BRANCHES;
C * MACHINE VOLTAGE INCREASED BY A FACTOR OF 500 AND ANGLE +60 DEGR;
C * INFINITE BUS VOLTAGE INCREASED BY A FACTOR OF 100;
C * TACS INTERFACING OF FIELD VARIABLES
POWER FREQUENCY, 50
.000200 .050 50. 50.
1 1 1 0 1 -1 1
C -------- REQUEST FOR CHANGE IN PRINTOUT INTERVAL
10 10 20 20 100 100
TACS HYBRID
11VTACS1 1.0 -1.0 1.0
33VTACS1
BLANK RECORD ENDING ALL TACS DATA
C TRANSMISSION LINES :
Al A2 .1 1
B1 B2 Al A2 1
Cl C2 Al A2 1
A2 A3 .0052 57.15
B2 B3 A2 A3
C2 C3 A2 A3
A2 31.416
B2 31.416
C2 31.416
A3 A4 43.34
B3 B4 A3 A4
C3 C4 A3 A4
BLANK RECORD ENDING BRANCH RECORDS
C NEXT RECORD HAS TOPEN = 80 MS MINUS EPSILN TO AVOID DELAYED OPENING
c (HALF A CYCLE!) FOR PRIME AND BURROUGHS! WSM. 27 FEB 1982.
A3 .0010 .0799
BLANK RECORD ENDING SWITCH RECORDS
14A4 1120.59 50. -20. -1.
14B4 1120.39 50. -140. -1.
14C4 1120.59 50. 100. -1.
UM WITH SM TYPE-59 DATA INPUT
19 UM
SMDATA
BLANK RECORD ENDING GENERAL UM SPEC
59A1 3693.05 50.0 +30.0
59B1
59C1
PARAMETER FITTING 1.0
1 1 2 150.1 13.3 600.0 600.0 720.0
0.0014 0.175 1.85 1.76 0.2575 1.76 0.18 0.18
5.74757 0.051142 0.382609 0.197985
C --------- MASS RECORD
1 1.0 50.0 1.0 BUSM1
C --------- OUTPUT REQUESTS
EXTEND 0 0 1 1 1 1 1 1
3
C --------- S.M. CLASS 6, TACS INTERFACE SPECIFICATIONS
71VTACS1
FINISH
IX. The universal and time domain machine models - 43

BLANK RECORD ENDING ALL UM DATA


BLANK RECORD ENDING SOURCE RECORDS
Al Bl Cl A2 B2 C2 A3 BUSM1
BLANK RECORD ENDING NODE VOLTAGE OUTPUT REQUEST
PRINTER PLOT
BLANK RECORD ENDING PLOT RECORDS.
BEGIN NEW DATA CASE
BLANK RECORD ENDING DATA CASES.

Note the following blank record which is required for termination of the General Specification
group.
The requirement for automatic initialization is not sufficient to trigger initialization. It does
cause the proper incorporation of the U.M. module in the normal, phasor-solution initialization
of the EMTP. In the example simulation, the initialization process is invoked by the entry of ‘-
1.0’ for TSTART (cols. 61-70) in the Type 14 source records defining the infinite bus.
The records in group D on the listing are S.M. Class 1 data (Sect. 1.62, p 34f). The data
defines the initial, steady-state, peak, terminal voltage (cols. 11-20), operating frequency (cols.
21-30), and phase angle. Blank entries on the second and third records indicate that a balanced,
three-phase set of voltages exists at the machine terminals. The amplitude and phase information
is used to establish the initial field voltage and the shaft torque during the automatic
initialization process.
The text record E contains the words ‘PARAMETER FITTING’, which indicate that
manufacturer’s data, rather than 0-d-q domain data describes the machine.
The data in group F of the listing is the S.M. Class 3 data (Sect. 1.62, p 34j1). The
information contained is:
1 from record 1,
- one mass on the rotor shaft (cols. 1-2);
- the rotor mass is mass number 1 (cols. 3-4);
- no exciter on the rotor shaft (blank in cols. 5-6);
- two-pole machine (cols. 7-10);
- machine rated at 150.0 mva (cols. 31-40);
- machine rated at 13.8 kv rms (cols. 41-50);
- no-load field current for rated voltage is 600 a (cols. 51-60); and no saturation is
used (the entry is positive).
2 manufacturer’s short-circuit data in records 2 and 3 (the blank record required for the
normal S.M. data when no saturation is specified is omitted for U.M. data output).
The data in group G of the listing is the S.M. Class 4 data (Sect. 1.62, p 34p). The
information contained for mass number 1 (see cols. 1-2) is:
- all of the external mechanical power is associated with the mass (1.0 in cols. 11-20);
- the moment of inertia is 50x106 pound-feet (cols. 21-30);
- the viscous damping coefficient is 1.0 (cols. 61-170);
- the mechanical node in the internally-generated mechanical network which couples
it to the electromagnetic torque in the machine is BUSM1 (cols. 71-76);
44 - IX. The universal and time domain machine models

Record group H on the listing specifies the parameters to be listed with the output. The
information contained is:
1 from record 1,
- EXTEND entered in columns 1-6 indicates that the output specifications are in the
extended format (required by the U.M. module);
- No output of Park-domain circuit parameters (0 in cols. 11-15);
- the flag for the field of cols. 16-20 of the S.M. output request is ignored, so it 1s left
blank;
- No output of Park-domain armature currents (0 in cols. 21-25);
- current in the field winding (IE1) will be output (1 in cols. 26-30);
- current in the direct-axis damper winding (IE2) will be output (1 in cols. 31-35);
- current in the quadrature-axis damper winding (IE3) will be output (1 in cols. 36-
40);
- current in the quadrature-axis, eddy-current coil (IE4) will be output (1 in cols. 41-
45);
- the field voltage cannot be requested as part of the U.M. module output (cols. 46-50
left blank);
- the electromagnetic torque developed in the machine will be output (1 in cols. 51-
55);
- there is no exciter on the rotor shaft, so no exciter torque output is requested (cols.
56-60 left blank);
- the armature currents (IPA, IPB, IPC) will be output (1 in cols. 61-65);
- since no saturation was specified in group F, no output of saturation data is requested
(cols. 66-70 left blank); neither will magnetizing currents nor rotor speed be listed.
2 the ‘3’ entered in column 1 of record 2 requests the output of the absolute speed of
mass 1 and the shaft torque between mass 1 and mass 2 (which does not exist).
The data in group I of the listing is the S.M. Class 6 data (Sect. 1.62, p 34v). The first
record has ‘71’ entered in the first two columns, which means that VTACS1 is the TACS
variable providing the field excitation. The second and third records indicate that electrical and
mechanical variables, respectively are to be passed to TACS; however, the variables: are not
coded onto the records, and these two requests are ineffective.
The text record ‘FINISH’ terminates the data string for the first (and only) U.M.-S.M.
machine.
The node-voltage request and other terminating commands at the end of the file play the
same role as described above for standard; data input.
Table IX, p 51, gives the beginning of the modified output listing for the example problem.
Output of the voltages to ground at nodes Al, Bl, Cl, A2, B2, C2, and BUSM1 were requested at
the end of the input data file. Output of the currents in phases A, B and C at the machine
terminals was specified by a ‘1’ entered in column 80 of the respective, current-sensor-branch
records. Output of the armature coil currents of the machine was requested by a ‘1’ entered in
column 65 of the first output-request record. Output of electromagnetic torque (TQGEN), rotor
speed (OMEGM) and the other variables shown on the output listing were requested by setting
the respective flags to ‘1’ as described above.
IX. The universal and time domain machine models - 45

Cage Rotor Induction Machine


The system used for the simulation of a three-phase, induction machine is shown in figure
9.9, p 52. The listing of the input file is given in Table X, p 53. The example consists of a three-
phase, squirrel-cage induction motor whose load torque undergoes a step change. The machine
is connected to an infinite bus through a short transmission line modeled with lumped
parameters. The source of torque (a current source), the lumped shaft masses (a capacitor), and
viscous damping are included in the mechanical network. Note that the common prefix ‘BUS’
used for node names in the listing has been dropped in figure 9.9. The infinite bus is established
by a balanced set of EMTP Type 14 (sinusoidal) voltage sources.
The components of the data file related directly to the simulation of the synchronous
machine are indicated by the circled letters on the listing.
The branches of the electrical network representing the mechanical system (mechanical
network) are specified in the same manner as for the other electrical subnetworks and along with
them (group B).
The equivalent torque source (group C) is specified to be a current source by the entry of ‘-
1’ in columns 9 and 10. The frequency of the sources is set to 0.00001 Hz; so, over the interval
of 0.8 seconds covered by the simulation, its amplitude is essentially constant; and the
mechanical torque (node MS) is effectively constant.

C A2 TR AS2
A I +
Mechanical A
GN
Network r
E D
MS
M m
U a B2 TR
A BS2
C +
T T C t
o T u
I H
M1 MG r r
O I
q N e C2 TR CS2
u N +
E RC RC RC
D1 e
D2
MGR

Fig. 9.9. System diagram for example simulation of a squirrel-cage


induction machine with a variable applied torque, a single
mass on the shaft, and mechanical loss which varies as the
square of the speed. The network elements are defined as
follows:
Dl, D2 resistor equivalents of the viscous load;
Ml capacitive equivalent of the mass on the rotor shaft;
RC large resistors which provide the connectivity required by the
EMTP;
T resistor used for torque sensing;
TR terminal-current sensing resistors.
TABLE IX: Beginning of the Output Listing for the Simulation of a Synchronous
Machine with the Data in the U.M.-S.M. Type-59 Format.

COLUMN HEADINGS FOR THE 29 EMTP OUTPUT VARIABLES FOLLOW. THESE ARE ORDERED ACCORDING TO THE FIVE
POSSIBLE EMTP OUTPUT-VARIABLE CLASSES, AS FOLLOWS ....
FIRST 4 OUTPUT VARIABLES ARE ELECTRIC-NETWORK NODE VOLTAGES (WITH RESPECT TO LOCAL GROUND)|
COLUMN HEADINGS FOR THE 29 EMTP OUTPUT VARIABLES FOLLOWS. THESE ARE ORDERED ACCORDING TO THE FIVE
POSSIBLE EMTP OUTPUT-VARIABLE CLASSES, AS FOLLOWS ....
FIRST 8 OUTPUT VARIABLES ARE ELECTRIC-NETWORK NODE VOLTAGES (WITH RESPECT TO LOCAL GROUND)|
NEXT 1 OUTPUT VARIABLES ARE BRANCH VOLTAGES (VOLTAGE OF UPPER NODE MINUS VOLTAGE OF LOWER NODE)|
NEXT 3 OUTPUT VARIABLES ARE BRANCH CURRENTS (FLOWING FROM THE UPPER EMTP NODE TO THE LOWER)|
NEXT 1 OUTPUT VARIABLES PERTAIN TO DYNAMIC SYNCHRONOUS MACHINES, WITH NAMES GENERATED INTERNALLY|
NEXT 1 OUTPUT VARIABLES BELONG TO 'TACS' (NOTE INTERNALLY-ADDED UPPER NAME OF PAIR).
FINAL 8 OUTPUT VARIABLES BELONG TO UNIVERSAL MACHINES (UM), WITH NAMES GENERATED INTERNALLY|
BRANCH POWER CONSUMPTION (POWER FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH VOLTAGE FOR THIS GROUPING|
BRANCH ENERGY CONSUMPTION (ENERGY FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH CURRENT FOR THIS GROUPING.
STEP TIME A1 B1 C1 A2 B2 C2 A3 BUSM1
(Mass 1 Speed.
Node-Voltage Req.)
BUSM1 Al B1 C1 TACS UM-1 UM-1 UM-I
TERRA A2 B2 C2 VTACS1 TQGEN IPA IPB
46 - IX. The universal and time domain machine models

(Mass 1 Speed. (Field (Electro-


Output Request) Voltage) magnetic
Torque)
UM-1 UM-1 UM-1 UM-l UM-1
IPC IE1 IE2 IE3 IE4
(Field
Current)
0 0.000000 0.493206E+04 0.126154E-02-0.493206E+04 0.492521E+04 0.477640E+01-0.492999E+04 0.402300E+04 0.314159E+03
0.314159E+03 0.684382E+02-0.477514E+02-0.206868E+02 0.100000E+01 0.139939E+04 0.684432E+02-0.477514E+02
-0.206918E+02 0.309304E+03 0.000000E+00 0.000000E+00 0.000000E+00
1 0.000200 0.474341E+04 0.357789E+03-0.510120E+04 0.473648E+04 0.362231E+83-0.509872E+04 0.408206E+04 0.314159E+03
0.314159E+03 0.692838E+02-0.444269E+02-0.248570E+02 0.100000E+01 0.139921E+04 0.692839E+02-0.444269E+02
-0.248570E+02 0.309204E+03 0.100167E+00 0.000000E+00 0.755842E-03
2 0.000400 0.453613E+04 0.713988E+03-0.525012E+04 0.452914E+04 0.718080E+03-0.524722E+04 0.412501E+04 0.314159E+03
0.314159E+03 0.698564E+02-0.409277E+02-0.289287E+02 0.100000E+01 0.139918E+04 0.698569E+02-0.409277E+02
-0.289288E+02 0.309003E+03 0.300070E+00 0.000000E+00 0.876436E-03
3-0.000600-0.431096E+04 0.106734E+04—0.537830E+04 0.430394E+04 0.107107E+04-0.537502E+04 0.415168E+04 0.314159E+03
0.314159E+03 0.701529E+02-0.372661E+02-0.328869E+02 0.100000E+01 0.139915E+04 0.701530E+02-0.372661E+02
-0.328869E+02 0.308804E+03 0.498950E+00 0.000000E+00 0.984334E-03
4 0.000800 0.406875E+04 0.141652E+04-0.548528E+04 0.406174E+04 0.141987E+04-0.548160E+04 0.416197E+04 0.314159E+03
0.314159E+03 0.701731E+02-0.334583E+02-0.367148E+02 0.100000E+01 0.139911E+04 0.701731E+02-0.334582E+02
-0.367149E+02 0.308605E+03 0.697003E+00 0.000000E+00 0.111153E-02

TABLE X: Listing of the Input File for the Simulation of a Squirrel-Cage Induction Machine.
N0TE: The bracketed legends under the variable labels were not part of the output listing.
They were added to clarify the interpretation of the output labeling.
IX. The universal and time domain machine models - 47

BEGIN NEW DATA CASE


C UM TYPE-3 : 3-PHASE POWER SIDE, D- AND Q- SQUIRREL CAGE ROTOR.
C RATING : 2.541 MVA, 4.2 KV, 4 POLE ( 83.67 % EFFICIENCY AT
C 0.846 PF AND 14.0E+3 NM. ; KIPP TORQUE = 79.157E+3 NM., SLP=24.3%)
c ABSOLUTE U.M. DIMENSIONS, 20, 2, 30, 60
C TIME SET
0.0005 0.8
1 1 0 0 1 -1 0 1
C -------- REQUEST FOR CHANGE IN PRINTOUT INTERVAL
10 190 200 1 210 790 1000 200
C -------- TRANSMISSION LINE LOSSES
BUSA2 BUSAS2 5.0E-3 1
BUSB2 BUSBS2BUSA2 BUSAS2
BUSC2 BUSCS2BUSA2 BUSAS2
C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
BUSAS2 1.0E+6
BUSBS2 BUSAS2
BUSCS2 BUSAS2
C --------- MECHANICAL NETWORK COMPONENTS
BUSMG BUSMGR 16.5 1
BUSMGR BUSMG BUSMGR
BUSMG 6.0E+4 1
C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
BUSMS BUSMG 1.0E-6 1
BLANK RECORD ENDING BRANCHES
BLANK RECORD ENDING SWITCHES
C --------- SOURCES FOR INFINITE BUS
14BUSAS2 180.0 60.1 0.0 -1.1
14BUSBS2 180.0 60.l -120.0 -1.0
14BUSCS2 180.0 60.1 +120.0 -1.0
C --------- MECHANICAL LOAD TORQUE (ACTUAL VALUE SET BY SS INITIALIZATION):
14BUSMS -1 0.000001 0.00001 -1.0
C STEP DOWN IN LOAD TORQUE AFTER 0.1 SECONDS:
14BUSMS -1 +100.0 0.00001 0.1
C --------- UM DATA
19 UM
1
BLANK RECORD ENDING GENERAL U.M. SPECIFICATION
C --------- UM MACHINE-TABLE
C --------- UM TYPE 3 (INDUCTION MACH) DATA
3 1 1111BUSMG 2 0.1885
0.02338
0.02338
C STEADY-STATE INITIALIZATION REQUEST AT 8 % SLIP :
8.0 BUSMS
C --------- UM COIL-TABLE
C THE POWER (ARMATURE/STATOR) COILS :
0.063 0.0001911 BUSA2 1
C REMARK: IF NO ZERO CURRENT OF THE POWER COILS IS DESIRED, THEN SIMPLY
LEAVE
C THE RESISTANCE AS WELL AS THE INDUCTANCE IN THE CARD ABOVE BLANK.
0.063 0.0003925 BUSB2 1
0.063 0.0003925 BUSC2 1
C THE EXCITATION (ROTOR) COILS :
0.110 0.0012 1
0.110 0.0012 1
BLANK RECORD ENDING ALL UM DATA
BLANK RECORD ENDING ALL SOURCES
C ---------- REQUEST FOR OUTPUT OF NODE VOLTAGES
48 - IX. The universal and time domain machine models

BUSAS2BUSA2 BUSMG
BLANK RECORD ENDING NODE VOLTAGE OUTPUT SPECIFICATION
PRINTER PLOT
BLANK RECORD ENDING PLOT RECORDS
BEGIN NEW DATA CASE
BLANK DATA CASE

Machines modeled in the U.M. algorithm are defined to be sources of EMTP Type 19. The
text string ‘UM’ in the record containing ‘19’ in columns 1 and 2 (see group D on the listing) is
not read during data input. The string serves to aid in reading the list. The information contained
in the second record of the General Specifications (group D) is as follows:
- a blank appears in column 1, indicating that all variables and parameters are to be
taken to be in SI (physical) units;
- a ‘1’ appears in column 2, specifying that automatic initialization is to be carried out.
- a blank appears in column 15, indicating that compensation, rather than prediction, is
to be used in interfacing the UM module to the 3-phase network.
Note the blank record which is required for termination of the General Specification group.
The non-zero entry in column 2 of the second record does not trigger initialization. It does
cause the proper incorporation of the U.M. module in the normal, phasor-solution initialization
of the EMTP. In the example simulation, the initialization process is invoked by the entry of ‘-
1.0’ for TSTART (cols. 61-70) in the Type 14 source records.
The data in the machine table (group E on the listing) conveys the following information:
3 From record 1,
- rgence margin for rotor speed = 0.1885 (cols. 52-65);
- work with U.M. Type 3 (3 in cols. 1-2);
- one d-axis field coil (1 in cols. 3-4);
- one q-axis field coil (1 in cols. 5-6);
- output the electromechanical torque, TQGEN (1 in col. 7);
- output the absolute rotor speed, OMEGM (1 in col. 8);
- output the angle of the rotor relative to the stator, THETAM (1 in col. 9);
- use the node ‘BUSMG’ as the connection point of electromagnetic torque to the
mechanical network (BUSMG in cols. 10-14);
- four-pole machine (2 pole-pair; 2 in cols. 22-23);
- convedefault system frequency used (cols. 66-79 blank).
NOTE: Since a mechanical network was specified, cols. 16-21 and cols. 24-51 were left
blank.
2 From record 2,
- initial condition on the mechanical speed is not used (blank in cols. 1-14);
- unsaturated d-axis inductance = 0.02358 hy (cols. 15-28);
- no d-axis saturation (blank in col. 29).
3 From record 3,
IX. The universal and time domain machine models - 49

- initial condition on the torque angle is not used (blank in cols. 1-14);
- unsaturated q-axis inductance = 0.02358 hy (cols. 15-28);
- no q-axis saturation (blank in col. 29).
4 From record 4,
- the initial slip is 8 percent (cols 1-14);
- an induction machine is simulated; columns 15-34 are left blank;
- the type-14 source to be adjusted to meet the initial condition on the electromagnetic
torque is connected at node BUSMS (cols. 35-40) in the mechanical network.
The coil-table records (group F on the listing) contain the following information:
1 From record 1,
- armature phase A of the U.M. model is connected between network node BUSA2
(cols. 29-34) and ground (blank in cols. 35-40);
NOTES: a) Positive sequence in the U.M. module is always A-B-C; regardless of the
sequence of the external network connected at the coil terminals.
b) Current into the external network at BUSA2 is taken as the positive
reference.
- the zero-component calculations will be carried out using the resistance and
inductance values given in columns 1-14 and 15-28, respectively (see the note after
record 1).
2 From record 2,
- armature phase B of the U.M. model is connected between network node BUSB2
(cols. 29-34) and ground (blank in cols. 35-40);
- direct-axis, armature-coil resistance is 0.063 ohms (cols. 1-14);
- direct-axis, armature-coil leakage inductance is 0.0003825 hy (see cols. 15-28).
3 From record 3,
- armature phase C of the U.M. model is connected between network node BUSC2
(cols. 29-34) and ground (blank in cols. 35-40);
- quadrature-axis, armature-coil resistance and leakage reactance are equal to the
respective direct-axis values;
4 From record 4,
- direct-axis, field-coil resistance is 0.110 ohms (cols. 1-14);
- direct-axis, field-coil leakage inductance is 0.0012 hy (cols. 15-28).
- the direct-axis field coil is short-circuited to ground (blanks in both cols. 29-34 and
35-40);
5 From record 5,
- the quadrature-axis, field-coil resistance and, leakage reactance are equal to the
respective direct-axis values;
- the quadrature-axis field coil is short-circuited to ground (blanks in both cols. 29-34
and 35-40);
50 - IX. The universal and time domain machine models

Since one direct-axis field coil and one quadrature-axis field coil were specified in record
1 of the Machine-Table Group (group E on the listing), no more data is required for the first
machine. The blink record following the coil-table records terminates the input for machines
modeled through the U.M. algorithm.
The only records left in the listing are those specifying node voltages to be output, plot
controls and data-case termination. These are in the standard EMTP format.
Table XI, p 57, gives the beginning of the modified output listing for the example problem.
Output of the voltages to ground at nodes BUSAS2, BUSA2 and BUSMG were requested at the
end of the input data file. Output of the current in phase A of the pseudo-transmission line was
specified by ‘1’ entered in column 80 of the phase-A-branch record. Output of the coil currents
at the terminals of the machine was requested by a ‘1’ entered in column 47 of each coil-record.
Output of electromagnetic torque (TQGEN), rotor speed (OMEGM) and the torque angle
(THETAM) were requested by setting the respective flags to ‘1’ in record 1 of the Machine
Table Group (group E).

Doubly-Fed Induction Machine


The system used for the simulation of a three-phase, doubly-fed induction machine is
shown in figure 9.10. The listing of the input file is given in Table XII. The example consists of
a three-phase, wound-rotor induction motor whose rotor coils are excited by a balanced, three-
phase set of voltage sources and whose load torque undergoes a step change. The machine is
connected to an infinite bus through a short transmission line modeled with lumped parameters.
The source of torque (a current source), the lumped shaft masses (a capacitor), and viscous
damping are included in the mechanical network. Note that the common prefix ‘BUS’ used for
node names in the listing has been dropped in figure 9.10.
The components of the data file related directly to the simulation of the doubly-fed machine
are indicated by the circled letters on the listing.
The infinite bus is established by a balanced set of EMTP Type 14 (sinusoidal) voltage
sources. The sources connected to the rotor circuit (group D) are also EMTP Type 14 voltage
sources.
The branches of the electrical network representing the mechanical system (mechanical
network) are specified in the same manner as for the other electrical subnetworks and along with
them (group C).
The equivalent torque source (group E) is specified to be a current source by the entry of ‘-
1’ in columns 9 and 10. The frequency of the sources is set to 0.00001 hz so, over the interval of
0.9 seconds covered by the simulation, its amplitude is essentially constant. The mechanical
torque (node MS) is effectively constant; except for the step change at 0.02 seconds.
Machines modeled in the U.M. algorithm are defined to be sources of EMTP Type 19. The text
string ‘UM’ in the record containing ’19; in columns 1 and 2 (see group F on the listing) is not
read during data input. The string serves to aid in reading the list. The information contained in
the second record of the General Specifications (group F) is as follows:
TABLE XI: Beginning of the Output Listing for the Simulation of a Squirrel-Cage
Induction Machine.

COLUMN HEADINGS FOR THE 23 EMTP OUTPUT VARIABLES FOLLOW. THESE ARE ORDERED ACCORDING TO THE FIVE
POSSIBLE EMTP OUTPUT-VARIABLE CLASSES, AS- FOLLOWS ....
FIRST 3 OUTPUT VARIABLES ARE ELECTRIC-NETWORK NODE VOLTAGES (WITH RESPECT TO LOCAL GROUND)|
NEXT 0 OUTPUT VARIABLES ARE BRANCH VOLTAGES (VOLTAGE OF UPPER NODE MINUS VOLTAGE OF LOWER NODE)|
NEXT 4 OUTPUT VARIABLES ARE BRANCH CURRENTS (FLOWING FROM THE UPPER EMTP NODE TO THE LOWER)|
NEXT 0 OUTPUT VARIABLES PERTAIN TO DYNAMIC SYNCHRONOUS MACHINES, WITH NAMES GENERATED INTERNALLY|
NEXT 0 OUTPUT VARIABLES BELONG TO 'TACS' (NOTE INTERNALLY-ADDED UPPER NAME OF PAIR).
FINAL 8 OUTPUT VARIABLES BELONG TO UNIVERSAL MACHINES (UM), WITH NAMES GENERATED INTERNALLY|
BRANCH POWER CONSUMPTION (POWER FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH VOLTAGE FOR THIS GROUPING|
BRANCH ENERGY CONSUMPTION (ENERGY FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH CURRENT FOR THIS GROUPING.

STEP TIME BUSAS2 BUSA2 BUSMG BUSA2 BUSMG BUSMG BUSMS UM-1
(Mass BUSAS2 BUSMGR TERRA BUSMG TQGEN
Speed) (Damping (Accelerating (Source (Electromagnetic
Torque) Torque at M) Torque) Torque)
UM-1 UM-1 UM-1 UM-1 UM-1 UM-1 UM-1
OMEGM THETAM IPA IPB IPC IE1 IE2
(Rotor (Relative
Speed) Rotor Angle)
0 0.000000 0.180000E+03 0.179481E+03 0.173416E+03-0.103866E+03 0.525503E+01 0.000000E+00-0.135659E+03-0.140914E+03
0.173416E+03 0.785398E+00-0.103866E+03 0.104913E+03-0.104672E+01 0.523433E+02-0.128754E+03
1 0.000500 0.176812E+03 0.176244E+03 0.173416E+03-0.113482E+03 0.525503E+01-0.576792E-02-0.135659E+03-0.140909E+03
0.173416E+03 0.872106E+00-0.113482E+03 0.919398E+02 0.215418E+02 0.504133E+02-0.129516E+03
2 0.001000 0.167360E+03 0.166764E+03 0.173416E+03-0.119082E+03 0.525502E+01-0.119130E-01-0.135659E+03-0.140903E+03
0.173416E+03 0.958814E+00-0.119082E+03 0.757137E+02 0.433681E+02 0.484683E+02-0.130250E+03
3 0.001500 0.131979E+03 0.151377E+03 0.173416E+03-0.120464E+03 0.525502E+01-0.228129E-01-0.135659E+03-0.140892E+03
0.173416E+03 0.104552E+01-0.120464E+03 0.568056E+02 0.636587E+02 0.465075E+02-0.130951E+03

NOTE: The bracketed leqends under the variable labels were not part of the output listing.
They were added to clarify the interpretation of the output labeling.
IX. The universal and time domain machine models - 51
52 - IX. The universal and time domain machine models

Note the blank record which is required for termination of the General Specification group.
- a blank appears in column 1, indicating that all variables and parameters are to be
taken to be in SI (physical) units;
- a ‘1’ Appears in column 2, specifying that automatic initialization is to be carried
out.
- a ‘1’ is entered in column 15, indicating that prediction, rather than compensation, is
to be used in interfacing the UM module to the three-phase network.

AS1 RM A1 D A2 XL AS2
+ O I +
A
U N r
R B D M m
B1 o L U B2
BS1 RM A a XL BS2
+ t E C +
C t
o T H u
r F I I r
E O e
CS1 RM C1
D N
N C2 XL CS2
+ E +
RC RC RC
Torque

MS TS MG VL MGR

M VL

Mechanical
Network

Fig. 9.10. System diagram for example simulation of a doubly-fed, induction machine
with one rotor mass and one applied torque at the shaft. The network elements
are defined below.

Ml capacitive equivalent of the mass on the rotor shaft;


RC large resistors which provide the connectivity required by the EMTP;
RM small, current-sensing resistors;
TS small, torque-sensing resistor;
VL resistors forming a viscous-friction load on the mechanical system;
XL R-L elements used as approximations to a transmission line;

The non-zero entry in column 2 of the second record does not trigger initialization. It does
cause the proper incorporation of the U.M. module in the normal, phasor-solution initialization
of the EMTP. In the example simulation, the initialization process is invoked by the entry of ‘-
1.0’ for TSTART (cols. 61-70) in the Type 14 source records.
IX. The universal and time domain machine models - 53

TABLE XII: Listing of the Input File for the Simulation of a Doubly-Fed Induction
Machine.

BEGIN NEW DATA CASE


C COMBINATION OF CASES UM4086.DAT AND 4091.DAT
C DOUBLY FED MACHINE WITH EXTERNAL ROTOR VOLTAGE SOURCE
C AUTOMATIC SS FOR UM TYPE 4 ( 3-PHASE IND. MACH.)
C POWER COILS NON-COMPENSATED (PREDICTION USED).
C STEP ON INPUT TORQUE AT 0.02 SECONDS
C RATING : 720 KVA, 4.2 KV, 4 POLE (85.67 % EFFICIENCY AT
C 0.846 PF AND 14.0E+3 NM. ; KIPP TORQUE = 45.09E+2 NM, SLIP=2.5%)
ABSOLUTE U.M. DIMENSIONS, 20, 2, 5O, 60
C TIME SET
0.0002 0.9
1 2 1 0 1 -1 0 1
C -------- REQUEST FOR CHANGE IN PRINTOUT INTERVAL
10 90 100 1 110 390 500 300 5000 2500
C --------- ROTOR EXTERNAL RESISTANCES
BUSA1 BUSAS1 l.E-05
BUSB1 BUSBS1BUSA1 BUSAS1
BUSC1 BUSCS1BUSA1 BUSAS1
C -------- TRANSMISSION LINES
BUSA2 BUSAS2 1.0E—4 10.0
BUSB2 BUSBS2BUSA2 BUSAS2
BUSC2 BUSCS2BUSA2 BUSAS2
C --------- CONNECTIVITY OF EMTP FOR ELECTRIC NETWORK
BUSAS2 1.0+6
BUSBS2 BUSAS2
BUSCS2 BUSAS2
C --------- MECHANICAL NETWORK COMPONENTS
BUSMG BUSMGR .4548
BUSMGR BUSMG BUSMGR
BUSMG 9.8E+7
C -------- FOR MEASUREMENT OF ELECTROMECHANICAL TORQUE
BUSMS BUSMG 1.0-6
BLANK RECORD ENDING BRANCHES
BLANK RECORD ENDING SWITCHES
C --------- SOURCES FOR INFINITE BUS
14BUSAS2 3000.0 60.0 0.0 -1.0
14BUSBS2 3000.0 60.0 -120.0 -1.0
14BUSCS2 3000.0 60.0 +120.1 -1.0
C --------- 3-PHASE SOURCES AT ROTOR SIDE (ACTUAL FREQ SET BY SS):
14BUSAS1 308.600 1.2 +30.0 -1.0
14BUSBS1 308.6 1.2 -90.0 -1.0
14BUSCS1 308.6 1.2 +150.0 -1.0
C --------- MECHANICAL INPUT TORQUE (ACTUAL VALUE SET BY SS):
14BUSMS -1 0.000001 0.00001 -1.0
C -------- STEP ON INPUT TORQUE AT T = 0.02
14BUSMS -1 3900.0 0.00001 +0.02
C --------- UM TYPE 4 (IND. MACH) DATA
19 UM
1 1
BLANK RECORD ENDING CLASS 1 UM DATA
C UM-1 MACH TABLE
4 111BUSMG 2 0.0188
0.02358
0.02358
2.0 BUSMS
C UM-l COIL TABLE
54 - IX. The universal and time domain machine models

C --------- STATOR COILS


BUSA2 1
0.412 0.0012 BUSB2 1
0.412 0.0012 BUSC2 1
C --------- ROTOR COILS
0.110 0.0012 BUSB1 1
0.110 0.0012 BUSC1 1
BUSA1 1
BLANK RECORD ENDING ALL UM DATA
BLANK RECORD ENDING ALL SOURCES
C ---------- REQUEST FOR OUTPUT OF NODE VOLTAGES
BUSAS2BUSA2 BUSA1 BUSMG
BLANK RECORD ENDING NODE VOLTAGE OUTPUT SPECIFICATION
PRINTER PLOT
BLANK RECORD ENDING PLOT RECORDS
BEGIN NEW DATA CASE BLANK DATA CASE

The data in the machine table (group G on the listing) conveys the following information:
1 From record 1,
- work with U.M. Type 4 (4 in cols. 1-2);
- only one set of three-phase coils is allowed for the field of the Type 4 machine;
consequently, columns 3-4 and 5-6 are left blank;
- output the electromechanical torque (1 in col. 7);
- output the absolute rotor speed (1 in col.8);
- output the rotor angle relative to the stator (1 in col. 9);
- use the node ‘BUSMG’ as the connection point of electromagnetic torque to the
mechanical network (BUSMG in cols. 10-14);
- four-pole machine (2 pole-pair; 2 in cols. 22-23);
- convergence margin for rotor speed = 0.188 (co1s. 52-65);
- default system frequency used (cols. 66-79 blank).
NOTE: Since a mechanical network was specified, cols. 16-21 and cols. 24-51 were
left blank.
2 From record 2,
- initial condition on the mechanical speed is not used (blank in cols. 1-14);
- unsaturated d-axis inductance = 0.02358 hy (cols. 15-28);
- no d-axis saturation (blank in col. 29).
3 From record 3,
- torque angle initial condition is not used (blank in cols. 1-14);
- unsaturated q-axis inductance = 0.02358 hy {cols. 15-28);
- no q-axis saturation (blank in col. 29).
4 From record 4,
- the initial slip is 2 percent (cols 1-14);
- an induction machine is simulated; columns 15-34 are left blank;
IX. The universal and time domain machine models - 55

- the type-14 source to be adjusted to meet the initial condition on the electromagnetic
torque is connected at node BUSMS (cols. 35-40) in the mechanical network.
The coil-table records (group H on the listing) contain the following information:
1 From record 1,
- armature phase A of the U.M. model is connected between network node BUSA2
(cols. 29-34) and ground (blank in cols. 35-40);
NOTES: a) Positive sequence in the U.M. module is always A-B-C; regardless of the
sequence of the external network connected at the coil terminals.
b) Current into the external network at BUSA2 is taken as the positive
reference.
- the zero-component calculations are bypassed (blanks are entered for the zero-
component resistance and leakage inductance in cols. 1-28;
2 From record 2,
- armature phase B of the U.M. model is connected between network node BUSB2
(cols. 29-34) and ground (blank in cols. 35-40);
- direct-axis, armature-coil resistance is 0.412 ohms (cols. 1-14);
- direct-axis, armature-coil leakage inductance is 0.0012 hy (cols. 15-28).
3 From record 3,
- armature phase C of the U.M. model is connected between network node BUSC2
(cols. 29-34) and ground (blank in cols. 35-40);
- quadrature-axis, armature-coil resistance and leakage reactance are equal to the
respective direct-axis values;
4 From record 4,
- rotor (field) phase B of the U.M. model is connected between network node BUSB1
(cols. 29-34) and ground (blank in cols. 35-40);
NOTES: a) Phase B and excitation d-axis parameters are associated with excitation
record 1; phase C and excitation q-axis parameters are associated with
excitation record 2; and phase A and the excitation zero-component are
associated with excitation record 3.
b) Current into the external network at BUSA1 is taken as the positive
reference.
- direct-axis, field-coil resistance is 0.110 ohms (cols. 1-14);
- direct-axis, field-coil leakage inductance is 0.0012 hy (cols. 15-28).
5 From record 5,
- armature phase C of the U.M. model is connected between network node BUSC1
(cols. 29-34) and ground (blank in cols. 35-40);
- quadrature-axis, field-coil resistance and leakage reactance are equal to the
respective direct-axis values;
6 From record 6,
56 - IX. The universal and time domain machine models

- armature phase A of the U.M. model is connected between network node BUSAl
(cols. 29-34) and ground (blank in cols. 35-40);
- the zero-component calculations are bypassed (blanks are entered for the
zero-component resistance and leakage inductance in cols. 1-28).
Since the machine is Type 4, no more data is required for the first ma-chine. The blank
record following the coil-table records terminates the input for machines modeled through the
U.M. algorithm.
The only records left in the listing are those specifying node voltages to be output, plot
controls and data-case termination. These are in the standard EMTP format.
Table XIII, p 62, gives the beginning of the modified output listing for the example
problem. Output of the voltages to ground at nodes BUSAS2, BUSA2, BUSA1 and BUSMG
were requested at the end of the input data file. Output of the currents in phases A, B and C of
the pseudo-transmission line were specified by a ‘1’ entered in column 80 of the respective
branch records. Output of the coil currents at the terminals of the machine was requested by a
‘1’ entered in column 47 of each coil-record. Output of the currents in the sources driving the
rotor-circuit was requested by a ‘1’ entered in column 80 of the branch records defining the
sensing resistors.
Output of electromagnetic torque (TQGEN), rotor speed (OMEGM) and the relative angle
between the rotor and the stator (THETAM) were requested by setting the respective flags to ‘1’
in record 1 of the Machine Table Group (group G).
TABLE XIII: Beginning of the Output Listing for the Simulation of Double-Fed
Induction Machine
COLUMN HEADINGS FOR THE 29 EMTP OUTPUT VARIABLES FOLLOW. THESE ARE ORDERED ACCORDING TO THE FIVE
POSSIBLE EMTP OUTPUT-VARIABLE CLASSES, AS F0LL0WS ....
FIRST 4 OUTPUT VARIABLES ARE ELECTRIC-NETWORK NODE VOLTAGES (WITH RESPECT TO LOCAL GROUND)|
NEXT 0 OUTPUT VARIABLES ARE BRANCH VOLTAGES (VOLTAGE OF UPPER NODE MINUS VOLTAGE OF LOWER NODE)|
NEXT 7 OUTPUT VARIABLES ARE BRANCH CURRENTS (FLOWING FROM THE UPPER EMTP NODE TO THE LOWER]|
NEXT 0 OUTPUT VARIABLES PERTAIN TO DYNAMIC SYNCHRONOUS MACHINES, WITH NAMES GENERATED INTERNALLY|
NEXT 0 OUTPUT VARIABLES BELONG TO 'TACS' (NOTE INTERNALLY-ADDED UPPER NAME OF PAIR).
FINAL 9 OUTPUT VARIABLES BELONG TO UNIVERSAL MACHINES (UM), WITH NAMES GENERATED INTERNALLY|
BRANCH POWER CONSUMPTION (POWER FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH VOLTAGE FOR THIS GROUPING|
BRANCH ENERGY CONSUMPTION (ENERGY FLOW, IF A SWITCH) IS TREATED LIKE A BRANCH CURRENT FOR THIS GROUPING.

STEP TIME BUSAS2 BUSA2 BUSA1 BUSMG BUSA1 BUSA2 BUSB2 BUSC2
(Mass BUSAS1 BUSAS2 BUSBS2 BUSCS2
Speed)

BUSMG BUSMG BUSMS UM-1 UM-1 UM-1 UM-1 UM-1


BUSMGR TERRA BUSMG TQGEN OMEGM THETAM IPA IPB
(Damping (Accelerating (Source (Electromagnetic (Rotor (Relative
Torque) Terque at M) Torque) Torque) Speed) Rotor Angle)

UM-1 UM-1 UM-1 UM-1


IPC IE1 IE2 IE3
0 0.000000 0.300000E+04 0.776563E+04 0.267233E+03 0.184726E+03-0.219501E+04-0.151688E+03-0.101892E+04 0.11706lE+04
0.203084E+03 0.000000E+00 0.189777E+04 0.169468E+04 0.184726E+03 0.785398E+00-0.151688E+03-0.101892E+04
0.117061E+04 0.134202E+04 0.852990E+03-0.219501E+04
1 0.000200 0.299148E+04 0.778667E+04 0.267001E+03 0.184720E+03-0.219542E+04-0.560794E+02-0.107351E+04 0.112959E+04
0.203084E+03 0.321123E+01 0.189777E+04 0.169147E+04 0.184726E+03 0.822343E+00 0.560794E+02-0.107351E+04
0.112959E+04 0.133939E+04 0.856028E+03-0.219542E+04
2 0.000400 0.296596E+04 0.776369E+04 0.266767E+03 0.184720E+03-0.219583E+04 0.398499E+02 0.112200E+04 0.108215E+04
0.203084E+03 0.622378E+01 0.189777E+04 0.168846E+04 0.184726E+03 0.859288E+00 0.398499E+02 0.112200E+04
0.108215E+04 0.133676E+04 0.859066E+03-0.219583E+04
3 0.000600 0.292358E+04 0.769636E+04 0.266533E+03 0.184726E+03-0.219623E+04 0.135555E+03-0.116412E+04 0.102856E+04
0.203085E+03-0.902402E+01 0.189777E+04 0.168566E+04 0.184726E+03 0.896234E+00 0.135555E+03-0.116412E+04
0.102856E+04 0.133413E+04 0.862103E+03-0.219623E+04
4 0.000800 0.286459E+04 0.758330E+04 0.266298E+03 0.184726E+03-0.219663E+04 0.230489E+03-0.119962E+04 0.969132E+03
0.203085E+03 0.117684E+02 0.189777E+04 0.168292E+04 0.184726E+03 0.933179E+00 0.230489E+03-0.119962E+04
0.969132E+03 0.133149E+04 0.865138E+03-0.219663E+04
3 0.001000 0.278933E+04 0.743114E+04 0.266062E+03 0.184726E+03 0.219701E+04 0.324114E+03-0.122831E+04 0.904199E+03
0.203085E+03 0.144340E+02 0.189777E+04 0.168025E+04 0.184726E+03 0.956484E+00 0.324114E+03-0.122831E+04
0.904199E+03 0.132884E+04 0.868171E+03-0.219701E+04

NOTE: The bracketed legends under The variable labels were not part of the output listing.
IX. The universal and time domain machine models - 57

They were added to clarify the interpretation of the output labeling.


58 - IX. The universal and time domain machine models

Appendix B
IM 56 - Theoretical Background
Type-56 Phase-Domain Induction Machine Mode

Cao Xinglin (retired from TEPCO Systems Corp.),


Atsushi Kurita (Tokyo Electric Power Co.)

This documentation describes the Type-56 Induction Machine (IM) model which has been
installed in ATP, recently. It is written as the three-phase single squirrel cage rotor type. The
other types of IM, multiple mass shaft system and unbalanced initial power flow will be
considered in future.

Basic Equations

Electrical System
The electrical system of the squirrel cage rotor IM has three stator windings and three rotor
windings. The basic equations are shown in Eqs. (9.1) and (9.2).

[ν (t )] = [R][i(t )] − d [λ (t )] (9.1)
dt
[λ (t )] = [L(t )][i(t )] (9.2)
Where,
[v(t )] = [vsa (t )vsb (t )vsc (t )vra (t )vrb (t )vrc (t )]T (9.3)
[i(t )] = [isa (t )isb (t )isc (t )ira (t )irb (t )irc (t )]T
⎡ Rs ⎤
⎢ Rs ⎥
⎢ ⎥
⎢ Rs ⎥
[R] = ⎢ ⎥ (9.4)
⎢ Rr ⎥
⎢ Rr ⎥
⎢ ⎥
⎣⎢ Rr ⎦⎥
⎡ Lls + M s − 0. 5 M s − 0.5M s M s cos θ M s cos(θ + 120 0 ) M s cos(θ − 120 0 ) ⎤
⎢ ⎥
⎢ − 0. 5 M s Lls + M s − 0.5M s M s cos(θ − 120 )
0
M s cos θ M s cos(θ + 120 0 ) ⎥
⎢ − 0. 5 M s − 0. 5 M s Lls + M s M s cos(θ + 120 0 ) M s cos(θ − 120 0 ) M s cos θ ⎥
[L(t )] = ⎢ ⎥
⎢ M s cos θ M s cos(θ − 120 ) M s cos(θ + 120 )
0 0
Llr + M s − 0. 5 M s − 0. 5 M s ⎥
⎢M cos(θ + 120 0 ) M s cos θ M s cos(θ − 120 0 ) − 0. 5 M s Llr + M s − 0. 5 M s ⎥
⎢ s ⎥
⎣⎢ M s cos(θ − 120 ) M s cos(θ + 120 )
0 0
M s cos θ − 0. 5 M s − 0. 5 M s Llr + M s ⎦⎥

(9.5)
The subscript s and r mean the stator winding and rotor winding, respectively. R means the winding
resistances, and Ll means the leakage inductances. Ms means the mutual inductance between stator
and rotor windings at that the direction of A-phase stator winding is identical to that of a-phase rotor
winding. θ is the electrical angle difference between the A-phase stator winding and a-phase rotor
winding. Because of the rotor windings in the squirrel cage IM is fictitious, it is assumed that the turns
IX. The universal and time domain machine models - 59

of stator windings is equal to the turns of rotor windings.

Mechanical System
One mass is considered in the mechanical system.
d
J ω m (t ) + Dω m (t ) = TM (t ) − Tem (t ) (9.6)
dt
d
ω m (t ) = θ m (t ) (9.7)
dt
Where, J is the moment of inertia, D is the damping coefficient, TM is the input torque, Tem
is the electromagnetic torque in the mechanical system unit, ωm is the mechanical speed and θm
is the mechanical angle.
The electromagnetic torque is an interface variable between electrical and mechanical
system.

ω e (t )Te (t ) = −
1
[i(t )]T ⎧⎨ d [L(t )]⎫⎬[i(t )] (9.8)
2 ⎩ dt ⎭
Where ωe is the electrical angle of the rotor, Te is the electromagnetic torque.

The relationship of the electrical and the mechanical system is as follows.


β = N pθ m
ω e = N pω m
Tem = N pTe

The subscript e and m mean the electrical and mechanical variables, respectively. Np means
the number of pole pairs.
⎡ sin θ sin(θ + 120 D ) sin(θ − 120 D ) ⎤ ⎡ira (t )⎤
⎢ ⎥
Te (t ) = M s [isa (t ) isb (t ) isc (t )]⎢sin(θ − 120 D ) sin θ sin(θ + 120 D )⎥ ⎢irb (t )⎥ (9.9)
⎢ ⎥
⎢sin(θ + 120 D ) sin(θ − 120 D ) sin θ ⎥ ⎣⎢irc (t ) ⎦⎥
⎣ ⎦

Initialization
The initialization of the present Type-56 IM model is assumed that the IM is connected to a
balanced network. Fig.9.11 shows the equivalent circuit of IM in balanced network. The positive
sequence impedance of IM is calculated by using Eq. (9.10).
60 - IX. The universal and time domain machine models

Ipos Rs Lls Llr

Vpos Ms Rr / S

Fig. 9.11. The Equivalent Circuit of IM in Steady-State

( jω s M s ) 2
Z pos = Rs + jω s Ls − (9.10)
Rr / s + jω s Lr
Where, ωs is the system frequency, and s is the slip.
ω s − ωe
s=
ωs
Ls = Lls + 32 M s
Lr = Llr + 32 M s

In the initialization, the positive sequence impedance replaces the IM model for steady-state
calculation. To obtain the initial values in IM internal variables, the dq0 transformation is
necessary.
The phase voltages and currents, which can be obtained from the steady-state calculation is
transformed to dq0-coordinate by using transformation matrix in Eq. (9.11).
⎡ 23 cos θ 2
cos(θ − 120D ) 2
cos(θ + 120D ) 0 0 0⎤
⎢ 2 3 3

⎢ 3 sin θ sin(θ − 120 D ) sin(θ + 120 D )
2 2
3 3
0 0 0 ⎥
⎢ 1/ 3 1/ 3 1/ 3 0 0 0 ⎥
[T ]−1 =⎢ ⎥ (9.11)
⎢ 0 0 0 2 / 3 − 1/ 6 −1/ 6⎥
⎢ 0 0 0 0 −1/ 2 1 / 2 ⎥⎥

⎢⎣ 0 0 0 1/ 3 1/ 3 1 / 3 ⎥⎦

The transformed currents and voltages in stator windings are shown in Eqs. (9.12) and
(9.13).
IX. The universal and time domain machine models - 61

3
isd (t ) = I sm sin( sω s t + α − δ )
2
3
isq (t ) = I sm cos(sω s t + α − δ ) (9.12)
2
is 0 (t ) = 0

3
v sd (t ) = Vsm sin( sω s t + γ − δ )
2
3
v sq (t ) = Vsm cos( sω s t + γ − δ ) (9.13)
2
v s 0 (t ) = 0
Where α is the phase angle of IM current, Ism is its peak value. γ is the phase angle of the
terminal voltage, Vsm is its peak value. δ is the initial angle difference between the A-phase
stator winding and the fictitious a-phase rotor winding. Also in the Type-56 IM model, it is
chosen that the d-axis has a lead of 90[deg] on the q-axis.

Similarly, the flux linkages in stator windings are transformed into dq0-cordinate.
3
λsd (t ) = λsm sin( sω s t + φ − δ )
2
3
λsq (t ) = λsm cos(sω s t + φ − δ ) (9.14)
2
λs 0 (t ) = 0
Where φ is the phase angle of the flux linkage and λsm is its peak value.
Eq. (9.1) is transformed into dq0-coordinate.
d
vsd (t ) = − Rs isd (t ) − λsd (t ) − ωe λsq (t )
dt
d
vsq (t ) = − Rs isq (t ) − λsq (t ) + ωe λsd (t ) (9.15)
dt
d
vs 0 (t ) = − Rs is 0 (t ) − λs 0 (t )
dt
The zero-sequence variable is eliminated, because the zero-sequence components in current,
voltage and flux linkage are not included.
Eq. (9.14) is substituted to Eq. (9.15).
vsd (t ) = − Rs isd (t ) − ω s λsq (t )
(9.16)
vsq (t ) = − Rs isq (t ) + ω s λsd (t )
Eqs. (9.2) and (9.5) are transformed into dq0-cordinate.
62 - IX. The universal and time domain machine models

⎡λsd ⎤ ⎡ Lls + 32 M s 0 0 3
2 Ms 0 0 ⎤ ⎡isd ⎤
⎢λ ⎥ ⎢ 0 Lls + 32 M s 0 0 3
Ms 0 ⎥⎥ ⎢⎢isq ⎥⎥
⎢ sq ⎥ ⎢ 2
⎢λs 0 ⎥ ⎢ 0 0 Lls 0 0 0 ⎥ ⎢is 0 ⎥
⎢ ⎥=⎢ 3 ⎥⎢ ⎥ (9.17)
⎢λrd ⎥ ⎢ 2 M s 0 0 Llr + M s 0 0 ⎥ ⎢ird ⎥
3
2
⎢ λrq ⎥ ⎢ 0 3
2 Ms 0 0 Llr + 32 M s 0 ⎥ ⎢irq ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢⎣λr 0 ⎥⎦ ⎢⎣ 0 0 0 0 0 Llr ⎥⎦ ⎢⎣ir 0 ⎥⎦

⎛ 3 ⎞ 3
λsd = ⎜ Lls + M s ⎟isd + M s ird
⎝ 2 ⎠ 2
(9.18)
⎛ 3 ⎞ 3
λsq = ⎜ Lls + M s ⎟isq + M s irq
⎝ 2 ⎠ 2
Substituting Eq. (9.18) to Eq. (9.16), the dq-axis rotor currents are obtained.

ird = −isd +
3
1
(vsq + Rs isq − ωs Lls isd )
ωs M s
2 (9.19)
irq = −isq −
3
1
(vsd + Rs isd + ωs Lls isq )
ωs M s
2
The electromagnetic torque is as follows.

Te = λsd isd − λsq isq (9.20)

We can set any value of δ, because the squirrel cage rotor is salient and d- and q-axis
windings are fictitious. In this model, it is assumed that the d-axis winding is same direction of
the A-phase stator winding, that is δ=-0[deg].

Transient Calculation

Electrical System
The trapezoidal rule is applied in Eq. (9.1).

[v(t )] = −⎧⎨[R] + 2 [L(t )]⎫⎬[i(t )] + [hist (t − ∆t )] (9.21)


⎩ ∆t ⎭

[hist (t − ∆t )] = ⎧⎨− [R] + 2 [L(t − ∆t )]⎫⎬[i(t − ∆t )] − [v(t − ∆t )] (9.22)


⎩ ∆t ⎭
The following variables are defined.
⎡ r11 r12 ⎤ 2
⎢r ⎥ = [R ] + [L(t )]
⎣ 21 r22 ⎦ ∆t

[vs ] = [vsa vsb vsc ]T


IX. The universal and time domain machine models - 63

[vr ] = [0 0 0]T
[is ] = [isa isb isc ]T
[ir ] = [ira irb irc ]T
[hist s ] = [hiat sa hist sb hist sc ]T
[hist r ] = [hiat ra hist rb hist rc ]T
⎡ r11,h r12,h ⎤ 2
⎢r ⎥ = −[R ] + [L(t − ∆t )]
⎣ 21,h r22,h ⎦ ∆t
Substituting above equations to Eqs. (9.21) and (9.22), then Eq. (9.23) will be obtained.
⎡vs (t )⎤ ⎡ r11 r12 ⎤ ⎡is (t ) ⎤ ⎡hist s (t − ∆t )⎤
⎢ 0 ⎥ = − ⎢r +
r22 ⎥⎦ ⎢⎣ir (t )⎥⎦ ⎢⎣hist r (t − ∆t )⎥⎦
(9.23)
⎣ ⎦ ⎣ 21
⎡ hist s (t − ∆t ) ⎤ ⎡ r11,h r12,h ⎤ ⎡is (t − ∆t ) ⎤ ⎡vs (t − ∆t )⎤
⎢hist (t − ∆t )⎥ = ⎢r −
r22,h ⎥⎦ ⎢⎣ir (t − ∆t )⎥⎦ ⎢⎣ 0 ⎥ (9.24)
⎣ r ⎦ ⎣ 21,h ⎦
From Eq. (9.23),
[ir (t )] = [r22 ]−1 [hist r (t − ∆t )] − [r22 ]−1 [r21 ][is (t )] (9.25)
[vs (t )] = [eabc ] − [Rabc ][is (t )] (9.26)
Where,
[Rabc ] = [r11 ] − [r12 ][r22 ]−1 [r21 ] (9.27)

[eabc ] = [hist s (t − ∆t )] − [r12 ][r22 ]−1 [hist s (t − ∆t )] (9.28)


Eq. (9.25) shows the calculation of the rotor winding currents, and Eq. (9.26) means the
same as the equivalent circuit shown in Fig. 9.12.
ia ib ic

va vb vc

[Rabc]

Fig. 9.12. The Equivalent Circuit for Transient Calculation

Mechanical System
The trapezoidal rule is applied to Eqs. (9.6) and (9.7).
64 - IX. The universal and time domain machine models

⎛ ∆t ⎞ ∆t
⎜ J + D ⎟ω m (t ) = (TM (t ) − Te ,m (t ) ) + Hist w (t − ∆t ) (9.29)
⎝ 2 ⎠ 2
⎛ ∆t ⎞ ∆t
Hist w (t − ∆t ) = ⎜ J − D ⎟ω m (t − ∆t ) + (TM (t − ∆t ) − Te ,m (t − ∆t ) ) (9.30)
⎝ 2 ⎠ 2
∆t
θ m (t ) = ω m (t ) + Histθ (t − ∆t ) (9.31)
2
∆t
Histθ (t − ∆t ) = θ m (t − ∆t ) + ω m (t − ∆t ) (9.32)
2

Saturation Correction
The saturation correction of the model has following assumptions.
- The saturation of the leakage flux linkage can be neglected.
- The composite flux linkage is the sum of the flux linkages in each winding.
- The saturated level is dependent on only the composite flux linkage, and the
identical correction factor is used for each winding.

In the type-56 IM model, the saturation curve is approximated by the quadratic function and
its tangential line, shown in Eq. (9.33) and (9.34), and Fig. 9.13.
i = aλ2 + bλ + c (9.33)
λ = Lu i (9.34)
Where a,b,c are the coefficients of the saturation characteristics, and Lu is the unsaturated
inductance or in the air gap flux.

λ Lu Ls
λm

im i

Fig. 9.13. The Saturation Curve

The composite flux linkage is calculated in Eq. (9.35).


IX. The universal and time domain machine models - 65

2
λm = λma 2 + λmb 2 + λmc 2 − λma λmb − λmb λmc − λmc λma (9.35)
3

λma , λmb , λmc are the main flux linkages in three-phase induction machine.

From the saturation curve in Fig. 9.13, the equivalent excitation current im and its
inductance Ls are obtained.
λm
Ls = (9.36)
im
The correction factor K is defined in Eq. (9.37).
Ls
K= (9.37)
Lu
The inductance matrices [Ls(t)] and [Ls(t-∆t)] are modified.

[Ls (t )] = {1 − K (t )}[Ll ] + K (t )[Lu (t )] (9.38)


[Ls (t − ∆t )] = {1 − K (t − ∆t )}[L1 ] + K (t − ∆t )[Lu (t − ∆t )] (9.39)

[Ll] is the constant diagonal matrix with the leakage inductances. [Lu(t)] and [Lu(t-∆t)] are
the time-variant matrices with the unsaturated inductances at present and previous time-step,
respectively. K(t) and K(t-∆t) are the correction factors at present and previous time-step.
X. Power Constraints: The EMTP Load Flow

The steady-state phasor solution for initial conditions of the electric network can be determined
so as to observe power constraints at one or more busses. By analogy with the dominant steady-state
program of system planning departments, this has been named the "load flow" feature of the EMTP.
In effect, it is multi-phase load flow capability (albeit in somewhat restricted form) that is available to
the EMTP user.

X-A. Background Information about the EMTP Load Flow

Each single-phase node of a network involves four real variables of interest. There are real
power injection PK, reactive power injection QK, phasor voltage magnitude VK, and phasor voltage
angle THETAK. Since there is one real-power and one reactive-power constraint equation for the
node, this implies that two of these variables can be specified quite arbitrarily, and the other two then
can be determined by numerical computation. Before the load flow was available, EMTP users could
apply only the special zero-power constraint (with both PK = 0 and QK = 0, meaning no connection).
Control of non-zero power was only indirect, and by trial and error. But now, thanks to the new EMTP
load flow, the user can choose among the following three constraints for an EMTP source node. The
user can:

a) specify PK and QK at the node. The EMTP then will solve for VK and THETAK. This is
ordinary load modeling of conventional, single-phase load flow usage by system planning
departments. Or, alternatively,

b) specify PK and VK. The EMTP then will solve for QK and THETAK. This is ordinary
generator modeling of conventional, single-phase load flow usage by system planning
departments. Or, alternatively,

c) Specify THETAK and This third and final option is QK. The EMTP then will solve for PK
and VK. This third and final option is seldom used.

There is no limit on the number of busses that are so constrained, although at least one source
should be unconstrained. The unconstrained source commonly is taken as the reference for other
phasors (THETAK for this node is fixed at zero). In the terminology of conventional, single-phase
load flows, this is called the "slack bus".

For those who intend to terminate execution once the load flow is complete (i.e., for TMAX
non-positive), life is particularly simple. No EMTP source cards are required, and power constraints
can be applied to any node of the network. The only program limitation is that the source table (List 4)
must be sized to equal or exceed the total number of power-constrained nodes of the network. This is
because one source is automatically, internally defined for each power-constraint card as it is read in
overlay 9.

Page 10-1
When a transient simulation is to follow the EMTP load flow ( i.e., if TMAX is positive), the
user should understand that his power constraints forgotten once the time-step loop is entered. With
power constraints only to nodes with Type-14 voltage sources, the angle and/or magnitude of this
source will be automatically adjusted prior to entry into the time-step loop, and adjusted to correspond
to the load flow solution. This may or may not result in approximate continued observance of the
steady-state power constraints during the transient simulation, of course. The result is a function of
nonlinearities, and of unpredictable transients, which are quite beyond any general summary. The user
should simply keep in mind that load flow constraints only provide for the automatic, internal setting
of constants (e.g., generator angles) at time zero, and have no other direct effect on any subsequent
simulation.

As presently implemented, power constraints are only allowed at nodes of known voltage, or
at the armature nodes of rotating ac machinery. Such constraints can not be applied to current sources.
For cases without any associated transient simulation, this is not a restriction, since the required
voltage sources are defined internally, to whatever nodes the user wants to apply power constraints.
But for cases involving transient simulation, current sources are simply not allowed (i.e., the user can
not apply a power constraint to a current source). Perhaps the EMTP could be generalized to handle
such cases in the future (Vol. XIII, 23 July 19831 Section II-A, page VDEL-3, middle paragraph),
although no plans have been made as of April, 1984, as this page is being written.

A power constraint of the EMTP load flow may only be applied at a network bus. The user can
not constrain a line flow, nor can he constrain a group of line flows (the familiar area interchange
control), directly. Neither is there any automatic adjustment of transformer or phase shifter taps at the
present time. But certain limits on voltage magnitude and angle at a power-constrained node can be
observed. First, at a load bus that normally would have both PK and QK fixed, the reactive-power
constraint will only be maintained within user-specified limits on voltage VK, and the real-power
constraint will only be held within user-specified limits on the angle THETAK. Second. generator bus
that normally would have both PK and VK fixed, the real-power constraint will only be held within
user-specified limits on the angle THETAK. Third and finally, at a bus that normally would have both
QK and THETAK fixed (who knows a good , short name for such a bus?), the reactive power
constraint will be held only within user-specified limits on voltage VK. Conspicuous by its absence in
this list is the popular choice of system planners for generators: the maintenance of voltage VK with
limits on reactive power QK.

Thus far, there has been a mixture of talk about network busses and individual nodes. These
may or may not be synonymous, for purposes of EMTP load flow usage. The possible difference is
due to multi-phase constraints. The user can gang three nodes together, and control them as a unit, if
he likes. In this case, all three voltages are assumed to be balanced, positive-sequence phasors. Any
specified real or reactive power is a total 3-phase injection, which will be split equally among the three
phases only if the rest of the problem is balanced. But if either the network or some excitation is
unbalanced, note that the 3-phase injections will not be balanced, either. In addition to this
conventional 3-phase usage, it is possible to drop the third phase (phase "c", which lags phase "a" by
240 degrees), so that only phases "a" and "b" are ganged together. This could be of use to those
studying outages (the loss of one phase).

Page 10-2
For each network bus that is to have a power constraint, there is one EMTP data card that
specifies the associated local control parameters. Following the last such data card, there is an extra
card of overall control parameters, which shall be called the miscellaneous data card of the load flow.
This data structure is summarized as follows:

Card for first power constraint of load flow


< < Etc. > >
Card for last power constraint of load flow
Miscellaneous data card for load flow

One 3-phase bus requires only one source card, if the user accepts the 3-phase logic that this implies.
Alternatively, each phase could be controlled separately, thereby requiring three EMTP data cards. In
any case, taken together, all such cards constitute data peculiar to the EMTP load flow --- data that
affects no other aspect of the simulation. This data follows the blank card ending sources (Section
VII), and it precedes the initial condition cards for the electric network (if any; see Section XI) and the
node voltage output requests (Section XII).

If the user wants such EMTP load flow capability, he must declare his intention early, before
the miscellaneous data cards. This is done using a special-request card reading “FIX SOURCE” (see
Section II-A).

All data for the EMTP load flow are read within overlay 9 by the single EMTP load flow
module, SUBROUTINE FXSOUR. Module "FXSOUR" contains all logic for the network solution
that observes the user-specified power constraints. An impedance matrix algorithm is used, but with
a complete simultaneous solution (rather than the adjustment of one equation at a time), which allows
the exploitation of the already-calculated and triangularized nodal admittance matrix [Y]. The solution
is iterative, then, with convergence less than certain, and not always speedy. But, for practical, realistic
cases of common interest, performance has been found to be good, so any user who really wants to
begin his transient simulations with given power flows is urged the EMTP load flow a try. As long as
X/R ratios are reasonable (do not try the EMTP load flow for purely resistive networks!), and a
solution exists, and the guess is not unreasonable, then there would seem to be a good chance of
success.

Iterative convergence of the EMTP load flow is monitored on LUNIT6, where the largest
correction of each iteration is displayed, 20 numbers per line, as these are calculated. There also is an
option (see the load flow miscellaneous data parameter NNNOUT) for the parallel output of the
numbers of the power constraints that produced these largest corrections. Numbering of this
identification corresponds one-for-one with the user-inputted data cards. As an example of such
output, consider the first eight columns of the first two rows of twenty, which might appear as follows
(taken from BENCHMARK DC-26):

Max del-V: .2192 .2158 .1861 .1597 .137 .1176 .1013 .0896
Source No . -2 -2 -2 -2 -2 -2 -2 -3

Page 10-3
The variable changes are always positive (absolute values are used), negative sign shifted to the
integer 2nd row where there is more room. This was the case for DC-26 (the largest initial corrections
were in fact negative as shown). Note that convergence is slow (a characteristic of the "crummy Z-
matrix iteration that is used), and that the generator having the worst correction is always the same
(DC-26 involves just a single load flow source). If program output goes to the disk, then the user will
not see such output until later, so timing is irrelevant. But if LUNIT6 output goes to a computer
monitor, then the timing of the display is important. At most 20 iterations (a full line) will occur
between such load flow outputs, thereby assuring the user that the computation is progressing. The
user has control over the frequency of this output (variable NFLOUT of the load flow miscellaneous
data card which will be described shortly). For some computers (those allowing overprinting with the
"lH+" carriage control characters), the user can see the result at the end of each iteration, when one
more number is added to the output buffer (a full output line).

It is important that the load flow user check for convergence, since as presently implemented,
the EMTP simulation will continue whether the iteration has converged or not! Should not all of the
user-supplied control tolerances be met, a warning message will be printed. But execution will not be
stopped.

The load flow user may have special interest in knowing the solution at his power-constrained
busses. Such special output is possible via variable NPRINT of the load flow miscellaneous data card
(the final card of load flow data). Such output precedes the phasor branch flows, with the following
being a representative sample taken from the solution to BENCHMARK DC-26. Note convergence in
133 iterations, and truncation on the right (the reactive power column is missing):

Exit the load flow iteration loop with counter NEKITE = 133. If no warning
Row Node Name Voltage mag Degrees Real power Reactive power
4 8 A1 0.113901E+02 -30.0002 0.399872E+02 -0.4507736E+01
5 9 B1 0.113901E+02 -150.0002 0.399872E+02 -0.4507736E+01
6 10 C1 0.113901E+02 89.9998 0.399872E+02 -0.4507736E+01

Yet there really is nothing special to see, since such phasor values have always been available
via the regular steady-state printout (e.g., by the display of injections which follow phasor branch
flows).

Examples of EMTP load flow usage can be found in standard test.cases BENCHMARK DC-25
and DC-26, which involve synchronous machines. Since the Type—59 S.M. is represented by nothing
other than three Type-14 sinusoidal sources in the steady-state, it is trivial to apply power constraints
to these using EMTP load flow capability. The U.M. is not quite so simple, due to its generality; but
it, too, is now compatible with the EMTP load flow for induction and synchronous modes, as
documented in Prof. Lauw's paper (Ref. 22, May 1984).

Page 10-4
X-B. Formats for EMTP Load Flow Data Cards

First, there must be one data card for each power constraint. Ordering of these cards is
arbitrary. Each such data card is to be keyed according to the following rules:

1 2 3 4 5 6 7 8
12 345678 901234 567890 1234567890123456 7890123456789012 34567890 12345678 901234 567890

I2 A6 A6 A6 E16.0 E16.0 E8.0 E8.0 E6.0 E6.0

NK BUS1 BUS2 BUS3 PK or QK QK or VK VMIN VMAX THMIN THMAX

NK (columns 1-2) is the type code of power constraint. Choose among: "0" to constrain PK
and QK ( (with unknown QK and THETAK); "1" to constrain PK and VK (with
unknown QK and THETAK); "2" to constrain QK and THETAK (with unknown PK
and VK).

BUS1 (columns 3-8) is the first of up to three names of network nodes that are involved in
this power constraint. For single-phase usage, leave BUS2 and BUS3 blank. But for 3-
phase usage (the other common case), name the three nodes in natural, positive-
sequence order: first "a", then "b" , and finally "c" .

BUS2 (columns 9-14) is the 2nd of up to three names of network nodes that are involved in
this power constraint. See BUSl.

BUS3 (columns 15-20) is the 2nd of up to three names of network nodes that are involved in
this power constraint. See BUSl.

PK or THETAK (columns 21-36) is the first of two constraint values. In case injected real power PK
is to be constrained ( for constraint type NEK = 0 or 1), key the desired value in units
of power (units of voltage times units of current, whatever that might be for the user's
problem). For a multi-phase constraint, this is the total of the two or three individual
injections bus of interest. Alternatively, for the remaining, less-common case having
constraint type NEK = 2, key the desired fixed phase angle THETAK in units of
[degrees].

QK or VK (columns 37-52) is the second of two constraint values. In case injected reactive power
QK is to be constrained ( for constraint type NEK = 0 or 2), key the desired value in
units of power (units of voltage times units of current, whatever that might be for the
user's problem). For a multi-phase constraint, this is the total of the two or three
individual injections at the bus of interest. Alternatively, for the remaining, case having
constraint type NEK = 1, for fixed VK, key the desired value in units of peak voltage.

VMIN (columns 53-60) is the minimum voltage VK, for those cases where voltage is not
fixed. That is, this input is used for constraint type NEK = 0 or 2. The keyed value is to
be in units of peak voltage. A blank or zero means that no minimum will be imposed.

Page 10-5
VMAX (columns 61-68) is the maximum voltage VK, for those cases where voltage is not
fixed. That is, this input is used for constraint type NEK = 0 or 2. The keyed value is to
be in units of peak voltage. A blank or zero means that no maximum will be imposed
(internally, infinity becomes the limit).

THMIN (columns 69-74) is the minimum angle THETAK for those cases where the angle is not
fixed .That is, this input is used for constraint type NEK = 0 or 1. The keyed value is to
be in units of [degrees] .A blank or zero means that no minimum will be imposed (
internally, THMIN is set to minus infinity).

THMAX (columns 75-80) is the maximum angle THETAK for those cases where the angle is
not fixed. That is, this input is used for constraint type NEK = 0 or 1. The keyed value
is to be in units of [degrees] .A blank or zero means that no maximum will be imposed
( internally, THMAX is set to infinity).

The interpretation of this power constraint card confirms only the first 4 of 6 total floating
point parameters (columns 21-68) .The following illustration has been taken from the 1st half of
BENCHMARK DC-25:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C-------------------------------------------------|-------------------------
FIX. 2.803E+09 1.383E+09 2.000E+04 2.500E+04 | MACA1 MACB1 MACC1 2803

After the last such power constraint card, add the following miscellaneous data card of the load
flow, which is recognized by the leading blank field (cols. 1-8 unused) :

1 2 3 4 5 6 7 8
12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234 5678901234567890

I8 I8 I8 I8 E8.0 E8.0 E8.0

NNNOUT NITERA NFLOUT NPRINT RALCHK CFITEV CFITEA

NNNOUT (columns 9-16) is a binary flag for control of additional interactive output during the
load flow iteration. A value of unity will add variable identification in parallel with the
always-present interactive output of the largest variable correction at each iteration.
The preceding explanation of convergence monitoring illustrated such usage. But if no
such identification of the worst corrections is desired, and if the sign of the corrections
is of no interest, key zero or blank .

NITERA (columns 17-24) is a bound on the number of iterations of the load flow. Any non-
positive entry will be given a default value of 500.

Page 10-6
NFLOUT (columns 25-32) is the buffer size for accumulating the output that is associated with
the interactive convergence monitoring (the correction at each iteration). Any non-
positive value, or any value in excess of 20, will be set equal to the default value of 20.
Since exactly 20 numbers fit on a line, a value of 20 corresponds to waiting for a line
to be filled before the user is shown any of the contents. Positive values less than 20
generally should be used only for computers having electronic monitors that honor the
"lH+" carriage control (for overprinting), since this is the device that is used to avoid
line feeds after outputs of partial lines. A value of 20 is always best for solutions that
the user is not watching.

NPRINT (columns 33-40) is a binary flag that allows for the selection or suppression of special
tabular printout for the nodes with power constraints. Key unity to obtain output of
such values (VK, THETAK, PK, QK), or zero (or blank) to suppress it.

RALCHK (columns 41-48) is a relative convergence tolerance that controls the accuracy of the
solution. For termination of the iteration, all power mismatches must be less than
RALCHK times the largest scheduled power (either PK or QK) of the network. A non-
positive value will be taken as a request for the default tolerance 1/100.

CFITEV (columns 49-56) is an acceleration factor associated with the conversion of a change in
reactive power to a change in voltage magnitude .See Ref. 43 for a more precise
definition. In the absence of knowledge about this parameter, leave the field blank
(which represents a request for the default value of 2/10). CFITEA (columns 57-64) is
an acceleration factor associated with the conversion of a change in real power to a
change in voltage angle. See Ref. 43 for a more precise definition. In the absence of
knowledge about this parameter, leave the field blank (which represents a request for
the default value of 2.5).

The interpretation of this miscellaneous data card of the load flow confirms only the first 5 of
7 total parameters (through column 48). The following illustration has been taken from the 1st half of
BENCHMARK DC-25:

C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890123456
C ------------------------------------------------|-------------------------
Load flow iter. 1 500 20 0 0.10E-02 | 1

Page 10-7
XVIII. NODA SETUP and ARMAFIT – 1

XVIII NODA SETUP and ARMAFIT

XVIII–1 Purpose and Applications

The importance of more precisely simulating transmission transients is increasing due to the
economical incentive of using more accurate modeling in design as well as protection studies. For
switching, fault, and fault-clearing surge studies, the most important and also the most difficult part of
the simulation is the inclusion of the frequency dependence of a transmission line. The frequency
dependence of modal propagation has been investigated widely, and some models have been already
installed in ATP-EMTP like SEMLYEN SETUP (see Chapter XXII) and JMARTI SETUP (see
Chapter XVII). But all of them only take into account the frequency dependence of the modal
propagation and ignore the frequency dependence of the modal-transformation matrices (hereafter
those models are referred to modal-domain line models), although the frequency dependence of the
matrices can be significant in many cases. Especially, it is demonstrated when modeling vertically-
arranged overhead lines and underground cables.

The modal-domain line models successfully reproduce the modal-domain frequency dependence.
Nevertheless, when the frequency dependence of the modal-transformation matrices is heavy, the use
of constant modal-transformation matrices causes an error and numerical instability. The inclusion of
the frequency-dependent modal-transformation matrices can be achieved by either applying convolu-
tion to the matrices [1,2] or direct phase-domain approaches [3-6]. The practical implementation of
the transformation-matrix convolution could be complicated in terms of eigenvalue tracing by mode
crossing (at some frequency, two or more eigenvalues become equal) [7]. On the other hand, the direct
phase-domain approaches avoid the modal transformation itself, but the application of recursive
convolution to a phase-domain response is difficult because of the time-domain discontinuities of the
response due to modal traveling-time differences.

The NODA SETUP is one of the direct phase-domain approaches developed by Dr. Taku Noda [5].
The line model uses an ARMA (AutoRegressive Moving-Average) model for the time-domain
realization of the phase-domain convolution, and the phase-domain discontinuous response is
accurately reproduced by the ARMA model, taking advantage of the one-sample-delay nature of the Z-
operator. In ref. [5], further improvements to the line model are made. The improvement to
convolution allows each ARMA model to use its own time step interfacing with the external circuit by
a linear interpolation technique, and thus the model is designated as IARMA (interpolated ARMA)
model. A steady-state initialization method is also developed in the reference in order to make
possible such as fault calculations. The matrix stability conditions presented in ref. [5] is not installed
in the present version of the NODA SETUP, because it requires more investigation for the accurate
evaluation of eigenvalues.

The usage of the NODA SETUP and ARMAFIT is illustrated using an example : 500-kV double-circuit
overhead line of which the conductors are vertically arranged.
2 – XVIII. NODA SETUP and ARMAFIT

XVIII–2 Computational Steps

XVIII–2.A Overview

The modeling of a transmission line (overhead lines and cables) using the NODA SETUP requires the
following two steps :

1. Calculation of the frequency-dependent line constants of the transmission line, hereafter referred
to frequency data , using CABLE PARAMETERS or LINE CONSTANTS supporting routine
in ATP. The result is written in .AFT file (ARMAFIT file). Note that CABLE CONSTANTS
cannot be used to make the .AFT file.

2. Fitting the frequency data in the .AFT file with IARMA models for the time-domain realization
of the frequency dependence using an independent program ARMAFIT. The result is written in
.PCH file (punch-out file).

For fitting the frequency data a foreign line constants calculation program might be used, because
ARMAFIT is independent of ATP. This is important, because a certain transmission-line
configuration, which is not supported neither by CABLE PARAMETERS nor LINE CONSTANTS, can
be fitted using ARMAFIT, if the frequency data is prepared in .AFT file by a user-made line-constants
calculation program. The format of .AFT file is illustrated in Section XVIII.2.C. The computational
steps to create model data for EMTP simulation is given schematically in Fig. 1.

Fig. 1 Computation steps to obtain line model data


XVIII. NODA SETUP and ARMAFIT – 3

In order to use the line model for a time-domain simulation, the name of .PCH file is specified in a
branch card in an ATP data case unlike other line models. (Using other line models such as SEMLYEN
SETUP, JMARTI SETUP .PCH file has to be pasted as branch cards using $INCLUDE) Because the
.PCH file remains outside of the data case, the .PCH file can be used by other data cases by simply
specifying the file name.

XVIII–2.B Example: 500-kV double-circuit overhead line

A 500-kV double-circuit overhead line of which the conductors are vertically arranged is used to
illustrate the usage of the NODA SETUP. The conductor configuration is shown in Fig. 2.

24 m
gw gw AS 160
16 m
80 m a (1) c’ (4)
17 m TACSR 810
65 m b (2) b’ (5) ×6
18 m sep. = 0.5 m
55 m
c (3) a’ (6)
45 m
line length = 100 km

Fig. 2 500-kV double-circuit overhead line

The line length is 100 km. Each of the ground wires is a single conductor AS 160, and each of the
phase wires is a bundle of 6 conductors TACSR 810 of which the separation is 0.5 m. Fig. 2 shows
the frequency dependence of the first-column elements of the voltage modal-transformation matrix A.
Because the frequency dependence of A11 and A41 elements is heavy (about 16%), the proposed phase-
domain model is advantageous than model-domain models. Switching-surge and fault-surge
calculations of the line are carried out in Chapter III.

0.8
magnitude

0.6

0.4 : A11 =A41


: A21 =A51
0.2
A31 = A61 = 1.0 (normalization)
0 0
10 101 102 103 104 105 106
frequency [Hz]

Fig. 3 First column elements of voltage transformation matrix A


4 – XVIII. NODA SETUP and ARMAFIT

XVIII–2.C Calculation of Frequency Data using NODA SETUP

The following data case VERT500.DAT calculates the frequency data of the example line and writes
them into file VERT500.AFT, using ATP. It uses the CABLE PARAMETERS supporting routine.

BEGIN NEW DATA CASE {VERT500.DAT}


C 500-kV Vertically-Arranged Double-Circuit Overhead Line
NODA SETUP { Request Taku Noda's ARMA model fitter. No printout of F-scan
VERT500.AFT { Output file name (blank requests use of default TAKUNODA.CCC)
HOMOGENEOUS LINE { keyword for homogeneous line
-1. { time step (if negative, optimum time step request)
4 16 { min and max orders for voltage deformation matrix [H]
1 12 { min and max orders for char. admittance matrix [Y0]
3. .5 3. 3 { error constants: EpsA, EpsM1, EpsM2 in percent, and Nitr
1,4 2,5 3,6 { pair(s) of phases having symmetry
NODA SETUP END { Bound of fitter data; begin CABLE PARAMETERS data
CABLE CONSTANTS
CABLE PARAMETERS
1 0 2
3 1 6 1
19.20E-03 4.800E-03 10.50E-03 1.000E-03 0.5
3.941E-08 1.0 5.526E-08 1.0
3 1 6 1
19.20E-03 4.800E-03 10.50E-03 1.000E-03 0.5
3.941E-08 1.0 5.526E-08 1.0
65.0 65.0 -8.1 55.0 55.0 -8.6
45.0 45.0 -9.0 65.0 65.0 8.0
55.0 55.0 8.5 45.0 45.0 9.1
80.0 80.0 -12.0 80.0 80.0 12.0
300. 1. 6 10 100.E3 { 1st f. card for f. scan
300. 100.E6 100.E3 { 2nd f. card to determine v
BLANK ending frequency cards
BLANK ending CABLE CONSTANTS
BEGIN NEW DATA CASE
BLANK

First comes keyword BEGIN NEW DATA CASE as usual, and keyword NODA SETUP follows. The
next line specifies the name of .AFT file to which the frequency data is written, and VERT500.AFT
is specified in the present example. Then, keyword HOMOGENEOUS LINE follows. Lines enclosed
by keywords HOMOGENEOUS LINE and NODA SETUP END are simply copied into the .AFT file,
and thus the description of those lines are provided in the next section II-D. Those lines contain fitting
parameters. Next comes a standard CABLE PARAMETERS case describing the line configuration,
which has two frequency cards. The first frequency card determines the range of frequency
logarithmically scanned for the subsequent frequency-domain fitting using ARMAFIT. In the example,
from 1 Hz to 1 MHz with 10 points per a decade. The second frequency card specifies a frequency at
which the velocity of all the natural modes of propagation are determined. Usually, a value which is
larger by 2 decades than the highest frequency of the frequency scan may be recommended. Finally
comes BEGIN NEW DATA CASE and BLANK to terminate the ATP execution.

XVIII–2.D Format of .AFT File

The contents of VERT500.AFT is shown below. The lines between keywords HOMOGENEOUS
LINE and NODA SETUP END in the .DAT file are copied into the first part of the .AFT file as
mentioned in the previous section. First comes HOMOGENEOUS LINE to declare that the present
transmission line is simulated by a homogeneous line model. Other line models, for example CORONA
XVIII. NODA SETUP and ARMAFIT – 5

LINE to include corona branches, would be added in the future, but only the homogeneous line model
is supported for now. (If keyword KIZILCAY F-DEPENDENT is specified here, the frequency
characteristic of an admittance element can be modeled as an ARMA model or as a Laplace s-function
model to be used as a KIZILCAY F-DEPENDENT element in a branch card in an ATP data case,
although the format of the following parameters and data is different.) From the second to sixth lines
are fitting parameters which can be placed in a free format separated with space ' ' or comma ','.
There is no distinction between space and comma, and contiguous space or comma are treated as one
separator. The second line specifies a time step, with which all the ARMA models in the line model,
is synthesized. If a negative value is specified, then an appropriate time step is automatically
determined by ARMAFIT as in the following equation :

1
∆t = lo g 1 0 f m ax + ( lo g 1 0 f m ax − lo g 1 0 f m in )/ ( N − 1 )
2 × 10

where
fmin : lowest frequency,
fmax : highest frequency,
N : number of total frequency points of the frequency scan,

and fmin = 1 Hz, fmax = 1 MHz, N = 60 in the present example. The meaning of the above equation is
that the time step is determined by the sampling theorem using a frequency which is a little higher than
the highest frequency. The third line specifies the minimum and maximum orders

HOMOGENEOUS LINE { keyword for homogeneous line } {VERT500.AFT}


-1. { time step (if negative, optimum time step request)
4 16 { min and max orders for voltage deformation matrix [H]
1 12 { min and max orders for char. admittance matrix [Y0]
3. .5 3. 3 { error constants: EpsA, EpsM1, EpsM2 in percent, and Nitr
1,4 2,5 3,6 { pair(s) of phases having symmetry
C ============ End data for fitter. Begin F-scan output for fitter.
6 { NG above DO 890 of NEWCBL
1.0000000000000000E+05 { DIST above DO 890 of NEWCBL
C ============== Begin data for next frequency of F-scan.
1.0000000000000000E+00 { FREQ upon exit from PRCON
C ---- Next comes CZCHAR for JNC = 6
2.7505413428897600E-03 1.3040338648627105E-03 -6.27... { End row 1
-6.2732454175991445E-04 -4.5844275604238537E-04 2.84... { End row 2
-3.4375081828096494E-04 -1.7495154597511246E-04 -6.36... { End row 3
-4.4191865545622496E-04 -2.8875558905680845E-04 -3.22... { End row 4
-3.2289519658382660E-04 -1.5063229124422632E-04 -3.43... { End row 5
-2.4924579548355629E-04 -9.1772867549232853E-05 -3.13... { End row 6
C ---- Next comes AI for JNC = 6
1.8706602470669148E-01 -1.6551217820610420E-02 1.32... { End row 1
-1.8521331040189884E-01 -1.5676859558619773E-03 2.83... { End row 2
-1.8448452080598216E-01 -9.5802838509942805E-03 3.68... { End row 3
2.5938719090784324E-01 2.6690124032475397E-04 2.08... { End row 4
-2.5243637063269153E-01 -5.9240387975043832E-04 2.71... { End row 5
1.6353884250116110E-01 -2.9971521498993311E-03 2.18... { End row 6
C ---- Next comes A for JNC = 6
9.9974575555930156E-01 -2.2548264703990531E-02 -6.53... { End row 1
1.0071696294614401E+00 4.1512638575577708E-02 9.99... { End row 2
9.9529692666225078E-01 -6.9997145897572350E-03 -5.92... { End row 3
9.9978328925059745E-01 -2.2417404173010257E-02 6.48... { End row 4
1.0073118492346393E+00 4.1868107726403994E-02 -9.91... { End row 5
9.9518500528747500E-01 -7.5757386541923768E-03 5.88... { End row 6
C ---- Next comes vector QN.
5.8082744026295919E-09 3.8819226136679583E-08 1.41...
6 – XVIII. NODA SETUP and ARMAFIT

C ============== Begin data for next frequency of F-scan.


1.2589254117941673E+00 { FREQ upon exit from PRCON
C ---- Next comes CZCHAR for JNC = 6
3.0003593783218497E-03 1.2337713228203128E-03 -7.24... { End row 1

...

9.9999812059239424E-01 1.9387655039394408E-03 9.99... { End row 6


C ---- Next comes vector QN.
2.3212834559188691E-04 2.1219062265983042E-02 1.17...
2ND FREQUENCY CARD. SAME OUTPUT FOR IT FOLLOWS:
C ============== Begin data for next frequency of F-scan.
9.9999999999999985E+07 { FREQ upon exit from PRCON
C ---- Next comes CZCHAR for JNC = 6
4.0609713760903386E-03 1.3950144817973304E-07 -1.09... { End row 1

...

C ---- Next comes vector QN.


2.5916994586333468E-03 2.0984680796854747E+00 1.47...

Nmin, Nmax of the ARMA models which represent the elements of the propagation-function matrix
H(jω). The fourth line specifies those of the characteristic-admittance matrix Y0(jω). From author's
experience, Nmin = 4 and Nmax = 16 is recommended for the propagation-function matrix. Because each
element of the characteristic-admittance matrix has smoother frequency characteristics than the
propagation-function matrix, Nmin = 1 and Nmax = 12 is recommended for the characteristic-admittance
matrix. If desired fitting accuracy cannot be obtained, the maximum order may be increased for
achieving better fitting by user. In the fifth line, the values of the error tolerances are specified :
εA, εM1, εM2, and Nitr. The description of the error tolerances is

εA : error tolerance in the stage of least-square fitting in %


εM1 : error tolerance for detecting modal traveling timings in %
εM2 : error tolerance for detecting dominant modes in each phase response in %
Nitr : maximum iteration steps in the stage of nonlinear improvement

The author recommends εA = 3 %, εM1 = 0.5%, εM2 = 3 %, and Nitr= 3 as in the example. ARMAFIT
uses a linearized least-squares method presented in refs. [10] and [13] by the author for the fitting, and
the stage of an nonlinear improvement using the Newton-Raphson iteration is added purposing better
fitting. It improves the solution obtained by the least-squares method by the Newton-Raphson
iteration. It is important that if the iteration does not converge, Nitr should be set to 0. For theoretical
background, consult [10, 11, 13, 14]. The sixth line provides the symmetry information of line
configuration for ARMAFIT. In the example line, phases 1 and 4, phases 2 and 5, and phases 3 and 6
are respectively symmetrical with a reference line which is usually the tower supporting the wires. If
there is no symmetry in the line configuration, keyword NO SYMMETRY is placed here. The symmetry
information is used to reduce the number of fitting. Because the proposed line model is a phase-
domain model, the computation time of the frequency-dependence synthesis is in proportional to n2 (n
: number of phase wires). Thus, the reduction of the fitting time is important, although the linearized
least-squares fitting method is quite fast. The theory is presented in refs. [14,15].

The next two lines specifies the number of phase wires n and the line length l. In the present example,
the number of phase wires is n = 6 (the ground wires are eliminated using a matrix manipulation
assuming zero voltage), and the line length is l = 100 km.
XVIII. NODA SETUP and ARMAFIT – 7

In the next part, N sets of line constants are provided, where N is the total number of frequencies of the
frequency scan :

(1) frequency
(2) characteristic-admittance matrix Y0
(3) voltage transformation matrix A
(4) inverse of voltage transformation matrix A−1
(5) propagation constant γ

Frequency is specified on the first line in each set. Then, characteristic-admittance matrix Y0, voltage
transformation matrix A, and inverse of voltage transformation matrix A−1 are provided in the
following matrix form :

x11real x11imag x12real x12imag ..... x1n real x1n imag


x21real x21imag x22real x22imag ..... x2n real x2n imag
.....
xn1real xn1imag xn2real xn2imag ..... xnn real xnn imag

where n is the number of phase wires, and xij is the (i, j) element of matrix X. At last, propagation
constant γ is provided in the following vector form :

γ1real γ1imag γ2real γ2imag ..... γn real γn imag

where γ i is the i-th element of vector γ. After N sets of the above line constants, keyword 2ND
FREQUENCY CARD. SAME OUTPUT FOR IT FOLLOWS: comes to declare that the same set
of line constants follows in order to calculate the velocity of the natural modes of propagation.

XVIII–2.E. Fitting using ARMAFIT

In order to perform fitting of the frequency data prepared in .AFT file as described in the previous
section, an independent program ARMAFIT is used. ARMAFIT can also be used to fit the given
frequency characteristic of an admittance element with an ARMA model or with a Laplace s-function
model, and the identified model can be used as a KIZILCAY F-DEPENDENT element in a branch
card in an ATP data case. The instructions for this use are provided in Section XVIII-4.

ARMAFIT is an MS-DOS application requiring Salford DBOS DOS extender. To execute ARMAFIT,
type as follows on a command line :
C:>ARMAFIT F_NAME.AFT

F_NAME.AFT is the file name containing the frequency data. If the file name is TEMP.AGF, it can
be omitted as :
C:>ARMAFIT
8 – XVIII. NODA SETUP and ARMAFIT

Files TEMP.PCH and TEMP.AGF are created by the execution. TEMP.PCH contains the fitting
results, i.e. the coefficients of the identified ARMA models of the transmission line, and it is used in
subsequent transient calculations. TEMP.AGF (ARMAFIT graph file) contains information used by
a small plotting program PGVGA to show the graphs of the fitting results. If file name TEMP.PCH is
not desired, -p option can be used to specify the name as :
C:>ARMAFIT F_NAME.AFT -pF_NAME.PCH

In the present example,


C:>ARMAFIT VERT500.AFT -pVERT500.pch

may be appropriate. VERT500.PCH is created instead of TEMP.PCH. If one needs more information
during the fitting, she/he can modify the debugging level of the execution using -d option. Bigger
value provides more information, and the default is zero. To execute the present example with
debugging level 2, type :
C:>ARMAFIT VERT500.AFT -pVERT500.pch -d2

To modify file name TEMP.AGF, -g option can be used in the same manner as the -p option.
In order to visualize the fitting results using PGVGA, .AGF file has to be converted into .PG file that
can be read by PGVGA. For this purpose, a small converter AGF2PG is used. PGVGA and AGF2PG are
compiled by Borland C/C++ compiler and thus does not require the Salford DBOS DOS extender. To
convert F_NAME.AGF to F_NAME.PG, type as :
C:>AGF2PG F_NAME.AGF > F_NAME.PG

And the results is shown by typing as :


C:>PGVGA F_NAME

If TEMP.AGF is always used, batch file G is prepared to simplify the above two steps into one step.
Thus, typing as
C:>G

is equivalent to the following two steps :


C:>AGF2PG TEMP.AGF > TEMP.PG
C:>PGVGA TEMP

Other command line options : -t to request transformation matrices output, -s to request step
responses are available. -? option invokes the following help screen :
usage : ARMAFIT [file name] [options]

[file name] : specifies input file name, when TEMP.AFT is not desired

[options] -d<n> : requests n-th level debugging mode: 0-3


-p<file name> : specifies the name of punch-out file,
when 'TEMP.PCH' is not desired
-g<file name> : specifies the name of ARMAFIT graph file,
when 'TEMP.AGF' is not desired
-t : requests transformation-matrices output
(valid for the NODA SETUP line model)
-s<Tmax> : requests step response of each ARMA
model ( 0 < t < Tmax: end time )
-? : prints this help
XVIII. NODA SETUP and ARMAFIT – 9

XVIII-2.F Format of .PCH File

File VERT500.PCH created from VERT500.AFT using ARMAFIT is shown below. If one prepares
another fitting program, this section would help, or otherwise can be skipped. First comes the copy of
the first line of .AFT file. In the present example, it is HOMOGENEOUS LINE. The second line
specifies the number of phase wires. Then, the identified ARMA coefficients of the elements of the
propagation-function matrix H(jω) and of the characteristic-admittance matrix Y0(jω) follow. First
comes H(jω), and then Y0(jω) comes next, and the element order is (1,1), ..., (1,n), (2,1), ..., (2,n),
(3,1), ..., (3,n),..., (n,n) for H(jω), and (1,1), (1,2), ..., (1,n), (2,2), ..., (2,n), (3,3), ..., (3,n), ..., (n,n) for
Y0(jω) considering the symmetry of conductor configuration.

C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)


C
HOMOGENEOUS LINE
6 -1.00000E+00 { number of phase, simulation time step
C
C *** VOLTAGE DEFORMATION MATRIX [H]
C
C PHASE (1,1)
3.98666E-07 3.33987E-04 { time step, minimum traveling time
7 { optimum order
0 -8.274653485712564E-03 1.000000000000000E+00
1 7.528397386656641E-01 -2.126568253243974E+00
2 -1.471106180157977E+00 1.269977709398951E+00
3 7.265012311708612E-01 -1.776595974102977E-01
33 -1.506730710077502E-03 6.575121912178510E-02
34 6.260578742981290E-03 -4.618327398313728E-02
35 -7.158843715498257E-03 2.456714003946597E-02
36 2.453349564716568E-03 -9.876428406518090E-03
C
C PHASE (1,2)
3.98666E-07 3.33987E-04 { time step, minimum traveling time
10 { optimum order
0 -6.588584708260395E-03 1.000000000000000E+00
1 -1.410102902038087E-01 -2.720298100309956E+00
2 4.646819531667218E-01 2.197916234916072E+00
3 -4.803439361481772E-01 -1.725880139040105E-01
4 1.632808854959012E-01 -4.631597800007359E-01
33 -1.035543060647118E-03 3.082201104298183E-01
34 -8.949953167804173E-04 -2.637356723307325E-01
35 8.036226679380594E-03 1.883725745328373E-01
36 -9.540977334950568E-03 -9.011106966677926E-02
37 3.415261430664519E-03 1.538371652484067E-02
38 -4.374625661718312E-14 0.000000000000000E+00
C

...

C PHASE (6,6)
SAME AS 3, 3
C
C *** CHARACTERISTIC ADMITTANCE MATRIX [Y0]
C
C PHASE (1,1)
3.98666E-07 { time step
1 { optimum order
0 4.010927595142271E-03 1.000000000000000E+00
1 -4.010921931909790E-03 -9.999965918383292E-01
C
C PHASE (1,2)
3.98666E-07 { time step
2 { optimum order
10 – XVIII. NODA SETUP and ARMAFIT

0 -1.114929831742434E-03 1.000000000000000E+00
1 1.114929516191998E-03 -9.999977182440943E-01
2 3.155504362580691E-10 0.000000000000000E+00

...

C PHASE (6,6)
SAME AS 3, 3
C
C

For each element of H(jω), the first line contains the time step and the fastest traveling time of the
element. The fastest traveling time is the traveling time of the fastest mode included in the element,
and the value is evaluated at frequency specified by the second frequency card. The second line is the
determined model order, and then the identified ARMA coefficients follow. For the illustration of the
format of the ARMA coefficients, the following ARMA model is used :

a 0 + a1 z −1 + a10 z −10 + a11 z −11


H ij ( z ) =
1 + b1 z −1 + b2 z −2 + b3 z −3

The order of the above ARMA model is 3, and the coefficients are specified as follows :

index numerator coefficients denominator


coefficients

0 a0 1.0

1 a1 b1

10 a10 b2

11 a11 b3

If the frequency characteristics of element Hij is identical to element Hkl considering the symmetry of
conductor configuration, SAME AS i, j replaces the above format to avoid duplication.

For each element of Y0(jω), the first line contains the time step. The second line is the determined
model order, and then the identified ARMA coefficients follow in the same manner. If the frequency
characteristics of element Y0ij is identical to element Y0kl, SAME AS i, j also replaces the format to
avoid duplication.

The above parameters are placed in a free format separated with space ' ' or comma ',' . There is no
distinction between space and comma, and contiguous space or comma are treated as one separator.
XVIII. NODA SETUP and ARMAFIT – 11

XVIII-3 Time-domain Simulation

XVIII–3.A Branch Cards


In order to include a transmission-line model created by the Noda Setup in an ATP data case, the name
of .PCH file containing the ARMA coefficients of the line model is specified in a branch card as
shown below.

C --------------------------------------------------------------------
C 1 2 3 4 5 6 7
C 34567890123456789012345678901234567890123456789012345678901234567890
C BUS1 BUS2 Noda Line FILE NAME SHOW X
C --------------------------------------------------------------------
-1SND1 RCV1 Noda line F_NAME.PCH SHOW 1 { 1 of n }
-2SND2 RCV2 { 2 of n }
...
-nSNDn RCVn { n of n }

An n-phase transmission line requires n branch cards in the same manner as other line models. The
first column of the branch cards is occupied by minus sign -, and the second column by phase index
(1, 2, ..., n). Specify the two terminal nodes of the branch by 6-character alphanumeric node names
using columns 3 to 8 and 9 to 14. The order of the two pairs of phases follows the rule of CABLE
PARAMETERS or LINE CONSTANTS supporting routine. Only on the first line, keyword Noda
Line is required in columns 25 to 33, and .PCH file is specified using columns 35 to 46. Keyword
SHOW is also required only on the first line in columns 47 to 50, and a digit in column 52 controls the
amount of information printed out on screen. Bigger digit shows more information of the line model.

XVIII–3.B Switching-Surge Calculation

Using the present example, a switching-surge calculation is carried out to illustrate the use of the Noda
Setup in an ATP data case. Fig. 4 shows the circuit diagram of the calculation, and corresponding ATP
data case SWITCH.DAT is listed below. Fig. 5 shows the calculated results at the receiving end.

300 Ω
100 km

1 p.u.

Fig. 4 Switching-surge calculation

BEGIN NEW DATA CASE {SWITCH.DAT}


1.E-6 1.E-3
100 1 1
GEN1A SND1A 300.
-1SND1A RCV1A Noda line VERT500.PCH SHOW 1 { 1 of 6 }
12 – XVIII. NODA SETUP and ARMAFIT

-2SND1B RCV1B { 2 of 6 }
-3SND1C RCV1C { 3 of 6 }
-4SND2C RCV2C { 4 of 6 }
-5SND2B RCV2B { 5 of 6 }
-6SND2A RCV2A { 6 of 6 }
BLANK card ending branch cards
BLANK card ending switch cards
11GEN1A 1.
BLANK card ending source cards
RCV1A RCV1B RCV1C
RCV2A RCV2B RCV2C
BLANK card ending output variable requests
BLANK card ending plots
BEGIN NEW DATA CASE
BLANK

phase 1A
1
voltage, p.u.

phase 1B

phase 1C
0

200 400 600 800 1000


time, microseconds

0.4

0.2 phase 2C
voltage, p.u.

phase 2B
0

-0.2 phase 2A

-0.4

200 400 600 800 1000


time, microseconds

Fig. 5 Calculated results of switching-surge

XVIII–3.C Fault-Surge Calculation


XVIII. NODA SETUP and ARMAFIT – 13

A fault calculation of the example line is also carried out to illustrate the use of the Noda Setup. Fig. 6
shows the circuit diagram of the calculation, and corresponding ATP data case FAULT.DAT is listed
below. During a normal operation, phase a of the first circuit is short-circuited to the ground through
one ohm resistance representing a tower-footing resistance. Fig. 7 shows the calculated results at the
receiving end.

Fig. 6 Fault-surge calculation

Contents of data case FAULT.DAT:

BEGIN NEW DATA CASE { FAULT.DAT }


20.E-6 40.E-3
100 2 1 1 1
GEN1A SND1A 50.0
GEN1B SND1B 50.0
GEN1C SND1C 50.0
GEN2A SND2A 50.0
GEN2B SND2B 50.0
GEN2C SND2C 50.0
-1SND1A RCV1A Noda line VERT500.PCH SHOW 1 { 1 of 6 }
-2SND1B RCV1B { 2 of 6 }
-3SND1C RCV1C { 3 of 6 }
-4SND2C RCV2C { 4 of 6 }
-5SND2B RCV2B { 5 of 6 }
-6SND2A RCV2A { 6 of 6 }
TWR 1.
BLANK card ending branch cards
RCV1A TWR 10.0E-3 1.0
BLANK card ending switch cards
14GEN1A 1. 50. 0. -1.
14GEN1B 1. 50. -120. -1.
14GEN1C 1. 50. -240. -1.
14GEN2A 1. 50. 0. -1.
14GEN2B 1. 50. -120. -1.
14GEN2C 1. 50. -240. -1.
BLANK card ending source cards
RCV1A RCV1B RCV1C
RCV2A RCV2B RCV2C
BLANK card ending output variable requests
BLANK card ending plots
BEGIN NEW DATA CASE
BLANK
14 – XVIII. NODA SETUP and ARMAFIT

phase 1C
1

voltage, p.u.

-1
phase 1B phase 1A

0 10 20 30 40
time, milliseconds

phase 2A
1
voltage, p.u.

-1
phase 2B phase 2C

0 10 20 30 40
time, milliseconds

Fig. 7 Calculated results of fault-surge

XVIII-4 Use of ARMAFIT to create KIZILCAY F-DEPENDENT model data

XVIII-4.A Purpose and Applications

KIZILCAY F-DEPENDENT model (see Section IV-H) enables to represent a high-order rational
admittance function specified by the coefficients of numerator and denominator polynomials given
either in form of Laplace transform or Z-transform. This linear branch is used to model low-order
network equivalents and any other power system component, when frequency data can be fitted using
any suitable approximation program like ARMAFIT. Besides fitting frequency data of transmission
lines as described above, ARMAFIT can also be used to fit the given frequency characteristic of an
admittance element. The result of ARMAFIT is the model data for KIZILCAY F-DEPENDENT,
XVIII. NODA SETUP and ARMAFIT – 15

which can be directly included in a data case using $INCLUDE request. ARMAFIT determines gain K
and (a,b or A,B)-coefficients for the desired form of the admittance function shown below:

! in Laplace domain:

! in z domain:

XVIII-4.B Structure of Input Data for ARMAFIT

The input data are entered line-wise using a text editor in free format. Numbers or letters in a line are
separated by blank ' '. Any line starting with 'C ' is interpreted as comment line and a curly bracket
'{'in any data line designates the position a comment starts, i.e. data or text in that line following '{'
will be discarded by ARMAFIT. Input data will be entered line-wise in the given order, when comment
lines in between are omitted. Input data depending on the type of rational function are as follow:

– Rational function in s-domain:


1. line : KIZILCAY F-DEPENDENT {keyword for the KIZILCAY F-DEPENDENT use
2. line : S {'S': Laplace s-rational model
3. line : y0 y4 {y0 y4 are admittance values at f = 0 Hz and infinity
4. line : min max {minimum and maximum orders of the rational function
5. line : g imax {g permitted error in %, imax max. number of iterations
6. line : Nf K {Nf number of frequency points, K pre-defined gain
7. line : frequency 1 (Hz) magnitude 1 (mho) phase angle 1 (degree)
8. line : frequency 2 (Hz) magnitude 2 (mho) phase angle 2 (degree)
..... : ..... ..... .....
..... : ..... ..... .....

Additional explanations for input data:

2. line : Lower case letter 's' is also accepted.


3. line : Admittance values (mho) can be fixed at f = 0 Hz and infinity during fitting procedure. If
a negative number is given, the value at that frequency (0 or 4) will be determined by
ARMAFIT. None, one or both values can be zero.
4. line : Fitting is performed by increasing order of the model from min. order to max. order
specified to find a best fit. The best fit is determined based on a logic of Standard
Deviation (SD) and Akaike's Information Criterion (AIC).
16 – XVIII. NODA SETUP and ARMAFIT

5. line : ARMAFIT stops increasing the order of the model, when SD becomes smaller than the
permitted error g. ARMAFIT uses linearized least-squares (LS) method proposed in Refs.
[5] and [8]. Although the linearized LS usually gives good accuracy, further improvement
of the fitting accuracy may be achieved using the Newton-Raphson iteration. It is
recommended for the first time to set the maximum number of iterations to zero to omit the
iteration, because the Newton-Raphson method sometimes does not converge. After getting
a good model, it is worth to try to improve the fitting accuracy using NR-iterations.
6. line : Nf lines of frequency data should be available following this line. Pre-defined gain K is a
factor, which is multiplied with the magnitude data.

– Rational function in z-domain:

1. line : KIZILCAY F-DEPENDENT {keyword for the KIZILCAY F-DEPENDENT use


2. line : Z {'Z': Z-rational (ARMA) model
3. line : )t {)t time step to be used also in the time-domain simulation
4. line : min max {minimum and maximum orders of the rational function
5. line : g imax {g permitted error in %, imax max. number of iterations
6. line : Nf K {Nf number of frequency points, K pre-defined gain
7. line : frequency 1 (Hz) magnitude 1 (mho) phase angle 1 (degree)
8. line : frequency 2 (Hz) magnitude 2 (mho) phase angle 2 (degree)
..... : ..... ..... .....
..... : ..... ..... .....

For the z-domain fitting only the data in 2. and 3. lines are different from s-domain fitting. Lower case
letter 'z' is also accepted. Appropriate time step )t should be selected, which does not violate the
sampling theorem. The same time step must be used in the subsequent EMTP simulation.

XVIII-4.C Example

The frequency characteristic of the input admittance of a series RLC circuit is used to illustrate fitting
by ARMAFIT to create a KIZILCAY F-DEPENDENT model. The frequency response of the series
RLC circuit was measured experimentally by Dr. Taku Noda and is shown in Fig. 8. The approximate
values of elements are:

R = 100 S, L = 50 mH with a loss of 65 S, C = 4800 pF.


XVIII. NODA SETUP and ARMAFIT – 17

0.01

0.001
|Y| (mho)

0.0001

1E-05
100
Phase angle (degree)

50

-50

-100
1E3 1E4 1E5
Frequency (Hz)

Fig. 8 Measured frequency characteristic of the input admittance


of an series RLC circuit

The contents of input data files SAMPLE1S.AFT and SAMPLE1Z.AFT for ARMAFIT fitting are
shown below.

– s-domain fitting:

C SAMPLE1S.AFT
C
C To execute ARMAFIT, type as : "ARMAFIT SAMPLE1S.AFT". ARMAFIT reads
C this file, and generates files "TEMP.PCH" and "TEMP.AGF". The former is
C the punch-out file used as KIZILCAY F-DEPENDENT branch cards, and the
C latter is a file containing the fitting result. The fitting result may
C be confirmed by typing "G", invoking a batch file "G.BAT" to convert
C "TEMP.AGF" to "TEMP.PG" and to execute a small plotting program "PGVGA"
C (VGA version of ProGrapher 3.4). "TEMP.PG" is the input to "PGVGA".
C To replot the fitting results, using "R.BAT" is preferred to bypass the
C conversion. To fulfil this procedure, the following files are required:
C ARMAFIT.EXE : fitter
C AGF2PG.EXE : data converter (from *.AGF to *.PG)
18 – XVIII. NODA SETUP and ARMAFIT

C PGVGA.EXE : vector-plotting program


C G.BAT : batch file for plotting
C R.BAT : batch file for replotting
C If a user wishes to specify another name for "TEMP.PCH" and for
C "TEMP.AGF", then invoke ARMAFIT in the help mode as : "ARMAFIT -?". In
C this case, the data conversion should be done by the user, by typing
C "AGF2PG ???.AGF > ???.PG", where "???" is the specified file name.
C
C All rights are reserved by Prof. Dr. Mustafa Kizilcay, FH Osnabrueck,
C Germany, on behalf of Dr. Taku Noda, SimuTrek, 2-14-10-316 Kosobe-cho,
C Takatsuki-shi, Osaka-pref. 569-11, Japan.
C
KIZILCAY F-DEPENDENT { keyword for the KIZILCAY F-DEPENDENT use
C -- fitting parameters -------------------------------------------------------
S { 'S': Laplace s-rational model, 'Z': z-rational (ARMA) model
0. 0. { admittance values at freq = 0 and infinity
1 6 { min and max orders
3. 5 { permitted error in %, and max number of iterarion
21 1. { number of frequencies, and pre-defined gain
C
C A line starts with 'C' is considered as a comment line, and a curly
C bracket '{' designates the point a comment starts.
C
C
C -- frequency response -------------------------------------------------------
1.0E3 3.08E-5 88.2 { frequency [Hz], magnitude [mho], phase angle [deg]
2.0E3 6.32E-5 87.8
3.0E3 1.00E-4 88.6
5.0E3 1.97E-4 90.0
7.0E3 4.11E-4 84.2
8.0E3 6.34E-4 84.1
8.5E3 8.65E-4 78.6
9.0E3 1.28E-3 73.9
9.5E3 2.41E-3 61.9
10.0E3 4.98E-3 -2.52
10.5E3 2.69E-3 -57.1
11.0E3 1.63E-3 -70.9
12.0E3 8.34E-4 -79.9
13.0E3 5.85E-4 -84.2
15.0E3 3.67E-4 -85.9
17.0E3 2.74E-4 -88.1
20.0E3 2.01E-4 -87.1
30.0E3 1.12E-4 -89.1
50.0E3 5.99E-5 -89.6
70.0E3 3.91E-5 -89.2
100.0E3 2.35E-5 -89.6
C -----------------------------------------------------------------------------

– z-domain fitting:

C SAMPLE1Z.AFT
C
C To execute ARMAFIT, type as : "ARMAFIT SAMPLE1Z.AFT". ARMAFIT reads
C this file, and generates files "TEMP.PCH" and "TEMP.AGF". The former is
C the punch-out file used as KIZILCAY F-DEPENDENT branch cards, and the
C latter is a file containing the fitting result. The fitting result may
C be confirmed by typing "G", invoking a batch file "G.BAT" to convert
C "TEMP.AGF" to "TEMP.PG" and to execute a small plotting program "PGVGA"
C (VGA version of ProGrapher 3.4). "TEMP.PG" is the input to "PGVGA".
C To replot the fitting results, using "R.BAT" is preferred to bypass the
C conversion. To fulfil this procedure, the following files are required:
C ARMAFIT.EXE : fitter
C AGF2PG.EXE : data converter (from *.AGF to *.PG)
C PGVGA.EXE : vector-plotting program
C G.BAT : batch file for plotting
XVIII. NODA SETUP and ARMAFIT – 19

C R.BAT : batch file for replotting


C If a user wishes to specify another name for "TEMP.PCH" and for
C "TEMP.AGF", then invoke ARMAFIT in the help mode as : "ARMAFIT -?". In
C this case, the data conversion should be done by the user, by typing
C "AGF2PG ???.AGF > ???.PG", where "???" is the specified file name.
C
C All rights are reserved by Prof. Dr. Mustafa Kizilcay, FH Osnabrueck,
C Germany, on behalf of Dr. Taku Noda, SimuTrek, 2-14-10-316 Kosobe-cho,
C Takatsuki-shi, Osaka-pref. 569-11, Japan.
C C
KIZILCAY F-DEPENDENT { keyword for the KIZILCAY F-DEPENDENT use
C -- fitting parameters -------------------------------------------------------
Z { 'S': Laplace s-rational model, 'Z': z-rational (ARMA) model
1.E-6 { time step
1 6 { min and max orders
3. 5 { permitted error in %, and max number of iterarion
21 1. { number of frequencies, and pre-defined gain
C
C A line starts with 'C' is considered as a comment line, and a curly
C bracket '{' designates the point a comment starts.
C
C
C -- frequency response -------------------------------------------------------
1.0E3 3.08E-5 88.2 { frequency [Hz], magnitude [mho], phase angle [deg]
2.0E3 6.32E-5 87.8
3.0E3 1.00E-4 88.6
5.0E3 1.97E-4 90.0
7.0E3 4.11E-4 84.2
8.0E3 6.34E-4 84.1
8.5E3 8.65E-4 78.6
9.0E3 1.28E-3 73.9
9.5E3 2.41E-3 61.9
10.0E3 4.98E-3 -2.52
10.5E3 2.69E-3 -57.1
11.0E3 1.63E-3 -70.9
12.0E3 8.34E-4 -79.9
13.0E3 5.85E-4 -84.2
15.0E3 3.67E-4 -85.9
17.0E3 2.74E-4 -88.1
20.0E3 2.01E-4 -87.1
30.0E3 1.12E-4 -89.1
50.0E3 5.99E-5 -89.6
70.0E3 3.91E-5 -89.2
100.0E3 2.35E-5 -89.6
C -----------------------------------------------------------------------------

The contents of the ARMAFIT output files SAMPLE1S.PCH and SAMPLE1Z.PCH are given below,
respectively:

– Model data in KIZILCAY F-DEPENDENT format (s-domain fitting):

C TEMP.PCH --> SAMPLE1S.PCH


C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
C
KIZILCAY F-DEPENDENT 4 1.00000E+00 S
0.000000000000000000E+00 1.000000000000000000E+00
4.834912963292372560E-09 2.891310391118851700E-06
7.580029502548451760E-15 2.542263894031624150E-10
3.992371183553768360E-21 4.849820121172185350E-16
0.000000000000000000E+00 3.255571288682856340E-23
20 – XVIII. NODA SETUP and ARMAFIT

Fig. 9 Screen output of ARMAFIT s-domain fitting results


XVIII. NODA SETUP and ARMAFIT – 21

– Model data in KIZILCAY F-DEPENDENT format (z-domain fitting):

C TEMP.PCH --> SAMPLE1Z.PCH


C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
C
C dt = 1.00000E-06
KIZILCAY F-DEPENDENT 3 1.00000E+00 Z
9.150679491660524490E-06 1.000000000000000000E+00
-9.305344079212201230E-06-2.989690720683914280E+00
-8.786470860113876200E-06 2.983350063948425840E+00
8.941090797935189810E-06-9.936485813055728760E-01

Using the present example, a switching-surge simulation is carried out by applying a step voltage of
10 V to the series RLC circuit modeled by a z-rational admittance function given above. The contents
of corresponding EMTP data are as follow:

BEGIN NEW DATA CASE


C See "SAMPLE1Z.AFT".
1.E-6 2.E-3
100 2 1
SRC SND 1.E-3 1
SND 88.8 { dummy branch for the following KFD
C PUNCH-OUT FILE GENERATED BY ARMAFIT (NODA SETUP)
C
C dt = 1.00000E-06
KIZILCAY F-DEPENDENT 3 1.00000E+00 Z
9.150679491660524490E-06 1.000000000000000000E+00
-9.305344079212201230E-06-2.989690720683914280E+00
-8.786470860113876200E-06 2.983350063948425840E+00
8.941090797935189810E-06-9.936485813055728760E-01
BLANK ending branches
BLANK ending switches
11SRC 10.
BLANK ending sources
1
CALCOMP PLOT
144 .2 2. SRC
194 .2 2. SRC SND
BLANK ending plots
BEGIN NEW DATA CASE
BLANK

The simulation results are shown in Fig. 10.

source voltage circuit current

Fig. 10 Step response of the series RLC circuit modelled by KIZILCAY F-DEPENDENT
22 – XVIII. NODA SETUP and ARMAFIT

XVIII-5 References
[1] A. Ametani, Refraction coefficient method for switching-surge calculations on untransposed
transmission lines (Accurate and approximate inclusion of frequency dependency), IEEE PES Summer
Meeting, C 73-444-7, 1973.
[2] L. Marti, Simulation of transients in underground cables with frequency dependent modal
transformation matrices, IEEE Trans., Power Delivery, vol. PWD-3 (3), pp.1099-1110, 1988.
[3] G. Angelidis and A. Semlyen, Direct Phase-Domain Calculation of Transmission Line Transients Using
Two-Sided Recursions, IEEE Trans., Power Delivery, Vol. 10, No. 2, pp. 941-949, April 1995.
[4] B. Gustavsen, J. Sletbak, and T. Henriksen, Calculation of electromagnetic transients in transmission
cables and lines taking frequency dependent effects accurately into account, IEEE Trans., Power
Delivery, Vol. 10, No. 2, pp. 1076-1084, April 1995.
[5] T. Noda, N. Nagaoka, and A. Ametani, Phase domain modeling of frequency-dependent transmission
lines by means of an ARMA model, IEEE Trans., Power Delivery, Vol. 11, No. 1, pp. 401-411, January
1996.
[6] T. Noda, N. Nagaoka, A. Ametani, Further Improvements to a Phase-Domain ARMA Line Model in
Terms of Convolution, Steady-State Initialization, and Stability, IEEE Power Engineering Society
Summer Meeting, Denver, Colorado, USA, 1996. (to be published in IEEE Trans.)
[7] Tsu-huei Liu and Li Jin-gui, Call for Help with Rational Function Approximations to Frequency-
Dependent Transformation Matrices of Cables and Lines, EMTP News, Leuven EMTP Center, March,
1988.
[8] T. Noda and N. Nagaoka, Development of ARMA Models for a Transient Calculation using Linearized
Least-Squares Method, Trans. IEE of Japan, Vol. 114-B, No. 4, pp. 396-402, 1994.
[9] T. Noda, Development of a Transmission-Line Model Considering the Skin and Corona Effects for
Power Systems Transient Analysis, Ph.D. Thesis submitted to Doshisha University, 1996.
[10] T. Noda, N. Nagaoka, and A. Ametani, Fault-Surge Calculations using the Phase-Domain ARMA Line
Model, Trans. IEE of Japan, Vol. 116-B, No. 11, pp. 1409-1414, 1996.
XXIII Appendix. CABLE PARAMETERS - 1

XXIII Appendix. CABLE PARAMETERS Supporting Program

Prof. Akihiro Ametani's separate program was added to ATP during the summer of 1994 as
documented in Can/Am newsletters dated July and October, 1994. Such usage, illustrated within
standard test cases DC-27 and DC-28, involves a CABLE PARAMETERS declaration immediately
following the old CABLE CONSTANTS declaration. The following is an adaptation of the
instructions for Prof. Ametani's self-contained program. The summary shall begin with Prof. Ametani's
own description (text moved from Section I) --- slightly modified to suit ATP needs. About limits on
number of conductors, most matrices are seen to be dimensioned (12,12), so the limit is believed to
be 12 (temporarily fixed).

WSM + THL, 12 July 1995.

The ATP "CABLE CONSTANTS" routine had originally been developed from 1976 to 1981
by this author, Akihiro AMETANI (Professor at Doshisha University, Kyoto, Japan) under contract
with Bonneville Power Administration, Portland, Oregon, U.S.A. Since then, a number of
modifications have been carried out by various persons. Ametani has found it difficult for himself to
trace all the modifications, and some of the calculated results are not correct. He has kept his own
independent CABLE CONSTANTS which has been modified time by time by himself. He has started
restructuring of his own CABLE CONSTANTS since October, 1993, and added new options into the
program. The restructuring has been partially completed, and Ametani has decided to release the new
program named CABLE PARAMETERS through the BPA as an all-new supporting program of
ATP.

The structure and functions of the CABLE PARAMETERS are the same as those of CABLE
CONSTANTS (see ATP Rule Book Chapter XXIII). The options of a stratified earth, which was
rarely used, and the crossbonded cable, which was complicated to use, have been deleted in CABLE
PARAMETERS. But several new options have been added:

(1) Arbitrary cross-sectional shape for conductors;


(2) Distributed shunt admittance model;
(3) Transposition/snaking of a cable system.

Furthermore, the option of grounded conductors (parameter "NGRND") has been modified. The
modified version of "NGRND" is completely different from that of "NGRND" in CABLE
CONSTANTS.

Produced by A. Ametani
Dept. Electrical Engineering
Doshisha University
Tanabe-cho, Tsuzuki-gun
Kyoto-pref. 610-03, Japan
Tel. +81 7746 5 6325 (6211)
Fax +81 7746 5 6801
2 - XXIII Appendix. CABLE PARAMETERS

CONTENTS

I. Introduction

II. General Description of the Program

II-1 Outputs
II-2 Input Data

III. CABLE PARAMETERS Data Cards

III-1 General Structures


III-2 Specific Format for Data Cards

REFERENCES

1) A. Ametani: "A general formulation of impedance and admittance of cables," IEEE Trans., Vol.
PAS-99 (3), pp. 902-910, 1980.

2) H.W. Dommel: Electromagnetic Transients Program Reference Manual (EMTP Theory Book),
B.P.A., Portland, Oregon, U.S.A., August 1986.

3) A. Ametani: Distributed-Parameter Circuit Theory, Corona Pub. Co., Tokyo, Japan, Feb. 1990
(in Japanese).

4) A. Ametani and I. Fuse: "Approximate method for calculating the impedance of


multiconductors with arbitrary cross-section," Trans. IEE Japan, Vol. B-111 (8), pp. 896-902,
1991 (in Japanese); Elect. Eng. Japan, Vol. 112 (2) pp. 117-123 (English version of Trans. IEE
Japan).

5) A. Ametani, I. Fuse and K. Hattori: "Derivation of approximate formulas of a multiphase cable


impedance including earth return," IEE Japan '90 Annual Conf., Paper No. 1401, March 1990.

6) A. Ametani: "An efficient method to deal with boundary conditions in an electromagnetic


transient analysis," ibid., '94 Annual Conf., Paper No. 1374, 1379, March 1994.

7) A. Ametani: "A study of cable transient calculations," Sci. Eng. Rev. Doshisha Univ.,
vol. 24, no. 2, pp. 110-127, July, 1983.
XXIII Appendix. CABLE PARAMETERS - 3

I. Introduction
See the initial page, to which material of this section was moved.

II. General Description of the Program


II-1 Outputs
The "CABLE PARAMETERS" program can be used to calculate the following outputs of
Class A: underground/overhead single-core coaxial cable (SC cable in Fig. 1 (a)), Class B:
underground/overhead pipe-enclosed type cable (PT cable in Fig. 1 (b)) and Class C: overhead line (OH
line in Fig. 1 (c)) as a function of frequency f.

Fig. 1 Various types of cables

(1) series impedance [Z] = [R] + j[X], [X] = T[L] [S/m]


(2) shunt admittance [Y] = [G] + j[B], [B] = T[C] [S/m]
(3) characteristic impedance [Z0] [S]
(4) transformation matrix (eigenvectors) [A] for voltage and [B] for current
4 - XXIII Appendix. CABLE PARAMETERS

(5) modal quantities; attenuation constant " [dB/km], propagation velocity v [m/:s], impedance Z
[S/m], admittance Y [S/m], characteristic impedance Z0 [S], characteristic admittance Y0 [S]
(6) B (PI) equivalent model of a cable or an OH line per unit length for ATP simulation
(7) Ametani's distributed line model of a cable or an OH line per unit length : multiphase lossy line
model with transformation matrix at a fixed frequency

II-2 Input Data


To calculate the above explained outputs, the following input data are required.
(1) input/output specification; type of cable, i.e. OH line (Class C; ITYPE = 1), SC cable (Class A;
ITYPE = 2) or PT cable (Class B; ITYPE = 3), etc. : corresponds to data card A3, B3, or C3
in CABLE CONSTANTS
(2) $PUNCH is used for punched cards just as with other supporting programs. See illustration in
DC-27 and DC-28.
(3) number of conductors, geometrical configuration and physical constants : corresponds to data
cards A4 and A5 for SC cable, B4 to B7 for PT cable or C4 for OH line in CABLE
CONSTANTS
(4) shunt conductance and/or capacitance, which may represent boundary conditions of the
conductors, to be defined by a user independently from the shunt admittance [Y] calculated by
the program (term (2) of Sec. II-2) : data card A5+, B7+ or C4+
(5) geometrical configuration of conductors to the earth : corresponds to data card A6, B8 or C5
in CABLE CONSTANTS
(6) earth resistivity and frequency at which the outputs are to be calculated : corresponds to data
card A7, B9 or C6 called "Frequency Card" in CABLE CONSTANTS

III. CABLE PARAMETERS Data Cards


III-1 General Structures
The structure of a data case of "CABLE PARAMETERS" will depend upon which of the
following three classes it falls into:
Class A : SC cable, system of single-core coaxial cables without enclosure
Class B : PT cable, system of SC cables within an enclosing pipe
Class C : OH line, system of conventional overhead lines
XXIII Appendix. CABLE PARAMETERS - 5

1. Class A Data Structure

A1. First comes a "BEGIN NEW DATA CASE" card (actually optional, as per
Section II-A).

A2. Next comes a "CABLE CONSTANTS" card, followed by a "CABLE


"PARAMETERS"card. These serve to transfer control to the new code.

A3. First comes a miscellaneous data card.

A4. Next comes one (or possibly more) card upon which is keyed the number of conductors
which make up each SC coaxial cable of the system. One card will suffice for a system
of up to sixteen cables; two cards are required for 17-32 cables, etc.

A5. Next comes two (or possibly three) cards of geometrical and physical data for each SC
coaxial cable in the system. E.g., for three SC coaxial cables, a maximum of nine cards
would be required.

A6. Next comes one (or possibly more) card which gives the horizontal and vertical location
of the centers of all SC coaxial cables in the system. A single card will handle up to four
SC coaxial cables; two cards are required for 5-8, etc.

A7. Last comes a frequency card, which specifies a new earth resistivity and frequency (or
range of frequencies) for which cable constants are to be calculated.

2. Class B Data Structure

B3. First comes a miscellaneous data card.

B4. Next will come one card which gives parameters of the pipe.

B5. Next will come one (or possibly more) card which specifies the location of each SC
coaxial cable within the pipe. One card will suffice for up to 4 SC coaxial cables, two
will be required for 5-8 SC coaxial cables, etc.

B6. Next comes one (or possibly more) card upon which is keyed the number of conductors
which make up each Sc coaxial cable of the system. One card will suffice for a system
of up to sixteen cables; two cards are required for 17-32 cables, etc.

B7. Next come two (or possibly three) cards of geometrical and physical data for each SC
coaxial cable in the system. E.g., for three SC coaxial cables, a maximum of nine cards
would be required.

B8. Next comes one card which gives the horizontal and vertical location of the center of
the pipe.

B9. Last comes a frequency card, which specifies a new earth resistivity and frequency (or
range of frequencies) for which cable constants are to be calculated.
6 - XXIII Appendix. CABLE PARAMETERS

3. Class C Data Structure

C3. First comes a miscellaneous data card.

C4. Next come three cards for each circuit which belongs to the overhead conductor
system. Parameters specified include the number of phases, the number of ground
wires, the number of conductors in a bundle, geometrical data, conductor resistivity,
etc. E.g., considering a system which consists of a single-circuit 500 kV transmission
line and a double-circuit 230-kV transmission line all on the same right of way, nine data
cards would be involved.

C5. Next comes one (or possibly more) data card which gives the height, sag, and horizontal
location for the center of each bundle of each circuit of the system. One card will
suffice for 1 or 2 bundles, two cards are required for 3 or 4 bundles, etc. E.g., two
coupled single circuits, each of which is supported by its own towers and has a single
ground wire, would require four cards (because there are eight bundles total -- four for
each circuit).

C6. Last comes a frequency card, which specifies a new earth resistivity and frequency (or
range of frequencies) for which line constants are to be calculated.

III-2 Specific Format for Data Cards


The preceding section outlined the structure of a "CABLE PARAMETERS" data case in
general terms, for each of the three different general classes of geometry which are permitted. The
format and meaning of the associated data cards shall now be described in detail. Unscaled MKS units
are consistently used throughout, it may be noted (e.g., distance in meters, voltage in volts, capacitance
in farads, etc.).

1. Format for A3, B3 or C3 data: Miscellaneous Data Card


This card provides miscellaneous data concerning the data class, grounding conditions,
requested output format. These data are applicable to all Sc coaxial cables specified within this cable
system.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

ITYPEISYST NPC IEARTKMODEIZFLAIYFLA NPP NGRNDIDATA IYG

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 ² Section number
explaining
I5 I5 I5 I5 I5 I5 I5 I5 I5 I5 I5 the parameter
XXIII Appendix. CABLE PARAMETERS - 7

1.1 ITYPE; flag indicating the class of the present data case

ITYPE = 1: Class C, OH line


2: Class A, SC cable
3: Class B, PT cable

1.2 ISYST; flag indicating either overhead or underground for a cable system (Class A and B), and
indicating either transposed or untransposed for an OH line (Class C).

(1) Classes A and BAAAAAISYST = 1 : overhead cable


0 : cable on the earth surface
-1 : underground cable

(2) Class CAAAAAISYST = 0 : untransposed OH line


2 : continuously transposed OH line

1.3 NPC

(1) Classes A and B; number of SC cables which make up the system of interest. Example:
NPC = 3; three-phase SC cable system (the most common case).

(2) Class C; number of transmission circuits which make up the overhead line system of
interest.

The numbers of phase wires and ground wires in a circuit are to be defined in data card
"C4" (NP = number of phase wires, NG = number of ground wires).

1.4 IEARTH; not used, leave blank.

1.5 KMODE; flag used to request the calculation and output of various modal quantities of interest.

Presently it is fixed to "KMODE=1," and all the modal quantities described in Sec. II-1
(5) are calculated and printed.

1.6 IZFLAG; flag indicating intermediate printout.

IZFLAG = 0 : no intermediate printout


1 : intermediate printout

The format of the impedance and admittance printout is fixed to:[R], T[L] = [X], [G]
and T[C] = [B], but not [L] and [C]. The order of conductors of a SC cable system in
the printout of impedance and admittance matrices starts from the inner-most conductor
of each cable in the order of data input and continues with next outer layer, i.e. first
come "cores", then "sheaths", "armours" and last "pipe", if exist.

1.7 IYFLAG; not used, leave blank.


8 - XXIII Appendix. CABLE PARAMETERS

1.8 NPP

(1) Class A....NPP = -99 : transposition (snaking) of SC cables


… -99 : unused

(2) Class B....NPP = 1 : pipe of finite thickness


0 : pipe of infinite thickness (ISYST is automatically set to be
zero.)
-1 : snaking of inner conductors (SC cables) for a finite
thickness pipe (corresponding to NPP = 1)
-99 : snaking of inner conductors for an infinite thickness pipe
(corresponding to NPP = 0)
(3) Class C....unused

1.9 NGRND; This parameter describes the number of grounded conductors in an OH line (Class C)
and a cable system (Classes A and B). (In CABLE CONSTANTS, NGRND describes
the grounding conditions of the cable system, and the value of NGRND does not
correspond to the number of the grounded conductors.)

Grounding starts from the most outer conductor to the inner conductors for all the classes
(Classes A, B and C) as illustrated in Fig. 2. At least, one conductor (a core of phase 'a' SC
cable in Classes A and B, phase 'a' conductor in Class C) has to be left (not grounded).

Fig. 2 Example of grounded conductors for parameter "NGRND"


XXIII Appendix. CABLE PARAMETERS - 9

For Class C (OH line), when conductors 4 and 5 in the above figure are defined as a ground
wire (GW; NP = 3, NG = 2 in data card C4-1 in Sec. 3), then the conductors 4 and 5 are
automatically grounded and the conductor system is reduced to 3 x 3 from 5 x 5 independently
from the parameter NGRND. In this case, thus, NGRND should be less than 3 (NGRND # 2).
Also, the case with "NP = 3, NG = 2" gives the same result as the case with "NP = 5, NG = 0,
NGRND = 2"; three conductors are left (not grounded).

1.10 IDATA; flag indicating the type of the input data "A5," "B7" and "C4." This parameter is a new
one; it does not exist in CABLE CONSTANTS.

IDATA = 0 : conventional circular (cylindrical) conductor, data input by radius and


resistivity of the conductor

IDATA = 1 : arbitrary cross-section conductor explained in Appendix 2, data input by


cross-section area, outer surface length and dc resistance of the
conductor

1.11 IYG; This is a new option to use a distributed admittance model which takes into account a
number of boundary conditions in a cable or an OH line system. The theoretical
background is explained in Appendix 3.

IYG = 0 : conventional admittance of a cable or an OH line, Y = jTC. This uses


shunt capacitance only (no shunt conductance).

IYG … 0 : distributed admittance model to take into account an extra admittance


such as a cable conductance and boundary conditions, the extra
admittance to be supplied by a user:

IYG = 1 : admittance with extra capacitance C', Y = jT(C + C')


2: with extra conductance G, Y = G + jTC
3: with extra conductance and capacitance, Y = G + jT(C + C')

2. Unused (reserved for future development)

3. Format for A4, B4 to B6 or C4-1

4. Format for A5, B7 or C4-2 for IDATA = 0

The following symbol is used to express Sec. corresponding to Classes A, B and C.

"S" for SC cable ; Class A (ITYPE = 2)


"P" for PT cable ; Class B (ITYPE = 3)
"O" for OH line ; Class C (ITYPE = 1)
10 - XXIII Appendix. CABLE PARAMETERS

P3.1 Format for B4 Data

This data card indicates the radii and physical constants of the pipe illustrated in Fig. 3.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

rp1 rp2 rp3 DD :D gD1 gD2


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

Parameters:

rp1 : inner radius of the pipe [m]


rp2 : outer radius of the pipe [m]
rp3 : outer radius of the pipe outer
insulator [m]
Dp : resistivity of the pipe [S-m]
:p : relative permeability of the pipe
gp1 : relative permittivity of the pipe
inner insulator
gp2 : relative permittivity of the pipe
outer insulator

Fig. 3 A pipe type (PT) cable

Note: rp1 < rp2 < rp3 in theory. Keep this condition independently from the parameter NPP and from a
specific condition of a given PT cable. For example, even if a pipe has no outer insulator, it has
a corrosion protective covering or produces a thin oxide-film, which is a kind of an insulator,
and thus rp2 < rp3. Also even if NPP = 0, give an arbitrary value for r p2 and r p3 keeping the
condition rp1 < rp2 < rp3, and an arbitrary (non-zero) value for gp2.

P3.2 Format for B5 Data

This data card indicates the location of each inner conductor (SC cable) enclosed within a pipe
in polar coordinates, i.e. "dk" and "2k" in Fig. 3. The reference to the angular position 2k (degrees) can
be taken arbitrary, but it might be better to take the horizontal line as the reference and to measure
positive angle as counter-clockwise.

1 2 3 4 5 6 7 8
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
0 0 0 0 0 0 0 0

d1 21 d2 22 d3 23 d4 24

E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1


XXIII Appendix. CABLE PARAMETERS - 11

Parameters:

dk : distance from the pipe center to the center of the k-th conductor [m]
2k : angular position of the k-th conductor to a reference line [deg.]

Note: - Since each SC coaxial cable needs one pair (dk, 2k), one card can handle up to four cables.

- k varies from 1 up to NPC (see Sec. 1.3).

- Remember to use the same S.C. cable sequence, as the one defined in Sec. P3.3.

S3 = P3.3 Format for A4 or B6 data

For cable systems (either Class A or Class B), the number of conductors which make up each
SC coaxial cable of the system must be indicated; the following format is used:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

NCPP1 NCPP2 NCPP3 NCPP4 NCPP5 NCPP6 ....Etc. (1 entry for each of NPC SC cables) ....

I5 I5 I5 I5 I5 I5 I5 I5 I5 I5 .... I5 I5

Parameters:

NCPPk : indicates the number of physical conductors, making up the k-th single-core
coaxial cable of the system

=3: SC cable has core, sheath and armor

=2: SC cable has core and sheath

=1: SC cable has a core only.

Note: For purposes of this input, it may be noted that the SC coaxial cables have been numbered
between "1" and "NPC." Such numbering is arbitrary, except that the string of NCPPk must be
non-increasing (that is, all 3-conductor SC coaxial cables must precede any 2-conductor cables
and all 2-conductor cables must precede any core only cables). This ordering, once established,
is assured to apply throughout the rest of the data case.
12 - XXIII Appendix. CABLE PARAMETERS

S4 = P4 Format for A5 or B7 data

This data card (maximum three cards in one set) expresses the radii and physical constants
(resistivity, permeability and permittivity) of an SC cable for Classes A (SC cable) and B (PT cable).

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

r1 r2 r3 r4 r5 r6 r7
E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Dc :c :i1 ,i1 Ds :s :i2 ,i2


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

If the SC cable has armor, one more set of the data is required:

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Da :a :i3 ,i3
E10.1 E10.1 E10.1 E10.1

Parameters:

For a better understanding of all parameters involved, we refer to Fig. 4.

Fig. 4 SC cable cross-section


XXIII Appendix. CABLE PARAMETERS - 13

r1 : inner radius of the tubular core [m] = 0 for solid core

r2 : outer radius of the tubular core [m] ( = inner radius of the first insulating layer)

r3 : inner radius of the sheath [m] ( = outer radius of the first insulating layer)

r4 : outer radius of the sheath [m] ( = inner radius of the second insulating layer)

r5 : inner radius of the armor [m] ( = outer radius of the second insulating layer)

r6 : outer radius of the armor [m] ( = inner radius of the third insulating layer)

r7 : outer radius of the third ( = outer most) insulating layer [m]

Dc : resistivity of the tubular core [S-m]

:c : relative permeability of the tubular core

:i1 : relative permeability of the first insulating layer (in general, :i1 = 1)

,i1 : relative permittivity of the first insulating layer

Ds : resistivity of the tubular sheath [S-m]

:s : relative permeability of the tubular sheath

:i2 : relative permeability of the second insulating layer (in general, :i2 = 1)

,i2 : relative permittivity of the second insulating layer

Da : resistivity of the tubular armor [S-m]

:a : relative permeability of the tubular armor

:i3 : relative permeability of the third insulating layer (in general, :i3 = 1)

,i3 : relative permittivity of the third insulating layer

O3, O4 Format for C4-1 and C4-2 data

It should be noted that an overhead line (OH line; Class C) is a special case of an overhead SC
cable. Thus, an OH line parameter is calculated as an overhead SC cable parameter in this program and
in CABLE CONSTANTS (i.g. ITYPE = 2, ISYST = 1 and NCPPk = 1 for k = 1 to NPC). Only
bundles for phase and ground wires cause a difficulty to deal with the OH line as an SC cable. Because
of the above, this program and the CABLE CONSTANTS program have the following difference from
14 - XXIII Appendix. CABLE PARAMETERS

the LINE CONSTANTS program.

1) It is important to note that the CABLE CONSTANTS code uses another technique than the
LINE CONSTANTS code to take bundling into account. Whereas the LINE CONSTANTS
code first calculates the line parameters for all individual conductors within a given bundle and
then reduces the paralleled conductors to one equivalent phase, the CABLE CONSTANTS
code will immediately handle the bundling (i.e. at input time), using the geometric mean radius
approximation for the bundle.

2) Furthermore, CABLE CONSTANTS assumes the following:

- Within one circuit, all "NP" phase-wire bundles count for the same number ("KNP") of
individual physical conductors, all having the same geometry and physical data. All physical
conductors within a bundle are uniformly spaced around the circumference of a circle.
- Within one circuit, all "NG" ground-wire bundles count for the same number ("KBG") of
individual physical conductors, all having the same geometry and physical data. All physical
conductors within a bundle are uniformly spaced around the circumference of a circle.
- Data are entered for the individual physical conductor, not for the bundle.

3) Finally, recall the sequence rule for overhead transmission line circuits:

- First take the circuit with the highest number NP (number of phase-wire bundles)
- Stop by taking the circuit with the lowest number NP (number of phase-wire bundles)

Hence, "NPC" (total number of circuits, see Sec. 1.3) sets of following three card formats need to
specified next:

O.3 Format for C4-1 data

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

NP NG KBP KBG
I5 I5 I5 I5
XXIII Appendix. CABLE PARAMETERS - 15

O.4 Format for C4-2 data

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

ROUTp RINp ROUTg RINg SEPp SEPg


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Dp :p Dg :g
E10.1 E10.1 E10.1 E10.1

Fig. 5 Illustrative single-circuit 3-phase overhead transmission line (as seen in cross-
section). The three phase-wire bundles are of four conductors each; there are two
ground-wire bundles, of three conductors each.

Parameters:

NP : The number of phase-wire bundles which belong to the circuit in question. E.g., for a
3-phase circuit, "NP" will equal three.

NG : The number of ground-wire bundles which belong to the circuit in question.

KBP : The number of individual physical conductors which compose each phase-wire bundle of
the circuit in question. If there is no bundling of phase wires, "KBP" will equal unity, and
leave SEPp BLANK.

KBG : The number of individual physical conductors which compose each ground-wire bundle of
the circuit in question. If there is no bundling of ground wires, "KBG" will equal unity,
and leave SEPG BLANK.
16 - XXIII Appendix. CABLE PARAMETERS

ROUTp : outer radius of the individual tubular conductors which are used for each phase-wire
bundle, see Fig. 6(a). [m]

RINp : inner radius of the individual tubular conductors which are used for each phase-wire
bundle, Fig. 6(a). [m]
= 0 : solid conductor.

ROUTg : outer radius of the individual tubular conductors which are used for each ground-wire
bundle, Fig. 6(b). [m]

RINg : inner radius of the individual tubular conductors which are used for each ground-wire
bundle, Fig. 6(b). [m]
= 0 : solid conductor

Fig. 6 Cross-section of a conductor

SEPp : separation between the centers of two adjacent individual conductors within the phase-
wire bundle. All 'KBP' conductors of the phase-wire bundle are supposed to be uniformly
spaced around the circumference of a circle, see Fig. 7. [m]
= blank : no bundling (put KBP = 1).

SEPg : separation between the centers of two adjacent individual conductors within the ground-
wire bundle. All 'KBG' conductors of the phase-wire bundle are supposed to be uniformly
spaced around the circumference of a circle, Fig. 7 [m]
= blank : no bundling (put KBG = 1).

Dp : resistivity of the material used in each individual tubular conductor of each phase-wire
bundle, see Fig. 6(a). [S-m]

:p : relative permeability of the material used in each individual tubular conductor of each
phase-wire bundle, Fig. 6(a).

Dg : resistivity of the material used in each individual tubular conductor of each ground-wire
bundle of the circuit, see Fig. 6(b). [S-m]
:g : relative permeability of the material used in each individual tubular conductor of each
ground-wire bundle of the circuit, Fig. 6(b).
XXIII Appendix. CABLE PARAMETERS - 17

Fig. 7 A bundled conductor (uniform spacing)

4A. Format for A5', B7' or C4-2' for IDATA=1

AAAAA New option for arbitrary cross-section conductor

When I-DATA = 1, i.e. the case of an arbitrary cross-section conductor, the following input
data instead of the input data SAP4 and O4 are required.

S4A=P4A. Format for A5' or B7' data

This data card (maximum 4 cards in one set) expresses the cross-section area, outer-surface
length and dc resistance of a conductor and the thickness of the conductor's outer insulator rather than
the radii of the conductor and the insulator, and the resistivity of the conductor in the data cards A5 or
B7 in Sec. S4=P4.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Sc lc Di1 Ss ls Di2 Sa la
E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Di3
E10.1

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Rc :c :i1 ,i1 Rs :s :i2 ,i2


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1
18 - XXIII Appendix. CABLE PARAMETERS

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Ra :c :i3 ,i3
E10.1 E10.1 E10.1 E10.1

Parameters (See Fig. 8.)

S : cross-section area of conductor [m2]


l : outer-surface length of conductor [m]
Di : average thickness of insulator [m]
R : dc resistance of conductor [S/m]
: : relative permeability of conductor
:i : relative permeability of insulator
gi : relative permittivity of insulator

subscripts: c for core


s for conducting sheath
a for armor Fig. 8 Cross section and physical constant of an
i for insulator arbitrary cross-section SC cable (Classes
1 for insulator 1 (core to sheath) A and B)
2 for insulator 2 (sheath to armor)
3 for insulator 3 (armor outer)

For a cable consisting of a core and a sheath, 6 data expressing conductor cross-section

(Sc, lc, Di1, Ss, ls and Di2) and 8 data expressing physical constants (Rc, :c, :i1, gi1, Rs, :s, :i2 and gi2) are
required. Thus 2 data cards rather than 4 data cards indicated above are necessary enough. When a
cable is composed only of a core, 3 data for cross-section (Sc, lc and Di1) and 4 data for physical
constants (Rc, :c, :i1 and gi1) are necessary enough.

O4A. Format for C4-2'

Data card C4-2' expresses the cross-section area, outer-surface length dc resistance and
permeability of a conductor, and separation between conductors, while the data related to the above are
expressed as the radii, resistivity and permeability in data card C4-2 as explained in Sec. O4.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Sp lp SEPp Sg lg SEPg
E10.1 E10.1 E10.1 E10.1 E10.1 E10.1
XXIII Appendix. CABLE PARAMETERS - 19

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Rp :p Rg :g
E10.1 E10.1 E10.1 E10.1

Parameters (See Fig. 9.)

S: cross-section area of conductor [m2]


l: outer-surface length of conductor [m]
R: dc resistance of conductor [S/m]
:: relative permeability of conductor

subscript: p for phase wire


g for ground wire

Fig. 9 Cr o ss- sect io n and physical


constant of an arbitrary cross-
section conductor (Class C)

For an overhead line with no ground wire, leave BLANK for the data Sg, lg, SEPg, Rg and :g.

5. Format for A5+, B7+ or C4+ for IYG … 0

AAAAA New option for distributed admittance


When IYG … 0, conductances and/or capacitances are to be defined by a user. The
conductances and/or capacitances are added to the shunt admittances of a given cable or an overhead
line which are evaluated automatically by the CABLE PARAMETERS or the EMTP CABLE
CONSTANTS.

S5 = P5 Format for A5+ or B7+

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

G(I,1) C(I,1) G(I,2) C(I,2) G(I,3) C(I,3)


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

Parameters:

G: conductance [S/m]
C: capacitance [F/m]

subscript: I for phase 'I' of SC cables for Classes A and B


20 - XXIII Appendix. CABLE PARAMETERS

1 for core to sheath


2 for sheath to armor
3 for armor to earth (Class A) and pipe (Class B)
If an SC cables is consisting of a core and a sheath, the data G(I,3) and C(I,3) are left to be
BLANK. See Fig. 10.

IYG = 1 : G = 0 (BLANK) and C has


to be defined.
2 : C = 0 and G has to be
defined.
3 : G and C have to be defined.

Fig. 10 I-th SC cable consisting of a core and a


sheath with a distributed admittance.

For a PT cable (Class B), the


following data card is required right after the above data card for the last phase( i.e., after the last card):

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Gp Cp
E10.1 E10.1

Parameters:

Gp : pipe conductance to be added [S/m]


Cp : pipe capacitance to be added [F/m]

O5 Format for C4+

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

G(I,1) C(I,1) G(I,2) c(I,2) G(I,3) C(I,3) ... Etc. ...


E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1
XXIII Appendix. CABLE PARAMETERS - 21

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

... Etc. ... G(I,NC) C(I,NC) Gg(I,1) Cg(I,1) ... Etc. ...
E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

Parameters

G(I,k) : conductance for phase wire 'k' [S/m] k = 1 to NC


C(I,k) : capacitance for phase wire 'k' [F/m] A

NC : total number of phase wires in circuit 'I'


Gg(I,m) : conductance for ground wire 'm' [S/m] m = 1 to NG
Cg(I,m) : capacitance for ground wire 'm' [F/m] A

NG : total number of ground wires in circuit 'I'

If the circuit 'I' is consisting of 3 phase wires and 1 ground wire, 3 sets of G(I,k) and C(I,k) for
the phase wires and a set of Gg(I,1) and Cg(I,1) for the ground wire, which make up one data card, are
required.

Remark for Data A5, B7 or C4

The data cards A5 and B7 are per phase, and the data cards C4 are per circuit. Thus, "n" sets
of the data cards are required in the case of "n" phases for A5 and B7, and in the case of "n" circuits for
C4. The data input is carried out in the following code.

data cards C4-1 explained in Sec. O3 only for Class C.


IDATA = 0 : data cards A5, B7 or C4-2 explained in Sec. 4.
IDATA … 0 : data cards A5', B7' or C4-2' explained in Sec. 4A.
IYG … 0 : data cards A5+, B7+ or C4+ explained in Sec.5.

where INPC = the number of phases for A5 or B7 (Classes A and B)


= the number of circuits for C4 (Class C)

6. Format for A6, B8 or C5

S6. Format for A6 data

For each of the "NPC" SC coaxial cables of the system, the horizontal and vertical location of
its center must be specified as illustrated in Fig. 11(a), according to following card format.
22 - XXIII Appendix. CABLE PARAMETERS

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

SC cable # 1 SC cable # 2 SC cable # 3 SC cable # 4


VERT1 HORIZ1 VERT2 HORIZ2 VERT3 HORIZ3 VERT4 HORIZ4
E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

Parameters:

VERTk : vertical distance (m) between the center of the k-th single-core coaxial cable and the
earth surface. Always use POSITIVE values, no matter whether the system of cables is
underground or in the air. This difference is made by flag ISYST (see point 1.2 in Sec.
1) on the miscellaneous data card.

HORIZk : horizontal distance (m) between the center of the k-th single-core coaxial cable and an
arbitrary vertical reference line.

Fig. 11 Cable location

medium 1 = earth, medium 2 = air for ISYST = 1 and 0


medium 1 = air, medium 2 = earth for ISYST = -1

P6. Format for B8 data

This card gives the vertical location of the center of the pipe (which encloses all single-core
coaxial cables of the system) with respect to the earth surface as illustrated in Fig. 11(b).
XXIII Appendix. CABLE PARAMETERS - 23

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

CENTER Blank
E10.1 E10.1

Parameter:

CENTER : vertical distance (m) between the center of the pipe and the earth surface. Always use
POSITIVE values, no matter whether the pipe is underground or in the air. This
difference is made by flag ISYST (see miscellaneous data card).

O6. Format for C5 data

For each of the "NP" + "NG" bundles within each of the 'NCCT' circuits composing the
overhead conductor system, a triplet of numbers giving the horizontal and vertical location (near tower
and at midspan) of the center of the bundle is to be specified (see Fig. 12). At this stage of the data
input, the variable expressing the number of circuits is 'NCCT' rather than 'NPC' which now expresses
the total number of conductors. As for the order in which data have to be entered, following rules must
be obeyed:

- First take all phase-wire bundles belonging to the circuit with the highest number of phase-wire
bundles.

Fig. 12 Overhead line location

- Stop by handling the phase-wire bundles belonging to the circuit having the lowest number of
phase-wire bundles.

- Next start handling the ground-wire bundles belonging to the circuit with the highest number of
phase-wire bundles.

- Stop by handling the ground-wire bundles belonging to the circuit with the lowest number of
phase-wire bundles.
24 - XXIII Appendix. CABLE PARAMETERS

This means:

- Keep the sequence of circuits, as specified in Sec. O3 and O4.

- First define the phase-wire bundle location, obeying the circuit sequence.

- Next define the ground-wire bundle location, obeying the circuit sequence.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

Bundle # 1 of this circuit Bundle # 2 of this circuit ... Etc. (one


triplet for each
VTOWER1 VMID1 HORIZ1 VTOWER2 VMID2 HORIZ2 bundle of circuit

E10.1 E10.1 E10.1 E10.1 E10.1 E10.1

Parameters:

VTOWERk : vertical distance (m) near the tower, between the center of the k-th bundle and the
earth surface.

VMIDk : vertical distance (m) at midspan, between the center of the k-th bundle and the earth
surface.

HORIZk : horizontal distance (m) between the center of the k-th bundle and an arbitrary
reference line.

NPC = total number of conductors at this stage, NCCT = number of circuits

NOTE: Since each bundle needs one triplet (VTOWERk, VMIDk, HORIZk), one such card can
handle up to two bundles.

7. Format for A7, B9 or C6

The "frequency card" of all three classes of data cases has the same format.

1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890

ROE FREQ IDEC IPNT DIST IPUNCH

E15.6 E15.6 I5 I5 F8.3 I10


XXIII Appendix. CABLE PARAMETERS - 25

Parameters:

ROE : earth resistivity [S-m]

FREQ : frequency [Hz] at which cable or line parameters are to be calculated. FREQ should be
greater than zero.
If the automatic looping over a frequency range has been requested by the user, then the
data 'IDEC' and 'IPNT' greater than zero have to be input. Otherwise, i.e. in the case of
the normal single frequency calculation, leave BLANK for 'IDEC' and 'IPNT.'

IDEC : the number of decades of frequency space which are to be spanned.

IPNT : the number of points per decade of frequency space at which the cable or line parameters
are to be calculated. The automatic looping of frequencies is carried out in the following
manner. )f = 10/IPNT except IPNT = 3; f = )f x k x 10n-1; k = 1, 2, 3,..., IPNT ; n = 1,
2,..., IDEC; fbegin = )f, fend = 10IDEC

DIST : circuit length in meters. This is needed for several situations that require line length.
Included are NODA SETUP, JMARTI SETUP, and the punching of constant-parameter
branch cards using IPUNCH below.

IPUNCH : Normally leave blank or zero. Value one (1) will result in the creation of ATP branch
cards for a Pi-circuit of length DIST. Alternatively, value two (2) is for the constant-
parameter, distributed modeling. For either non-zero value, the use of $PUNCH is
required to extract such results from the ATP punch buffer. For node names to be
included, use a BRANCH request of CABLE CONSTANTS before the CABLE
PARAMETERS request. The order of conductors of a SC cable system in the punch
output starts from the inner-most conductor of each cable in the order of data input and
continues with next outer layer, i.e. first come "cores", then "sheaths", "armours" and last
"pipe", if exist. See the DC-28 illustrations.

Examples

(1) IPNT = 1, IDEC = 4 ; )f = 10 Hz, fbegin = 10 Hz, fend = 104 Hz,


f = 10, 10 x 10 = 102, 10 x 102 = 103, 10 x 103 = 104

(2) IPNT = 2, IDEC = 3 ; )f = 5 Hz = fbegin, fend = 103 Hz,


f = 5, 10, 50, 100, 500, 103
k = 1, 2 k = 1, 2 k = 1, 2
n=1 n=2 n = 3 = IDEC
26 - XXIII Appendix. CABLE PARAMETERS

(3) IPNT = 3, IDEC = 3 ; fbegin = 2 Hz, fend = 103 Hz


f = 2, 5, 10, 20, 50, 100, 200, 500, 103
k = 1, 2, 3 k = 1, 2, 3 k = 1, 2, 3
n=1 n=2 n = 3 = IDEC

(4) IPNT > 3 ; )f = 10/IPNT = fbegin

When IDEC x IPNT = 0, the normal single frequency calculation is carried out. Independently
from the above automatic looping, the cable or line parameters are calculated at the frequency
"FREQ" given by the user.

You might also like